您的位置:首页 > 其它

CICS中程序跳转的方式介绍

2009-09-27 09:20 225 查看


完成一个交易所需要的数据处理代码可以不必完全写在一个程序里,跟去其逻辑内容分解成若干部分,每一部分写在一个程序里面,在交易里根据需要调用各个程序,这样做既可以减少程序复杂度,又有利于程序复用。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
中不同逻辑层次之间的关系。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: