# JOB詳細設計書（JOBフロー）　DAISEQ4J　【第2版】

| 項目 | 内容 |
| --- | --- |
| 解析対象 | DAISEQ4J.jcl（JCL、850行。10/13 受領分。初版と同一内容） |
| 作成方法 | JCL と、JOB 内の全業務プログラム（11種）のソース解析結果からのリバース設計 |
| 作成日 | 2026/10/08（初版）、2026/10/13（第2版） |

**【本書の前提】**

- JCL の解析では、初版と同じくコメント行（`//*` で始まる行。`//**` を含む）は根拠にしていない。コメントアウトされたステップ（KS60140P、KS60141P、KS60150P、KS60480P、IDCAMS 等）は存在しないものとして扱う。
- 第2版では、各ステップの業務的な役割・入出力の中身を、次のプログラム設計書（ソース解析結果）に基づいて記述した。初版で「（推定）」としていた箇所の多くは確定した。

| プログラム | 設計書 | 使用ステップ |
| --- | --- | --- |
| KS60130P | KS60130_詳細設計書.md | No.3 |
| KS60135P | KS60135_詳細設計書.md | No.11 |
| KS60144P | KS60144_詳細設計書.md、KS60144_出力ファイル解説.md | No.8、No.12 |
| KS60151P | KS60151_詳細設計書.md | No.9 |
| KS60152P | KS60152_詳細設計書.md | No.13 |
| KS60630P | KS60630_詳細設計書.md | No.29 |
| KS60750P | KS60750_詳細設計書.md | No.15 |
| KS60760P | KS60760_詳細設計書.md | No.17 |
| KS60770P | KS60770_詳細設計書.md | No.18 |
| KS60780P | KS60780_詳細設計書.md | No.22、No.23 |
| KS60790P | KS60790_詳細設計書.md | No.25、No.27 |

- プログラムが呼ぶ外部手続き（LKN0010、LSS0050、LSS0051）、ソートのカタログ式プロシージャ、パラメータメンバの中身、運用系タスクはブラックボックス（BB）として扱う（9章）。
- ステップは実行順の通番（No.1～33）で識別する（ステップ名が重複しているため）。
- ★印は、JOB 全体として注意が必要な点を示す（10章にまとめた）。

## 目次

0. 第2版での主な変更点
1. JOB概要
2. JOB文・共通定義
3. JOBフロー
4. ステップ一覧
5. ステップ詳細
6. 出力物一覧（帳票・CSV・中間ファイル）
7. データセット一覧
8. 実行条件と異常時の動作
9. ブラックボックス一覧
10. 留意事項・要確認事項
11. 関連設計書

---

## 0. 第2版での主な変更点

| 項目 | 初版 | 第2版 |
| --- | --- | --- |
| 各ステップの役割 | DD名・データセット名からの推定 | プログラムのソース解析結果で確定 |
| 系統の意味 | 系統A＝全件、系統B＝抽出、系統C＝突合せ | 系統A＝**特積の請求書**、系統B＝**エコデリバー・事業所郵送の請求書**、系統C＝**郵送集約の請求一覧**、系統D＝**郵送顧客CSV**（1.2） |
| 中間ファイルの中身 | 不明 | レコード形式・抽出条件・並び順を記載（3.4） |
| ソートキーの意味 | 位置のみ | 項目名・業務上の意味を記載（5.6） |
| 帳票 | ライター名のみ | 帳票の内容・出力対象・振分けを記載（6.1） |
| 留意事項 | JCL 上の問題のみ | プログラムをまたがる問題を追加（10章） |
| SEQTRYTN／SEQPRTNC | パラメータメンバ（BB） | 用途が判明：SEQTRYTN＝郵送対象の店所一覧、SEQPRTNC＝自店出力の店所一覧（中身は BB） |
| VKAD.SSYUPRNT.DTMASTER 等 | 「内容不明」 | 優先印刷マスター等、名称と使い方を記載（7.1） |

---

## 1. JOB概要

### 1.1 基本情報

| 項目 | 内容 |
| --- | --- |
| JOB名 | DAISEQ4J |
| ステップ数 | 33（有効なステップのみ） |
| 処理形態 | バッチ（請求明細データの請求書化） |
| 業務プログラム | 11種・14ステップ |
| ユーティリティ等 | IEHPROGM 9ステップ、ソート 8ステップ（USORTG×2、USORTM×6）、MVSCMD 2ステップ |
| 主な入力 | TEMP.DAISEQ1J.WORK0510（別JOB作成の請求明細データ。見出し＋送り状明細） |
| 主な出力 | 電子帳票（SYSOUT クラスE）7種、SEAD.DAISEQ4J.CSV |

### 1.2 機能概要

請求明細データ（請求先ごとの見出し＝鑑と、送り状ごとの明細）から、次の4系統の出力を作る。

| 系統 | ステップ | 対象 | 出力 |
| --- | --- | --- | --- |
| 共通 | No.1～6 | 全データ | 地名付加・配信店変換・並べ替え済みの共通データ WORK0620 |
| **A：特積の請求書** | No.7～9 | 全店所・全請求先 | 新書式の請求書（控え・送付用）2種 |
| **B：郵送用の請求書** | No.10～13 | 郵送対象店所（SEQTRYTN）の請求先。訂正明細を除く | 新書式の請求書（インフォコム・インフォコム送付用・事業所送付用）3種 |
| **C：郵送集約の請求一覧** | No.14～27 | 顧客法人管理マスターで「他の代表に集約」とされた請求先と、その代表 | 集約代表あての請求一覧（事業所用・エコデリバー用）2種 |
| **D：郵送顧客CSV** | No.28～31 | 系統Bと同じ請求先 | 請求先ごとの取扱区分（エコ／優先／不要）の CSV |
| 後処理 | No.32～33 | － | ワークと入力データの削除 |

```
 請求明細（DAISEQ1J.WORK0510）
        │ No.2～5：地名付加、配信店変換、0円除外、並べ替え
        ▼
 共通データ WORK0620 ─┬─▶ 系統A：KS60144P → KS60151P ……… 請求書（特積）2種
                       │
                       ├─▶ 系統B：KS60135P（郵送対象店所・訂正除外）→ WORK062S
                       │         ├─▶ KS60144P → KS60152P ……… 請求書（郵送）3種
                       │         └─▶ 系統D：KS60630P ………………… CSV
                       │
                       └─▶ 系統C：KS60770P（見出しのみ）─┐
          顧客法人管理マスター → KS60750P → KS60760P ─┴─▶ KS60780P → KS60790P … 請求一覧2種
```

- 系統A は全請求先を対象とするため、系統B・C・D の請求先も系統A の請求書に含まれる（用途が異なる重複。10章 No.12）。

---

## 2. JOB文・共通定義

### 2.1 JOB文

| パラメータ | 値 | 内容 |
| --- | --- | --- |
| CLASS | B | ジョブクラス |
| MSGCLASS | Q | ジョブログ出力クラス |
| MSGLEVEL | (1,1) | JCL文・割振りメッセージをすべて出力 |
| REGION | 6144K | リージョンサイズ |
| COND | (9,LT) | 先行ステップのリターンコードが 9 を超えた（10以上）場合、以降のステップを実行せずJOBを終了 |
| PERFORM | 1 | パフォーマンスグループ 1 |

### 2.2 JOBLIB

| DD名 | DSN | DISP |
| --- | --- | --- |
| JOBLIB | ENT.BATCHA.LOD | SHR |

### 2.3 共通仕様

