プロジェクト

全般

プロフィール

レビュー指摘 #11950

未完了

KS60790指摘一覧

幸塚 和久 さんが14日前に追加. 7日前に更新.

ステータス:
新規
優先度:
通常
開始日:
期日:
進捗率:

0%

予定工数:
実開始日:
DD名:
INCLUDE:
DSN:
バグ区分:
QA分析:
方針(第一貨物):
実終了日:
ツールのバージョン:
AsIsSource行:
進捗計画:
設計・開発者:
画面ID:
機能区分:
機能ID:
レビュー指摘区分:
記述の仕方
検査完了日:
検査依頼日:

説明

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」

凡例

区分 意味
【重大な誤り】 現行と処理結果が変わり、帳票の内容・有無に大きく影響するもの
【誤り】 現行と処理結果が変わるもの、または記述が明確に誤っているもの
  • 根拠は、ソースを「src L○○」、JCL を「JCL L○○」、ルールを「ルール X.Y」「ルール X.Y.Z」と書きます。帳票の桁位置は ASA を除いた「印字1〜132桁」で書きます。
  • 非表示シート(処理フロー生成定義)と処理フロー図(ルール 5.2 で省略可)は対象外です。

現行の処理(要点)

項目 現行の仕様
実行 同じプログラムを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】)とした。

件数

シート 重大な誤り 誤り 計
プロパティ一覧 2 4 6
メソッド詳細 5 7 12
マッピング仕様 3 6 9
合計 10 17 27

クラス設計書(帳票)KS60790

プロパティ一覧

No 区分 セル 指摘内容 対応案
PR-1 【重大な誤り】 AY31 管理台帳(VKKANBS)の条件が「着店コード」。現行のキーは集約代表(BREAKA=INNICD。src L317、L321)で、4桁の店所コードでは引けず、顧客の〒・住所・名称・電話・口座と銀行キーが取れない(src L322〜L418、L479)。 「条件①: 引数.荷主コード」(集約代表。AY30 と同じ)にする。
PR-2 【誤り】 AY34 顧客マスター(基本情報)1 を「着店コード」で読み、振込先銀行の特例(KAHFBKCD(3)="8888888" など)を判定している。現行は同じ KANBASED のレコード(キー=集約代表)で判定する(src L405〜L414)。店所コードでは顧客が引けず、特例の口座にならない。 管理台帳の同じレコードで判定し、データ No.7 は削除する(CL-2)。
PR-3 【誤り】 AY32、P10・P12・P13・P16〜P18・P20・P21 店所マスターの条件が「着店コード」(SDTACKTT)の1つだけ。現行は見出しを代表扱い店 INTNCD(SDTASPA1 の8〜11桁。src L462)、一覧を各請求先の SDTACKTT(src L560〜L561)で読む。見出しに先頭レコードの扱い店が印字される。 見出し用(キー=SDTASPA1 の8〜11桁)と一覧用(キー=SDTACKTT)に分けて定義し、見出しのプロパティ名を「代表扱い店…」にする。
PR-4 【重大な誤り】 AY35 荷主名の条件が「荷送り番号(13桁)の1〜7桁目」。現行は2〜8桁目(SEQ_NICD。src L225〜L229、L513、L551)で、全行の荷主名が引けなくなる。 「条件①: 変数.荷送り番号(13桁)の2〜8桁目」にする。
PR-5 【誤り】 AY28・AY29 『条件無し』で並び順が無い。参照先の SQL は SDTASPA1、SDTACKTT の順(KS60780 T100-9)で、現行の SORT4(代表扱い店 → 集約代表 → SDTACKTT。JCL L742、L774)と違い、帳票の順と区切りの先頭レコードが変わる。 並び順「SDTASPA1 の8〜11桁、1〜7桁、SDTACKTT、SDTASQNO」を書き、SQL も合わせる。
PR-7 【誤り】 変数(P5〜P25) 帳票データファイル出力クラス(帳票1)がプロパティに無く、メソッド詳細 No.1 は未定義の変数.帳票1 をコンストラクタでコールし、No.2・No.3 は別々に変数.帳票1 を定義して書いている。コンストラクタをコールしていない帳票1 にレコードを追加することになる(ルール 6.3.1、6.3.3)。 帳票1(型 LSS1040)をプロパティに定義し、全メソッドで「プロパティ.帳票1」を使う。

