# KS60760 移行設計書 確認事項

| 項目 | 内容 |
|---|---|
| 対象資料 | ① クラス設計書 KS60760「合計請求書該当顧客データ分類」（非表示シート・処理フローシートは対象外）<br>② テーブル定義 KS60750J_0030TD（優先印刷マスターに有る荷主＝現行 WORK0030）と DDL<br>③ テーブル定義 KS60750J_0040TD（優先印刷マスターに無い荷主＝現行 WORK0040）と DDL |
| 突合せ基準 | 現行ソース KS60760P（PL/I）、コピーブック SSYUPRNT、JCL DAISEQ4J（SORT1 L629〜L643、KS60760P L644〜L656、SORT2 L665〜L694）、KS60750 のレビュー指摘（入力 0010TD） |
| 記述ルール | 設計書作成ルール（バッチ抜粋） |
| 作成日 | 2026-10-15（初版）／2026-10-22（記述ルールを反映して改訂） |
| 関連資料 | 誤りの指摘は「KS60760_移行設計書_レビュー指摘.md」 |

## 凡例

| 区分 | 意味 |
|---|---|
| 【漏れ】 | ルールで記述することになっている項目が、記載されていないもの |
| 【要確認A】 | 処理に必要な記載が欠けているもの（【漏れ】を除く） |
| 【要確認B】 | 処理結果は変わらないが、ルールの書き方に合っていないもの |
| 【要確認C】 | 移行に伴う意図的な変更の可能性があるもの、または前提が読み取れないもの |

- 根拠は、ソースを「src L○○」、JCL を「JCL L○○」、ルールを「ルール X.Y」「ルール X.Y.Z」と書きます。
- テーブル定義の指摘番号（T30-n、T40-n）は、他のプログラムの指摘から参照されているため、前回の番号を引き継いでいます（欠番があります）。0040TD は 0030TD と列構成が同じなので、同じ事象は「T30-n と同じ」と書きます。
- 次のものは対象外です。
  - 非表示シート（処理フロー生成定義）
  - ルールで記述しなくてもよい項目：処理フロー図（ルール 5.2）、メソッド名・物理名（ルール 5.4、8.1）、処理の項番（ルール 2.5「可能な限り」）、"" / 0 / false の初期値（ルール 5.5）
  - 軽微な指摘（改版履歴・更新履歴、ログの文言・桁揃え、論理名・備考だけの誤り、条件の「==」「≠」など）
- 出力 0030TD・0040TD の事前削除は、バッチ設計書 DAISEQ4J の処理フローで行うため、指摘していません。
- ルール 5.3・5.6・5.7 が参照する3章はバッチ抜粋に無いため、プロパティ一覧・DB更新仕様・マッピング仕様は2章のルールと現行一致で確認しています。
- 指摘番号はレビュー指摘（誤り）と通し番号です。

## 現行の処理（要点）

| 項目 | 現行の仕様 |
|---|---|
| 入力 | WORK0020（KS60750 の出力を SORT1 で集約代表コード順に並べたもの。JCL L641、L646） |
| 区切り | 集約代表コード（INDAIH）が変わるたびに、代表のレコード（荷主コード＝集約代表＝INDAIH、扱い店＝まとまりの先頭の INTNCD）を1件作る（src L84〜L88、L95） |
| 振分け | 代表のレコードは代表コード、集約される荷主は自分の荷主コード（INKOCD）で優先印刷マスターを引き、有る→WORK0030、無い→WORK0040（src L89〜L101） |
| 後続 | SORT2（荷主コード順。JCL L677、L692）→ KS60780（1対1の突き合わせで、同じ荷主コードの2件目は使わない） |

## 件数

| 資料 | シート | 漏れ | 要確認A | 要確認B | 要確認C | 計 |
|---|---|---:|---:|---:|---:|---:|
| ① | クラス概要 | 0 | 1 | 0 | 0 | 1 |
| ① | プロパティ一覧 | 0 | 0 | 0 | 1 | 1 |
| ① | メソッド一覧 | 1 | 0 | 0 | 0 | 1 |
| ① | メソッド詳細 | 1 | 1 | 2 | 1 | 5 |
| ① | DB更新仕様 | 0 | 0 | 0 | 1 | 1 |
| ② | KS60750J_0030TD | 1 | 0 | 0 | 2 | 3 |
| ③ | KS60750J_0040TD | 1 | 0 | 0 | 2 | 3 |
| **合計** | | **4** | **2** | **2** | **7** | **15** |

マッピング仕様は確認事項なし。

---

# ① クラス設計書 KS60760

## クラス概要

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| CL-1 | 【要確認A】 | B5〜B7 | 集約代表ごとに代表のレコード（荷主コード＝集約代表、扱い店＝まとまりの先頭の扱い店）を作ること、代表と荷主をそれぞれの荷主コードで振り分けること、入力が集約代表コード順である前提が書かれていない（src L84〜L98）。 | 「0010TD を集約代表コード順に読み、集約代表ごとに代表のレコードを作り、代表と各荷主をそれぞれの荷主コードで優先印刷マスターを引いて 0030TD／0040TD に登録する。」と書く。 |

## プロパティ一覧

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| PR-3 | 【要確認C】 | AV28・AV29、AY28 | 請求書優先印刷マスターのＥＲ図・ＳＱＬ「2」の内容とキー列の型が読み取れない。現行のキーは CHAR(7) のまま渡し、空白の代表コードでも「無い」になるだけ（src L90、L98）。キー列が数値型だと空白で変換エラーになる（推測）。 | キー列を7桁の文字型で比較し、空白は「無い」として扱うことを書く。 |

