CICS中程序跳转的方式介绍

完成一个交易所需要的数据处理代码可以不必完全写在一个程序里,跟去其逻辑内容分解成若干部分,每一部分写在一个程序里面,在交易里根据需要调用各个程序,这样做既可以减少程序复杂度,又有利于程序复用。CICS中调用程序有两种方式:LINK和XCTL

使用 XCTL 命令调用程序时,两程序仍然处于同一个任务之下。并且,同样也可通过 COMMAREA 在两程序间传递参数。以下为在程序 PGMC 中,通过 XCTL 调用程序 PGMD 的部分代码:

IDENTIFICATION  DIVISION.

PROGRAM-ID.  PGMC.          

……

PROCEDURE  DIVISION.

……

EXEC  CICS  LINK      PROGRAM(‘PGMD’)

                     COMMAREA(COMSTART)

                        LENGTH(20)

                        END-EXEC

……

同时需要注意的是,此时被调用程序 PGMD 通过 RETURN 命令将直接返回到 CICS 系统中。也就是说,使用 XCTL 命令调用程序时,将不改变 CICS 当前执行的逻辑层次。图 XCTL 命令下 CICS 的逻辑层次关系。


使用 LINK 命令调用程序时,两程序将位于一个任务之下。同时,通过 LINK 命令中的选项 COMMAREA 可以实现在调用过程中的参数传递。例如,在以下程序 PGMA 中,将通过 LINK 命令调用程序 PGMB

IDENTIFICATION  DIVISION.

PROGRAM-ID.  PGMA.                             

*

 ENVIRONMENT  DIVISION.

*

 DATA  DIVISION.

 WORKING-STORAGE  SECTION.

 01  COMSTART.

     05   STATUS-I        PIC X.

     05   DATA-I          PIC X(19).

  ……

*

 PROCEDURE  DIVISION.

    ……

EXEC  CICS  LINK  PROGRAM(‘PGMB’)

                     COMMAREA(COMSTART)

                     LENGTH(20)

                     END-EXEC

……

GOBACK.

需要注意的是,被调用的程序 PGMB 通过 RETURN 命令将返回到程序 PGMA 中。因此,通过 LINK 命令进行程序调用时,将改变 CICS 当前执行的逻辑层次。图 反映了使用 LINK 命令时 CICS 中不同逻辑层次之间的关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值