9.3.7 日立運用管理システムJP1を使用した例

(a) 概要

帳票を使用したユーザ業務例として,家電販売で受注した家電用品の発注商品管理台帳を出力する処理を想定した業務について説明します。帳票を使用した発注台帳出力業務の流れと,発注商品管理台帳の出力例を次の図に示します。

図9-8 発注台帳出力業務の流れ

[図データ]

<説明>

クライアント側で,JP1/Automatic Job Management System 2 - Client Toolkitを使用してバッチジョブを入力します。これを受けて,サーバ側のJP1/Automatic Job Management System 2 - Managerがバッチ業務の実行,および監視をします。その後,XMAP3/NETから,JP1/Network Printing Systemに印刷要求をします。サーバ側のAPは,ファイルからデータを読み込み,発注台帳を印刷します。

図9-9 発注商品管理台帳の出力例

[図データ]

(b) システムの構成

バッチ環境で,ユーザ業務を処理する場合のシステム構成を次に示します。

(c) 処理の概要

三つの索引ファイルである「受注ファイル(ORDER)」,「得意先ファイル(CUST)」,「支店ファイル(SHITEN)」を使用して発注台帳を出力します。

発注台帳出力業務の概要を次の図に示します。

図9-11 発注台帳出力業務の処理概要

[図データ]

(d) コーディング例

コーディングの概要を次に示します。なお,このコーディングの全体は,製品中にソースプログラムとして提供しています。

***********************************************************
* 発注商品管理台帳印刷プログラム      (SEND)*
***********************************************************
 IDENTIFICATION  DIVISION.
 PROGRAM-ID.    HATCHU.

 ENVIRONMENT    DIVISION.
 INPUT-OUTPUT   SECTION.
 FILE-CONTROL.
   SELECT  CUST-FILE ASSIGN TO 'CUST'
           ORGANIZATION IS INDEXED
           ACCESS MODE IS DYNAMIC
           RECORD KEY IS KOUBAN-C
           ALTERNATE RECORD KEY IS CHIKU-NO-C
            WITH DUPLICATES
           ALTERNATE RECORD KEY IS CUST-NO-C
            WITH DUPLICATES.
   SELECT  ORDER-FILE ASSIGN TO 'ORDER'
           ORGANIZATION IS INDEXED
           ACCESS MODE IS DYNAMIC
           RECORD KEY IS DENPYOU-NO
           ALTERNATE RECORD KEY IS SHITEN-NO
            WITH DUPLICATES.
   SELECT  SHITEN-FILE ASSIGN TO 'SHITEN'
           ORGANIZATION IS INDEXED
           ACCESS MODE IS DYNAMIC
           RECORD KEY IS SHITEN-NO-H.
 DATA       DIVISION.
 FILE       SECTION.
 FD CUST-FILE.
 COPY CUSTD.
 FD ORDER-FILE.
 COPY ORDERD.
 FD SHITEN-FILE.
 COPY SHITEND.
 *
 WORKING-STORAGE  SECTION.
  01 BK-TOTALL   PIC S9(4) COMP-5.
  01 MAIN-END-FLG PIC X(1) VALUE SPACE.
  01 PAGE-CNT   PIC 9(4) VALUE 1.
  01 OUT-LINE   PIC 9(2) VALUE ZERO.
  01 BK-SHITEN-NO PIC X(2) VALUE SPACE.
  01 BK2-SHITEN-NO PIC X(2) VALUE SPACE.
  01 ORDER-FLG   PIC X(2) VALUE 'NG'.
  01 X       PIC 9(2).
  01 FIRST-GET   PIC X(1) VALUE 'Y'.
  01 DATE-WORK.
   02 DATE-YY  PIC X(2).
   02 DATE-MM  PIC X(2).
   02 DATE-DD  PIC X(2).
 * 論理マップ
  COPY       TOTALO.
 *
 COMMUNICATION SECTION.
 * ワークステーションプリンタに対する通信記述項
 CD  PRINTER FOR OUTPUT WS
     MAP NAME IS MAP-NAME-P
     STATUS KEY IS ERR-CODEP
     SYMBOLIC TERMINAL IS PRTTERM.


*******************************************************
        **  業務開始  **
********************************************************
 PROCEDURE     DIVISION.
 初期設定.
  PERFORM 初期設定処理.
 *
 各種ファイルのオープン.
  OPEN INPUT       CUST-FILE
                   ORDER-FILE
                   SHITEN-FILE.
 *
 * 帳票出力処理
 *
  PERFORM 帳票編集および出力処理.
 *
 各種ファイルのクローズ.
  CLOSE             CUST-FILE
                    ORDER-FILE
                    SHITEN-FILE.
*********************************************************
**  業務の終了             **
*********************************************************
  STOP RUN.
 *

*********************************************************
   帳票編集および出力処理 SECTION.
*********************************************************
 *
 * 支店番号で受注ファイルを検索する
 *
  PERFORM 受注ファイルの検索処理.
  MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO.
 *
 * 帳票編集および出力のメインループ
  PERFORM UNTIL MAIN-END-FLG = 'E'
    IF  SHITEN-NO-H NOT = BK2-SHITEN-NO AND
        OUT-LINE NOT = ZERO THEN
        PERFORM 帳票の出力処理
        MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO
    END-IF
    PERFORM 帳票出力データの設定
    PERFORM 受注ファイルの検索処理
  END-PERFORM.
 *
  PERFORM 帳票の出力処理.
 *
 帳票編集および出力処理の終了.
  EXIT.
 *


*********************************************************
   受注ファイルの検索処理 SECTION.
