Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


7.2 COBOL言語のコーディング例

COBOL言語のUAP共用ライブラリのコーディング例を示します。

******************************************************************
**    All Rights Reserved. Copyright (C) 2004, Hitachi, Ltd. P-1M64-2A1
**    目的        :   TP1/EE サンプルプログラム(COBOL言語版)
******************************************************************
* spp.cbl
******************************************************************
**    目的        :   サービストランザクション処理(非応答型RPC用)
**    機能        :   サービストランザクション処理の実行
**             (1)受信データから取得する情報を格納するデータ領域を確保する
**             (2)受信データから、必要な情報を取得する
**             (3)データ領域を用いて、タイマトランザクションを発行
**             (4)確保した領域の解放
**             (5)タイマトランザクション失敗時には、ロールバックする
**
**                入力データ形式
**                +----------------------------------------------+
**                | データ名  | データ型   | 意味                |
**                |==============================================|
**                | NAM-LEN   | PIC S9(9)  | 名前の文字列長      |
**                |----------------------------------------------|
**                | NAM-ARG   | PIC X(20)  | 名前                |
**                |----------------------------------------------|
**                | SEX-LEN   | PIC S9(9)  | 性別の文字列長      |
**                |----------------------------------------------|
**                | SEX-ARG   | PIC X(4)   | 性別                |
**                |----------------------------------------------|
**                | AGE-LEN   | PIC S9(9)  | 年齢の文字列長      |
**                |----------------------------------------------|
**                | AGE-ARG   | PIC X(4)   | 年齢                |
**                |----------------------------------------------|
**                | SALE-ARG  | PIC S9(9)  | 売上                |
**                +----------------------------------------------+
**
**                トランザクション処理に必要な情報
**                +----------------------------------------------+
**                | データ名  | データ型   | 意味                |
**                |==============================================|
**                | NAM-ARG   | PIC X(20)  | 名前                |
**                |----------------------------------------------|
**                | SEX-ARG   | PIC X(4)   | 性別                |
**                |----------------------------------------------|
**                | AGE-ARG   | PIC X(4)   | 年齢                |
**                |----------------------------------------------|
**                | SALE-ARG  | PIC S9(9)  | 売上                |
**                |----------------------------------------------|
**                | SRV-ARG   | PIC X(32)  | サービス名          |
**                +----------------------------------------------+
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_UAP.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** 送信データ使用変数 ********************************
*** 引数(IN-DATA)情報格納構造体
 01 SQL-ARG1.
     02  NAM-LEN    PIC S9(9) COMP.
     02  NAM-ARG    PIC X(20).
     02  SEX-LEN    PIC S9(9) COMP.
     02  SEX-ARG    PIC X(4).
     02  AGE-LEN    PIC S9(9) COMP.
     02  AGE-ARG    PIC X(4).
     02  SALE-ARG   PIC S9(9) COMP.
*** 送信データ構造体
 01 SQL-ARG2.
     02  NAM-ARG    PIC X(20).
     02  SEX-ARG    PIC X(4).
     02  AGE-ARG    PIC X(4).
     02  SALE-ARG   PIC S9(9) COMP.
     02  SRV-ARG    PIC X(32).
*
*** LOGPRINTメッセージ設定 *********************
 01 PGMID         PIC X(3) VALUE 'SP '.
***  サンプルメッセージ(領域確保失敗)
 01 MSGID52       PIC X(12) VALUE 'KFSB05200-E '.
 01 MSG52         PIC X(64) VALUE
        'SERVER:領域確保に失敗しました。'.
 01 MSGLEN52      PIC 9(9)  COMP VALUE 64.
***  サンプルメッセージ(タイマトラン起動失敗)
 01 MSGID53       PIC X(12) VALUE 'KFSB05300-E '.
 01 MSG53         PIC X(128) VALUE
        'SERVER:タイマトランザクション起動に失敗しました。'.
 01 MSGLEN53      PIC 9(9)  COMP VALUE 128.
***  サンプルメッセージ(ロールバック失敗)
 01 MSGID54       PIC X(12) VALUE 'KFSB05400-E '.
 01 MSG54         PIC X(64) VALUE
        'SERVER:ROLLBACKに失敗しました。'.
 01 MSGLEN54      PIC 9(9)  COMP VALUE 64.
