# KS60790 移行設計書 確認事項

| 項目 | 内容 |
|---|---|
| 対象資料 | クラス設計書（帳票）KS60790「請求書（鑑）配信データ作成」（非表示シート・処理フローシートは対象外） |
| 突合せ基準 | 現行ソース KS60790P（PL/I）、コピーブック SQALLHED・CORPOMAN・DDPTENMS（KANBASED・BANKMAST は KS60790 詳細設計書の付録C・付録F）、JCL DAISEQ4J（No.25 L748〜L760、No.27 L780〜L792） |
| 記述ルール | 設計書作成ルール（バッチ抜粋） |
| 前提 | 帳票は A-SPOOL 経由で作成し、テキスト形式（1行133バイト＝ASA＋132桁、Shift_JIS、SO/SI なし）で出力する |
| 帳票イメージ | 「KS60790_帳票イメージ_KS607902_KS607901.pdf」を参照 |
| 作成日 | 2026-10-15（初版）／2026-10-21（記述ルールを反映して改訂） |
| 関連資料 | 誤りの指摘は「KS60790_移行設計書_レビュー指摘.md」 |

## 凡例

| 区分 | 意味 |
|---|---|
| 【漏れ】 | ルールで記述することになっている項目が、記載されていないもの |
| 【要確認A】 | 処理に必要な記載が欠けているもの（【漏れ】を除く） |
| 【要確認B】 | 処理結果は変わらないが、ルールの書き方に合っていないもの |
| 【要確認C】 | 移行に伴う意図的な変更の可能性があるもの、前提が読み取れないもの、または現行との違いが小さく対応を確認するもの |

- 根拠は、ソースを「src L○○」、JCL を「JCL L○○」、ルールを「ルール X.Y」「ルール X.Y.Z」と書きます。帳票の桁位置は ASA を除いた「印字1〜132桁」で書きます。
- 次のものは対象外です。
  - 非表示シート（処理フロー生成定義）
  - ルールで記述しなくてもよい項目：処理フロー図（ルール 5.2）、メソッド名・物理名（ルール 5.4、8.1）、処理の項番（ルール 2.5「可能な限り」）、"" / 0 / false の初期値（ルール 5.5）
  - 軽微なルール違反（先行開発で許可されていた書き方。条件の「==」「≠」など）
- ルール 5.3・5.6・5.7 が参照する3章はバッチ抜粋に無いため、プロパティ一覧・DB更新仕様・マッピング仕様は2章・6章・11章のルールと現行一致で確認しています。
- 指摘番号はレビュー指摘（誤り）と通し番号です。

## 現行の処理（要点）

| 項目 | 現行の仕様 |
|---|---|
| 実行 | 同じプログラムを2回実行する。No.25：WORK0120（事業所用）→ SYSOUT=(E,KS607902,99)、No.27：WORK0130（エコデリバー用）→ SYSOUT=(E,KS607901,99) |
| 区切り | 入力（SORT4：代表扱い店 → 集約代表 → SDTACKTT）の並びのまま、集約代表（SDTASPA1 の1〜7桁）が変わるところで区切る（src L316〜L317、L502） |
| マスター | VKCORPO・VKKANBS は集約代表、VKTENMS は代表扱い店（SDTASPA1 の8〜11桁）、VKBANKM は SDTABANK＋KAADATCD(1)、VKKONAM は請求先の荷主コードで読む。VKKANBS に該当が無いときは見出しを上書きしない（src L317〜L419） |
| 印刷 | 1ページ30件、最大420件。毎ページ見出し（LST1〜LST9、LSTDMA）と明細（LSTA）。最終ページだけ空行（LSTDMB）で埋めて合計行（LSTB）（src L499〜L588） |
| メッセージ | `<<< KS60790P BANK ERROR = `∥件数（src L593） |

## 本件の方針