- ワークデータセットは DASD09 上に `DISP=(NEW,KEEP,DELETE)` で作成する非カタログデータセットであり、参照側は UNIT／VOL=SER を明示している。
- 各系統の先頭に、その系統で作成するワークを IEHPROGM の SCRATCH で事前削除するステップを置いている。
- 可変長（VB）ワークの DCB は `RECFM=VB,BLKSIZE=12000` のみで LRECL の指定がない。レコード長はプログラムまたはソートの入力側の属性で決まる。
- 可変長データに対する SORT のキー位置は、先頭4バイトの RDW を含む位置である（データ部の位置＝指定位置－4）。
- 帳票は `SYSOUT=(E,ライター名,99)` の形式で、クラスE・用紙番号99、帳票ごとに異なるライター名を指定して出力する。


## 3. JOBフロー

### 3.1 処理の流れ（業務の言葉で）

1. **共通データの作成（No.2～5）**：入力を地名コード順に並べ（No.2）、KS60130P で漢字地名を付け、検品料のデータIDを 95 に変え、0円の明細を除き、優先印刷マスターで配信店を変換する（No.3）。これを「配信店・請求先・データID・区分・日付」の順に並べて共通データ WORK0620 にする（No.5）。
2. **系統A（No.7～9）**：KS60144P が WORK0620 から請求書の行データ（見出し・明細・計）を作り（No.8）、KS60151P が電子帳票の請求書（控え・送付用）を出力する（No.9）。
3. **系統B（No.10～13）**：KS60135P が郵送対象店所（SEQTRYTN）の請求先だけを、訂正明細を除いて抜き出す（No.11）。これを KS60144P で行データにし（No.12）、KS60152P が優先印刷マスターで振り分けて、インフォコム系2種・事業所送付用1種の請求書を出力する（No.13）。
4. **系統C（No.14～27）**：
   - 顧客法人管理マスターから「荷主 → 集約代表」の対応表を作り（No.15）、代表自身を補って、優先印刷マスターの有無で2つに分ける（No.17）。
   - WORK0620 から請求額≠0 の見出しだけを抜き出し（No.18）、請求先番号順に並べる（No.21）。
   - 見出しと対応表を荷主コードで突き合わせ、集約代表・代表扱い店を書き込む（No.22・23）。
   - 代表扱い店・集約代表の順に並べ（No.24・26）、KS60790P が集約代表ごとの請求一覧を出力する（No.25・27）。
5. **系統D（No.28～31）**：系統B の抽出データから、請求先ごとの取扱区分を CSV にし（No.29）、運用系に MODIFY コマンドを2つ発行する（No.30・31）。
6. **後処理（No.32～33）**：ワークの一部と入力データを削除する。

### 3.2 全体フロー（データセットの流れ）

```
 【1. 共通データの作成】

   [No.1 DELETE] ワーク事前削除

   TEMP.DAISEQ1J.WORK0510（DASD30。別JOBで作成）
            │
            ▼
     [No.2 SORT]  キー(54,3)
            │
            ▼
        (WORK0600)      VKAD.CHIMEIET.DTMASTER ─┐
            │           VKAD.SSYUPRNT.DTMASTER ─┤
            ▼                                   │
     [No.3 KS60130P] ←──────────────────────────┘
            │                       [No.4 DELETE] WORK0600 削除
            ▼
        (WORK0610)
            │
            ▼
     [No.5 SORT]  キー7項目
            │                       [No.6 DELETE] WORK0610 削除
            ▼
        (WORK0620) ── 共通データ。系統A・B・Cの入力
            │
     ┌──────┼─────────────────────────┐
     ▼      ▼                         ▼
   系統A   系統B                     系統C


 【2. 系統A】                【3. 系統B】

   [No.7 SCRATCH]              [No.10 DELETE]
   (WORK0620)                  (WORK0620)   ADG.ALTLIB(SEQTRYTN)
        │                           │               │
        ▼                           ▼               │
   [No.8 KS60144P]             [No.11 KS60135P] ←───┘
        │  ├→ (WORK0642)            │
        │  └→ (WORK0646)            ▼
        ▼                       (WORK062S) ───────────────┐
    (WORK0635)                      │                     │
        │                           ▼                     │
        ▼                      [No.12 KS60144P]           │
   [No.9 KS60151P]                  │  ├→ (WORK0701)      │
        │                           │  └→ (WORK0702)      │
        ▼                           ▼                     │
   SYSOUT KS601511              (WORK0700)                │
   SYSOUT KS601512                  │                     │
                                    ▼                     │
                               [No.13 KS60152P]           │
                                    │                     │
                                    ▼                     │
                               SYSOUT KS601521            │
                               SYSOUT KS601522            │
                               SYSOUT KS601523            │
                                                          │
 【5. CSV出力と後処理】                                   │
                                                          │
   [No.28 DELETE] CSV 事前削除                            │
   [No.29 KS60630P] ←─────────────────────────────────────┘
        │
        ▼
   SEAD.DAISEQ4J.CSV（DASD11）

   [No.30 MVSCMD1] F AUTO1,ASVQ803
   [No.31 MVSCMD1] F AUTO1,ASVQ808
   [No.32 DELETE]  ワーク削除
   [No.33 DELETE]  TEMP.DAISEQ1J.WORK0510 削除
```

### 3.3 系統Cのフロー

```
   [No.14 SCRATCH] TEMP.KS60750J.WORK0010～0130 事前削除

   VKAD.CORPOMAN.DTMASTER                        (TEMP.DAISEQ4J.WORK0620)
            │                                              │
            ▼                                              ▼
     [No.15 KS60750P]                               [No.18 KS60770P]
            │                                              │
            ▼                                              ▼
        (K-WORK0010)                                  (K-WORK0050)
            │                                              │
            ▼                                              ▼
     [No.16 SORT1] キー(8,7)                        [No.21 SORT3] キー(19,8,PD)
            │                                              │
            ▼                                              ▼
        (K-WORK0020)   VKAD.SSYUPRNT.DTMASTER         (K-WORK0090)
            │                   │                          │
            ▼                   │                 ┌────────┴────────┐
     [No.17 KS60760P] ←─────────┘                 │                 │
            │                                     │                 │
       ┌────┴─────┐                               │                 │
       ▼          ▼                               │                 │
  (K-WORK0030) (K-WORK0040)                       │                 │
       │          │                               │                 │
       ▼          ▼                               │                 │
 [No.19 SORT2] [No.20 SORT2]  キー(1,7)           │                 │
       │          │                               │                 │
       ▼          ▼                               │                 │
  (K-WORK0060) (K-WORK0080)                       │                 │
       │          │                               │                 │
       │          └─────────────────────┐         │                 │
       ▼                                │         ▼                 │
 [No.22 KS60780P] ←─────────────────────┼─── (K-WORK0090)           │
       │                                ▼                           │
       │                          [No.23 KS60780P] ←────────────────┘
       ▼                                │
  (K-WORK0100)                          ▼
       │                           (K-WORK0110)
       ▼                                │
 [No.24 SORT4] キー3項目                ▼
       │                          [No.26 SORT4] キー3項目
       ▼                                │
  (K-WORK0120)                          ▼
       │                           (K-WORK0130)
       ▼                                │
 [No.25 KS60790P]                       ▼
       │                          [No.27 KS60790P]
       ▼                                │
  SYSOUT KS607902                       ▼
                                   SYSOUT KS607901
```

- 図中の (WORKnnnn) は TEMP.DAISEQ4J.WORKnnnn、(K-WORKnnnn) は TEMP.KS60750J.WORKnnnn を表す。
- 実行順は No.1 → No.33 の直列であり、並行実行や条件分岐はない。
- No.25、27 の KS60790P は、図示した入力のほかにマスター6本を参照する（5.4 参照）。

### 3.4 中間ファイルの中身

