Cics-pseudo-programming

提供:Dev Guides
移動先:案内検索

CICS-疑似プログラミング

今のところ、非変換および変換プログラムを扱っています。 変換プログラムには、*思考時間が*かなり長いため、大きな欠点があります。 この問題を克服するために、疑似変換プログラミングが登場しました。 次に、疑似変換プログラムについて詳しく説明します。

擬似変換プログラム

以下は、疑似変換プログラムで発生するイベントのシーケンスです-

  • *ステップ1 *-システムはメッセージを画面に送信してトランザクションを終了し、ユーザー入力を受信したときに開始するトランザクションを指定します。
  • *ステップ2 *-システムは、このトランザクションで使用されるリソースを、システムで実行されている他のトランザクションに割り当てます。 そのため、ユーザーが入力するまで、擬似変換プログラムでリソースを利用できます。
  • *ステップ3 *-システムは定期的に端末入力をポーリングします。 入力が受信されると、入力が処理され、出力が表示されます。
  • *ステップ4 *-アプリケーションプログラムは、必要なときに主記憶装置にロードされ、使用されていないときに解放されます。

CICS擬似変換プログラム

擬似変換テクニック

擬似会話で注意すべき重要な点は、すべてのタスク間でデータを渡すことです。 データを渡す方法について説明します。

COMMAREA

COMMAREAは通信エリアとして知られています。 COMMAREAは、タスク間でデータを渡すために使用されます。 次の例は、WSCOMMAREAとWS-COMMAREA-LENGTHがWorking Storage Sectionで宣言されているCOMMAREAを渡す方法を示しています-

EXEC CICS RETURN
   TRANSID ('transaction-id')
   COMMAREA (WS-COMMAREA)
   LENGTH  (WS-COMMAREA-LENGTH)
END-EXEC.

DFHCOMMAREA

DFHCOMMAREAは、CICSによってすべてのタスクに提供される特別なメモリ領域です。

  • あるプログラムから別のプログラムにデータを渡すために使用されます。 プログラムは、同じトランザクションに存在することも、異なるトランザクションに存在することもあります。
  • これは、プログラムのリンケージセクションで01レベルで宣言されています。
  • WS-COMMAREAと同じpicture句が必要です。
  • MOVEステートメントを使用して、DFHCOMMAREAからWS-COMMAREAにデータを戻すことができます。
MOVE DFHCOMMAREA TO WS-COMMAREA.

マップを送信した後、タスクは終了し、ユーザーの応答を待ちます。 この段階では、タスクは終了したがトランザクションは終了していないため、データを保存する必要があります。 このトランザクションを再開する場合、タスクの以前のステータスが必要になります。 ユーザーが入力を入力します。 これは、RECEIVE MAPコマンドで受信し、検証する必要があります。 次の例は、COMMAREAおよびDFHCOMMAREAを宣言する方法を示しています-

WORKING-STORAGE SECTION.
01 WS-COMMAREA.
   05 WS-DATA PIC X(10).

LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LK-DATA PIC X(10).

擬似コード

以下に示すのは、擬似プログラミングで使用する擬似コードのロジックです-

MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
   STEP1: SEND MAP
   STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
   STEP3: ISSUE CONDITIONAL RETURN
ELSE
   IF WS-COMMAREA = <internal-transaction-id1>
      STEP4: RECEIVE MAP
      STEP5: PROCESS DATA
      STEP6: SEND OUTPUT MAP
      STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
      STEP8: ISSUE CONDITIONAL RETURN
   END-IF
END-IF
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT

次の例は、擬似変換プログラムを示しています-

******************************************************************
 *PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION                    *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE          PIC X(30).
01 WS-COMMAREA         PIC X(10) VALUE SPACES.
LINKAGE SECTION.
01 DFHCOMMAREA         PIC X(10).
PROCEDURE DIVISION.
   MOVE DFHCOMMAREA TO WS-COMMAREA
   IF  WS-COMMAREA  =  SPACES
******************************************************************
 *TRANSACTION GETTING EXECUTED FOR THE FIRST TIME               *
******************************************************************
   MOVE 'HELLO' TO WS-MESSAGE
   EXEC CICS SEND TEXT
      FROM (WS-MESSAGE)
   END-EXEC
   MOVE 'FIRST' TO WS-COMMAREA
******************************************************************
 *TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT     *
 *TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO  *
 *DFHCOMMAREA                                                   *
******************************************************************
   EXEC CICS RETURN
      TRANSID('TP002')
      COMMAREA(WS-COMMAREA)
   END-EXEC
******************************************************************
 *IF  COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE *
 *ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE           *
******************************************************************
   ELSE
      EXEC CICS RECEIVE
         INTO(WS-MESSAGE)
   END-EXEC
      EXEC CICS SEND TEXT
      FROM (WS-MESSAGE)
   END-EXEC
******************************************************************
 *TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED*
 *TO BE EXECUTED                                                *
******************************************************************
   EXEC CICS RETURN
   END-EXEC
END-IF.

擬似変換の利点

擬似変換の利点は次のとおりです-

  • リソースを最大限に活用します。 リソースは、プログラムが一時的に中断されるとすぐに解放されます。
  • 会話モードのように見えます。
  • 応答時間が改善されています。

返品明細

以下は、CICSで使用される2種類のreturnステートメントです-

Return-1

次の無条件のreturnステートメントが発行されると、タスクとトランザクション(プログラム)は終了します。

EXEC CICS RETURN
END-EXEC.

Return-2

次の条件付きリターン、つまりTRANSIDステートメントでのリターンが発行されると、制御は、実行される次のtransidとともにCICSに戻ります。 ユーザーがAIDキーを押すと、次のトランザクションが開始されます。

EXEC CICS RETURN
   TRANSID ('trans-id')
   [COMMAREA(WS-COMMAREA)]
END-EXEC.