レビュー指摘 #11950 » KS60790_移行設計書_確認事項.md
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 のコンストラクタの引数「JOB名」は、指摘から除外した。
- 現行との違いのうち、帳票の大勢に影響のないものは確認事項(【要確認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 | 「2バイト文字追加処理」がどのメソッドからもコールされていない。No.7・No.8 は「スキャンして…追加する」と書くだけで、No.9 は独自に詰めている(メソッド詳細 D486〜D498、D551〜D553、E580〜G598)。 | 使うなら各箇所を「2バイト文字追加処理 をコールする」と書き、使わないなら削除する。 |
メソッド詳細
| 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「変数.顧客住所3を連結した文字列」(「行」が無い)、E314 に「の場合」が無い。 | 「顧客住所3行」「の場合」を補う。 |
| 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(2バイト文字追加処理)がどのメソッドからもコールされていない。No.7・No.8 は「2バイト要素をスキャンして追加する」だけで、No.10 をコールすることも空白を除くことも書かれていない(ルール 2.17)。No.10 も1回に何文字を見るかが読めない。現行は2バイトずつ見て空白なら詰める(src L598〜L664)。 | 各箇所を「2バイト文字追加処理をコールする」と引数で書き、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「NO」・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桁は「20」固定。SDTASYMD=250105 のときだけ年月を「2025 01」に固定する(src L420〜L454)。 | 設計も同じ。特例を今後も残すか確認する。 |
| B-6 | 銀行マスターに該当が無いと、銀行名・支店名・口座区分は空白、口座番号は「0000000」で、「口座番号」の文字は出る(src L164、L166、L491〜L497)。 | 踏襲するか確認する。 |
| B-7 | 金額の PIC に符号が無いため、マイナスの金額も符号なしで印字される(src L122、L180〜L184、L190〜L194)。 | 負数の出し方を決める。 |