CICS - 控制操作



CICS程式控制程式(PCP)管理應用程式程式的流程。所有應用程式程式都必須在處理程式表中有一個條目。以下是用於程式控制服務的命令:

  • XCTL
  • Link
  • Load
  • Release
  • Return

程式邏輯級別

在CICS下執行的應用程式程式具有不同的邏輯級別。直接接收控制的第一個程式處於最高邏輯級別,即級別1。連結程式位於從連結程式開始的下一個邏輯級別。XCTL程式在同一級別執行。稍後在本模組中,當我們學習Link和XCTL時,這一點將更加清晰。下圖顯示了邏輯級別:

CICS Control Operations

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命令用於將控制轉移到較低級別的另一個程式。它期望控制返回。連結程式不能是偽會話的。

示例

以下示例顯示如何使用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指示日期的分隔符,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.
廣告