***  サンプルメッセージ(DBキュー書込み失敗)
 01 MSGID55       PIC X(12) VALUE 'KFSB06000-E '.
 01 MSG55         PIC X(128) VALUE
        'SERVER:DBキューのメッセージ書込みに失敗しました。'.
 01 MSGLEN55      PIC 9(9)  COMP VALUE 128.
*
*** API各種引数設定 ****************************
***  CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
***  CBLEETRN('C-ROLL  ')
 01 EETRN-C-ROLL-ARG.
     02 EETRN-C-ROLL-REQUEST      PIC X(8) VALUE 'C-ROLL  '.
     02 EETRN-C-ROLL-STATUS-CODE  PIC X(5).
     02 FILLER                    PIC X(3).
     02 EETRN-C-ROLL-THKIND       PIC X(4) VALUE 'KILL'.
     02 EETRN-C-ROLL-ECODE        PIC S9(9) COMP.
*
***  CBLEEMEM('GETWK   ')
 01 EEMEM-GETWK-ARG1.
     02 EEMEM-GETWK-REQUEST       PIC X(8) VALUE 'GETWK   '.
     02 EEMEM-GETWK-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EEMEM-GETWK-FLAGS         PIC S9(9) COMP VALUE ZERO.
 01 EEMEM-GETWK-ARG2.
     02 EEMEM-GETWK-SEG-TYPE      PIC X(1) VALUE 'U'.
     02 FILLER                    PIC X(3).
     02 EEMEM-GETWK-SEG-SIZE      PIC 9(9) COMP VALUE 128.
     02 EEMEM-GETWK-SEG-PT        ADDRESS.
*
***  CBLEEMEM('RLSWK   ')
 01 EEMEM-RLSWK-ARG1.
     02 EEMEM-RLSWK-REQUEST       PIC X(8) VALUE 'RLSWK   '.
     02 EEMEM-RLSWK-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EEMEM-RLSWK-FLAGS         PIC S9(9) COMP VALUE ZERO.
 01 EEMEM-RLSWK-ARG2.
     02 EEMEM-RLSWK-SEG-PT        ADDRESS.
*
***  CBLEETIM('EXECAP  ')
 01 EETIM-EXECAP-ARG1.
     02 EETIM-EXECAP-REQUEST      PIC X(8) VALUE 'EXECAP  '.
     02 EETIM-EXECAP-STATUS-CODE  PIC X(5).
     02 FILLER                    PIC X(3).
     02 EETIM-EXECAP-FLAGS        PIC S9(9) COMP VALUE 0.
 01 EETIM-EXECAP-ARG2.
     02 EETIM-EXECAP-ACTTYPE      PIC X(4) VALUE 'INST'.
     02 EETIM-EXECAP-ACTION       PIC X(4) VALUE 'INTV'.
     02 EETIM-EXECAP-ACTIVE       PIC 9(9) COMP VALUE 10.
     02 EETIM-EXECAP-REQID        PIC 9(9) COMP VALUE 0.
     02 EETIM-EXECAP-SERVICE      PIC X(32) VALUE 'srv02 '.
     02 EETIM-EXECAP-PRIORITY     PIC X(4) VALUE 'HI  '.
 01 EETIM-EXECAP-ARG3 ADDRESSED BY TIM-PT.
     02 EETIM-EXECAP-DATA_LEN     PIC 9(9) COMP.
     02 EETIM-EXECAP-DATA         PIC X(64).
*
***  CBLEEDBQ('MSGPUT  ')
 01 EEDBQ-MSGPUT-ARG1.
     02 EEDBQ-MSGPUT-REQUEST      PIC X(8) VALUE 'MSGPUT  '.
     02 EEDBQ-MSGPUT-STATUS-CODE  PIC X(5).
     02 FILLER                    PIC X(3).
     02 EEDBQ-MSGPUT-FLAGS        PIC S9(9).
     02 EEDBQ-MSGPUT-DBQNAME      PIC X(32) VALUE 'DBQ001'.
 01 EEDBQ-MSGPUT-ARG2.
     02 EEDBQ-MSGPUT-DATA_LEN     PIC 9(9) COMP.
     02 EEDBQ-MSGPUT-DATA         PIC X(128).
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
************************************************
*   IN-DATAをタイマトラン送信用データに変更
************************************************
 MOVE IN-DATA TO SQL-ARG1.
