从 COBOL 程序调用子程序

在 CICS® 系统中,当控制从活动程序传输到外部程序,但传输程序仍处于活动状态并且可以将控制返回到该系统时,将控制传输到的程序称为子程序。 在 COBOL 中,有三种向子程序转移控制权的方法。

EXEC CICS LINK
调用程序包含以下格式之一的命令:

EXEC CICS LINK PROGRAM('subpgname')
EXEC CICS LINK PROGRAM(
name
)
在第一种格式中,被调用的子程序被指定为字母数字文字。 在第二种形式中, name 指向 COBOL 数据区,其长度等于子程序名称所需的长度。
静态 COBOL 调用
调用程序包含一条 COBOL 语句:
CALL 'subpgname'
被调用的子程序被显式地命名为字面值字符串。
动态 COBOL 调用
调用程序包含一条 COBOL 语句:
CALL identifier
标识符是 COBOL 数据区的名称,其中必须包含被调用子程序的名称。

有关使用上述每种方法调用子程序对性能的影响,请参阅 Enterprise COBOL for z/OS Programming GuideEnterprise COBOL Version 4 Release 2 Performance Tuning ( https://www.ibm.com/support/docview.wss?uid=swg27018287 )。

COBOL 程序可以静态或动态地调用 支持的任何语言的程序。 CICS 除非您想使用 CICS 功能(如 COMMAREA),否则跨语言通信不需要 LINK 或 XCTL。 有关跨语言交流的更多信息,请参阅 Language Environment 中的混合语言

任何被调用或链接的子程序的内容都可以是 CICS 针对语言支持的任何函数 (包括对外部数据库 (例如, Db2® 和 DL/I) 的调用) ,但汇编语言子程序无法调用较低级别的子程序除外。