Cics-interface-block
提供:Dev Guides
CICS-インターフェースブロック
アプリケーションプログラムには、CICSと対話するためのインターフェイスが必要です。 EIB(Execute Interface Block)は、アプリケーションプログラムがCICSと通信できるようにするためのインターフェイスとして機能します。 EIBには、プログラムの実行中に必要な情報が含まれています。
制限されたCOBOL動詞
CICSプログラムのコーディング中、制御を直接MVSに戻すコマンドを使用することはできません。 これらのCOBOL動詞をコーディングすると、コンパイルエラーは発生しませんが、予測できない結果が生じる可能性があります。 以下は、CICSプログラムで使用すべきでないCOBOL動詞です-
- Open、Read、Write、Rewrite、Close、Delete、StartなどのファイルI/Oステートメント。 CICSのすべてのファイルI/Oはファイル制御モジュールによって処理され、これらのファイルには、今後のモジュールで説明するREAD、WRITE、REWRITE、DELETEなどの独自のステートメントセットがあります。
- ファイルセクションと環境部は必要ありません。
- Accept、Date/Timeなどのオペレーティングシステム機能を呼び出すCOBOLステートメントは使用できません。
- DISPLAY、MERGE、STOP RUN、およびGO BACKを使用しないでください。
インターフェイスブロックの実行
実行インターフェースブロック(EIB)は、すべてのプログラムに対してCICSによって自動的にロードされる制御ブロックです。
- EIBはタスクに固有であり、タスクの期間中存在します。 タスクに対応するシステム関連情報のセットが含まれています。
- これには、アプリケーションプログラムの実行中にCICSによって使用されるトランザクション識別子、時刻、日付などに関する情報が含まれています。
- タスクの一部として実行されるすべてのプログラムは、同じEIBにアクセスできます。
- 実行時にEIBのデータを表示するには、CEDFモードでプログラムを実行します。
EIBフィールド
次の表は、EIBに存在するフィールドのリストです-
EIB Field | PIC Clause | Description |
---|---|---|
EIBAID | X(1) | Aid key Pressed |
EIBCALEN | S9(4) COMP | It contains length of DFHCOMMAREA |
EIBDATE | S9(7) COMP-3 | It contains Current System Date |
EIBRCODE | X(6) | It contains Return code of the last transaction |
EIBTASKN | S9(7) COMP-3 | It contains Task number |
EIBTIME | S9(7) COMP-3 | It contains Current System Time |
EIBTRMID | X(4) | Terminal Identifier |
EIBTRNID | X(4) | Transaction Identifier |
CICSプログラムの分類
CICSプログラムは、次の3つのカテゴリに分類されます。これらについては、1つずつ説明します-
- 非会話型プログラム
- 会話型プログラム
- 擬似会話型プログラム-次のモジュールで説明します
非会話型プログラム
非会話型プログラムを実行している間、人間の介入は必要ありません。 プログラムの開始時に、必要なすべての入力が提供されます。
- これらは、バッチモードで実行されるバッチプログラムに似ています。 そのため、CICSでは、それらはめったに開発されません。
- 一定の間隔で一連の画面を表示するためだけに使用されると言えます。
例
次の例は、出力としてCICS端末に「HELLO WORLD」を表示する非会話型プログラムを示しています-
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30).
PROCEDURE DIVISION.
********************************************************
*SENDING DATA TO SCREEN *
********************************************************
MOVE 'HELLO WORLD' TO WS-MESSAGE
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER*
********************************************************
EXEC CICS RETURN
END-EXEC.
会話プログラム
端末にメッセージを送信し、ユーザーからの応答を受信することを*会話*と呼びます。 オンラインアプリケーションは、SENDコマンドとRECEIVEコマンドのペアにより、ユーザーとアプリケーションプログラム間の会話を実現します。 会話型プログラムのキーポイントは次のとおりです-
- システムはメッセージを画面に送信し、ユーザーの応答を待ちます。
- ユーザーが応答するのにかかる時間は*思考時間*と呼ばれます。 この時間はかなり長く、変換プログラムの大きな欠点です。
- ユーザーは必要な入力を提供し、AIDキーを押します。
- アプリケーションはユーザーの入力を処理し、出力を送信します。
- プログラムは最初に主記憶装置にロードされ、タスクが終了するまで保持されます。
例
次の例は、ユーザーからの入力を取得し、出力としてCICS端末に同じ入力を表示するだけの変換プログラムを示しています-
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30) VALUE SPACES.
PROCEDURE DIVISION.
MOVE 'ENTER MESSAGE' TO WS-MESSAGE
********************************************************
*SENDING DATA FROM PROGRAM TO SCREEN *
********************************************************
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
*GETTING INPUT FROM USER *
********************************************************
EXEC CICS RECEIVE
INTO(WS-MESSAGE)
END-EXEC
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
*COMMAND TO TERMINATE THE TRANSACTION *
********************************************************
EXEC CICS RETURN
END-EXEC.