*********************************************************
 *
  MOVE 'NG' TO ORDER-FLG.
  PERFORM UNTIL ORDER-FLG = 'OK' OR
         MAIN-END-FLG = 'E'
 *  支店情報の入力
    IF  SHITEN-NO-H NOT = BK-SHITEN-NO OR
        BK-SHITEN-NO = SPACE THEN
        READ SHITEN-FILE NEXT
        AT END
        MOVE 'E' TO MAIN-END-FLG
        NOT AT END
        MOVE 'Y' TO FIRST-GET
        END-READ
    END-IF
 *
 *  受注ファイルの入力
    IF MAIN-END-FLG NOT = 'E' THEN
      IF  FIRST-GET = 'Y' THEN
          MOVE SHITEN-NO-H TO SHITEN-NO
          START ORDER-FILE KEY IS = SHITEN-NO
          INVALID KEY
            MOVE SPACE TO BK-SHITEN-NO
          NOT INVALID KEY
            MOVE SHITEN-NO-H TO BK-SHITEN-NO
          END-START
          MOVE 'N' TO FIRST-GET
      END-IF
      IF  BK-SHITEN-NO NOT = SPACE THEN
          READ ORDER-FILE NEXT
          AT END
          MOVE SPACE TO BK-SHITEN-NO
          NOT AT END
          IF BK-SHITEN-NO = SHITEN-NO THEN
            MOVE 'OK' TO ORDER-FLG
          ELSE
            MOVE SPACE TO BK-SHITEN-NO
          END-IF
          END-READ
      END-IF
    END-IF
  END-PERFORM.
 *
 受注ファイルの検索処理終了.
  EXIT.
 *


*********************************************************
   帳票出力データの設定 SECTION.
*********************************************************
 *
  PERFORM VARYING X FROM 1 BY 1 UNTIL X > 40
    IF SHOUHIN-NO(X) NOT = SPACE THEN
      COMPUTE OUT-LINE = OUT-LINE + 1
      MOVE SHOUHIN-NAME(X) TO TOTAL-S-NAMEO(OUT-LINE)
      MOVE SHOUHIN-NO(X)  TO TOTAL-S-CODEO(OUT-LINE)
      EVALUATE NYUUKIN
      WHEN 1
        MOVE N'現  金' TO TOTAL-NYUUKINO(OUT-LINE)
      WHEN 2
        MOVE N'手  形' TO TOTAL-NYUUKINO(OUT-LINE)
      WHEN 3
        MOVE N'銀行振込' TO TOTAL-NYUUKINO(OUT-LINE)
      END-EVALUATE
      IF TOKUTAI = 'Y' THEN
        MOVE N'特 待' TO TOTAL-WARIO(OUT-LINE)
      ELSE
        IF CARD-INF = 'Y' THEN
          MOVE N'カード' TO TOTAL-WARIO(OUT-LINE)
        ELSE
          MOVE N'セール' TO TOTAL-WARIO(OUT-LINE)
        END-IF
      END-IF
      MOVE SURYOU(X)   TO TOTAL-SURYOUO(OUT-LINE)
      MOVE TANKA(X)   TO TOTAL-TANKAO(OUT-LINE)
      MOVE SYOUKEI(X)  TO TOTAL-SGOUKEIO(OUT-LINE)
      MOVE CUST-NO    TO TOTAL-T-CODEO(OUT-LINE)
                CUST-NO-C
      READ CUST-FILE KEY IS CUST-NO-C
      END-READ
      MOVE CUST-NAME-C  TO TOTAL-T-NAMEO(OUT-LINE)
      MOVE DENPYOU-NO  TO TOTAL-DEN-NOO(OUT-LINE)
      MOVE SPACE     TO TOTAL-DUMMYO(OUT-LINE)
      IF OUT-LINE >= 34 THEN
        PERFORM 帳票の出力処理
        MOVE ZERO TO OUT-LINE
        COMPUTE PAGE-CNT = PAGE-CNT + 1
      END-IF
    END-IF
  END-PERFORM.
 *
 帳票出力データの設定の終了.
  EXIT.
 *


*********************************************************
    帳票の出力処理 SECTION.
*********************************************************
 *
  MOVE PAGE-CNT TO TOTAL-PAGEOO.
  MOVE SHITEN-NO-H TO TOTAL-H-CODEO.
  MOVE SHITEN-NAME-H TO TOTAL-H-NAMEO.
 *
  SEND PRINTER FROM TOTALO WITH EMI.
 *
  DISABLE PRINTER.
 *
  PERFORM 初期設定処理.
 *
 帳票の出力処理終了.
  EXIT.
 *
*********************************************************
   初期設定処理 SECTION.
*********************************************************
 *
 * 論理マップの初期値設定およびCD項の設定
  MOVE ALL X'1F'  TO TOTALO.
  MOVE TOTALT   TO TOTALL.
  MOVE ZERO    TO TOTALZ.
  MOVE '00000'   TO ERR-CODEP.
  MOVE 'PRT001'  TO PRTTERM.
  MOVE 'TOTAL6B ' TO MAP-NAME-P.
 * 年月日の取得および論理マップへの設定
  ACCEPT DATE-WORK FROM DATE.
  MOVE DATE-YY   TO TOTAL-NENO.
  MOVE DATE-MM   TO TOTAL-TSUKIO.
  MOVE DATE-DD   TO TOTAL-HINICHIO.
 * 出力行数の初期化
  MOVE ZERO     TO OUT-LINE.
 *
 初期設定処理終了.
  EXIT.