## メソッド一覧

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| ML-1 | 【漏れ】 | AI4 | メイン処理の機能説明が空欄（ルール 5.4）。 | メソッドの概要（代表のレコードの作成と、優先印刷マスターの有無による振分け）を書く。 |

## メソッド詳細

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| MD-2 | 【要確認A】 | F35、G54 | 判定が「請求書優先印刷マスターの取得件数 > 0件」で、マスター1・2 のどちらか書かれていない。 | F35 を「データ.請求書優先印刷マスター1の取得件数 > 0件」、G54 を「…マスター2の…」とする。 |
| MD-3 | 【要確認C】 | F32、F47〜F48、DB更新仕様 V6・V7 | 集約代表が空白のまとまりの扱いが無い。現行は空白どうしを等しいとみなし、荷主コード・集約代表がともに空白の代表のレコードを WORK0040 に書く（src L84〜L93）。NULL や空文字で持つと比較・登録の結果が変わる（推測）。 | 代表コードは7桁の固定長文字で比較・登録し（NULL・空文字にしない）、空白のまとまりを現行どおり処理するかを書く。 |
| MD-4 | 【漏れ】 | C10〜R13 | ループ変数 Y が変数に無い（ルール 5.5）。 | 変数に Y（整数型）を追加する。 |
| MD-5 | 【要確認B】 | R10、R11 | 件数カウンターの型が数値型（小数部あり）。整数は整数型（ルール 2.12）。 | 整数型にする。 |
| MD-6 | 【要確認B】 | E25、F43、G62、E66 | 分岐の終わりを「END IF」とかぎ括弧で書いている（ルール 2.7 は『END IF』）。「次ループへ」も『』で囲まれていない（ルール 2.6）。 | 『END IF』『次ループへ』とする。 |

## DB更新仕様

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| DB-1 | 【要確認C】 | V8・V16 | 代表のレコードの扱い店を文字のまま写す。現行は PIC'(4)9' への代入で、数字以外なら異常終了する（src L88）。 | 数字チェックをしないことを意図的な変更とするか、現行と同じく数字4桁以外をエラーとするかを決める。 |

---

# ② テーブル定義 KS60750J_0030TD（顧客集約コードワークデータ1）

## テーブル定義・ＥＲ図・ＳＱＬ・DDL

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| T30-2 | 【要確認C】 | テーブル定義 C4、A32〜A33 | 優先印刷マスターに有る荷主の行（現行 WORK0030 → 事業所用）であることが読み取れず、0040TD と取り違えるおそれがある。同じ荷主コードが2件入りうることも書かれていない。 | テーブル説明に、内容（有る荷主・事業所用）と、同じ荷主コードが2件入りうることを書く。 |
| T30-7 | 【要確認C】 | ＥＲ図・ＳＱＬ C10 | 現行の SORT2 は EBCDIC（空白＜英字＜数字）、DB の ORDER BY は空白＜数字＜英字になる。荷主コード・集約代表に英字が入ると順が変わる（JCL L677）。 | 荷主コード・集約代表が数字と空白だけであることを確認する。 |
| T30-8 | 【漏れ】 | ＥＲ図・ＳＱＬ B4 | 1番の SQL が全件取得で、ユニークキーで取得する SQL が無い（ルール 7.1）。 | 1番に ID で1件取得する SQL を書き、全件取得を2番にする（参照する KS60780 の番号も合わせる）。 |

---

# ③ テーブル定義 KS60750J_0040TD（顧客集約コードワークデータ2）

## テーブル定義・ＥＲ図・ＳＱＬ・DDL

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| T40-2 | 【要確認C】 | テーブル定義 C4、A32〜A33 | T30-2 と同じ（優先印刷マスターに無い荷主の行＝現行 WORK0040 → エコデリバー用。読込エラーと空白の代表のレコードもここに入る。src L66〜L69、L93）。 | T30-2 と同じ。 |
| T40-7 | 【要確認C】 | ＥＲ図・ＳＱＬ C10 | T30-7 と同じ（JCL L692）。 | T30-7 と同じ。 |
| T40-8 | 【漏れ】 | ＥＲ図・ＳＱＬ B4 | T30-8 と同じ（ルール 7.1）。 | T30-8 と同じ。 |

---

# 参考：現行の挙動を踏襲するか確認が必要な事項

| No | 現行の挙動 | 確認事項 |
|---|---|---|
| B-1 | マスターの読込みは KEY 条件で受けるため、該当なし以外のエラーでも「無い」として WORK0040 に入る（src L66〜L69）。 | 設計ではエラー終了になる。改善として受け入れてよいか確認する。 |
| B-2 | 明細不要（UPRNASKB＝'6'）の顧客も、マスターに有れば WORK0030 に入る（有無だけで判定）。 | 設計も同じ。踏襲でよいか業務側に確認する。 |
| B-3 | 代表のレコードの扱い店は、まとまりの先頭の荷主の値（src L88）。 | 設計も同じ。先頭の決まり方は PR-1 の並び順による。 |
| B-4 | 代表と集約される荷主が、振分けで別々のファイルに分かれることがある。 | 設計も同じ。業務上それでよいか確認する。 |
| B-5 | SORT1・SORT2 に EQUALS の指定が無く、同じキーの中の順は USORTM の既定による（JCL L641、L677、L692）。 | PR-1・T30-6 の並び順は、EQUALS で動く場合の現行と同じになる。運用の既定を確認する。 |