| データセット | 作成 | 中身 | レコード | 並び順 |
| --- | --- | --- | --- | --- |
| WORK0600 | No.2 | 入力の請求明細（見出し＋明細、5レイアウト） | VB 80～560 | 地名コード（明細の 50～52 バイト目） |
| WORK0610 | No.3 | 地名付加・検品料ID変更・0円除外・配信店変換後の請求明細 | 同上 | 入力順 |
| **WORK0620** | No.5 | 同上（共通データ） | 同上 | 配信店・予備・請求先番号 → データID十の位 → 区分 → データID一の位 → 日付 → 元着・送り状番号 |
| WORK0635 | No.8 | 請求書の行データ（見出し1・2、明細行、ページ小計・区分計・総合計） | VB 59～466（SQHAIDAA～D） | 印刷順（月日・配信店・連番・頁・行・DTID） |
| WORK0642／0701 | No.8／No.12 | 印刷照会マスター更新用（配信店ごとの件数・ページ数） | FB 120（SQSSPRSK） | 配信店順 |
| WORK0646／0702 | No.8／No.12 | 顧客ごとの請求書枚数 | FB 30 | 配信店・請求先順 |
| **WORK062S** | No.11 | 郵送対象店所の請求明細（訂正 ID 31～33 を除く） | VB 80～560 | WORK0620 と同じ |
| WORK0700 | No.12 | WORK062S から作った請求書の行データ | VB（SQHAIDAA～D） | 印刷順 |
| K-WORK0010 | No.15 | 荷主・集約代表・代表扱い店（荷主≠集約代表のもの） | FB 18 | 荷主コード順 |
| K-WORK0020 | No.16 | 同上 | FB 18 | 集約代表順 |
| K-WORK0030／0040 | No.17 | 代表自身を補った対応表。優先印刷マスターに有る荷主／無い荷主 | FB 18 | 集約代表順 |
| K-WORK0060／0080 | No.19／20 | 同上 | FB 18 | 荷主コード順 |
| K-WORK0050 | No.18 | 全店所の見出しデータ（請求額≠0） | VB 560 | WORK0620 と同じ |
| K-WORK0090 | No.21 | 同上 | VB 560 | 請求先番号順 |
| K-WORK0100／0110 | No.22／23 | 突合せで一致した見出し（本締のみ）。データID＝00 代表／99 配下、区分＝集約代表＋代表扱い店 | VB 560 | 請求先番号順 |
| K-WORK0120／0130 | No.24／26 | 同上 | VB 560 | 代表扱い店・集約代表・扱い店 |
| SEAD.DAISEQ4J.CSV | No.29 | 見出し行＋請求先ごとの「締め日,扱い店,請求先顧客コード,集約コード,取扱」 | VB 56／34 | WORK062S の順 |

### 3.5 ワークデータセットのライフサイクル

| ワーク | 作成 | 参照 | 削除 |
| --- | --- | --- | --- |
| TEMP.DAISEQ4J.WORK0600 | No.2 | No.3 | No.4（No.1、No.32 でも指定） |
| TEMP.DAISEQ4J.WORK0610 | No.3 | No.5 | No.6（No.1、No.32 でも指定） |
| TEMP.DAISEQ4J.WORK0620 | No.5 | No.8、11、18 | 次回実行時の No.1 |
| TEMP.DAISEQ4J.WORK0635 | No.8 | No.9 | No.32（次回の No.7 でも指定） |
| TEMP.DAISEQ4J.WORK0642 | No.8 | 本JOB内になし | 次回実行時の No.7 |
| TEMP.DAISEQ4J.WORK0646 | No.8 | 本JOB内になし | 次回実行時の No.7 |
| TEMP.DAISEQ4J.WORK062S | No.11 | No.12、29 | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0700 | No.12 | No.13 | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0701 | No.12 | 本JOB内になし | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0702 | No.12 | 本JOB内になし | 次回実行時の No.10 |
| TEMP.KS60750J.WORK0010～0130（11本） | No.15～26 | No.16～27 | 次回実行時の No.14 |
| SEAD.DAISEQ4J.CSV | No.29 | 本JOB内になし | 次回実行時の No.28 |
| TEMP.DAISEQ1J.WORK0510（入力） | 別JOB | No.2 | No.33 |

- TEMP.DAISEQ4J.WORK0630、0631、0632、0641 は、No.1／No.32 で削除対象に指定されているが、本JOBの有効なステップでは作成していない。
- TEMP.KS60750J.WORK0070 は No.14 で削除対象に指定されているが、本JOBでは作成していない。


## 4. ステップ一覧

| No | ステップ名 | 実行PGM／PROC | 系統 | 処理概要 | 主な入力 | 主な出力 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | DELETE | IEHPROGM | 共通 | ワーク事前削除（7本） | － | － |
| 2 | SORT | USORTG | 共通 | 地名コード順に並べ替え | DAISEQ1J.WORK0510 | WORK0600 |
| 3 | KS60130P | KS60130P | 共通 | 地名付加・検品料ID変更・0円除外・配信店変換 | WORK0600、地名マスター、優先印刷マスター | WORK0610 |
| 4 | DELETE | IEHPROGM | 共通 | WORK0600 削除 | － | － |
| 5 | SORT | USORTG | 共通 | 配信店・請求先・データID・区分・日付順に並べ替え | WORK0610 | WORK0620 |
| 6 | DELETE | IEHPROGM | 共通 | WORK0610 削除 | － | － |
| 7 | SCRATCH | IEHPROGM | A | 系統Aワーク事前削除 | － | － |
| 8 | KS60144P | KS60144P | A | 請求書の行データ作成（全件） | WORK0620、印刷照会・店所・店所コード | WORK0635、0642、0646 |
| 9 | KS60151P | KS60151P | A | 新請求書（特積）出力：控え・送付用 | WORK0635、店所・銀行・優先印刷、SEQPRTNC | SYSOUT KS601511、KS601512 |
| 10 | DELETE | IEHPROGM | B | 系統Bワーク事前削除 | － | － |
| 11 | KS60135P | KS60135P | B | 郵送対象店所の抽出（訂正除外） | WORK0620、SEQTRYTN | WORK062S |
| 12 | KS60144P | KS60144P | B | 請求書の行データ作成（郵送分） | WORK062S、同上 | WORK0700、0701、0702 |
| 13 | KS60152P | KS60152P | B | 新請求書（郵送）出力：インフォコム・インフォコム送付用・事業所送付用 | WORK0700、店所・銀行・優先印刷・顧客法人管理、SEQPRTNC | SYSOUT KS601521～23 |
| 14 | SCRATCH | IEHPROGM | C | 系統Cワーク事前削除 | － | － |
| 15 | KS60750P | KS60750P | C | 郵送集約の対応表作成（荷主≠集約代表） | 顧客法人管理マスター | K-WORK0010 |
| 16 | SORT1 | USORTM | C | 集約代表順に並べ替え | K-WORK0010 | K-WORK0020 |
| 17 | KS60760P | KS60760P | C | 代表自身を補い、優先印刷マスターの有無で2分割 | K-WORK0020、優先印刷 | K-WORK0030、0040 |
| 18 | KS60770P | KS60770P | C | 見出し（請求額≠0）の抽出 | WORK0620 | K-WORK0050 |
| 19 | SORT2 | USORTM | C | 荷主コード順に並べ替え（有る分） | K-WORK0030 | K-WORK0060 |
| 20 | SORT2 | USORTM | C | 荷主コード順に並べ替え（無い分） | K-WORK0040 | K-WORK0080 |
| 21 | SORT3 | USORTM | C | 請求先番号順に並べ替え | K-WORK0050 | K-WORK0090 |
| 22 | KS60780P | KS60780P | C | 見出しと対応表（有る分）の突合せ | K-WORK0090、0060 | K-WORK0100 |
| 23 | KS60780P | KS60780P | C | 見出しと対応表（無い分）の突合せ | K-WORK0090、0080 | K-WORK0110 |
| 24 | SORT4 | USORTM | C | 代表扱い店・集約代表・扱い店順に並べ替え | K-WORK0100 | K-WORK0120 |
| 25 | KS60790P | KS60790P | C | 郵送集約の請求一覧（事業所用）出力 | K-WORK0120、マスター6本 | SYSOUT KS607902 |
| 26 | SORT4 | USORTM | C | 同上 | K-WORK0110 | K-WORK0130 |
| 27 | KS60790P | KS60790P | C | 郵送集約の請求一覧（エコデリバー用）出力 | K-WORK0130、マスター6本 | SYSOUT KS607901 |
| 28 | DELETE | IEHPROGM | D | CSV 事前削除 | － | － |
| 29 | KS60630P | KS60630P | D | 郵送顧客 CSV 作成 | WORK062S、優先印刷・顧客法人管理 | SEAD.DAISEQ4J.CSV |
| 30 | MVSCMD1 | MVSCMD | D | F AUTO1,ASVQ803 | － | － |
| 31 | MVSCMD1 | MVSCMD | D | F AUTO1,ASVQ808 | － | － |
| 32 | DELETE | IEHPROGM | 後処理 | ワーク削除（6本） | － | － |
| 33 | DELETE | IEHPROGM | 後処理 | 入力データ削除 | － | DAISEQ1J.WORK0510 削除 |

