小编PoC*_*PoC的帖子

从被调用程序返回到 rpgle 的主例程中获取返回值

我正在努力获得 RPGLE 和 IBM i 方面的经验并不断学习。由于大多数野外代码似乎都是经典的位置代码,因此我将坚持使用它以适应它。所以我宁愿不使用 /free \xe2\x80\x94 /end-free 的东西。顺便说一句,我是在一台只有 V4R5 的旧 9401-150 上执行此操作。

\n\n

TL;DR:我如何从它自己的激活组中的外部称为 ILE 程序(具有它自己的 MAIN 部分,即它本身是独立的)获取返回值(*NEWTL;DR:如何从它自己的激活组 ( )被叫者?

\n\n

我已经准备好一个子文件程序并且运行良好。我想调用外部程序来处理子文件中 OPT 值的请求。所以我在被调用者的 D-Specs 中定义了一个 PR:

\n\n
DROEDETPG         PR                  EXTPGM(\'ROEDETPG\')\nDC_MODE                               LIKE(MODE)\nDC_TYP                                LIKE(TYP)         \n
Run Code Online (Sandbox Code Playgroud)\n\n

后来,我调用该程序也运行得很好。

\n\n
C                   SELECT\nC     OPT           WHENEQ    \'2\'\nC                   MOVE      \'CHG\'         MODE\nC                   CALLP     ROEDETPG(MODE:TYP)\nC                   ENDSL\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是被调用程序的入口点:

\n\n
C     *ENTRY        PLIST\nC                   PARM                    C_MODE            3\nC                   PARM                    C_TYP            16\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,也许我想要更改的记录已经被锁定了。所以,我CHAIN(E)在外部程序中使用并%STATUS在之后从 PF获取CHAIN. 其状态值为 1218,我想将此值返回给调用程序,因此它可以使用消息行告诉用户,记录已锁定且目前不可用。

\n\n

我在网上能找到的只是对调用进行原型设计并定义一个可能仅适用于过程的调用接口(PI)。

\n\n

因此我想到了一个“临时文件”,就像我在 Unix/Linux …

rpgle ibm-midrange

4
推荐指数
1
解决办法
5999
查看次数

标签 统计

ibm-midrange ×1

rpgle ×1