プロジェクト

全般

プロフィール

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

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

 

KS60780 移行設計書 確認事項

項目 内容
対象資料 ① クラス設計書 KS60780「請求データ&請求集約コードマッチング」(非表示シート・処理フローシートは対象外)
② テーブル定義 KS60750J_0100TD(No.22 の出力=現行 WORK0100:事業所用)と DDL
③ テーブル定義 KS60750J_0110TD(No.23 の出力=現行 WORK0110:エコデリバー用)と DDL
突合せ基準 現行ソース KS60780P(PL/I)、コピーブック SQALLHED、JCL DAISEQ4J(No.22 L710〜L719、No.23 L720〜L729、SORT4 L730〜L776)、KS60760・KS60770 のレビュー指摘(入力 0030TD・0040TD・0050TD)
記述ルール 設計書作成ルール(バッチ抜粋)
作成日 2026-10-15(初版)/2026-10-22(記述ルールを反映して改訂)
関連資料 誤りの指摘は「KS60780_移行設計書_レビュー指摘.md」

凡例

区分 意味
【漏れ】 ルールで記述することになっている項目が、記載されていないもの
【要確認A】 処理に必要な記載が欠けているもの(【漏れ】を除く)
【要確認B】 処理結果は変わらないが、ルールの書き方に合っていないもの
【要確認C】 移行に伴う意図的な変更の可能性があるもの、前提が読み取れないもの、または現行との違いが小さく対応を確認するもの
  • 根拠は、ソースを「src L○○」、JCL を「JCL L○○」、ルールを「ルール X.Y」「ルール X.Y.Z」と書きます。
  • 0110TD は名前以外が 0100TD と同じなので、同じ事象は「T100-n と同じ」と書きます。前段の KS60760・KS60770 で指摘済みの入力テーブルの問題は、その指摘No を参照します。
  • 次のものは対象外です。
    • 非表示シート(処理フロー生成定義)
    • ルールで記述しなくてもよい項目:処理フロー図(ルール 5.2)、メソッド名・物理名(ルール 5.4、8.1)、処理の項番(ルール 2.5「可能な限り」)、"" / 0 / false の初期値(ルール 5.5)
    • 軽微なルール違反(先行開発で許可されていた書き方。条件の「==」「≠」、改版履歴・更新履歴の記載など)
  • 出力 0100TD・0110TD の事前削除は、バッチ設計書 DAISEQ4J の処理フロー(KS60780 の直前の削除ステップ)で行うため、指摘していません。
  • ルール 5.3・5.6・5.7 が参照する3章はバッチ抜粋に無いため、プロパティ一覧・DB更新仕様・マッピング仕様は2章のルールと現行一致で確認しています。
  • 指摘番号はレビュー指摘(誤り)と通し番号です。

現行の処理(要点)

項目 現行の仕様
実行 同じプログラムを2回実行する。No.22:TRFILE=WORK0060(優先印刷マスターに有る)→ WORK0100(事業所用)。No.23:TRFILE=WORK0080(無い)→ WORK0110(エコデリバー用)。INFILE はどちらも WORK0090
マッチング INFILE のキーは SDTASQNO を13桁にした2〜8桁目、TRFILE のキーは TRKOCD。文字比較で、片方が終わると HIGH(7)。一致したら両方を1件ずつ読み進める(1対1)(src L69〜L107)
一致したとき TRDAIH=TRKOCD なら SDTADTID←00、違えば 99。SDTASPA1 ← TRDAIH∥TRTNCD(11桁)。本締(SDTAKARI=1)だけレコード全体を書き、仮締は件数を数える(src L83〜L93)
メッセージ <<< OUTPUT COUNT = 、<<< KARI JIME = (右詰め12桁、0件でも表示。src L111〜L112)
出力の後続 SORT4(代表扱い店=SDTASPA1 の8〜11桁 → 集約代表=1〜7桁 → SDTACKTT。JCL L742・L774)→ KS60790

件数

資料 シート 漏れ 要確認A 要確認B 要確認C 計
① クラス概要 0 1 0 0 1
① プロパティ一覧 0 1 0 1 2
① メソッド一覧 0 0 1 0 1
① メソッド詳細 0 1 7 4 12
① DB更新仕様 0 2 0 0 2
② KS60750J_0100TD 1 1 0 3 5
③ KS60750J_0110TD 1 1 0 3 5
合計 2 7 8 11 28

