# KS60750 移行設計書 確認事項

| 項目 | 内容 |
|---|---|
| 対象資料 | ① クラス設計書 KS60750「合計請求書該当顧客データ出力」（非表示シート・処理フローシートは対象外）<br>② テーブル定義 KS60750J_0010TD（KS60750 の出力、KS60760 の入力）<br>③ テーブル定義 VKCORPO（顧客法人管理マスタ。KS60750 の入力。KS60152・KS60630・KS60790 と共有） |
| 突合せ基準 | 現行ソース KS60750P（PL/I）、コピーブック CORPOMAN、JCL DAISEQ4J（KS60750P L622〜L628、SORT1 L629〜L643）、KS60760P（後続） |
| 記述ルール | 設計書作成ルール（バッチ抜粋） |
| 作成日 | 2026-10-15（初版）／2026-10-22（記述ルールを反映して改訂） |
| 関連資料 | 誤りの指摘は「KS60750_移行設計書_レビュー指摘.md」 |

## 凡例

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

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

## 現行の処理（要点）

| 項目 | 現行の仕様 |
|---|---|
| 入力 | VKCORPO（VSAM KSDS）を、条件なしで全件、荷主コードの昇順に読む（src L68、L82） |
| 抽出 | CORPNICD ≠ CORPZAND（CHAR(7) の比較）。CORPZAND が空白の顧客も出力する（src L71） |
| 出力 | 荷主コード・集約代表コード・代表扱い店（CORPZDTN、PIC'(4)9'）の18バイト（src L74〜L78）。出力先 WORK0010 は毎回空から作る（JCL L605、L624） |
| 後続 | SORT1（集約代表コード順。JCL L641）→ KS60760 |

## 件数

| 資料 | シート | 漏れ | 要確認A | 要確認B | 要確認C | 計 |
|---|---|---:|---:|---:|---:|---:|
| ① | クラス概要 | 0 | 1 | 0 | 0 | 1 |
| ① | メソッド一覧 | 1 | 0 | 0 | 0 | 1 |
| ① | メソッド詳細 | 1 | 0 | 2 | 1 | 4 |
| ① | DB更新仕様 | 0 | 0 | 0 | 1 | 1 |
| ② | KS60750J_0010TD | 1 | 0 | 0 | 1 | 2 |
| ③ | VKCORPO | 0 | 0 | 0 | 3 | 3 |
| **合計** | | **3** | **1** | **2** | **6** | **12** |

プロパティ一覧・マッピング仕様は確認事項なし。

---

# ① クラス設計書 KS60750

## クラス概要

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| CL-1 | 【要確認A】 | C6〜D8 | 抽出条件だけで、登録する3項目（荷主コード・集約代表コード・代表扱い店）と、CORPZAND が空白の顧客も出力対象になることが書かれていない（src L71〜L78）。 | 「VKCORPO を全件読み、CORPNICD ≠ CORPZAND（CORPZAND が空白の顧客を含む）の顧客の荷主コード・集約代表コード・代表扱い店を 0010TD に登録する。」と書く。 |

## メソッド一覧

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| ML-1 | 【漏れ】 | AI4 | メイン処理の機能説明が空欄（ルール 5.4）。 | メソッドの概要を書く。 |

## メソッド詳細

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| MD-1 | 【要確認C】 | E32 | 抽出条件の比較で、空白・NULL の扱いが書かれていない。現行は CHAR(7) の比較で、CORPZAND が空白の顧客も出力し、OUTDAIH は空白7桁になる（src L71、L76）。NULL や空文字だと抽出と後続の並び・区切りが変わる（推測）。 | 「7桁の固定長文字で比較し、CORPZAND が空白の顧客も出力して OUTDAIH に空白7桁を設定する」と書く。 |
| MD-2 | 【漏れ】 | C10〜R11 | ループ変数 y が変数に無い（ルール 5.5）。 | 変数に y（整数型）を追加する。 |
| MD-3 | 【要確認B】 | D29〜D37 | 繰り返しの範囲が罫線で示されておらず、ループ内の「y ← y + 1」「次のループへ」が条件と同じ列にある（ルール 2.7）。「次のループへ」が『』で囲まれていない（ルール 2.6）。 | 罫線で範囲を示し、ループ内の処理を1つ右の列に書き、『次のループへ』とする。 |
| MD-4 | 【要確認B】 | F22、D49 | F22 は「引数」と値を同じセルに書いている。D49「スタックトレース出力処理」はメソッド一覧に無く、どのクラスのメソッドか読めない（ルール 2.17）。 | F22 は1つ右のセルに「引数」、その右に値を書く。D49 は「クラス名[ID].メソッド名 をコールする。」とする。 |

## DB更新仕様

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

---

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

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

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| T10-5 | 【要確認C】 | ＥＲ図・ＳＱＬ D16 | 現行の SORT1 は EBCDIC（空白＜英字＜数字）、DB の ORDER BY は空白＜数字＜英字になる。集約代表コードに英字が入ると順が変わる（JCL L641）。 | 集約代表コードが数字と空白だけであることを確認する。 |
| T10-6 | 【漏れ】 | ＥＲ図・ＳＱＬ B4 | 1番の SQL が全件取得で、ユニークキーで取得する SQL が無い（ルール 7.1）。 | 1番に ID で1件取得する SQL を書き、全件取得を2番以降にする（参照する KS60760 の番号も合わせる）。 |

---

# ③ テーブル定義 VKCORPO（顧客法人管理マスタ）

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

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| TC-2 | 【要確認C】 | 移行後の定義 A27〜L27 | 更新履歴 No.2 で削除した CORPTRMD が列定義に残っており、DDL に列が残るのか読み取れない。 | 列定義から削除するか、「移行時のみの一時列」と書く。 |
| TC-5 | 【要確認C】 | 移行後の定義 J9〜J28 | CORPZAND・CORPZDTN を空白のまま移行するかが書かれていない。KS60750 の抽出（src L71）のほか、KS60152・KS60630 も CORPZAND を出力に使うので、NULL や空文字にすると結果が変わる。 | 空白は空白（NCHAR(7)／(4)）のまま移行し、CORPZDTN は先頭ゼロ付きの数字4桁とする、と書く。 |
| TC-6 | 【要確認C】 | 移行後の定義 B25〜V25、B28〜V28 | CORPPUMD・CORPUYMD を CHAR(6) から NCHAR(8) にするが、変換方法が無く、変換前の桁数（P25・P28）も 8 になっている（CORPOMAN L20、L23）。SQL「2.」の比較結果が変換方法で変わる。KS60750 は使わない。 | P25・P28 を 6 に直し、6桁→8桁の変換方法（世紀、空白の扱い）を書く。 |

---

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

| No | 現行の挙動 | 確認事項 |
|---|---|---|
| B-1 | 集約代表（CORPZAND）がマスターに存在するかは確認しない。 | 設計も同じ。踏襲してよいか確認する。 |
| B-2 | SORT1 に EQUALS の指定が無く、同じ集約代表の中の順は USORTM の既定による（JCL L641）。 | T10-3 の並び順は、EQUALS で動く場合の現行と同じになる。運用の既定を確認する。 |
