6.3.1 MHPの例(メインプログラム)
MHPのメインプログラムのコーディング例を次に示します。
10 * 20 ******************************************************** 30 * MHP メインプログラム * 40 ******************************************************** 50 * 60 IDENTIFICATION DIVISION. 70 80 PROGRAM-ID. CBMAIN. 90 100 ENVIRONMENT DIVISION. 110 CONFIGURATION SECTION. 120 * 130 ******************************************************** 140 * ワーク変数 * 150 ******************************************************** 160 * 170 DATA DIVISION. 180 WORKING-STORAGE SECTION. 190 * 200 ******************************************************** 210 * RPC-OPEN データ領域 * 220 ******************************************************** 230 * 240 01 ROPEN-PARM1. 250 02 ROPEN-NAME PIC X(8) VALUE 'OPEN '. 260 02 ROPEN-STATUS PIC X(5). 270 02 FILLER PIC X(3). 280 02 RO-FLG PIC S9(9) COMP VALUE ZERO. 290 * 300 ******************************************************** 310 * MCF-OPEN データ領域 * 320 ******************************************************** 330 * 340 01 MOPEN-PARM1. 350 02 MOPEN-NAME PIC X(8) VALUE 'OPEN '. 360 02 MOPEN-STATUS PIC X(5). 370 02 FILLER PIC X(3). 380 02 MO-FLG1 PIC S9(9) COMP VALUE ZERO. 390 02 MO-RSV PIC X(12) VALUE LOW-VALUE. 400 * 410 ******************************************************** 420 * MCF-MAINLOOP データ領域 * 430 ******************************************************** 440 * 450 01 MAIN-PARM1. 460 02 MAIN-NAME PIC X(8) VALUE 'MAINLOOP'. 470 02 MAIN-STATUS PIC X(5). 480 02 FILLER PIC X(3). 490 02 M-RSV PIC X(16) VALUE LOW-VALUE. 500 * 510 ******************************************************** 520 * MCF-CLOSE データ領域 * 530 ******************************************************** 540 * 550 01 MCLSE-PARM1. 560 02 MCLSE-NAME PIC X(8) VALUE 'CLOSE '. 570 02 MCLSE-STATUS PIC X(5). 580 02 MFILLER PIC X(3). 590 02 MC-FLG1 PIC S9(9) COMP VALUE ZERO. 600 02 MC-RSV PIC X(12) VALUE LOW-VALUE. 610 * 620 ******************************************************** 630 * RPC-CLOSE データ領域 * 640 ******************************************************** 650 * 660 01 RCLSE-PARM1. 670 02 RCLSE-NAME PIC X(8) VALUE 'CLOSE '. 680 02 RCLSE-STATUS PIC X(5). 690 02 FILLER PIC X(3). 700 02 RC-FLG PIC S9(9) COMP VALUE ZERO. 710 * 720 PROCEDURE DIVISION. 730 * 740 ******************************************************** 750 * RPC-OPEN(UAPの開始) * 760 ******************************************************** 770 * 780 CALL 'CBLDCRPC' USING ROPEN-PARM1. 790 IF ROPEN-STATUS IS NOT EQUAL TO '00000' 800 GO TO RCLOS. 810 * 820 ******************************************************** 830 * MCF-OPEN(MCF環境のオープン) * 840 ******************************************************** 850 * 860 CALL 'CBLDCMCF' USING MOPEN-PARM1. 870 IF MOPEN-STATUS IS NOT EQUAL TO '00000' 880 GO TO RCLOS. 890 * 900 ******************************************************** 910 * MCF-MAINLOOP(MHPのサービス開始) * 920 ******************************************************** 930 * 940 CALL 'CBLDCMCF' USING MAIN-PARM1. 950 * 960 ******************************************************** 970 * MCF-CLOSE(MCF環境のクローズ) * 980 ******************************************************** 990 * 1000 CALL 'CBLDCMCF' USING MCLSE-PARM1. 1010 * 1020 ******************************************************** 1030 * RPC-CLOSE(UAPの終了) * 1040 ******************************************************** 1050 * 1060 RCLOS. 1070 CALL 'CBLDCRPC' USING RCLSE-PARM1. 1080 * 1090 ******************************************************** 1100 * 終了処理 * 1110 ******************************************************** 1120 * 1130 STOP RUN.