表紙・改版履歴、マッピング仕様は確認事項なし。


① クラス設計書 KS60780

クラス概要

No 区分 セル 指摘内容 対応案
CL-1 【要確認A】 B5、B6 ソースのコメント(src L7〜L9)の転記だけで、2回実行して入力データ区分 "1" は 0030TD→0100TD(事業所用)、"2" は 0040TD→0110TD(エコデリバー用)を作ること、荷主コードで1対1に突き合わせ、データID・SDTASPA1 を書き換えて本締だけを出力することが書かれていない(JCL L710〜L729、src L81〜L95)。 「0050TD と 0030TD("1")または 0040TD("2")を荷主コードで1対1に突き合わせ、一致した本締の見出しのデータID・区分を書き換えて 0100TD(事業所用)または 0110TD(エコデリバー用)に登録する。」と書く。

プロパティ一覧

No 区分 セル 指摘内容 対応案
PR-1 【要確認A】 P5、BG5 入力データ区分をどこから設定するか(起動引数など)と、どのステップが "1"/"2" を渡すかが書かれておらず、BG5 に出力先も無い。取り違えると事業所用とエコデリバー用が入れ替わる(現行は DD の割当てで切り替える。JCL L713・L715、L723・L725)。 設定方法を書き、備考を「"1":0030TD→0100TD(No.22 事業所用)、"2":0040TD→0110TD(No.23 エコデリバー用)」とする。
PR-4 【要確認C】 B126 表の外に「b.入力データ区分 ="1" マッチング処理(KS60750J_0030TD との照合)」が残っている。メソッド詳細 D84 の下書きと思われる(推測)。 不要なら削除する。

メソッド一覧

No 区分 セル 指摘内容 対応案
ML-1 【要確認B】 AI4 機能説明が処理内容の節の見出し(1.1〜1.4)を並べたもので、何を入力し何を出力するかが読み取れない。末尾の「)」も欠けている(ルール 5.4)。 「入力データ区分に応じて、0050TD と 0030TD または 0040TD を荷主コードで1対1に突き合わせ、一致した本締の見出しを 0100TD または 0110TD に登録する。」と書く。

メソッド詳細