*
 MOVE NAM-ARG OF SQL-ARG1 (1:NAM-LEN OF SQL-ARG1)
     TO NAM-ARG OF SQL-ARG2.
 MOVE SEX-ARG OF SQL-ARG1 (1:SEX-LEN OF SQL-ARG1)
     TO SEX-ARG  OF SQL-ARG2.
 MOVE AGE-ARG OF SQL-ARG1 (1:AGE-LEN OF SQL-ARG1)
     TO AGE-ARG  OF SQL-ARG2.
 MOVE SALE-ARG OF SQL-ARG1 TO SALE-ARG OF SQL-ARG2.
 MOVE SERVICE_NAME OF EERPC_INTERFACE_TBL
     (1:SERVICE_LEN OF EERPC_INTERFACE_TBL)
         TO SRV-ARG OF SQL-ARG2 .
*
************************************************
*   GETWKを発行してタイマトラン送信用の領域を確保
************************************************
*** GETWK発行
 CALL 'CBLEEMEM'
     USING EEMEM-GETWK-ARG1 EEMEM-GETWK-ARG2.
*** GETWK成否判定
   IF EEMEM-GETWK-STATUS-CODE OF EEMEM-GETWK-ARG1 
      NOT = EE_OK THEN
************************************************
*   GETWK失敗
************************************************
*** 領域確保失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID52   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG52     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN52  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   GO TO MN-END
   END-IF.
*
************************************************
*   GETWK成功>確保した領域を用い送信データを設定
************************************************
*** アドレス受け渡し
 COMPUTE TIM-PT = EEMEM-GETWK-SEG-PT OF EEMEM-GETWK-ARG2.
*** 送信DATA設定
 MOVE 64 TO EETIM-EXECAP-DATA_LEN OF EETIM-EXECAP-ARG3.
 MOVE SQL-ARG2 TO EETIM-EXECAP-DATA OF EETIM-EXECAP-ARG3.
*
************************************************
*   EXECAP発行
************************************************
 CALL 'CBLEETIM' USING EETIM-EXECAP-ARG1 
    EETIM-EXECAP-ARG2 EETIM-EXECAP-ARG3.
************************************************
*   RLSWK発行(確保領域の解放)
************************************************
*** 解放する領域の設定
 COMPUTE EEMEM-RLSWK-SEG-PT OF EEMEM-RLSWK-ARG2
     = EEMEM-GETWK-SEG-PT OF EEMEM-GETWK-ARG2.
*** RLSWK発行
 CALL 'CBLEEMEM'
     USING EEMEM-RLSWK-ARG1 EEMEM-RLSWK-ARG2.
*
************************************************
*   EXECAP成否判定
************************************************
   IF EETIM-EXECAP-STATUS-CODE OF EETIM-EXECAP-ARG1
       NOT = EE_OK THEN
************************************************
*   EXECAP:失敗>LOG出力/ROLLBACK発行
************************************************
*** タイマトラン失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID53   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG53     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN53  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   END-CALL
*
*** ROLLBACK(KILL)発行
   CALL 'CBLEETRN' USING EETRN-C-ROLL-ARG
*** ROLLBACK成否判定
     IF EETRN-C-ROLL-STATUS-CODE OF EETRN-C-ROLL-ARG
         NOT = EE_OK THEN
************************************************
*   ROLLBACK失敗
************************************************
*** ロールバック失敗メッセージの表示
*** LOGPRINT引数設定
     MOVE PGMID     TO
         EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
     MOVE MSGID54   TO
         EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
     MOVE MSG54     TO
         EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
     MOVE MSGLEN54  TO
         EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
     CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
         EELOG-PRINT-ARG3
     END-IF
   GO TO MN-END
   END-IF.
*
*** 送信DATA設定
MOVE 0 TO EEDBQ-MSGPUT-FLAGS OF EEDBQ-MSGPUT-ARG1.
 MOVE 124 TO EEDBQ-MSGPUT-DATA_LEN OF EEDBQ-MSGPUT-ARG2.
 MOVE IN-DATA TO EEDBQ-MSGPUT-DATA OF EEDBQ-MSGPUT-ARG2.
*** MSGPUT発行
 CALL 'CBLEEDBQ'
     USING EEDBQ-MSGPUT-ARG1 EEDBQ-MSGPUT-ARG2.