- 帳票は1行133文字（ASA＋132桁）に納めること。
- 帳票設計は、帳票構造体として別ファイル（帳票構造体設計書、ルール 11.1〜11.3）で設計すること。
- 上の2点にかかわる指摘（行の長さ・桁位置・項目の桁数・SO/SI の位置の空白、帳票レイアウト・帳票項目仕様シートの帳票構造体としての記述）は、帳票構造体設計書を作るときに合わせて直すものとして、指摘から除外した。
- ルール 6.3.2 のコンストラクタの引数「ＪＯＢ名」は、指摘から除外した。
- 現行との違いのうち、帳票の大勢に影響のないものは確認事項（【要確認C】）とした。

## 件数

| シート | 漏れ | 要確認A | 要確認B | 要確認C | 計 |
|---|---:|---:|---:|---:|---:|
| 表紙・改版履歴 | 0 | 0 | 1 | 0 | 1 |
| クラス概要 | 1 | 1 | 0 | 2 | 4 |
| プロパティ一覧 | 0 | 1 | 0 | 0 | 1 |
| メソッド一覧 | 1 | 1 | 1 | 0 | 3 |
| メソッド詳細 | 2 | 5 | 6 | 10 | 23 |
| マッピング仕様 | 0 | 2 | 2 | 4 | 8 |
| 帳票レイアウト | 0 | 1 | 0 | 0 | 1 |
| **合計** | **4** | **11** | **10** | **16** | **41** |

DB更新仕様・帳票項目仕様は確認事項なし。

---

# クラス設計書（帳票）KS60790

## 表紙・改版履歴

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| HY-1 | 【要確認B】 | 改版履歴 C4 | 第1版の日付が作成日（2026/6/30）。第1版はレビュー完了直後とする（ルール 2.3）。 | 第1版の日付をレビュー完了日にする。今回の修正は第1版に含める。 |

## クラス概要

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| CL-1 | 【漏れ】 | B5 | 機能名だけで、処理の概要が無い（ルール 5.1）。2回実行して帳票 KS607902／KS607901 を作ること、集約代表が変わるごとに1つの帳票にすること、1ページ30件・420件まで・最終ページに合計行が読み取れない（JCL L748〜L760、L780〜L792、src L316〜L317、L499〜L588）。 | 「請求明細ヘッダーワークデータを読み、集約代表ごとに見出しをマスターで編集し、請求先を1ページ30件で印字して最終ページに合計行を出す。事業所用（0100TD→KS607902）とエコデリバー用（0110TD→KS607901）で2回実行する。」と書く。 |
| CL-2 | 【要確認C】 | AS9 | 現行の荷主名マスター VKKONAM（KONINM 14バイト。src L37〜L40、L551〜L554）が無く、VKCUSTM の顧客略名（漢字）で置き換えている。印字される名前が変わる可能性がある。 | 置き換えが決定事項なら、VKKONAM のどの項目に当たるかを書く。 |
| CL-3 | 【要確認C】 | AS5 | 一覧の扱い店名は、現行は外部手続き LSS0051（VETENCD を参照。JCL L754、L786）の結果の1〜9桁＋14桁目（src L560〜L562）。設計は RDTENS で代用しているが、そのことが書かれていない。 | RDTENS で代用するなら、LSS0051 の置き換えであることと、同じ値になることを書く。 |
| CL-4 | 【要確認A】 | B5、AR5〜BN11 | 同じクラスを2回実行し帳票ID が違う（SYSOUT=(E,KS607902,99)／(E,KS607901,99)。JCL L760、L792）が、帳票ID・周期と、バッチ帳票管理マスタ一覧に STEP ORDER 別に2件記入することが読み取れない（ルール 6.3）。 | 処理機能ID KS60790、帳票ファイル名 "OUTFILE"、JOB名 DAISEQ4J、STEP ORDER、帳票ID（KS607902／KS607901）、周期 99 を2件記入し、どのステップがどの帳票かを書く。 |

## プロパティ一覧

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| PR-6 | 【要確認A】 | AY33 | 条件②「変数.加入区分コード」の元の KAADATCD は4回の繰返し項目だが、1番目を使うことが書かれていない（src L479）。 | 「条件②: 変数.加入区分コード（KAADATCD(1)）」と書き、メソッド詳細の取得元も (1) にする。 |