メソッド詳細

No 区分 セル 指摘内容 対応案
MD-1 【重大な誤り】 No.1 D60〜D62、E64 「INNICD が同一の要素」を、入力の位置に関係なく1つのグループにまとめている。現行は入力の並びのまま INNICD が前のレコードと変わったところで区切るので、代表扱い店が違う同じ集約代表は別の帳票になる(src L316〜L317、L502)。INNICD は SQALLHED に無い名前(SDTASPA1 の1〜7桁、src L33〜L36、L315)。 「入力の順に読み、荷主・着店コード[SDTASPA1] の1〜7桁目が前のレコードと変わったところで新しいグループにする。グループは入力の順に処理する」とする。
MD-2 【重大な誤り】 No.2 D107〜D121、No.4 E314〜E347 管理台帳に該当が無いとき、顧客の〒・名称・電話・振込銀行コード・預金種別・口座番号が空白のままになり、銀行マスターも引けずに銀行エラーとして数える。現行は上書きしないだけで、グループ先頭レコードの SDTAYUNN・SDTASQN1・SDTASQNI・SDTADTEL・SDTABANK・SDTAKONO・SDTAKOBA を使う(src L322、L419、L458、L475、L478〜L489、L643〜L644)。 E314 に「以外の場合」を追加し、先頭レコードの各項目をプロパティにセットする。住所と KAADATCD(1) は現行では前のグループの値が残るので、空白にするかもあわせて決める。
MD-3 【重大な誤り】 No.3 F249、C197 口座番号を銀行マスターから取っている。現行は顧客の口座番号 SDTAKOBA(TTTKSNO1、特例は KAHFKZNO(1))を7桁ゼロ埋めで印字し、銀行マスターに無いときも 0000000 を出す(src L166、L400、L411、L489、L497)。No.4 F324・G336 でセットしたプロパティ.口座番号が使われていない。 F249 を「変数.口座番号 ← プロパティ.口座番号 をセット」にし、C197 を文字型にして7桁ゼロ埋めと書く。
MD-4 【重大な誤り】 No.2 E176、No.1 D73〜D75 帳票出力ファイル作成をページのループの中で毎ページ呼び、No.1 の最後では呼んでいない。ルール 6.3 はクラス処理の最後に1回呼ぶ形で、現行も OUTFILE 1つに全グループを書いて最後に閉じる(src L309〜L310、L701〜L702)。 E176 を削除し、No.1 D73 の前に「変数.帳票1.帳票出力ファイル作成 をコール」を入れる(MD-7)。
MD-5 【重大な誤り】 No.9 E580〜G598、D604〜D605 着店住所を元の位置 I で3行に振り分け、D605 で着店住所2にも1行目を入れるため、同じ住所が2行出る。現行は空白以外の文字数で振り分け、WHEN の条件の抜けで14文字目で止まるので、先頭14文字だけが1行目に入り2行目は常に空白(src L666〜L697、L469、L471)。ループ回数(設計36回、現行35回)、全角空白の除外(No.10 を使っていない)も違う。 現行踏襲(空白以外の先頭14文字を着店住所1、着店住所2は空白)か、14文字ずつ2行に分けるかを決めて書き直す。ループは35回、空白の判定は No.10 を使う。
MD-7 【誤り】 No.1 C10〜C12、No.2 C97・R97、No.3 C211・R211 帳票1が No.1 の変数に無いままコンストラクタを呼び、No.2・No.3 では別々の変数として宣言している(引数でも渡していない)。見出し行と明細行が別のオブジェクトに書かれ、1つの帳票に順に並ばない(ルール 6.3.1。現行は OUTFILE 1つ、src L534〜L585)。 帳票1を No.1 の変数(またはプロパティ)に1つだけ定義し、No.2・No.3 はそれにレコード追加する。
MD-9 【誤り】 No.2 G149 明細行にどの請求先を使うかが書かれておらず、マッピング仕様は「X件目」(X はページ番号、E137)を参照している。現行は DTCNT 番目(src L548〜L559)。 「引数.請求明細全送り状データリスト 変数.処理済み明細件数 件目」を使うと書く(ルール 2.9.2)。
MD-10 【誤り】 No.2 F139〜I141、No.1 G67〜I68 No.3 の引数「請求合計」(C190)を渡しておらず、見出しの請求合計(マッピング仕様は引数.請求合計)が不定になる。現行は毎ページ GOKEGK を印字する(src L538)。No.1 も No.2 の引数「現在ステップ番号」(C87)を渡していない(No.2 では未使用)。 引数に「請求合計:プロパティ.請求合計」を追加する。No.2 の現在ステップ番号は削除する。
MD-11 【誤り】 No.3 F222〜F229 年・月を半角の数字で作るだけで、全角にすることが書かれていない(マッピング仕様も同じ)。現行は HEX42 を付けて全角の「20」+年2桁、月2桁を印字する(src L244、L423〜L453)。 「年("20"+2桁)・月を全角数字にする」と書く。
MD-13 【誤り】 No.4 F322〜F325、F328〜G336 特例の判定を現行に無い顧客マスター(基本情報)1(キー=着店コード)で行い、値を管理台帳から取っている。現行は判定も値も同じ KANBASED のレコードで、要素番号は判定が KAHFBKCD(3)・KAHFKOZA(1)・KAHFKZNO(1)、値が (1)、加入区分コードも KAADATCD(1)(src L405〜L411、L479)。 F328 を削除し、判定を「データ.管理台帳.[KAHFBKCD(3)] = "8888888" AND …」として、要素番号を明記する。
MD-15 【誤り】 No.7 D500〜D504、No.8 D554〜D556 切り出しが「1〜38文字目」「1〜34文字目」で、現行の1行(住所 38バイト=全角19文字、名称 34バイト=全角17文字。src L248〜L251、L266〜L268)の2倍になる。D504 は「77〜38文字目」で範囲も誤り。 「住所全体の1〜19文字目/20〜38文字目/39〜57文字目」「顧客名全体の1〜17文字目/18〜34文字目」とする。
MD-16 【誤り】 No.10 F627、AK612 引数の文字列バッファに追加するだけで戻り値が無く、呼び出し元に結果が返らない(ルール 5.5 は引数を IN のみとする。Java は参照渡しできない)。 追加後の文字列を戻り値(論理名・文字型)として返す。