*
************************************************
*   MSGPUT成否判定
************************************************
   IF EEDBQ-MSGPUT-STATUS-CODE OF EEDBQ-MSGPUT-ARG1
       NOT = EE_OK THEN
************************************************
*   MSGPUT:失敗>LOG出力/ROLLBACK発行
************************************************
*** タイマトラン失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID55   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG55     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN55  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   END-CALL
*
*** ROLLBACK(KILL)発行
   CALL 'CBLEETRN' USING EETRN-C-ROLL-ARG
*** ROLLBACK成否判定
     IF EETRN-C-ROLL-STATUS-CODE OF EETRN-C-ROLL-ARG
         NOT = EE_OK THEN
************************************************
*   ROLLBACK失敗
************************************************
*** ロールバック失敗メッセージの表示
*** LOGPRINT引数設定
     MOVE PGMID     TO
         EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
     MOVE MSGID54   TO
         EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
     MOVE MSG54     TO
         EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
     MOVE MSGLEN54  TO
         EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
     CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
         EELOG-PRINT-ARG3
     END-IF
  END-IF.
*
 MN-END.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_UAP.
*
*
******************************************************************
**    目的        :   エラートランザクション1処理
**    機能        :   エラートランザクション1処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_E1.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID56       PIC X(12) VALUE 'KFSB05600-E '.
 01 MSG56         PIC X(64) VALUE
        'SERVER:エラートランザクション1を起動します。'.
 01 MSGLEN56      PIC 9(9)  COMP VALUE 64.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID56   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG56     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN56  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_E1.
*
******************************************************************
**    目的        :   エラートランザクション2処理
**    機能        :   エラートランザクション2処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_E2.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID57       PIC X(12) VALUE 'KFSB05700-E '.
 01 MSG57         PIC X(64) VALUE
        'SERVER:エラートランザクション2を起動します。'.
 01 MSGLEN57      PIC 9(9)  COMP VALUE 64.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
************************************************
*   引数宣言
************************************************
       LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID57   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG57     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN57  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_E2.
*
******************************************************************
**    目的        :   エラートランザクション3処理
**    機能        :   エラートランザクション3処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_E3.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID58       PIC X(12) VALUE 'KFSB05800-E '.
 01 MSG58         PIC X(64) VALUE
         'SERVER:エラートランザクション3を起動します。'.
 01 MSGLEN58      PIC 9(9)  COMP VALUE 64.
*** サンプルメッセージ(RPC処理失敗)
 01 MSGID55       PIC X(12) VALUE 'KFSB05500-E '.
 01 MSG55         PIC X(64) VALUE
         'SERVER:RPC処理に失敗しました。'.
 01 MSGLEN55      PIC 9(9)  COMP VALUE 64.
*
*** RPC設定 *****************************v0101**
 01 RPC-FLAGS        PIC S9(9) COMP VALUE 0.
 01 RPC-SVNAME       PIC X(32) VALUE 'outSRV '.
 01 RPC-SVGROUP      PIC X(32) VALUE 'outSPP '.
 01 RPC-OUTDATALEN   PIC 9(9)  COMP VALUE 8.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
*** CBLEERPC('CALL    ')
 01 EERPC-CALL-ARG1.
     02 EERPC-CALL-REQUEST        PIC X(8) VALUE 'CALL    '.
     02 EERPC-CALL-STATUS-CODE    PIC X(5).
     02 FILLER                    PIC X(3).
     02 EERPC-CALL-FLAGS          PIC S9(9) COMP VALUE ZERO.
     02 EERPC-CALL-DESCRIPTOR     PIC S9(9) COMP.
     02 EERPC-CALL-SVNAME         PIC X(32).
     02 EERPC-CALL-SVGROUP        PIC X(32).
 01 EERPC-CALL-ARG2.
     02 EERPC-CALL-INDATALEN      PIC 9(9) COMP.
     02 EERPC-CALL-INDATA         PIC X(128).
 01 EERPC-CALL-ARG3.
     02 EERPC-CALL-OUTDATALEN     PIC 9(9) COMP.
     02 EERPC-CALL-OUTDATA        PIC X(8).
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
    USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID58   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG58     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN58  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