## メソッド一覧

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| ML-1 | 【漏れ】 | AI4〜AI13 | 機能説明がすべて空欄（ルール 5.4）。 | メソッドの概要を書く。 |
| ML-2 | 【要確認B】 | P7、P8 | 機能名とメソッド詳細でのコールの名前が違う（P7「ヘッダーデータ編集」→ D128「ヘッダーデータ編集処理」、P8「合計金額計算」→ D133「合計金額計算処理」）（ルール 2.17、5.4）。 | 機能名とコールの名前をそろえる。 |
| ML-3 | 【要確認A】 | P13 | 「２バイト文字追加処理」がどのメソッドからもコールされていない。No.7・No.8 は「スキャンして…追加する」と書くだけで、No.9 は独自に詰めている（メソッド詳細 D486〜D498、D551〜D553、E580〜G598）。 | 使うなら各箇所を「２バイト文字追加処理 をコールする」と書き、使わないなら削除する。 |

## メソッド詳細

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| MD-6 | 【要確認C】 | No.1 F69 | 銀行エラー件数に戻り値を代入しており、最後のグループの件数しか残らない。現行の NCNT は全グループの累計（src L215、L493、L593）。 | 「変数.銀行エラー件数 ← 変数.銀行エラー件数 + 荷主グループ単位処理.戻り値 をセット」にする。 |
| MD-8 | 【要確認C】 | No.2 R99、R100 | 空白行の型が STLSTB、小計行の型が STLSTDMB で、マッピング仕様（空白行設定＝STLSTDMB、小計行設定＝STLSTB）と逆。 | 空白行＝STLSTDMB、小計行＝STLSTB にする。 |
| MD-12 | 【要確認C】 | No.4 F316〜G318、E375〜E384 | 顧客〒が '0000000'・空白のとき、店所マスターに無いとき・VETNPSNA が空のときに空白にしている。現行は常に編集するので「   -    」「〒   -    」と印字される（src L333〜L336、L458、L460、L466〜L467）。 | 現行どおり常に編集するか、空白にするかを決めて書く。 |
| MD-14 | 【要確認C】 | No.7 D485〜D498 | 住所の各部分の間に空白を入れていない。現行は都道府県・市区町村・大字の後にそれぞれ全角1文字分空ける（部分が空でも空ける。src L607、L618、L629）。 | 各部分の追加の後に「変数.住所組み立てバッファ に全角スペース1文字を追加する」を入れる。 |
| MD-17 | 【要確認A】 | No.3 G275、No.4 E314 | 表記の誤り。G275「変数.顧客住所３を連結した文字列」（「行」が無い）、E314 に「の場合」が無い。 | 「顧客住所３行」「の場合」を補う。 |
| MD-18 | 【漏れ】 | No.2 AK86、No.4 AK301、No.6 AK432 | 戻り値が型だけで論理名が無い（ルール 5.5）。 | 「銀行マスター未発見件数（数値型）」「銀行エラー件数（数値型）」「法人種別プレフィックス（文字型）」とする。 |
| MD-19 | 【漏れ】 | No.2〜No.10 のエラー処理（A182、A294、A388、A425、A466、A506、A558、A607、A632） | エラー処理が空欄（ルール 5.5）。 | エラー時の処理（メイン処理のエラー処理に移るなど）を書く。 |
| MD-20 | 【要確認A】 | No.1 F30〜G32、F41〜G43 | 繰り返しの前の「Y ← 1」とループ内の「Y ← Y + 1」が無く、終わらない（ルール 2.9.2）。 | ループの前に「Y ← 1 をセットする。」、ループ内に「Y ← Y + 1 をセット」を入れる。 |
| MD-21 | 【要確認A】 | No.4 D373 | 着店コードを「着店コード[INTNCD]」から取っているが、SQALLHED に INTNCD は無い。現行は SDTASPA1 の8〜11桁目（代表扱い店。src L33〜L36、L456）。 | 「プロパティ.着店コード ← 引数.請求明細全送り状データ.荷主・着店コード[SDTASPA1] の8〜11桁目 をセット」とする。 |
| MD-22 | 【要確認A】 | No.7 D486〜D498、No.8 D551・D553、No.10 D623 | No.10（２バイト文字追加処理）がどのメソッドからもコールされていない。No.7・No.8 は「2バイト要素をスキャンして追加する」だけで、No.10 をコールすることも空白を除くことも書かれていない（ルール 2.17）。No.10 も1回に何文字を見るかが読めない。現行は2バイトずつ見て空白なら詰める（src L598〜L664）。 | 各箇所を「２バイト文字追加処理をコールする」と引数で書き、No.10 に1文字ずつ見るループを書く。 |
| MD-23 | 【要確認A】 | No.1 A77〜D81 | エラー時に、作りかけの帳票を出すか捨てるか、"0" でジョブを止めるかが書かれていない（現行は ON ERROR が無い）。D80「スタックトレース出力処理」はメソッド一覧に無く、どのクラスか読めない（ルール 2.17）。 | エラー時の帳票の扱いを書き、D80 を「クラス名[ID].メソッド名 をコールする。」とする。 |
| MD-24 | 【要確認B】 | No.1 D61・D62、No.3 D215〜D217、No.4 D373、F368、No.9 H588・H592・H596、No.10 F627 | セットの書き方が違う。「をセット」が無い（D61、D62、D373）、「空文字列をセット」（D215〜D217）、「nullセット」（F368）、「=」でセット（H588〜H596、F627）（ルール 2.14）。 | 「← "" をセット」「← null をセット」のように「←」と「をセット」で書く。 |
| MD-25 | 【要確認B】 | No.1 F54、No.2 D128、D133 | F54 は「引数」と値を同じセルに書いている。D128「ヘッダーデータ編集処理」・D133「合計金額計算処理」がメソッド一覧の機能名（ヘッダーデータ編集、合計金額計算）と違う（ルール 2.17）。 | F54 は1つ右のセルに「引数」、その右に値を書く。呼び名をメソッド一覧にそろえる。 |
| MD-26 | 【要確認B】 | No.1 I67・I68、No.5 F412〜F415、No.2 E137、No.9 E580 | X は0から始まる（E64、E410）のに「X件目」と書いている（件目は1件目から、ルール 2.9.1、2.9.2）。No.2 E137 は「X = 1 ～ ページ数」で、E64・E410 と書き方がそろっていない。No.9 のループ変数が「I」（ルール 2.9 は Y・X・Z）。 | 配列は「X = 0 ～ 件数 - 1」と添え字で、件目は「Y ← 1」「Y <= 件数」の形でそろえる。No.9 は X を使う。 |
| MD-27 | 【要確認B】 | No.1 F34・F45、E71、No.2 F154、F165、E178、No.5 E417、No.9 E602 | 繰り返しの終わりが『END IF』（F34、F45。ルール 2.7）。「次のループへ」が『』で囲まれていない（ルール 2.6）。 | 繰り返しの終わりはすべて『次のループへ』とする。 |
| MD-28 | 【要確認B】 | No.1 R11・R12、No.2 R88、No.5 R395 | 型が「SQALLHED」だが、実際はリスト（荷主グループはキーと要素の組）（ルール 2.12）。 | リストであることが分かるように書く。 |
| MD-29 | 【要確認B】 | No.3 E234、No.8 E526 | プロパティ・引数の有無を「取得件数 >= 1件」で判定している。取得件数はデータ取得の結果に使う表現（ルール 2.13、2.15）。No.4 F368 では null をセットしている。 | 「プロパティ.銀行マスター <> null の場合」のように書く。 |
| MD-30 | 【要確認C】 | No.1 E26、E37 | 事業所向けの判定が「現在ステップ番号 = "0150"」。ジョブ設計では KS60790 は STEP0180（0100TD）・STEP0190（0110TD）で、"0150" はどちらでもないため、2回ともエコデリバー向けを読むおそれがある（推測）。想定外の値もエコデリバー向けとして処理する。 | ステップ番号をジョブ設計と合わせ、想定外の値はエラー（"0"）にする。 |
| MD-31 | 【要確認C】 | No.1 D18〜G22 | 帳票ファイル名 "OUTFILE" は現行の DD 名でルール 6.3.2 どおりだが、No.25＝KS607902、No.27＝KS607901（JCL L760、L792）を分けるには、バッチ帳票管理マスタ一覧に STEP ORDER 別の2件が要る（ルール 6.3）。設計書から読み取れない。 | バッチ帳票管理マスタ一覧に、処理機能ID KS60790・帳票ファイル名 OUTFILE・STEP ORDER・帳票ID・周期を2件記入することを確認する。 |
| MD-32 | 【要確認C】 | No.1 D51〜F55、G74 | 0件のとき現行に無いメッセージを出し、銀行エラー件数を出さずに終了する。現行は 0件でも `<<< KS60790P BANK ERROR = ` に 0 を付けて出し、空の帳票を閉じる（src L313〜L316、L593、L701〜L702）。G74 の文言（KS60790、銀行エラー、>>>）も現行と違う。 | ジョブログを照合しているなら文言を現行に合わせ、0件でも件数を出す。0件のとき空の帳票を作るかを決める。 |
| MD-33 | 【要確認C】 | No.6 E442〜F443、E461〜F462 | 正式名称区分が1〜7以外のとき8スペースを返す。現行は OTHER で何もしないので、先頭レコードの SDTASQN1 が名称の先頭に残る（src L373、L643）。 | KS60780 が SDTASQN1 に入れる値を確認し、違うなら現行に合わせるか、変更として記載する。 |
| MD-34 | 【要確認C】 | No.4 F355・F356、No.9 D575 | 店所マスター RDTENS の列 DDTTNNMC「店所名（カナ）」・DDTTNOMB「ＮＯ」・DDTTNADN が、現行の店略称 VETNSRNM・店電話 VETNTLNO・店住所 VETNADNM（src L464、L474、L259〜L262）に当たるか読み取れない。 | RDTENS と VKTENMS の列の対応を確認して書く。 |
| MD-35 | 【要確認C】 | No.7 D485〜D500、No.8 F544〜L546、D550〜D554、No.9 D575・F582 | 「2バイト要素」「右半角スペース埋め○桁」は SO/SI を含む現行の長さ（10、26、38、52、64、71桁）で書かれており、Shift_JIS（SO/SI なし）・Java の文字列でどう数えるかが決まっていない。F544 も現行はバイト位置（KATNSGNM の1〜41バイト＝SO＋全角20文字、KATNSGN2 の2〜22バイト＝全角10文字＋SI。src L381〜L382）。 | 「全角1文字」を単位とし、各部分の最大文字数（4、12、18、25、3、31、35、20、10）で書く。半角文字が入った場合の扱いも決める。 |

