プロジェクト

全般

プロフィール

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

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

 

KS60770 移行設計書 確認事項

項目 内容
対象資料 ① クラス設計書 KS60770「請求データヘッダー部出力」(非表示シート・処理フローシートは対象外)
② テーブル定義 DAISEQ4J_0610TD(KS60770 の入力)と DDL
③ テーブル定義 KS60750J_0050TD(KS60770 の出力)と DDL
突合せ基準 現行ソース KS60770P(PL/I)、コピーブック SQALLHED ほか、JCL DAISEQ4J(SORT L74〜L90、KS60770P L657〜L663、SORT3 L695〜L708)、KS60130・KS60135 の 0610TD に関する指摘
記述ルール 設計書作成ルール(バッチ抜粋)
作成日 2026-10-15(初版)/2026-10-22(記述ルールを反映して改訂)
関連資料 誤りの指摘は「KS60770_移行設計書_レビュー指摘.md」

凡例

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

現行の処理(要点)

項目 現行の仕様
入力 WORK0620(KS60130P の出力を SORT で並べたもの。JCL L88〜L89)。可変長で5種類のレイアウトが混在する
対象行 SDTADTID=00 の見出しで(src L69)、運賃・料金・消費税・保険料の合計が 0 以外(マイナスを含む) のもの(src L72〜L73)
出力 入力の見出しレコードをそのまま書く(src L76)。出力先 WORK0050 は毎回空から作る(JCL L609、L660)
後続 SORT3(請求先番号。JCL L707)→ KS60780(1対1の突き合わせ)
メッセージ <<< INPUT COUNT = 、<<< OUTPUT COUNT = (src L87〜L88。INPUT COUNT は加算されず常に 0)

件数

資料 シート 漏れ 要確認A 要確認B 要確認C 計
① クラス概要 0 1 0 0 1
① メソッド一覧 1 0 0 0 1
① メソッド詳細 0 0 3 1 4
① DB更新仕様 0 1 0 0 1
② DAISEQ4J_0610TD 1 3 1 0 5
③ KS60750J_0050TD 1 1 0 0 2
合計 3 6 4 1 14

① クラス設計書 KS60770

クラス概要

No 区分 セル 指摘内容 対応案
CL-1 【要確認A】 B5 ソースのコメント(src L7)の転記だけで、見出し(データID 00)のうち運賃+その他料金+消費税+保険料が 0 以外(マイナスを含む)のものを、そのまま 0050TD に登録することが書かれていない(src L69〜L76)。 「全送状ワークデータの見出し(データID 00)のうち、運賃+その他料金+消費税+保険料が 0 以外のものを、そのまま 0050TD に登録する。」と書く。

メソッド一覧

No 区分 セル 指摘内容 対応案
ML-1 【漏れ】 AI4 No.1「メイン処理」の機能説明が空欄(ルール 5.4)。 「見出し(データID 00)のうち請求額(運賃+その他料金+消費税+保険料)が 0 以外のものを 0050TD に登録する。」と書く。

メソッド詳細

No 区分 セル 指摘内容 対応案
MD-2 【要確認C】 No.1 D18〜E22 見出しが0件のとき「入力データが存在しません。…」を出して "1" を返し、件数ログ2行(D45〜F48)を出さない。現行は0件でも <<< INPUT COUNT = ・<<< OUTPUT COUNT = に 0 を付けて出す(src L67〜L68、L87〜L88)。 ジョブログを照合しているなら、0件でもループを0回で抜けて D45 以降を通す。
MD-3 【要確認B】 No.1 D26、E27 「取得件数 の間繰り返す」「変数.全送状ワークデータ ← データ.全送状ワークデータ」で、何件目を取り出すかの変数が無い(ルール 2.9.2)。 変数に Y を追加し、「Y ← 1、Y <= データ.全送状ワークデータの取得件数 の間繰り返す」「データ.全送状ワークデータ Y件目」とする。
MD-4 【要確認B】 No.1 F21 「引数」と値を同じセルに書いている(ルール 2.17)。E46・F46 は分けて書いている。 1つ右のセルに「引数」、その右に「ログメッセージ:…」を書く。
MD-5 【要確認B】 No.1 D43 繰り返しの終わり「次のループへ」が『』で囲まれていない(ルール 2.6)。 『次のループへ』とする。

DB更新仕様

No 区分 セル 指摘内容 対応案
DB-1 【要確認A】 V14・V16・V17(SDTAHYMD・SDTAKYMD・SDTASYMD) 写し元の 0610TD は NCHAR(6)(現行 PIC'(6)9'、SQALLHED L9、L12〜L13)、写し先の 0050TD は NCHAR(8)・[YYYYMMDD] で、桁の違う列へ「そのまま」写す方法が書かれていない(T50-3 と同じ)。現行は6桁のまま書き(src L76)、後続 KS60780 の 0100TD・0110TD も NCHAR(6)。 0050TD を NCHAR(6)・[YYMMDD] にそろえる(T50-3)。8桁のままなら 6桁→8桁の変換と、KS60780 での 8桁→6桁の戻し方を書く。