************************************************
*   RPC送信
************************************************
*** RPC送信データの設定
 MOVE ARG-INDATA OF IN-DATA TO
     EERPC-CALL-INDATA OF EERPC-CALL-ARG2.
 MOVE ARG-INLEN OF IN-LEN TO
     EERPC-CALL-INDATALEN  OF EERPC-CALL-ARG2.
 MOVE RPC-FLAGS      TO EERPC-CALL-FLAGS      OF EERPC-CALL-ARG1.
 MOVE RPC-SVNAME     TO EERPC-CALL-SVNAME     OF EERPC-CALL-ARG1.
 MOVE RPC-SVGROUP    TO EERPC-CALL-SVGROUP    OF EERPC-CALL-ARG1.
 MOVE RPC-OUTDATALEN TO EERPC-CALL-OUTDATALEN OF EERPC-CALL-ARG3.
*** RPC発行
 CALL 'CBLEERPC'
     USING EERPC-CALL-ARG1 EERPC-CALL-ARG2 EERPC-CALL-ARG3.
*** RPC成否判定
   IF EERPC-CALL-STATUS-CODE OF EERPC-CALL-ARG1
       NOT = EE_OK THEN
************************************************
*   RPC送信失敗
************************************************
*** RPC処理失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID55   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG55     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN55  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   END-IF.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_E3.
*
******************************************************************
**    目的        :   エラートランザクション4処理
**    機能        :   エラートランザクション4処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_E4.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID59       PIC X(12) VALUE 'KFSB05900-E '.
 01 MSG59         PIC X(64) VALUE
        'SERVER:エラートランザクション4を起動します。'.
 01 MSGLEN59      PIC 9(9)  COMP VALUE 64.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID59   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG59     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN59  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_E4.
*
******************************************************************
**    目的        :   初期化トランザクション処理
**    機能        :   初期化トランザクション処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_MI.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID62       PIC X(12) VALUE 'KFSB06200-I '.
 01 MSG62         PIC X(64) VALUE
        'SERVER:サンプルUAPを開始します。'.
 01 MSGLEN62      PIC 9(9)  COMP VALUE 64.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
************************************************
*   引数宣言
************************************************
       LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID62   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG62     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN62  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_MI.
*
******************************************************************
**    目的        :   終了トランザクション
**    機能        :   終了トランザクション処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_ME.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID63       PIC X(12) VALUE 'KFSB06300-I '.
 01 MSG63         PIC X(64) VALUE
         'SERVER:サンプルUAPを終了します。'.
 01 MSGLEN63      PIC 9(9)  COMP VALUE 64.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID63   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG63     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN63  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_ME.
*
******************************************************************
**    目的        :   タイマトランザクション処理
**    機能        :   タイマトランザクション処理を実行
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_TM.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(トラン起動)
 01 MSGID64       PIC X(12) VALUE 'KFSB06400-I '.
 01 MSG64         PIC X(64) VALUE
         'SERVER:タイマトランザクションを起動します。'.
 01 MSGLEN64      PIC 9(9)  COMP VALUE 64.
*
*** サンプルメッセージ(RPC処理失敗)
 01 MSGID55       PIC X(12) VALUE 'KFSB05500-E '.
 01 MSG55         PIC X(64) VALUE
         'SERVER:RPC処理に失敗しました。'.
 01 MSGLEN55      PIC 9(9)  COMP VALUE 64.
*
*** RPC設定 ****************************v0101***
 01 RPC-FLAGS        PIC S9(9) COMP VALUE 0.
 01 RPC-SVNAME       PIC X(32) VALUE 'outSRV '.
 01 RPC-SVGROUP      PIC X(32) VALUE 'outSPP '.
 01 RPC-OUTDATALEN   PIC 9(9)  COMP VALUE 8.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
