Calling COBOL Modules 调用COBOL模块

这篇具有很好参考价值的文章主要介绍了Calling COBOL Modules 调用COBOL模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Calling COBOL Modules
调用COBOL模块

Using the PeopleCode RemoteCall function, you can call COBOL modules from a PeopleCode action. This option supports existing Application Engine programs that call COBOL modules. You also can use it to upgrade Application Engine programs from previous releases.

使用PeopleCode RemoteCall函数,可以从PeopleCode操作调用COBOL模块。此选项支持调用COBOL模块的现有应用程序引擎程序。您还可以使用它来升级以前版本的应用程序引擎程序。

PTPECOBL Program

PTPECOBL程序

The PTPECOBL interface program is a PeopleSoft executable that enables you to invoke your called COBOL module and pass it required values. You code the RemoteCall function to invoke PTPECOBL, which in turn calls the specified COBOL module.

PTPECOBL接口程序是一个PeopleSoft可执行程序,它使您能够调用所调用的COBOL模块并向其传递所需的值。编写RemoteCall函数来调用PTPECOBL,而PTPECOBL又调用指定的COBOL模块。

If you use PTPECOBL, you do not have to write your own executable to process this task. However, PTPECOBL does not perform any SQL processing other than retrieving a list of state record values. Consequently, if your current logic requires previous SQL processing, you may want to write your own executable file to call your COBOL module. In most situations, PTPECOBL saves you from having to write a custom executable file to handle each call to a generated dynamically loadable code (.GNT) file.

如果使用PTPECOBL,则不必编写自己的可执行文件来处理此任务。但是,除了检索状态记录值列表之外,PTPECOBL不执行任何SQL处理。因此,如果您当前的逻辑需要以前的SQL处理,您可能需要编写自己的可执行文件来调用您的COBOL模块。在大多数情况下,PTPECOBL使您不必编写自定义可执行文件来处理对生成的动态可加载代码(.GNT)文件的每次调用。

PTPECOBL performs the following tasks:

PTPECOBL执行以下任务:

  1. Initializes the specified state record in memory.

初始化内存中的指定状态记录。

  1. Invokes the COBOL module specified in your PeopleCode.

调用PeopleCode中指定的COBOL模块。

  1. Submits required parameters to the called COBOL module.

向调用的COBOL模块提交所需的参数。

  1. Updates the state record as necessary, issues a commit, and then disconnects from the database after your program completes.

根据需要更新状态记录,发出提交,然后在程序完成后断开与数据库的连接。

Note: While your COBOL program runs, it can access and return values to the state record.

注意:当COBOL程序运行时,它可以访问状态记录并返回值。

Shared Values in Application Engine and COBOL

应用程序引擎和COBOL中的共享值

The following options are available for sharing values between the Application Engine program and a called COBOL program:

下列选项可用于在Application Engine程序和被调用的COBOL程序之间共享值:

  • Use state records.
  • 使用状态记录。

If you add field names, Application Engine enables you to pass state record values to the called COBOL program and to get changes passed back to the calling PeopleCode program. If you pass the state record values in this way, use PTPECACH to retrieve and update values just as PTPEFCNV does.

如果添加字段名,Application Engine允许您将状态记录值传递给被调用的COBOL程序,并将更改传递回调用PeopleCode程序。如果以这种方式传递状态记录值,则使用TP PEC ACH来检索和更新值,就像PTPEF CNV所做的那样。

  • Code custom SQL.
  • 代码自定义SQL

If you do not pass initial values using state record fields, you need to insert the appropriate SQL in your called COBOL module to retrieve the appropriate values. Then, to return any updated values to the calling Application Engine program, you must insert the appropriate SQL into a PeopleCode program.

如果不使用状态记录字段传递初始值,则需要在被调用的COBOL模块中插入适当的SQL来检索适当的值。然后,要向调用应用程序引擎程序返回任何更新的值,必须将适当的SQL插入到PeopleCode程序中。

If your COBOL program needs values that do not appear in a state record field, then you can pass PeopleCode variables and values. These variables and values are then retrieved and updated by calling PTPNETRT from within your COBOL program.

如果您的COBOL程序需要的值没有出现在状态记录字段中,那么您可以传递PeopleCode变量和值。然后通过从COBOL程序中调用PTPNETRT检索和更新这些变量和值。

  • Create a custom executable file.
  • 创建自定义的可执行文件。

If you include extra SQL processing and use non-state record values, for consistency purposes, creating a custom executable file might be a better approach. It enables you to call your program directly and have it perform all the PTPNETRT processing. Remember that a RemoteCall command can only call an executable program, not a GNT file.

Syntax and Parameters

语法和参数

This example shows a sample RemoteCall function issued from an Application Engine PeopleCode action to a COBOL module:

这个示例显示了从应用程序引擎PeopleCode操作向COBOL模块发出的RemoteCall函数示例:

RemoteCall ("PSRCCBL",?

 "PSCOBOLPROG", "PTPECOBL",?

 "AECOBOLPROG", "MY_GNT",?

 "STATERECORD", "MY_AET",?

 "PRCSINST", MY_AET.PROCESS_INSTANCE,?

 "RETCODE", &RC,?

 "ERRMSG", &ERR_MSG,?

 "FIELD1", MY_AET.FIELD1,?

 "FIELD2", MY_AET.FIELD2);

This table describes each parameter in the RemoteCall function:

下表描述了RemoteCall函数中的每个参数:

Parameters

Description

PSRCCBL

The Remote Call dispatcher, which runs the specified COBOL program using the connect information of the current operator.

PSCOBOLPROG

Specify the name of the COBOL program to run, which in this case is PTPECOBL.

This parameter makes the remote call from Application Engine distinct from a normal remote call. When you enter this parameter, in effect you enable the following parameters, some of which are required.

AECOBOLPROG

Specify the name of the COBOL module you are calling; for example, MY_GNT.

STATERECORD

Specify the appropriate state record that your Application Engine program will share with your COBOL module; for example, MY_AET. PTPECOBL then reserves space in

memory for all of the fields in the state record, regardless of whether they will ultimately store values for processing.

PRCSINST

Specify the state record and Process Instance field; for

example, MY_AET.PROCESS_INSTANCE. This setting

retrieves the current process instance value that appears on the state record and submits it to your COBOL module using

PTPECOBL.

RETCODE and ERRMSG

(Optional) Include RETCODE if you need to return information about any potential problems that the COBOL processing encountered, or use it if your Application Engine program must know whether it completed successfully.

Fieldnames and Values

Specify any fields in the state record that contain initial values for your COBOL module. The quoted field names you specify must exist in the specified state record. The corresponding value can be a PeopleCode variable, a record.field reference,  or a hard-coded value.

Commit and RemoteCall

提交和远程调用

When using RemoteCall and an Application Engine program:

使用RemoteCall和应用程序引擎程序时:

  • The called COBOL module runs as a separate unit of work.
  • 被调用的COBOL模块作为单独的工作单元运行。
  • Run a commit in the step immediately preceding the step containing the RemoteCall PeopleCode action and also in the step containing the Remote Call PeopleCode action.
  • 在包含RemoteCall PeopleCode动作的步骤之前的步骤以及包含RemoteCall PeopleCode动作的步骤中运行提交。

These two actions enable the COBOL process to recognize the data changes made up to the point that it was called, and minimizes the time when the process might be in a non-restartable state.

这两个动作使COBOL流程能够识别到调用它之前所做的数据更改,并将流程可能处于不可重新启动状态的时间减到最少。

  • If you insert SQL processing into your COBOL module, your module makes commit updates.
  • 如果您在COBOL模块中插入SQL处理,那么您的模块将进行提交更新。

PTPECOBL does not issue any commits.

PTPECOBL不发出任何提交。

  • If the intent of your COBOL process is to update the value of a passed state record field, then the calling Application Engine PeopleCode is responsible for ensuring that the state record field is modified, and the Application Engine program is responsible for committing the state record updates.
  • 如果你的COBOL进程的意图是更新一个传递的状态记录字段的值,那么调用的应用引擎PeopleCode负责确保状态记录字段被修改,应用引擎程序负责提交状态记录更新。
  • Consider how your COBOL module will react in the event of a restart.
  • 考虑您的COBOL模块在重新启动时的反应。

Because the work in COBOL will have already completed and been committed, will your module ignore a duplicate call or be able to undo or redo the work multiple times? You face similar issues when you run a remote call from PeopleCode.

因为COBOL中的工作已经完成并提交,您的模块是否会忽略重复调用,或者能够多次撤消或重做工作?当您从PeopleCode运行远程调用时,也会遇到类似的问题。

  • Typically, when a COBOL program updates the database and then disconnects or terminates without having issued an explicit commit or rollback, an implicit rollback occurs.
  • 通常,当一个COBOL程序更新数据库,然后断开连接或终止,而没有发出显式的提交或回滚时,就会发生隐式回滚。

Without an explicit commit, the database does not retain any updates.

没有显式提交,数据库不会保留任何更新。

Note: By default, RemoteCall does not generate any log files after the program completes. To generate and retain the .out and .err log files, you must set the RCCBL Redirect parameter in the PeopleSoft Process Scheduler configuration file to a value of 1.

附注:默认情况下,RemoteCall在程序完成后不会生成任何日志文件。生成并保留.out和.err日志文件,则必须将PeopleSoft进程计划程序配置文件中的RCCBL重定向参数设置为值1。

