プロジェクト

全般

プロフィール

レビュー指摘 #11950 » KS60790_移行設計書_確認事項.md

[参考資料]確認事項 - 幸塚 和久, 2026-10-22 09:03 午前

 

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)。 負数の出し方を決める。
(3-3/3)