② テーブル定義 DAISEQ4J_0610TD(全送状ワークデータ。KS60770 の入力)

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

No 区分 セル 指摘内容 対応案
T61-1 【要確認A】 DAISEQ4J_0610TD E・F 列(DECIMAL の業務列。E13、E37〜E42、E52・E54・E55・E57・E59、明細・付替訂正・使用料・デパートの DECIMAL 列)、DDL L9・L33〜L38・L48・L50・L51・L53・L55 ほか DECIMAL の桁数・小数が空欄で、DDL も精度の無い NUMBER になっている(KS60135 T10-1 と同じ)。写し先の 0050TD は DECIMAL(13,0)・(9,0)・(7,0) で、型がそろっていない。 現行の精度(SDTASQNO は DECIMAL(13,0)、金額は (9,0)、SDTABANK・SDTABAN1 は (7,0) など)を記入し、DDL も合わせる。
T61-4 【要確認A】 DAISEQ4J_0610TD C10・L10(REC_TYPE)、C15・L15(SDTADTID)、L65・L115・L129・L142 「データID」の列が REC_TYPE・SDTADTID・SDTBDTID など6つあり、どの列で行の種類を判定するか、見出し以外の行の SDTADTID に何が入るかが書かれていない(KS60135 MD-8 と関連)。KS60770 は SDTADTID = '00' で見出しを選ぶ(ER図・SQL C29、現行 src L69)ので、見出し行の SDTADTID に半角 '00' が入らない取込みにすると出力が0件になる。 備考に、行の種類を判定する列と、見出し行の SDTADTID に半角2桁の '00' が入ることを書く。
T61-13 【要確認A】 DAISEQ4J_0610TD E9・E163、DDL L5・L164 ID・VERSION(DECIMAL)の桁が空欄で、DDL も桁の指定が無い(ルール 9。KS60780 T100-4 と同じ)。 桁を記入する(固定項目として様式で決めるならそれに合わせる)。
T61-14 【漏れ】 ER図・SQL B4 1番の SQL が全件取得で、ユニークキーで取得する SQL が無い(ルール 7.1)。 1番に ID で1件取得する SQL を書き、既存の SQL を2番以降にずらす(参照している KS60135・KS60144・KS60770 のプロパティ一覧の番号も合わせる)。
T61-15 【要確認B】 ER図・SQL D16〜D22、D31〜D37 ORDER BY のカンマを行の末尾に付けている(ルール 7.1)。 カンマは行の先頭に付ける(例:, SDTASQNO ASC)。

③ テーブル定義 KS60750J_0050TD(請求明細全送り状データ(A)HEAD。KS60770 の出力)

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

No 区分 セル 指摘内容 対応案
T50-8 【要確認A】 KS60750J_0050TD E9・E70、DDL L5・L68 T61-13 と同じ。 T61-13 と同じ。
T50-9 【漏れ】 ER図・SQL B4 1番の SQL が全件取得で、ユニークキーで取得する SQL が無い(ルール 7.1)。 1番に ID で1件取得する SQL を書き、全件取得を2番にする(参照している KS60780 プロパティ一覧 AV29 の番号も合わせる)。

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

No 現行の挙動 確認事項
B-1 ICNT をどこでも加算しないため、<<< INPUT COUNT = は常に 0 と表示される(src L49、L87)。 設計も入力件数を加算しない(常に 0)。不具合を踏襲するか、取得件数(見出しの件数)を表示するか確認する。
B-2 合計 WKSYUJ は FIXED DEC(9)(src L52)で、9桁を超えると上位桁が落ちる(合計がちょうど 1,000,000,000 なら 0 とみなされ出力されない)。 設計の作業合計(数値型)は桁が落ちないので、極端な金額では判定が変わる。実害は無いと思われるが、踏襲しなくてよいか確認する。
B-3 SORT3 のキー(19,8,PD、JCL L707)は SDTASQNO より1バイト長く、SDTASPA1 の1バイト目まで含む。見出しの SDTASPA1 が空白なら、実質は SDTASQNO の順。 0050TD の取得は SDTASQNO を先頭にする(T50-6)。見出しの SDTASPA1 の1バイト目に空白以外が入ることが無いか、現行データで確認する。
B-4 WORK0620 の SORT(JCL L88〜L89)は EBCDIC のバイト比較で、空白<英字<数字。 0610TD・0050TD の ORDER BY は DB の照合順序(空白<数字<英字)になる。SDTASHTN・SDTAKKKK・SDTASPA1 が数字と空白だけか確認する。
(2-2/2)