Cics-control-operations
CICS-制御操作
CICSプログラム制御プログラム(PCP)は、アプリケーションプログラムのフローを管理します。 すべてのアプリケーションプログラムには、処理プログラムテーブルにエントリが必要です。 以下は、プログラム制御サービスに使用されるコマンドです-
- XCTL
- Link
- Load
- リリース
- 戻る
プログラム論理レベル
CICSの下で実行されるアプリケーションプログラムには、さまざまな論理レベルがあります。 制御を直接受け取る最初のプログラムは、最高の論理レベル、つまりレベル1です。 リンクプログラムは、リンクプログラムの次の論理レベルにあります。 XCTLプログラムは同じレベルで実行されます。 このモジュールの後半で、リンクとXCTLを使用する時期は明確です。 次の画像は、論理レベルを示しています-
XCTL
XCTLの基本的な説明は次のとおりです-
- XCTLコマンドは、同じレベルで1つのプログラムから別のプログラムに制御を渡すために使用されます。
- コントロールが戻ることは期待していません。
- 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
Loadコマンドは、プログラムまたはテーブルをロードするために使用されます。 以下は、Loadコマンドの構文です-
EXEC CICS LOAD
PROGRAM ('name')
END-EXEC.
リリース
リリースコマンドは、プログラムまたはテーブルをリリースするために使用されます。 以下は、リリースコマンドの構文です-
EXEC CICS RELEASE
PROGRAM ('name')
END-EXEC.
戻る
Returnコマンドを使用して、コントロールを次に高い論理レベルに戻します。 Returnコマンドの構文は次のとおりです-
EXEC CICS RETURN
PROGRAM ('name')
COMMAREA (data-value)
LENGTH (data-value)
END-EXEC.
間隔制御操作
間隔制御操作は、次の2つのタイプのものです-
アスクタイム
ASKTIMEは、現在の時刻または日付またはタイムスタンプを要求するために使用されます。 次に、この値をプログラム内の作業用ストレージ変数に移動します。 以下は、ASKTIMEコマンドの構文です-
EXEC CICS ASKTIME
[ABSTIME(WS-TIMESTAMP)]
END-EXEC.
FORMATTIME
FORMATTIMEは、オプションに基づいて、日付のYYDDD、YYMMDD、またはYYDDMMである必要な形式にタイムスタンプをフォーマットします。 DATESEPは、TIMEのTIMESEP変数と同様に、DATEの区切り文字を示します。 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.