📅  最后修改于: 2020-11-22 16:37:05             🧑  作者: Mango
CICS程序控制程序(PCP)管理应用程序的流程。所有应用程序都必须在“处理程序表”中有一个条目。以下是用于程序控制服务的命令-
在CICS下执行的应用程序具有各种逻辑级别。直接接收控制的第一个程序处于最高逻辑级别,即级别1。所链接的程序位于链接程序的下一个逻辑级别。 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命令的语法-
EXEC CICS LOAD
PROGRAM ('name')
END-EXEC.
Release命令用于释放程序或表。以下是Release命令的语法-
EXEC CICS RELEASE
PROGRAM ('name')
END-EXEC.
Return命令用于将控件返回到更高的逻辑级别。以下是Return命令的语法-
EXEC CICS RETURN
PROGRAM ('name')
COMMAREA (data-value)
LENGTH (data-value)
END-EXEC.
间隔控制操作分为以下两种类型:
ASKTIME用于请求当前时间和日期或时间戳。然后,我们将该值移动到程序内部的工作存储变量中。以下是ASKTIME命令的语法-
EXEC CICS ASKTIME
[ABSTIME(WS-TIMESTAMP)]
END-EXEC.
FORMATTIME基于选项将时间戳格式化为所需格式,日期可以是YYDDD,YYMMDD或YYDDMM。 DATESEP指示DATE的分隔符,TIME的TIMESEP变量也是如此。以下是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.