*** CBLEERPC('CALL    ')
 01 EERPC-CALL-ARG1.
     02 EERPC-CALL-REQUEST        PIC X(8) VALUE 'CALL    '.
     02 EERPC-CALL-STATUS-CODE    PIC X(5).
     02 FILLER                    PIC X(3).
     02 EERPC-CALL-FLAGS          PIC S9(9) COMP VALUE ZERO.
     02 EERPC-CALL-DESCRIPTOR     PIC S9(9) COMP.
     02 EERPC-CALL-SVNAME         PIC X(32).
     02 EERPC-CALL-SVGROUP        PIC X(32).
 01 EERPC-CALL-ARG2.
     02 EERPC-CALL-INDATALEN      PIC 9(9) COMP.
     02 EERPC-CALL-INDATA         PIC X(64).
 01 EERPC-CALL-ARG3.
     02 EERPC-CALL-OUTDATALEN     PIC 9(9) COMP.
     02 EERPC-CALL-OUTDATA        PIC X(8).
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID64   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG64     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN64  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
************************************************
*   RPC送信
************************************************
*** RPC送信データの設定
 MOVE ARG-INDATA OF IN-DATA TO
     EERPC-CALL-INDATA OF EERPC-CALL-ARG2.
 MOVE ARG-INLEN OF IN-LEN TO
     EERPC-CALL-INDATALEN  OF EERPC-CALL-ARG2.
 MOVE RPC-FLAGS      TO EERPC-CALL-FLAGS      OF EERPC-CALL-ARG1.
 MOVE RPC-SVNAME     TO EERPC-CALL-SVNAME     OF EERPC-CALL-ARG1.
 MOVE RPC-SVGROUP    TO EERPC-CALL-SVGROUP    OF EERPC-CALL-ARG1.
 MOVE RPC-OUTDATALEN TO EERPC-CALL-OUTDATALEN OF EERPC-CALL-ARG3.
*** RPC発行
 CALL 'CBLEERPC'
     USING EERPC-CALL-ARG1 EERPC-CALL-ARG2 EERPC-CALL-ARG3.
*** RPC成否判定
   IF EERPC-CALL-STATUS-CODE OF EERPC-CALL-ARG1
       NOT = EE_OK THEN
************************************************
*   RPC送信失敗
************************************************
*** RPC処理失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID55   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG55     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN55  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   END-IF.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_TM.
*
*
******************************************************************
**    目的        :   DBキューの読出しトランザクション
**    機能        :   DBキューの読出しトランザクションを実行する
******************************************************************
******************************************************************
*   見出し
******************************************************************
 IDENTIFICATION  DIVISION.
*
******************************************************************
*   関数名
******************************************************************
 PROGRAM-ID.     SAMPLE_DBQ.
*
******************************************************************
*   環境部
******************************************************************
 ENVIRONMENT     DIVISION.
*
******************************************************************
*   変数宣言部
******************************************************************
 DATA            DIVISION.
************************************************
*   変数/定数宣言
************************************************
 WORKING-STORAGE SECTION.
*** リターンコード値 ***************************
 01 EE_OK         PIC X(5)  VALUE '00000'.
*
*** LOGPRINT設定 *******************************
 01 PGMID         PIC X(3) VALUE 'SP '.
*
*** サンプルメッセージ(DBQトラン起動)
 01 MSGID65       PIC X(12) VALUE 'KFSB06500-I '.
 01 MSG65         PIC X(128) VALUE
         'SERVER:DBキューの読出しトランザクションを起動します。'.
 01 MSGLEN65      PIC 9(9)  COMP VALUE 128.
*** サンプルメッセージ(RPC処理失敗)
 01 MSGID55       PIC X(12) VALUE 'KFSB05500-E '.
 01 MSG55         PIC X(64) VALUE
         'SERVER:RPC処理に失敗しました。'.
 01 MSGLEN55      PIC 9(9)  COMP VALUE 64.
*
*** RPC設定 ****************************v0101***
 01 RPC-FLAGS        PIC S9(9) COMP VALUE 0.
 01 RPC-SVNAME       PIC X(32) VALUE 'outSRV '.
 01 RPC-SVGROUP      PIC X(32) VALUE 'outSPP '.
 01 RPC-OUTDATALEN   PIC 9(9)  COMP VALUE 8.
*
*** API引数設定 ********************************
*** CBLEELOG('PRINT   ')
 01 EELOG-PRINT-ARG1.
     02 EELOG-PRINT-REQUEST       PIC X(8) VALUE 'PRINT   '.
     02 EELOG-PRINT-STATUS-CODE   PIC X(5).
     02 FILLER                    PIC X(3).
     02 EELOG-PRINT-FLAGS         PIC S9(9) COMP VALUE ZERO.
     02 EELOG-PRINT-MSG-ID        PIC X(12).
     02 EELOG-PRINT-PGM-ID        PIC X(3).
 01 EELOG-PRINT-ARG2.
     02 EELOG-PRINT-MSG-LEN       PIC 9(9) COMP.
     02 EELOG-PRINT-MSG           PIC X(128).
 01 EELOG-PRINT-ARG3.
     02 EELOG-PRINT-INFO          PIC S9(9) COMP VALUE ZERO.