See “RemoteCall” (PeopleCode Language Reference).

见“远程调用”(人代码语言参考)

Related Links

“Editing the PeopleSoft Process Scheduler Configuration File” (Process Scheduler)

相关链接编辑PeopleSoft进程调度器配置文件(进程调度程序)文章来源地址https://www.toymoban.com/news/detail-756641.html

到了这里,关于Calling COBOL Modules 调用COBOL模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux驱动】内核模块编译 —— make modules 的使用(单模块编译、多模块编译)

    编译驱动一般采用的是将驱动编译成模块(.ko 文件),然后加载到内核,这其中就用到了 make modules 命令。 目录 一、单模块编译 1、一个 c 文件编译成一个 ko 文件 2、多个文件编译成一个 ko 文件 二、多模块编译(多文件多模块) 下面是最简易的单文件单模块编译,假设我们

    2024年02月10日
    浏览(66)
  • CSS Modules - CSS模块化

    参考文章: CSS Modules 用法教程-阮一峰 css module css模块化及CSS Modules使用详解 CSS 模块化的解决方案有很多,但主要有两类: 一类是 彻底抛弃 CSS,使用 JS 或 JSON 来写样式 。Radium,jsxstyle,react-style 属于这一类。 优点是能给 CSS 提供 JS 同样强大的模块化能力; 缺点是不能利用

    2024年02月05日
    浏览(45)
  • odoo启动-加载模块(load_modules)

    odoo每次启动的时候都会加载模块,加载模块的过程就是调用load_modules 函数 在函数位于 odoomodulesloading.py 代码中注释也写的很清楚,共分了9个步骤,其实是8个步骤。 这个函数的作用是为一个新创建的注册表对象加载模块,这是Registry.new()的一部分,不应该用在其他地方。

    2024年02月06日
    浏览(35)
  • stable diffusion webui中的modules/processing模块

    modules/processing.py-process_images() modules/processing.py-process_images_inner() 这个函数和scripts配合就是webui中文生图以及图生图的主pipeline,在processing中调用StableDiffusionProcessingTxt2Img和StableDiffusionProcessingImg2Img就是最核心的2个生图接口。 1.script在哪里做初始化? script由scripts.py控制 2.第三方

    2024年02月04日
    浏览(34)
  • 前端框架的CSS模块化(CSS Modules)

    创作纪念日之际,来给大家分享一篇文章吧 聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些

    2024年03月27日
    浏览(48)
  • 【出现模块node_modules里面包找不到】

    #pic_center R 1 R_1 R 1 ​ R 2 R^2 R 2 在本地运行 npm run docs:dev之后,出现 在把问题发给GPT之后,得到了解决; 仅仅运行上面给的这两行代码即可 rm -rf node_modules npm install 这个错误表明在运行你的项目时,Node.js 无法找到 ‘htmlparser2’ 模块,它是 ‘cheerio’ 模块的一个依赖项。 请尝

    2024年04月10日
    浏览(37)
  • vue - vuex详细讲解和modules模块化的使用

    vuex 简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 通俗的来说,vuex是用于当某一状态需要在多个组件中共享,方便我们使用并追踪这些状态时使用。 1,vuex的

    2024年02月06日
    浏览(43)
  • Vulkan教程(13): Graphics pipeline Shader modules(着色器模块)

    Vulkan官方英文原文:Shader modules - Vulkan Tutorial 对应的Vulkan技术规格说明书版本: Vulkan 1.3.2 Unlike earlier APIs, shader code in Vulkan has to be specified in a bytecode format as opposed to human-readable syntax like GLSL and HLSL. This bytecode format is called SPIR-V and is designed to be used with both Vulkan and OpenCL (both Kh

    2024年02月06日
    浏览(38)
  • 【THM】Burp Suite:Other Modules(其他模块)-初级渗透测试

    除了广泛认可的Repeater和Intruder房间之外,Burp Suite 还包含几个鲜为人知的模块。这些将成为这个房间探索的重点。 重点将放在解码器、比较器、排序器和组织器工具上。它们促进了编码文本的操作,支持数据集的比较,允许分析捕获的令牌内的随机性,并帮助您存储和注释

    2024年04月11日
    浏览(45)
  • 【Nuxt3】modules目录和nuxt3模块的简单介绍

    记录下nuxt3项目中module的用法 使用 modules/ 目录在应用程序中自动注册本地模块。 这是一个很好的地方,可以放置您在构建应用程序时开发的任何本地nuxt模块。 nuxt模块相当于npm包,可以发布到npm社区中 在modules/ 目录下的本地模块,会自动注册模块,无需在 nuxt.config.ts文件中

    2024年04月27日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包