从 COBOL 程序调用子程序
在 CICS® 系统中,当控制从活动程序传输到外部程序,但传输程序仍处于活动状态并且可以将控制返回到该系统时,将控制传输到的程序称为子程序。 在 COBOL 中,有三种向子程序转移控制权的方法。
- EXEC CICS LINK
- 调用程序包含以下格式之一的命令:
在第一种格式中,被调用的子程序被指定为字母数字文字。 在第二种形式中, name 指向 COBOL 数据区,其长度等于子程序名称所需的长度。EXEC CICS LINK PROGRAM('subpgname') EXEC CICS LINK PROGRAM( name ) - 静态 COBOL 调用
- 调用程序包含一条 COBOL 语句:
被调用的子程序被显式地命名为字面值字符串。CALL 'subpgname' - 动态 COBOL 调用
- 调用程序包含一条 COBOL 语句:
标识符是 COBOL 数据区的名称,其中必须包含被调用子程序的名称。CALL identifier
有关使用上述每种方法调用子程序对性能的影响,请参阅 Enterprise COBOL for z/OS Programming Guide 和 Enterprise 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) 的调用) ,但汇编语言子程序无法调用较低级别的子程序除外。