No 区分 セル 指摘内容 対応案
MD-1 【要確認A】 No.1 A4〜AJ5(引数)、D37・D49・D61・D63・E85・E115 処理を「プロパティ.入力データ区分」で切り替えているが、その値を受け取る引数が無く、プロパティにセットする処理も無い(ルール 5.5)。No.22(0030TD → 0100TD)と No.23(0040TD → 0110TD)のどちらの実行かが決まらない(JCL L710〜L729)。 起動時に受け取る引数(またはプロパティの設定元)と、"1"=No.22、"2"=No.23 の対応を書く。
MD-2 【要確認C】 No.1 D61〜E66、D142〜F143 入力データ区分が "1"・"2" 以外のとき、照合ファイル件数を 0 にして入力を全件読み飛ばし、件数 0 で正常終了("1")する。現行は DD の割当てで決まり、この経路は無い(JCL L710〜L729)。 "1"・"2" 以外はエラー("0")で終了する。
MD-3 【要確認C】 No.1 D31〜E34、D43〜E46、D55〜E58 入力が0件のとき「入力データが存在しません。…」を出して "1" を返し、件数ログ2行とバッチ終了ログ(D151)を出さない。現行は0件でも <<< OUTPUT COUNT = ・<<< KARI JIME = に 0 を付けて出す(src L59〜L60、L72、L111〜L112)。 ジョブログを照合しているなら、0件でもループを0回で抜けて D147 以降を通す。
MD-4 【要確認C】 No.1 G148、G150 件数を「&」でつなぐだけで桁揃えが無い。現行は FIXED DEC(9) を文字にするので右詰め12桁になる(src L46、L48、L111〜L112)。 ログを照合しているなら現行に合わせる。
MD-5 【要確認C】 No.1 F88・F89、F117・F118 照合キーを TRKOCD を trim() した値にし、比較の規則も書かれていない。現行は CHAR(7) のまま EBCDIC で比べる(src L79、L81、L97、L101)ので、先頭に空白がある値や英字(EBCDIC では数字より小さい)を含む値は大小が変わり、取得の並び順とも合わずに一致を読み飛ばす。 trim せず7桁のまま比べ、比較の規則(TRKOCD が数字7桁である前提など)を書く。
MD-6 【要確認B】 No.1 F74、F87、F116 0 から始まる添え字(「< 件数」で回す)に「件目」を使っている。件目は1件目から数える(ルール 2.9.1、2.9.2)。 添え字で書くか、「Y ← 1」「Y <= 件数」の形の件目にそろえる。
MD-7 【要確認B】 No.1 D31、D43、D55、E40、E52、D70・E72・E85・E115 データの有無を「= null 又は 取得件数 = 0件」で判定し、E40・E52 でデータに null をセットしている(ルール 2.13、2.16)。D70 ほかは「の件数」で、「取得件数」とそろっていない。 区分に応じたデータだけを取得し、「取得件数 = 0件 の場合」だけで判定する。null のセットは削除する。
MD-8 【要確認B】 No.1 F88、F117 「null でない場合 trim()した値、それ以外は プロパティ.HIGH」と、セットの中に条件を日本語で書いている(ルール 2.7、2.21)。TRKOCD は NOT NULL(0030TD・0040TD の DDL)なので、この条件は不要。 「変数.ブレークキー照合 ← 変数.照合レコード030.顧客コード[TRKOCD] をセット」とする(MD-5 と合わせる)。
MD-9 【要確認B】 No.1 F33、F45、F57、G77〜G79、E161 「引数」と値を同じセルに書いている(ルール 2.17)。 1つ右のセルに「引数」、その右に「項目:値」を書く。
MD-10 【要確認B】 No.1 D145 繰り返しの終わり「次のループへ」が『』で囲まれていない(ルール 2.6)。 『次のループへ』とする。
MD-11 【要確認B】 No.1 R10〜R13、R17、R18 件数・インデックス・比較結果の型が数値型(小数部あり)。整数は整数型(ルール 2.12)。 整数型にする。
MD-12 【要確認B】 No.1 G159、E161 「例外情報」に「変数.」などが無く、どこの値か読めない(ルール 2.15)。 変数に定義し「変数.例外情報」とする。

DB更新仕様

No 区分 セル 指摘内容 対応案
DB-4 【要確認A】 V9、V63(SDTASPA1) TRDAIH・TRTNCD を11桁固定(7桁+4桁、トリムしない)で連結することが書かれていない。現行は CHAR(7)∥PIC'(4)9' で必ず11桁(src L31〜L32、L86)で、詰まると後続 SORT4 のキー(8〜11桁=代表扱い店、1〜7桁=集約代表。JCL L742、L774)がずれる。null の扱いは、両列とも NOT NULL(0030TD・0040TD の DDL)なので不要。 「TRDAIH 7桁(右空白埋め)& TRTNCD 4桁、トリムせず11桁にする」と書き、null の記述は削除する。
DB-5 【要確認A】 V14・V16・V17、V68・V70・V71(年月日3項目) 写し元の 0050TD は NCHAR(8)・[YYYYMMDD]、写し先の 0100TD・0110TD は NCHAR(6) で、桁の違う列へ「そのまま」写す方法が書かれていない(KS60770 DB-2・T50-3 と同じ)。現行は6桁のまま書き(src L90)、KS60790 は1〜2桁を年として使う。 0050TD を NCHAR(6) にそろえる(KS60770 T50-3)。8桁のままなら 8桁→6桁の変換を書く。

② テーブル定義 KS60750J_0100TD(請求明細ヘッダーワークデータ1)

テーブル定義・ER図・SQL・DDL