- 「WORKnnnn」は TEMP.DAISEQ4J.WORKnnnn、「K-WORKnnnn」は TEMP.KS60750J.WORKnnnn を表す。

---

## 5. ステップ詳細

業務プログラムのステップは、「JCL」（DD 構成）と「処理内容」（プログラム設計書の要約）を示す。プログラムの詳細は各設計書を参照。

### 5.1 共通データの作成（No.1～6）

#### JCL：No.2　SORT

`EXEC USORTG`（カタログ式プロシージャ。BB）

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SORTIN | TEMP.DAISEQ1J.WORK0510 | SHR | 入力 | DASD30。別JOB（DAISEQ1J と推定）が作成 |
| SORTOUT | TEMP.DAISEQ4J.WORK0600 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |
| SYSIN | ストリーム内 | － | 入力 | 下記制御文 |

```
  SORT         FIELDS=(54,3,CH,A)
  END
```

- キー（データ部 50～52 バイト目）は、送り状明細（SQALLDTB）の **地名コード SDTBCHCD**（パック10進5桁）。次の KS60130P が地名マスターをスキップ順次で読むため、地名コード順に並べている。

#### JCL：No.3　KS60130P

`EXEC PGM=KS60130P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSDBOUT | SYSOUT=* | － | 出力 | デバッグ出力 |
| VKCHINM | VKAD.CHIMEIET.DTMASTER | SHR | 入力 | 地名マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| ALLSQDT | TEMP.DAISEQ4J.WORK0600 | SHR | 入力 | DASD09 |
| SQALLOK | TEMP.DAISEQ4J.WORK0610 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |

**処理内容**（KS60130 設計書）

- 金額がすべて0のレコードを除く（送り状明細は、仮締のダミーと特定荷主330コードは残す）。
- 送り状明細（ID 01、21、31）に、地名マスターから漢字地名（最大5文字）を付ける。
- 検品料に当たる送り状明細のデータIDを 95 に書き換える。
- 全レコードについて、優先印刷マスター（VKSYUPR）の変換指定で配信店を書き換える。特定5荷主は配信店を 1025 に固定する。
- ★ 1025 は後の KS60144P で 1001 に読み替えられる（10章 No.9）。

#### JCL：No.5　SORT

`EXEC USORTG`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SORTIN | TEMP.DAISEQ4J.WORK0610 | SHR | 入力 | DASD09 |
| SORTOUT | TEMP.DAISEQ4J.WORK0620 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |
| SYSIN | ストリーム内 | － | 入力 | 下記制御文 |

```
  SORT FIELDS=(5,21,CH,A,37,1,CH,A,26,11,CH,A,
               38,1,CH,A,39,2,Y2P,A,40,3,PD0,A,43,7,CH,A)
  END
```

| 優先順 | 指定 | データ部の位置 | 長さ | 形式 | 内容 |
| --- | --- | --- | --- | --- | --- |
| 1 | 5,21,CH,A | 1～21 | 21 | 文字 | |
| 2 | 37,1,CH,A | 33 | 1 | 文字 | |
| 3 | 26,11,CH,A | 22～32 | 11 | 文字 | |
| 4 | 38,1,CH,A | 34 | 1 | 文字 | |
| 5 | 39,2,Y2P,A | 35～36 | 2 | 2桁年（パック） | 4バイトのパック10進日付（YYMMDD）の年部分 |
| 6 | 40,3,PD0,A | 36～38 | 3 | パック（先頭桁と符号を無視） | 同じ日付の月日部分 |
| 7 | 43,7,CH,A | 39～45 | 7 | 文字 | |

| 優先順 | データ部の位置 | 項目（SQALLHED／SQALLDTB の名前） | 内容 |
| --- | --- | --- | --- |
| 1 | 1～21 | SDTASHTN＋SDTAKKKK＋SDTASQNO | 配信店4＋予備10＋請求先番号（パック13桁） |
| 2 | 33 | SDTADTID の1桁目 | データIDの十の位（00 の見出しが先、01・02 の計上明細、21・22 付替、31・33 訂正…の順） |
| 3 | 22～32 | SDTASPA1／SDTBPSEQ | 区分（印刷順の区分） |
| 4 | 34 | SDTADTID の2桁目 | データIDの一の位 |
| 5・6 | 35～38 | SDTBYYMD | 年月日（パック10進。Y2P で世紀つき） |
| 7 | 39～45 | SDTBMOCH＋SDTBOKRN | 元着区分＋送り状番号 |

- この並びが、KS60144P の印刷順（請求先 → 区分 → 日付 → 送り状）の前提になる。

### 5.2 系統A：特積の請求書（No.7～9）

#### JCL：No.8　KS60144P

`EXEC PGM=KS60144P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSDBOUT | SYSOUT=* | － | 出力 | |
| VKSEQSK | VKAD.SQSSPRSK.DTMASTER | SHR | 入力 | 印刷照会マスター（更新はしない） |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター（KS60144P は読むが未使用） |
| VETENCD | SEAD.TENSCODE.CDMASTER | SHR | 入力 | DASD11。店所コードマスター（推定） |
| SQALLOK | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | DASD09 |
| SQPRTDA | TEMP.DAISEQ4J.WORK0635 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(12000,(8000,2500),RLSE)、DASD09 |
| SQUPSEQ | TEMP.DAISEQ4J.WORK0642 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=120、BLKSIZE=12000、SPACE=(12000,(5,5),RLSE)、DASD09 |
| SEQPAGS | TEMP.DAISEQ4J.WORK0646 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=30、BLKSIZE=6300、SPACE=(6300,(100,50),RLSE)、DASD09 |

**処理内容**（KS60144 設計書）

- 請求先ごとの見出しデータから請求書の見出し（鑑）を作り、明細を表示パターンに従って運賃・料金欄に振り分けた明細行、ページ小計・元払計・着払計・元着計・総合計を作る。旧書式（40行／頁）と新書式（33行／頁）の番号を両方持つ。
- 出力区分 '9'（明細不要）の請求先と、見出しのない請求先は出力しない。
- SQUPSEQ：印刷照会マスター（VKSEQSK）の値に今回の件数を加えた「更新後のレコード」。配信店ごとに1件。マスター自体は更新しない。
- SEQPAGS：請求先ごとの請求書枚数（新書式のページ数）。
- 配信店 1025 を 1001 に読み替える。

#### JCL：No.9　KS60151P