*
*** CBLEERPC('CALL    ')
 01 EERPC-CALL-ARG1.
     02 EERPC-CALL-REQUEST        PIC X(8) VALUE 'CALL    '.
     02 EERPC-CALL-STATUS-CODE    PIC X(5).
     02 FILLER                    PIC X(3).
     02 EERPC-CALL-FLAGS          PIC S9(9) COMP VALUE ZERO.
     02 EERPC-CALL-DESCRIPTOR     PIC S9(9) COMP.
     02 EERPC-CALL-SVNAME         PIC X(32).
     02 EERPC-CALL-SVGROUP        PIC X(32).
 01 EERPC-CALL-ARG2.
     02 EERPC-CALL-INDATALEN      PIC 9(9) COMP.
     02 EERPC-CALL-INDATA         PIC X(64).
 01 EERPC-CALL-ARG3.
     02 EERPC-CALL-OUTDATALEN     PIC 9(9) COMP.
     02 EERPC-CALL-OUTDATA        PIC X(8).
*
************************************************
*   引数宣言
************************************************
 LINKAGE SECTION.
*
 01 IN-DATA.
     02 ARG-INDATA   PIC X(128).
 01 IN-LEN.
     02 ARG-INLEN    PIC S9(9) COMP.
 01 OUT-DATA.
     02 ARG-OUTDATA  PIC X(8).
 01 OUT-LEN.
     02 ARG-OUTLEN   PIC S9(9) COMP.
 COPY  EERPCSRV.
*
******************************************************************
*   プログラム開始
******************************************************************
 PROCEDURE       DIVISION
     USING IN-DATA IN-LEN OUT-DATA OUT-LEN EERPC_INTERFACE_TBL.
*
************************************************
*   トランザクション起動メッセージの表示
************************************************
*** LOGPRINT引数設定
 MOVE PGMID     TO
     EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1.
 MOVE MSGID65   TO
     EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1.
 MOVE MSG65     TO
     EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2.
 MOVE MSGLEN65  TO
     EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2.
 CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
     EELOG-PRINT-ARG3.
*
************************************************
*   RPC送信
************************************************
*** RPC送信データの設定
 MOVE ARG-INDATA OF IN-DATA TO
     EERPC-CALL-INDATA OF EERPC-CALL-ARG2.
 MOVE ARG-INLEN OF IN-LEN TO
     EERPC-CALL-INDATALEN  OF EERPC-CALL-ARG2.
 MOVE RPC-FLAGS      TO EERPC-CALL-FLAGS      OF EERPC-CALL-ARG1.
 MOVE RPC-SVNAME     TO EERPC-CALL-SVNAME     OF EERPC-CALL-ARG1.
 MOVE RPC-SVGROUP    TO EERPC-CALL-SVGROUP    OF EERPC-CALL-ARG1.
 MOVE RPC-OUTDATALEN TO EERPC-CALL-OUTDATALEN OF EERPC-CALL-ARG3.
*** RPC発行
 CALL 'CBLEERPC'
     USING EERPC-CALL-ARG1 EERPC-CALL-ARG2 EERPC-CALL-ARG3.
*** RPC成否判定
   IF EERPC-CALL-STATUS-CODE OF EERPC-CALL-ARG1
       NOT = EE_OK THEN
************************************************
*   RPC送信失敗
************************************************
*** RPC処理失敗メッセージの表示
*** LOGPRINT引数設定
   MOVE PGMID     TO
       EELOG-PRINT-PGM-ID  OF EELOG-PRINT-ARG1
   MOVE MSGID55   TO
       EELOG-PRINT-MSG-ID  OF EELOG-PRINT-ARG1
   MOVE MSG55     TO
       EELOG-PRINT-MSG     OF EELOG-PRINT-ARG2
   MOVE MSGLEN55  TO
       EELOG-PRINT-MSG-LEN OF EELOG-PRINT-ARG2
   CALL 'CBLEELOG' USING EELOG-PRINT-ARG1 EELOG-PRINT-ARG2
       EELOG-PRINT-ARG3
   END-IF.
*
******************************************************************
*   プログラム終了
******************************************************************
 EXIT PROGRAM.
 END PROGRAM SAMPLE_DBQ.
*