## マッピング仕様

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| MP-4 | 【要確認C】 | STLSTA R11 | 編集元が顧客マスター（基本情報）2 の顧客略名（漢字）[KNTNRGNM]。現行は荷主名マスター VKKONAM の KONINM（CHAR(14)、src L37〜L40、L551〜L554）で、置き換え先の列が正しいか読み取れない。 | VKKONAM.KONINM に当たる列を確認して書く。 |
| MP-6 | 【要確認A】 | STLSTA R15、SQALLHED R218・R271、STLST2 R78 | 「着店コード」が SDTACKTT（各請求先の扱い店、src L515、L560）と INTNCD（代表扱い店、src L456、L462）の両方に使われ、R15 の店所マスターをどちらで引くか読めない。 | SDTACKTT は「扱い店コード」、INTNCD は「代表扱い店コード」と名前を分け、R15 は SDTACKTT で引くと書く。 |
| MP-8 | 【要確認C】 | STLST2 R68・R74〜R76、STLST3 R91、STLST4 R102・R106、STLST5 R123、STLST8 R175、STLSTB R32・R38 | 「年」「月」「請 求 書 （鑑）」「第一貨物株式会社」「ご請求額合計」「円」「振込の際は…」「様」「合計」「（単位：円）」は現行に無い。現行の固定文字は ℡・口座番号・TEL:・〒・普通／当座だけ（src L160、L164、L168、L466、L487〜L488）。 | 様式を A-SPOOL 側で重ねるのか、テキストに入れるのかを決めて書く。 |
| MP-11 | 【要確認C】 | STLST4 R109 | 着店略名の編集元が「着店略名カナ」（店所名（カナ））。現行は店所マスターの略称 VETNSRNM（src L464、DDPTENMS L5）で、カナ名は VETNKNNM。 | 略称に当たる列を確認して書く。 |
| MP-13 | 【要確認C】 | STLST9 R185 | "℡" は JIS X 0208 に無く、Shift_JIS では表せない（Windows-31J の拡張文字）。 | 文字コードの扱い（MS932 を使うか、代替文字にするか）を決めて書く。 |
| MP-15 | 【要確認A】 | SQALLHED R212、R265 | SDTASPA1 を写すだけで、集約代表（INNICD）と代表扱い店（INTNCD）への分け方が無い。STLST2 R78・R80 の元となる [INNICD]・[INTNCD] は SQALLHED に無い。現行は1〜7桁目＝INNICD、8〜11桁目＝INTNCD（src L33〜L36、L315）。 | 「荷主・着店コード[SDTASPA1] の1〜7桁目＝集約代表コード、8〜11桁目＝代表扱い店コード」と追記する。 |
| MP-16 | 【要確認B】 | STLSTA R11、R15 | 「← 空文字列」でセットの書き方になっていない（ルール 2.14）。「※プロパティ一覧を参照」が『』で囲まれていない（ルール 2.6）。 | 「← "" をセット」、『プロパティ一覧を参照』とする。 |
| MP-17 | 【要確認B】 | STLST2 C78、C80 | 項目名が「着店コード INTNCD」「荷主コード INNICD」と、論理名と物理名を空白で並べている（ルール 2.2）。 | 「代表扱い店コード[INTNCD]」「集約代表コード[INNICD]」とする。 |