`EXEC PGM=KS60151P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSUDUMP | SYSOUT=* | － | 出力 | ダンプ |
| ALTFILE | ADG.ALTLIB(SEQPRTNC) | SHR | 入力 | パラメータメンバ |
| SQHAIDA | TEMP.DAISEQ4J.WORK0635 | SHR | 入力 | DASD09 |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| MDMIKAN | VKAD.MISYUKAN.DTMASTER | SHR | 入力 | 未収管理マスター（推定）。LKN0010（BB）が使用と推定 |
| OUTFILE | SYSOUT=(E,KS601511,99) | － | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL2 | SYSOUT=(E,KS601512,99) | － | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |

**処理内容**（KS60151 設計書）

- WORK0635 の新書式の行データを、プレ印刷の請求書（1ページ50行）に編集する。店所・銀行・優先印刷マスターで店名・住所・振込口座等を補う。
- OUTFILE（KS601511）＝**控え**：全請求先。明細不要（優先印刷マスター UPRNASKB＝'6'）の請求先には '#' を付ける。
- OUTFIL2（KS601512）＝**送付用**：明細不要の請求先を除く。1行目の店所コードを集約店所（LKN0010。BB）に置き換える（自店出力の店所＝SEQPRTNC と、自店所出力の顧客を除く）。
- ★ 元払計・着払計の行は印字しない。

### 5.3 系統B：郵送用の請求書（No.10～13）

#### JCL：No.11　KS60135P

`EXEC PGM=KS60135P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSUDUMP | SYSOUT=* | － | 出力 | |
| TRYFILE | ADG.ALTLIB(SEQTRYTN) | SHR | 入力 | パラメータメンバ |
| ALLSQDT | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | DASD09 |
| SQALLOK | TEMP.DAISEQ4J.WORK062S | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE)、DASD09 |

**処理内容**（KS60135 設計書）

- SEQTRYTN（郵送対象の店所一覧、最大100件）にある配信店の請求先だけを、レコードを変えずに抜き出す。
- データID 31～33（単品訂正・一括訂正）は除外する。
- ★ 出力の判定は荷主コード7桁の区切りの先頭レコードの配信店だけで行う。
- ★ 訂正明細を除いても鑑の金額は変えないため、請求書で鑑と明細が一致しない可能性がある。

#### JCL：No.12　KS60144P

`EXEC PGM=KS60144P`

DD 構成は No.8 と同一。データセットのみ異なる。

| DD名 | No.8（系統A） | No.12（系統B） |
| --- | --- | --- |
| SQALLOK（入力） | TEMP.DAISEQ4J.WORK0620 | TEMP.DAISEQ4J.WORK062S |
| SQPRTDA（出力） | TEMP.DAISEQ4J.WORK0635 | TEMP.DAISEQ4J.WORK0700 |
| SQUPSEQ（出力） | TEMP.DAISEQ4J.WORK0642 | TEMP.DAISEQ4J.WORK0701 |
| SEQPAGS（出力） | TEMP.DAISEQ4J.WORK0646 | TEMP.DAISEQ4J.WORK0702 |

**処理内容**：No.8 と同じプログラム。入力が郵送対象・訂正除外のデータになるだけ。

#### JCL：No.13　KS60152P

`EXEC PGM=KS60152P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSUDUMP | SYSOUT=* | － | 出力 | |
| ALTFILE | ADG.ALTLIB(SEQPRTNC) | SHR | 入力 | No.9 と同じメンバ |
| SQHAIDA | TEMP.DAISEQ4J.WORK0700 | SHR | 入力 | DASD09 |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| MDMIKAN | VKAD.MISYUKAN.DTMASTER | SHR | 入力 | 未収管理マスター（推定） |
| OUTFILE | SYSOUT=(E,KS601521,99) | － | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL2 | SYSOUT=(E,KS601522,99) | － | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL3 | SYSOUT=(E,KS601523,99) | － | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |

**処理内容**（KS60152 設計書）

- 帳票の編集は KS60151P と同じ。顧客ごとに優先印刷マスターで出力先を1つに振り分ける。

| 優先印刷マスター | 出力先 | 1行目の店所コード |
| --- | --- | --- |
| 無い | OUTFILE（KS601521、インフォコム）と OUTFIL3（KS601523、インフォコム送付用）の両方 | OUTFILE＝代表扱い店（顧客法人管理マスター CORPZDTN）、OUTFIL3＝発行店 |
| 有る（明細不要以外） | OUTFIL2（KS601522、事業所送付用） | 集約店所（LKN0010）。自店出力の店所・自店所出力の顧客は発行店 |
| 有る（明細不要 '6'） | どこにも出さない | － |

- 2行目に顧客法人管理マスターの集約代表コードを印字する。★ 2ページ目以降は自分の荷主コードになる。

### 5.4 系統C：郵送集約の請求一覧（No.14～27）

系統Cのワークはすべて TEMP.KS60750J.WORKnnnn（DASD09）。業務プログラムのステップには SYSPRINT 等の DD がなく、件数メッセージはジョブログに出る。

#### JCL：No.15　KS60750P

`EXEC PGM=KS60750P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| INFILE | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスターを順次に全件読む |
| OUTFILE | K-WORK0010 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=18、BLKSIZE=9000、SPACE=(9000,(1000,100),RLSE) |

**処理内容**（KS60750 設計書）：顧客法人管理マスターを全件読み、荷主≠集約代表（CORPZAND）のものについて「荷主7・集約代表7・代表扱い店4」を出力。★ 集約代表が空白の荷主も出力される。

#### JCL：No.17　KS60760P

`EXEC PGM=KS60760P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| INFILE | K-WORK0020 | SHR | 入力 | 対応表（集約代表順） |
| OUTFIL1 | K-WORK0030 | (NEW,KEEP,DELETE) | 出力 | FB/18/9000 |
| OUTFIL2 | K-WORK0040 | (NEW,KEEP,DELETE) | 出力 | FB/18/9000 |

**処理内容**（KS60760 設計書）：集約代表が変わるたびに代表自身のレコードを補い、代表・配下それぞれの荷主コードで優先印刷マスターを引いて、有る → OUTFIL1（K-WORK0030）、無い → OUTFIL2（K-WORK0040）に分ける。★ 代表と配下が別のファイルに分かれることがある。明細不要（'6'）は区別しない。

#### JCL：No.18　KS60770P

`EXEC PGM=KS60770P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| INFILE | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | 共通データ |
| OUTFILE | K-WORK0050 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE) |

**処理内容**（KS60770 設計書）：見出しデータ（ID 00）のうち、請求額（運賃＋料金＋消費税＋保険料）≠0 のものだけを出力。店所では絞らない。★ INPUT COUNT は常に 0 と表示される。

#### JCL：No.22、23　KS60780P

`EXEC PGM=KS60780P`

| DD名 | No.22 | No.23 | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| INFILE | K-WORK0090 | K-WORK0090 | 入力 | No.21 の出力。両ステップで同じ |
| TRFILE | K-WORK0060 | K-WORK0080 | 入力 | 顧客リスト1／顧客リスト2 |
| OUTFILE | K-WORK0100 | K-WORK0110 | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE) |

**処理内容**（KS60780 設計書）

- 見出し（請求先番号順）と対応表（荷主コード順）を荷主コード7桁で突き合わせ、一致したものだけを出力する。データIDを 00（代表）／99（配下）に、区分を「集約代表7＋代表扱い店4」に書き換える。仮締は出力しない。
- No.22 は優先印刷マスターに**有る**荷主（→ 事業所用）、No.23 は**無い**荷主（→ エコデリバー用）。INFILE は共通。
- ★ 一致すると両ファイルを1件ずつ進めるため、同じ荷主の2件目以降の請求先（枝番違い）は捨てられる。

#### JCL：No.25、27　KS60790P