マッピング仕様

No 区分 セル 指摘内容 対応案
MP-1 【重大な誤り】 STLSTA R8 荷送り番号を「1〜7桁目と8〜12桁目」で作っている。現行は SDTASQNO を13桁にした2〜8桁目(荷主)と9〜13桁目(枝番)を '-' でつなぐ(src L225〜L229、L513〜L514、L549)。1桁目は常に 0 のため全行の番号が変わる。結合も「&」で書いていない(ルール 2.19)。 「変数.荷送り番号(13桁)の2〜8桁目 & "-" & 9〜13桁目」とする。
MP-2 【誤り】 STLSTA R8、R11、R15、R18〜R22 R8 の「X件目」の X は、呼び出し元ではページのループ(メソッド詳細 E137)で、明細の位置ではない。R11・R15・R18〜R22 は「引数.請求明細全送り状データ」で何件目か書かれていない(ルール 2.9.2)。 「引数.請求明細全送り状データリスト(変数.処理済み明細件数)件目」とそろえる。
MP-3 【重大な誤り】 STLSTA R11(キーはプロパティ一覧 AY35) 荷主名を取るキーが荷送り番号(13桁)の1〜7桁目。現行は2〜8桁目(SEQ_NICD、src L228、L551)。先頭の 0 を含むため、荷主名が引けないか別の荷主の名前になる。 キーを「変数.荷送り番号(13桁)の2〜8桁目」にする(MP-1 と同じ切り出し)。
MP-5 【誤り】 STLSTA R14〜R16 扱い店名を「着店名全角(DDTTNNMG)をの1〜9桁目と12桁目を結合」で作っている。現行は LSS0051 の店名の1〜9バイト目と14バイト目(SO+全角4文字+SI の10バイト、src L561〜L562)。設計は全角9文字分になり得る(ルール 2.19)。 「店名の先頭全角4文字」とする。
MP-7 【誤り】 STLSTA R18〜R22、STLSTB R33〜R37 金額が「左半角スペース埋め15桁」だけで、0 の扱いが無い。現行は PIC'ZZZZZZZZZZZZZZZ' で、0 は空白15桁、カンマなし(src L180〜L184、L190〜L194)。 編集を「ZZZZZZZZZZZZZZZ」と書く(ルール 11.3)。
MP-9 【誤り】 STLST2 R63〜R66、R71〜R72 年・月の各桁が "2"、"0" など半角1桁。現行は HEX42‖数字 で全角数字(2バイト)を作る(src L244、L433〜L436、L450〜L452)。 各桁を全角数字1文字にする(例:「2」「0」+変数.年の各桁を全角にしたもの)。
MP-10 【誤り】 STLST4 R104 請求合計が「左半角スペース埋め14桁」でカンマが無い。現行は PIC'ZZ,ZZZ,ZZZ,ZZ9'(src L122、L538)。編集元の「引数.請求合計」は呼び出し元(メソッド詳細 G140〜I141)から渡されていない。 「プロパティ.請求合計」を編集「ZZ,ZZZ,ZZZ,ZZ9」で設定する。
MP-12 【誤り】 STLST5 R122、R124 空白の項目に「プロパティ.顧客住所2(右半角スペース埋め4桁)」を設定しており、顧客住所2の一部が2回余分に印字される。現行は空白(src L130)。 「共通関数[LSS1000].スペース埋(n)」にする。
MP-14 【重大な誤り】 STLST9 R193 口座番号が「変数.口座番号(左半角スペース埋め40桁)」。現行は SDTAKOBA を PIC'(0007)9'(7桁ゼロ埋め)で印字する(src L166、L489)。変数.口座番号の元も銀行マスター(メソッド詳細 F249)で、顧客の口座番号ではない。 「プロパティ.口座番号」を編集「9999999」で設定する。

ファイル

KS60790_詳細設計書.md (55.9 KB) KS60790_詳細設計書.md [参考資料]現行ソース解析資料AI生成版 幸塚 和久, 2026-10-15 04:53 午後
KS60790_帳票イメージ_KS607902_KS607901.pdf (499 KB) KS60790_帳票イメージ_KS607902_KS607901.pdf [参考資料]現行ソース解析資料(帳票イメージ)AI作成版 幸塚 和久, 2026-10-15 04:53 午後
KS60790_移行設計書_確認事項.md (23.1 KB) KS60790_移行設計書_確認事項.md [参考資料]確認事項 幸塚 和久, 2026-10-22 09:03 午前
KS60790_帳票イメージ_KS607902_KS607901.pdf

幸塚 和久 さんが9日前に更新 · 編集済み

幸塚 和久 さんが7日前に更新 · 編集済み

  • ファイル KS60790_移行設計書_確認事項.md を追加
  • 説明 を更新 (差分)

他の形式にエクスポート: Atom PDF