CALL(调用程序)

代码 因子1 因子2 结果字段 指标
呼叫 (E)   程序名 Plist 名称 _ ER LR

CALL 操作将控制权传递给因子 2 中指定的程序。

因子 2 必须包含一个字符条目,用于指定要调用的程序的名称。

在结果字段中,通过下列其中一种方法指定参数:
  • 输入 PLIST 的名称
  • 将结果字段留空。 如果被调用程序不访问参数或者 PARM 语句直接跟在 CALL 操作之后,那么这是有效的。

位置 71 和 72 必须为空。

要处理 CALL 异常 (程序状态码 202,211 或 231) ,可以指定操作码扩展器 "E" 或错误指示符 ER ,但不能同时指定两者。 有关错误处理的更多信息,请参阅 程序异常/错误

如果调用的程序是返回 LR 指示符的 RPG 程序或循环主过程,那么可以在要设置的位置 75 和 76 中指定任何 有效结果指示符
注: 在线程安全环境中不允许使用 LR 指示符。

有关呼叫操作的更多信息,请参阅 呼叫操作

图 1。 CALL 操作
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
 *  The CALL operation calls PROGA and allows PROGA to access
 *  FieldA and FieldB, defined elsewhere. PROGA is run using the content
 *  of FieldA and FieldB.  When PROGA has completed, control
 *  returns to the statement following the last PARM statement.
 *
 *
C                   CALL      'PROGA'
C                   PARM                    FieldA
C                   PARM                    FieldB