No 区分 セル 指摘内容 対応案
T100-2 【要確認C】 テーブル定義 C13・L13・L14、DDL L79・L80 SDTASPA1 の論理名・備考が「LOW-VALUE」、SDTADTID の備考が「[00:HEAD部]」。この表では SDTASPA1 に集約代表コード(1〜7桁)+代表扱い店(8〜11桁)、SDTADTID に 00(代表)/99(集約される荷主)が入る(src L83〜L86)。 SDTASPA1 を「集約代表コード+代表扱い店」として備考に桁の内訳を書き、SDTADTID の備考を「[00:代表 99:集約される荷主]」にする(DDL のコメントも同じ)。
T100-3 【要確認C】 テーブル定義 C11・L11、DDL L77 SDTAKKKK の論理名・備考が「顧客名」だが、予備項目である(KS60770 T61-8 と同じ)。処理結果は変わらない。 論理名・備考を「予備」にする。
T100-4 【要確認A】 テーブル定義 E9・E70、DDL L5・L68 ID・VERSION(DECIMAL)の桁が空欄で、DDL も桁の指定が無い。 桁を記入する。他のテーブル定義も同じなので、固定項目として様式で決めるならそれに合わせる。
T100-5 【要確認C】 テーブル定義 C4・A79〜A80 論理名「請求明細ヘッダーワークデータ1」とテーブル説明(空欄)から、事業所用(優先印刷マスターに有る荷主=0030TD との一致分。現行 WORK0100 → KS607902、JCL L710〜L760)であることが読み取れず、0110TD と取り違えるおそれがある。 テーブル説明に「事業所用」と書く(論理名を変えるなら保管ファイル名も合わせる)。
T100-8 【漏れ】 ER図・SQL B4 1番の SQL が全件取得で、ユニークキーで取得する SQL が無い(ルール 7.1)。 1番に ID で1件取得する SQL を書き、全件取得を2番にする(参照している KS60790 の番号も合わせる)。

③ テーブル定義 KS60750J_0110TD(請求明細ヘッダーワークデータ2)

テーブル定義・ER図・SQL・DDL

No 区分 セル 指摘内容 対応案
T110-2 【要確認C】 テーブル定義 C13・L13・L14、DDL L79・L80 T100-2 と同じ。 T100-2 と同じ。
T110-3 【要確認C】 テーブル定義 C11・L11、DDL L77 T100-3 と同じ。 T100-3 と同じ。
T110-4 【要確認A】 テーブル定義 E9・E70、DDL L5・L68 T100-4 と同じ。 T100-4 と同じ。
T110-5 【要確認C】 テーブル定義 C4・A79〜A80 論理名「請求明細ヘッダーワークデータ2」とテーブル説明(空欄)から、エコデリバー用(優先印刷マスターに無い荷主=0040TD との一致分。現行 WORK0110 → KS607901、JCL L720〜L792)であることが読み取れない。 テーブル説明に「エコデリバー用」と書く(論理名を変えるなら保管ファイル名も合わせる)。
T110-8 【漏れ】 ER図・SQL B4 T100-8 と同じ(ルール 7.1)。 T100-8 と同じ。

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

No 現行の挙動 確認事項
B-1 一致したら見出しと顧客集約コードを両方1件ずつ進める(1対1、src L94〜L95)。同じ荷主で枝番の違う見出しや、TRFILE の同じ荷主の2件目は、メッセージも無く捨てられる。 設計も同じ動き。踏襲してよいか確認する。
B-2 一致しても仮締(SDTAKARI ≠ 1)なら出力せず件数だけ数え、顧客集約コードも進める。後ろに同じ荷主の本締があっても出力されない(src L87〜L95)。 設計も同じ動き。踏襲してよいか確認する。
B-3 SORT2・SORT3・SORT4 に EQUALS の指定が無く、同じキーの中の順は USORTM の既定による(JCL L677、L692、L707、L742、L774)。 PR-2・PR-3・T100-6 の並び順は、EQUALS で動く場合の現行と同じになる。運用の既定を確認する。
B-4 キーの比較と SORT は EBCDIC で、空白<英字<数字(src L81、L97、L101)。 DB の ORDER BY と Java の比較は空白<数字<英字になる。荷主コード・集約代表・代表扱い店が数字と空白だけか確認する(KS60760 T30-7 と同じ)。
B-5 SORT3 は SDTASQNO 全体の順、突き合わせのキーはその2〜8桁目(src L73〜L76、JCL L707)。1桁目が 0 以外の請求先番号があると順が合わず、突き合わせが外れる。 設計も同じ。1桁目が常に 0 であることを確認する。
B-6 SDTADTID は SORT4 のキーに無く、同じまとまりの中で代表(00)が先頭とは限らない。KS60790 は区切りの先頭レコードの見出し項目を使う。 現行どおり ORDER BY に SDTADTID を入れない(T100-7 の案)でよいか確認する。
(2-2/2)