`EXEC PGM=KS60790P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| VKKANBS | VK47.KANBASED.DTMASTER | SHR | 入力 | 顧客基本マスター。JOB「DAIMNT3J」で再作成される |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKKONAM | VKAD.KONAMMST.DTMASTER | SHR | 入力 | 荷主名マスター（推定） |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| VETENCD | SEAD.TENSCODE.CDMASTER | SHR | 入力 | DASD11 |
| INFILE | No.25：K-WORK0120／No.27：K-WORK0130 | SHR | 入力 | 突合せ済みの見出し（代表扱い店・集約代表順） |
| OUTFILE | No.25：SYSOUT=(E,KS607902,99)／No.27：SYSOUT=(E,KS607901,99) | － | 出力 | 帳票。RECFM=FA、LRECL=133 |

**処理内容**（KS60790 設計書）

- 集約代表ごとに、顧客基本マスター（KANBASED）・顧客法人管理マスターから代表の名称・住所・口座、店所マスターから発行店の情報を取り、代表あての**請求一覧**（1行＝1請求先の請求額。1ページ30件、最終ページに合計）を出力する。
- No.25（K-WORK0120）＝事業所用（KS607902）、No.27（K-WORK0130）＝エコデリバー用（KS607901）。プログラム・様式は同じ。
- ★ 店住所は先頭14文字しか印字されない。顧客基本マスターに代表がないと、前の代表の住所が残る。420件を超える請求先は一覧に載らない。

### 5.5 系統D：郵送顧客CSV（No.28～31）

#### JCL：No.29　KS60630P

`EXEC PGM=KS60630P`

| DD名 | DSN／指定 | DISP | 入出力 | 備考 |
| --- | --- | --- | --- | --- |
| SYSPRINT | SYSOUT=* | － | 出力 | |
| SYSDBOUT | SYSOUT=* | － | 出力 | |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| INFILE | TEMP.DAISEQ4J.WORK062S | SHR | 入力 | No.11 の出力（系統Bの抽出データ） |
| CSVFILE | SEAD.DAISEQ4J.CSV | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(12000,(8000,2500),RLSE)、DASD11 |

**処理内容**（KS60630 設計書）

- WORK062S の見出しデータ1件（＝請求先1件）ごとに、CSV を1行出力する。先頭に見出し行。
- 列：締め日（期間至）、扱い店（CORPATTN）、請求先顧客コード（荷主7桁）、集約コード（CORPZAND）、取扱（優先印刷マスターに無い＝エコ／有る＝優先／明細不要＝不要）。
- ★ 枝番を出さないため、同じ荷主の複数の請求先は区別できない行になる。扱い店は CORPATTN で、KS60152P の CORPZDTN とは別の項目。

#### No.30、31　MVSCMD1

```
//MVSCMD1  EXEC MVSCMD,PARM='F AUTO1,ASVQ803'
//MVSCMD1  EXEC MVSCMD,PARM='F AUTO1,ASVQ808'
```

- カタログ式プロシージャ MVSCMD（BB）に、オペレーターコマンド文字列を PARM で渡している。
- 発行するコマンドは MODIFY コマンド（F）で、タスク AUTO1 に対して ASVQ803、ASVQ808 を指示する。AUTO1 は自動運転系のタスク、指示内容は後続の配信・転送処理の起動または保留解除と推定されるが、JCLからは判別できない（BB）。
- 2ステップとも DD 文の追加・変更はない。


### 5.6 ソートステップ（キーの意味）

| No | SORTIN → SORTOUT | SORT FIELDS | データ部の位置 | キーの項目 | 目的 |
| --- | --- | --- | --- | --- | --- |
| 2 | DAISEQ1J.WORK0510 → WORK0600 | (54,3,CH,A) | 50～52 | 地名コード SDTBCHCD | KS60130P の地名マスター読込み順 |
| 5 | WORK0610 → WORK0620 | 7項目（5.1） | 1～45 | 配信店・請求先・データID・区分・日付・送り状 | 請求書の印刷順 |
| 16 | K-WORK0010 → 0020 | (8,7,CH,A) | 8～14 | 集約代表コード | KS60760P の代表ごとの処理 |
| 19 | K-WORK0030 → 0060 | (1,7,CH,A) | 1～7 | 荷主コード | KS60780P の突合せキー |
| 20 | K-WORK0040 → 0080 | (1,7,CH,A) | 1～7 | 荷主コード | 同上 |
| 21 | K-WORK0050 → 0090 | (19,8,PD,A) | 15～22 | 請求先番号 SDTASQNO（15～21）＋区分の1バイト目 | 同上。★ キーが1バイト長い（10章 No.13） |
| 24 | K-WORK0100 → 0120 | (33,4,CH,A,26,7,CH,A,51,4,CH,A) | 29～32、22～28、47～50 | 代表扱い店、集約代表（KS60780P が区分に設定）、扱い店 SDTACKTT | KS60790P の代表ごとの印刷 |
| 26 | K-WORK0110 → 0130 | 同上 | 同上 | 同上 | 同上 |

- 可変長（VB）のキー位置は、先頭4バイトのレコード長部（RDW）を含む指定位置から4を引いた位置がデータ部の位置。

### 5.7 IEHPROGM ステップ（まとめ）

| No | ステップ名 | ボリューム | SCRATCH 対象 | 位置づけ |
| --- | --- | --- | --- | --- |
| 1 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600、0610、0620、0630、0631、0632、0641 | 事前削除 |
| 4 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600 | 使用後削除 |
| 6 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0610 | 使用後削除 |
| 7 | SCRATCH | DASD09 | TEMP.DAISEQ4J.WORK0635、0642、0646 | 事前削除 |
| 10 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK062S、0700、0701、0702 | 事前削除 |
| 14 | SCRATCH | DASD09 | TEMP.KS60750J.WORK0010、0020、0030、0040、0050、0060、0070、0080、0090、0100、0110、0120、0130 | 事前削除 |
| 28 | DELETE | DASD11 | SEAD.DAISEQ4J.CSV | 事前削除 |
| 32 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600、0610、0630、0631、0632、0635 | 使用後削除 |
| 33 | DELETE | DASD30 | TEMP.DAISEQ1J.WORK0510 | 入力データの削除 |


---

## 6. 出力物一覧

### 6.1 帳票（電子帳票 SYSOUT クラスE、用紙 99）

| ライター名 | 出力ステップ | 帳票 | 対象 | 1行目の店所コード（配信先） |
| --- | --- | --- | --- | --- |
| KS601511 | No.9 KS60151P（OUTFILE） | 新請求書（特積）控え | 全請求先（明細不要には '#'） | 発行店 |
| KS601512 | No.9 KS60151P（OUTFIL2） | 新請求書（特積）送付用 | 明細不要を除く全請求先 | 集約店所（条件付き） |
| KS601521 | No.13 KS60152P（OUTFILE） | 新請求書（郵送）インフォコム | 郵送対象店所で、優先印刷マスターに無い請求先 | 代表扱い店 |
| KS601523 | No.13 KS60152P（OUTFIL3） | 新請求書（郵送）インフォコム送付用 | 同上（KS601521 と同じ中身） | 発行店 |
| KS601522 | No.13 KS60152P（OUTFIL2） | 新請求書（郵送）事業所送付用 | 郵送対象店所で、優先印刷マスターに有る請求先（明細不要を除く） | 集約店所（条件付き） |
| KS607902 | No.25 KS60790P | 郵送集約 請求一覧（事業所用） | 集約される請求先のうち優先印刷マスターに有るもの、とその代表 | （1行目は改ページのみ。2行目に代表扱い店・集約代表） |
| KS607901 | No.27 KS60790P | 郵送集約 請求一覧（エコデリバー用） | 同上のうち優先印刷マスターに無いもの | 同上 |

- 帳票の様式・印刷イメージは各プログラム設計書を参照（KS60151 6章、KS60152 6章、KS60790 6章）。

### 6.2 データセット出力

| データセット | 作成 | 中身 | JOB内の利用 |
| --- | --- | --- | --- |
| SEAD.DAISEQ4J.CSV | No.29 | 郵送顧客CSV（5列） | なし（No.30・31 のコマンドで後続処理が取り込むと推定） |
| WORK0642、0701 | No.8、12 | 印刷照会マスター更新用 | なし（別JOBでマスター反映と推定） |
| WORK0646、0702 | No.8、12 | 顧客ごとの請求書枚数 | なし |

---

## 7. データセット一覧

### 7.1 恒久データセット（すべて DISP=SHR、読込みのみ）

| DSN | 名称 | 使用ステップ（DD名） | 主な用途 |
| --- | --- | --- | --- |
| ENT.BATCHA.LOD | ロードライブラリ | JOBLIB | |
| VKAD.CHIMEIET.DTMASTER | 地名マスター | No.3（VKCHINM） | 漢字地名 |
| VKAD.SSYUPRNT.DTMASTER | 優先印刷マスター | No.3、9、13、17、29（VKSYUPR） | 配信店変換（No.3）、明細不要・自店所出力・出力先の振分け |
| VKAD.SQSSPRSK.DTMASTER | 印刷照会マスター | No.8、12（VKSEQSK） | SQUPSEQ の元（更新はしない） |
| VKAD.CENTENMS.DTMASTER | 店所マスター | No.8、9、12、13、25、27（VKTENMS） | 店略称・住所・〒・電話（No.8・12 は読むが未使用） |
| SEAD.TENSCODE.CDMASTER | 店所コードマスター | No.8、12、25、27（VETENCD） | 外部手続き LSS0050／LSS0051（BB）が使用と推定 |
| VKAD.BANKMAST.NMMASTER | 銀行マスター | No.9、13、25、27（VKBANKM） | 銀行名・支店名 |
| VKAD.MISYUKAN.DTMASTER | （未収管理と推定） | No.9、13（MDMIKAN） | 外部手続き LKN0010（BB）が使用と推定 |
| VKAD.CORPOMAN.DTMASTER | 顧客法人管理マスター | No.13、25、27、29（VKCORPO）、No.15（INFILE） | 集約代表・代表扱い店・扱い店・法人名 |
| VK47.KANBASED.DTMASTER | 顧客基本マスター | No.25、27（VKKANBS） | 代表の名称・住所・口座 |
| VKAD.KONAMMST.DTMASTER | 荷主名マスター（推定） | No.25、27（VKKONAM） | 請求一覧の荷主名 |
| ADG.ALTLIB(SEQPRTNC) | 自店出力の店所一覧 | No.9、13（ALTFILE） | 送付用の店所コードを集約店所に置き換えない店所 |
| ADG.ALTLIB(SEQTRYTN) | 郵送対象の店所一覧 | No.11（TRYFILE） | 系統B・D の対象店所 |

- 本JOB のプログラムは、どのマスターも更新しない（すべて INPUT で OPEN）。

### 7.2 ワーク・出力データセット

| DSN | VOL | 属性 | スペース |
| --- | --- | --- | --- |
| TEMP.DAISEQ1J.WORK0510（入力） | DASD30 | 別JOBで作成（可変長と推定） | － |
| TEMP.DAISEQ4J.WORK0600、0610、0620 | DASD09 | VB／LRECL指定なし／12000 | CYL(250,200) |
| TEMP.DAISEQ4J.WORK0635、0700 | DASD09 | VB／LRECL指定なし／12000 | (12000,(8000,2500)) |
| TEMP.DAISEQ4J.WORK0642、0701 | DASD09 | FB／120／12000 | (12000,(5,5)) |
| TEMP.DAISEQ4J.WORK0646、0702 | DASD09 | FB／30／6300 | (6300,(100,50)) |
| TEMP.DAISEQ4J.WORK062S | DASD09 | VB／LRECL指定なし／12000 | CYL(300,100) |
| TEMP.KS60750J.WORK0010、0020、0030、0040、0060、0080 | DASD09 | FB／18／9000 | (9000,(1000,100)) |
| TEMP.KS60750J.WORK0050、0090、0100、0110、0120、0130 | DASD09 | VB／LRECL指定なし／12000 | CYL(300,100) |
| SEAD.DAISEQ4J.CSV | DASD11 | VB／LRECL指定なし／12000 | (12000,(8000,2500)) |


---

## 8. 実行条件と異常時の動作

### 8.1 実行条件

| 指定箇所 | 指定 | 動作 |
| --- | --- | --- |
| JOB文 | COND=(9,LT) | いずれかのステップのRCが10以上になった時点で、以降の全ステップを実行せずJOB終了 |

- RC 0～9 は正常扱いで後続へ進む。
- IEHPROGM は SCRATCH 対象が存在しない場合 RC=8 となるが、上記条件によりJOBは継続する。事前削除ステップを成立させるための設定と考えられる。


- 業務プログラムはリターンコードを設定しない（正常時 0）。異常は PL/I の標準処理による異常終了（ABEND）で検知される。

### 8.2 正常終了時に残るデータセット

正常終了後も次のデータセットは削除されず、次回実行時の事前削除まで残る。

| データセット | 次回の削除ステップ |
| --- | --- |
| TEMP.DAISEQ4J.WORK0620 | No.1 |
| TEMP.DAISEQ4J.WORK0642、0646 | No.7 |
| TEMP.DAISEQ4J.WORK062S、0700、0701、0702 | No.10 |
| TEMP.KS60750J.WORK0010～0130（作成した11本） | No.14 |
| SEAD.DAISEQ4J.CSV | No.28 |

### 8.3 異常終了時の状態と再実行

| 異常発生箇所 | 状態 | 再実行の考え方 |
| --- | --- | --- |
| No.2～6 | 共通データ WORK0620 が未完成。入力 WORK0510 は残っている | 先頭から再実行できる（No.1 が途中のワークを削除する） |
| No.7～9（系統A） | WORK0620 は完成。系統Aの帳票が未出力または途中 | No.7 から再実行できる |
| No.10～13（系統B） | 系統Aの帳票は出力済み | No.10 から再実行できる |
| No.14～27（系統C） | 系統A・Bの帳票は出力済み | No.14 から再実行できる |
| No.28～29 | 帳票7種は出力済み。CSV が未作成または途中 | No.28 から再実行できる（WORK062S が必要） |
| No.30～33 | CSV まで完了。コマンド発行・削除が未了 | 未実行のステップのみ実行する |

- **先頭からの再実行と帳票の二重出力**：帳票を出力済みの状態で先頭や途中から再実行すると、同じ帳票が再度 SYSOUT へ出力される。出力済み分の取消しまたは再実行範囲の限定が必要となる。
- **正常終了後の再実行**：No.33 で入力の TEMP.DAISEQ1J.WORK0510 を削除するため、正常終了後は先頭から再実行できない。WORK0620 は残っているので、No.7 以降の再実行は可能である。
- **ステップ名指定のリスタート**：ステップ名が重複している（DELETE×7、SORT×2、SCRATCH×2、KS60144P×2、SORT2×2、KS60780P×2、SORT4×2、KS60790P×2、MVSCMD1×2）ため、ステップ名指定（RESTART=）では対象が一意に決まらない。
- **コマンドの再発行**：No.30、31 を再実行すると同じコマンドが再度発行される。


- **プログラム上の再実行の注意**：KS60144P の SQUPSEQ（WORK0642、0701）は「マスター値＋今回分」なので、再実行で作り直しても二重加算にはならない。ただし、マスターへの反映（別JOB）を済ませた後に再実行すると、反映済みの値に再度加算された内容になる。

---

## 9. ブラックボックス一覧

| 種別 | 名称 | 使用箇所 | 本書での扱い |
| --- | --- | --- | --- |
| カタログ式PROC | USORTG | No.2、5 | ソート |
| カタログ式PROC | USORTM | No.16、19～21、24、26 | ソート |
| カタログ式PROC | MVSCMD | No.30、31 | オペレーターコマンドの発行 |
| 運用系タスク | AUTO1（ASVQ803、ASVQ808） | No.30、31 | MODIFY コマンドの受け側。CSV 等の後続処理と推定 |
| 外部手続き | LKN0010 | No.9、13（KS60151P、KS60152P） | 店所コード → 集約店所コード |
| 外部手続き | LSS0050 | No.8、12（KS60144P） | 発行店コード → 店名 |
| 外部手続き | LSS0051 | No.25、27（KS60790P） | 扱い店コード → 店名 |
| パラメータメンバ | SEQPRTNC、SEQTRYTN | No.9、11、13 | 用途は判明（7.1）。登録内容は不明 |
| マスター | VKAD.KONAMMST、VKAD.MISYUKAN、SEAD.TENSCODE | 7.1 | レイアウト未入手 |
| 別JOB | TEMP.DAISEQ1J.WORK0510 の作成元 | No.2 | DAISEQ1J と推定 |
| 別JOB | SQUPSEQ、SEQPAGS、CSV の取込み先 | － | 不明 |

---

## 10. 留意事項・要確認事項

### 10.1 JCL 上の問題（初版から継続）

#### No.1 正常時でも RC=8 のステップが発生する

- No.1、14、32 は本JOB で作らないワーク（WORK0630～0632、0641、K-WORK0070）や削除済みのワークを SCRATCH 対象にしており、正常時でも RC=8 になり得る。JOB の最大 RC では正常・異常を判別できない。

#### No.2 入力データを最終ステップで削除している

- No.33 で TEMP.DAISEQ1J.WORK0510 を削除するため、正常終了後は先頭からの再実行ができない。

#### No.3 ステップ名の重複

- DELETE×7、SORT×2、SCRATCH×2、KS60144P×2、SORT2×2、KS60780P×2、SORT4×2、KS60790P×2、MVSCMD1×2。ステップ名指定のリスタートができない。

#### No.4 他JOB名を持つワーク

- 系統C のワークは TEMP.KS60750J.WORKnnnn。KS60750J という別 JOB と同時に実行すると競合する。

#### No.5 SYSPRINT 等の DD がないステップ

- 系統C の業務プログラム（No.15～27）は件数メッセージがジョブログに出る。

#### No.6 LRECL 指定のない可変長ファイル・CSV

- CSV（SEAD.DAISEQ4J.CSV）も LRECL の指定がなく、プログラム側にも指定がない（KS60630 設計書）。

#### No.7 Y2P による世紀判定

- No.5 の日付キー。設定値の確認が必要。

#### No.8 顧客基本マスターの再作成との重なり

- VK47.KANBASED.DTMASTER は JOB DAIMNT3J で再作成される。本JOB の No.25・27 と重ならないこと。

### 10.2 プログラムをまたがる問題（第2版で追加）

#### No.9 配信店 1025 の扱い

- KS60130P が特定5荷主の配信店を 1025 に固定し、KS60144P が 1025 を 1001 に読み替える。並び順は 1025 の位置のままのため、KS60144P の印刷照会マスター更新用データ（SQUPSEQ）に 1001 が2件出る（KS60144 設計書 10章 No.1）。

#### No.10 「明細不要」「優先印刷」の扱いがプログラムごとに違う

| プログラム | 優先印刷マスターに無い | 有る | 有る・明細不要（'6'） |
| --- | --- | --- | --- |
| KS60151P（系統A） | 控え・送付用 | 控え・送付用 | 控え（'#' 付き）のみ |
| KS60152P（系統B） | インフォコム2種 | 事業所送付用 | **出力しない** |
| KS60630P（系統D） | 取扱＝エコ | 取扱＝優先 | 取扱＝不要（**CSV には出る**） |
| KS60760P（系統C） | エコデリバー用 | 事業所用 | **事業所用**（区別しない） |

- 明細不要の顧客が、系統C の事業所用請求一覧には載る一方、系統B の請求書には出ない。業務上の意図の確認が必要。

#### No.11 郵送集約のグループが分かれる・欠ける

- KS60760P の振分けは荷主ごとのため、代表と配下が事業所用・エコデリバー用に分かれる（KS60780 設計書 6.6）。
- KS60780P の1対1マッチングにより、同じ荷主の2件目以降の請求先は請求一覧に載らない。
- 代表の請求額が0（KS60770P で除外）または仮締の場合、代表の行がない一覧になる。
- KS60750P で集約代表が空白のまま抽出された荷主は、KS60790P で「前の代表の住所」が残る見出しになる。

#### No.12 同じ請求先が複数の帳票に出る

- 系統A は全請求先、系統B は郵送対象店所の請求先を出力するため、郵送対象の請求先は特積の請求書（KS601511／12）と郵送の請求書（KS601521～23）の両方に出る。系統C の請求一覧にも、集約対象なら載る。
- 系統B は訂正明細を除いたデータ、系統A は訂正を含むデータから作るため、同じ請求先でも明細と計が異なり得る（KS60135 設計書 5.2）。

#### No.13 SORT3 のキー長

- No.21 のキー（データ部 15～22、8バイト PD）は請求先番号（7バイト）より1バイト長く、区分の1バイト目を含む。通常は空白なので請求先番号順になると考えられるが、確認が必要（KS60770 設計書 6.4）。

#### No.14 系統B の対象判定

- KS60135P は荷主コード7桁の区切りの先頭レコードの配信店で、郵送対象かどうかを決める。配信店の境目で同じ荷主コードが続くと、後ろの配信店の分も前の判定に従う（KS60135 設計書 7.4）。

#### No.15 帳票上の不具合（主なもの）

| 帳票 | 内容 | 設計書 |
| --- | --- | --- |
| KS601511～12、KS601521～23 | 元払計・着払計の行は印字されない | KS60151 5.5 |
| KS601521～23 | 2ページ目以降の集約代表コードが自分の荷主コードになる | KS60152 5.2 |
| KS607901～02 | 店住所が先頭14文字で切れる | KS60790 5.4 |
| KS607901～02 | 421件目以降の請求先は一覧に載らないが合計には入る | KS60790 5.5 |

#### No.16 後続で使われない出力

- SQUPSEQ（印刷照会マスター更新用）、SEQPAGS（請求書枚数）、CSV は本JOB 内で使われない。取り込む別JOB の確認が必要。No.8 と No.12 の SQUPSEQ は同じマスター値を起点にしているため、両方を置換で反映すると片方の加算が失われる（KS60144 出力ファイル解説 8章）。

---

## 11. 関連設計書

| 設計書 | 内容 |
| --- | --- |
| KS60130_詳細設計書.md | 地名付加・配信店変換 |
| KS60135_詳細設計書.md | 郵送対象店所の抽出 |
| KS60144_詳細設計書.md／KS60144_出力ファイル解説.md | 請求書行データ作成、出力3ファイルの解説 |
| KS60151_詳細設計書.md | 新請求書（特積）、印刷イメージ |
| KS60152_詳細設計書.md | 新請求書（郵送）3種、印刷イメージ |
| KS60630_詳細設計書.md | 郵送顧客 CSV、CSV イメージ |
| KS60750_詳細設計書.md | 郵送集約の対応表 |
| KS60760_詳細設計書.md | 代表の補完と振分け |
| KS60770_詳細設計書.md | 見出しの抽出 |
| KS60780_詳細設計書.md | 見出しと対応表の突合せ（No.22／23 の違い） |
| KS60790_詳細設計書.md | 郵送集約の請求一覧、印刷イメージ（30件超を含む） |

以上
