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.
*