我正在努力获得 RPGLE 和 IBM i 方面的经验并不断学习。由于大多数野外代码似乎都是经典的位置代码,因此我将坚持使用它以适应它。所以我宁愿不使用 /free \xe2\x80\x94 /end-free 的东西。顺便说一句,我是在一台只有 V4R5 的旧 9401-150 上执行此操作。
\n\nTL;DR:我如何从它自己的激活组中的外部称为 ILE 程序(具有它自己的 MAIN 部分,即它本身是独立的)获取返回值(*NEWTL;DR:如何从它自己的激活组 ( )被叫者?
我已经准备好一个子文件程序并且运行良好。我想调用外部程序来处理子文件中 OPT 值的请求。所以我在被调用者的 D-Specs 中定义了一个 PR:
\n\nDROEDETPG PR EXTPGM(\'ROEDETPG\')\nDC_MODE LIKE(MODE)\nDC_TYP LIKE(TYP) \nRun Code Online (Sandbox Code Playgroud)\n\n后来,我调用该程序也运行得很好。
\n\nC SELECT\nC OPT WHENEQ \'2\'\nC MOVE \'CHG\' MODE\nC CALLP ROEDETPG(MODE:TYP)\nC ENDSL\nRun Code Online (Sandbox Code Playgroud)\n\n这是被调用程序的入口点:
\n\nC *ENTRY PLIST\nC PARM C_MODE 3\nC PARM C_TYP 16\nRun Code Online (Sandbox Code Playgroud)\n\n现在,也许我想要更改的记录已经被锁定了。所以,我CHAIN(E)在外部程序中使用并%STATUS在之后从 PF获取CHAIN. 其状态值为 1218,我想将此值返回给调用程序,因此它可以使用消息行告诉用户,记录已锁定且目前不可用。
我在网上能找到的只是对调用进行原型设计并定义一个可能仅适用于过程的调用接口(PI)。
\n\n因此我想到了一个“临时文件”,就像我在 Unix/Linux …