CICS - 控制操作


CICS 程序控制程序 (PCP) 管理应用程序的流程。所有的应用程序都必须在处理程序表中有一个条目。以下是用于程序控制服务的命令 -

  • XCTL
  • 关联
  • 加载
  • 发布
  • 返回

程序逻辑级别

在CICS下执行的应用程序有不同的逻辑层次。直接接收控制的第一个程序处于最高逻辑级别,即级别1。链接程序位于链接程序的下一个逻辑级别。XCTL 程序在同一级别运行。当我们在本模块稍后介绍 Link 和 XCTL 时就会清楚。下图显示了逻辑级别 -

CICS 控制操作

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 命令将控制权传递给另一个程序 -

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 命令的语法 -

EXEC CICS RELEASE
   PROGRAM ('name')
END-EXEC.

返回

返回命令用于将控制返回到下一个更高的逻辑级别。以下是 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 的分隔符,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.