## 帳票レイアウト

| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| CH-1 | 【要確認A】 | D18、帳票項目仕様 A177 | ページの構成が「明細行30行出力で改ページ」しか無い。現行は見出し（LST1〜LST9、LSTDMA）を毎ページ同じ内容で出し（LST4 の請求合計も全体の合計）、LSTDMB と LSTB は最終ページだけ出す（src L532〜L588）。D18「小計行」はページごとの小計ではない。 | ページ構成を書き、「小計行」を「合計行」に改める。 |

---

# 参考：現行の挙動を踏襲するか確認が必要な事項

| No | 現行の挙動 | 確認事項 |
|---|---|---|
| B-1 | 機能名は「配信データ作成」だが、現行は WORK を作らず OUTFILE（SYSOUT=(E,KS607902,99) など）に直接書く（JCL L760、L792）。 | 配信帳票のパターン2（ルール 6.4）ではなく、パターン1 で作ることでよいか確認する。 |
| B-2 | マスターは ON KEY で受けるため、該当なし以外のキーエラーでも「該当なし」として続ける（src L285〜L305）。 | 設計ではエラー終了になる。改善として受け入れてよいか確認する。 |
| B-3 | 住所は最大62文字で、編集域 ADDATA(57) を超えうる（src L245〜L247、L598〜L639）。 | 設計では58文字目以降は印字されない（推測）。この扱いでよいか確認する。 |
| B-4 | 421件目以降の請求先は一覧に載らないが、請求合計と合計行には入る（src L499〜L525、L538、L580〜L584）。 | 設計も同じ。踏襲してよいか確認する。 |
| B-5 | 年の上2桁は「２０」固定。SDTASYMD＝250105 のときだけ年月を「２０２５ ０１」に固定する（src L420〜L454）。 | 設計も同じ。特例を今後も残すか確認する。 |
| B-6 | 銀行マスターに該当が無いと、銀行名・支店名・口座区分は空白、口座番号は「0000000」で、「口座番号」の文字は出る（src L164、L166、L491〜L497）。 | 踏襲するか確認する。 |
| B-7 | 金額の PIC に符号が無いため、マイナスの金額も符号なしで印字される（src L122、L180〜L184、L190〜L194）。 | 負数の出し方を決める。 |
