CICS - 控制操作
CICS 程序控制程序 (PCP) 管理应用程序的流程。所有应用程序都必须在处理程序表中有一个条目。以下是用于程序控制服务的命令 −
- XCTL
- Link
- Load
- Release
- Return
程序逻辑级别
在 CICS 下执行的应用程序具有各种逻辑级别。直接接收控制的第一个程序处于最高逻辑级别,即级别 1。链接程序位于链接程序的下一个逻辑级别。XCTL 程序在同一级别运行。当我们在本模块后面介绍 Link 和 XCTL 时,这一点将会很清楚。下图显示了逻辑级别 −
XCTL
XCTL 的基本解释如下 −
XCTL 命令用于将控制权从一个程序传递到同一级别的另一个程序。
它不期望控制权返回。
它类似于 GO TO 语句。
XCTL 程序可以是伪对话式的。
示例
以下示例显示如何使用 XCTL 命令将控制权传递给另一个程序 −
IDENTIFICATION DIVISION. PROGRAM-ID. PROG1. WORKING-STORAGE SECTION. 01 WS-COMMAREA PIC X(100). PROCEDURE DIVISION. EXEC CICS XCTL PROGRAM ('PROG2') COMMAREA (WS-COMMAREA) LENGTH (100) END-EXEC.
此命令将要传递的控制权连同 100 字节数据一起传输给程序"PROG2"。COMMAREA 是可选参数,是包含要传递的数据的区域或要返回结果的区域的名称。
Link
Link 命令用于将控制权传输给较低级别的另一个程序。它期望控制权返回。链接程序不能是伪对话式的。
示例
以下示例显示如何使用链接命令将控制权传递给另一个程序 −
IDENTIFICATION DIVISION. PROGRAM-ID. PROG1. WORKING-STORAGE SECTION. 01 WS-COMMAREA PIC X(100). PROCEDURE DIVISION. EXEC CICS LINK PROGRAM ('PROG2') COMMAREA (WS-COMMAREA) LENGTH (100) END-EXEC.
Load
Load 命令用于加载程序或表。以下是 Load 命令的语法 −
EXEC CICS LOAD PROGRAM ('name') END-EXEC.
Release
Release 命令用于释放程序或表。以下是 Release 命令的语法 −
EXEC CICS RELEASE PROGRAM ('name') END-EXEC.
Return
Return 命令用于将控制权返回到下一个更高的逻辑级别。以下是 Return 命令的语法 −
EXEC CICS RETURN PROGRAM ('name') COMMAREA (data-value) LENGTH (data-value) END-EXEC.
间隔控制操作
间隔控制操作有以下两种类型 −
ASKTIME
ASKTIME 用于请求当前时间和日期或时间戳。然后我们将此值移动到程序内的工作存储变量。以下是 ASKTIME 命令的语法 −
EXEC CICS ASKTIME [ABSTIME(WS-TIMESTAMP)] END-EXEC.
FORMATTIME
FORMATTIME 根据选项将时间戳格式化为所需格式,日期可以是 YYDDD、YYMMDD 或 YYDDMM。DATESEP 表示 DATE 的分隔符,TIMESEP 变量表示 TIME。以下是 FORMATTIME 命令的语法 −
EXEC CICS FORMATTIME ABSTIME(WS-TIMESTAMP) [YYDDD(WS-DATE)] [YYMMDD(WS-DATE)] [YYDDMM(WS-DATE)] [DATESEP(WS-DATE-SEP)] [TIME(WS-TIME)] [TIMESEP(WS-TIME-SEP)] END-EXEC.