6.2.1 SPPの例(メインプログラム)
SPPのメインプログラムのコーディング例を次に示します。
10 * 20 ******************************************************* 30 * SPP01 メインプログラム * 40 ******************************************************* 50 * 60 IDENTIFICATION DIVISION. 70 PROGRAM-ID. MAIN. 80 * 90 ******************************************************* 100 * データ領域の設定 * 110 ******************************************************* 120 * 130 DATA DIVISION. 140 WORKING-STORAGE SECTION. 150 01 RPC-ARG. 160 02 REQ-CODE PIC X(8) VALUE SPACE. 170 02 STATUS-CODE PIC X(5) VALUE SPACE. 180 02 FILLER PIC X(3). 190 02 FLAGS PIC S9(9) COMP. 200 PROCEDURE DIVISION. 210 * 220 ******************************************************* 230 * RPC-OPEN(UAPの開始) * 240 ******************************************************* 250 * 260 MOVE 'OPEN' TO REQ-CODE OF RPC-ARG. 270 MOVE ZERO TO FLAGS OF RPC-ARG. 280 CALL 'CBLDCRPC' USING RPC-ARG. 290 IF STATUS-CODE OF RPC-ARG NOT = '00000' THEN 300 DISPLAY 'SPP01 : RPC-OPEN FAILED. CODE = ' 310 STATUS-CODE OF RPC-ARG 320 GO TO PROG-END 330 END-IF. 340 * 350 ******************************************************* 360 * RPC-MAINLOOP(SPPのサービス開始) * 370 ******************************************************* 380 * 390 MOVE 'MAINLOOP' TO REQ-CODE OF RPC-ARG. 400 MOVE ZERO TO FLAGS OF RPC-ARG. 410 CALL 'CBLDCRSV' USING RPC-ARG. 420 IF STATUS-CODE OF RPC-ARG NOT = '00000' THEN 430 DISPLAY ' SPP01 : RPC-MAINLOOP FAILED. CODE = ' 440 STATUS-CODE OF RPC-ARG 450 END-IF. 460 * 470 ******************************************************* 480 * RPC-CLOSE(UAPの終了) * 490 ******************************************************* 500 * 510 MOVE 'CLOSE ' TO REQ-CODE OF RPC-ARG. 520 MOVE ZERO TO FLAGS OF RPC-ARG. 530 CALL 'CBLDCRPC' USING RPC-ARG. 540 PROG-END. 550 * 560 ******************************************************* 570 * 終了処理 * 580 ******************************************************* 590 * 600 DISPLAY ' SPP01 : GooD-by!' . 610 STOP RUN.