操作
レビュー指摘 #12104
未完了KS4100指摘一覧
開始日:
期日:
進捗率:
0%
予定工数:
実開始日:
DD名:
INCLUDE:
DSN:
バグ区分:
QA分析:
方針(第一貨物):
実終了日:
ツールのバージョン:
AsIsSource行:
進捗計画:
設計・開発者:
画面ID:
機能区分:
機能ID:
レビュー指摘区分:
記述の仕方
検査完了日:
検査依頼日:
説明
KS41010 移行設計書(クラス設計書) レビュー指摘(誤り)¶
| 項目 | 内容 |
|---|---|
| 対象資料 | クラス設計書_KS41010_店所情報の付加.xlsx(表紙/改版履歴/クラス概要/処理フロー/プロパティ一覧/メソッド一覧/メソッド詳細/DB更新仕様/マッピング仕様/処理フロー生成定義) |
| 突合せ基準 | KS41010P_仕様書.md(現行 PL/I ソース KS41010P.pl1 から作成)、管理台帳レイアウト KANBASED(KS41010P.xlsx)、仮定の JCL(DAIMNT3J_jobflow_work.svg) |
| 作成日 | 2026-10-26 |
| 関連資料 | 確認事項(漏れ・要確認・軽微)は「KS41010_クラス設計書_確認事項.md」 |
凡例¶
| 区分 | 意味 |
|---|---|
| 【重大な誤り】 | 現行と処理結果が変わり、出力の内容・有無に大きく影響するもの |
| 【誤り】 | 現行と処理結果が変わるもの、または記述が明確に誤っているもの |
- 現行の根拠は、ソースを「pl1 L○○」、仕様書を「仕様書 ○章」と書きます。
- シート番号は Excel のシート順です(1=表紙、2=改版履歴、3=クラス概要、4=処理フロー、5=プロパティ一覧、6=メソッド一覧、7=メソッド詳細、8=DB更新仕様、9=マッピング仕様、10=処理フロー生成定義)。
現行の処理(要点)¶
| 項目 | 現行(KS41010P) | 仮定の JCL での扱い |
|---|---|---|
| 入力 | 管理台帳ワーク(請求書出力店所コード順に整列済み)を順次読込(pl1 L63、L93) | DAIMNT3J_0010TD を ORDER BY KASFHATN(請求書出力店所コート゛) で読む(現行 JCL STEP2 SORT FIELDS=(251,4,CH,A) の置換え) |
| 処理 | 請求書出力店所コート゛が変わるたびに店所基本情報DB2(RDTENS)を1回検索し、同じコードのレコードすべてに店所情報8項目を設定(キーブレイク)。該当なし・SQLエラーのときは入力のまま(pl1 L68〜L95) | 同じ |
| 終了判定 | 入力終了時に作業キーへ HIGH(4) を入れて二重ループを抜ける(pl1 L58、L68、L77)。HIGH値は数字項目に入らない値 | - |
| 出力 | 管理台帳ワーク(入力と同じ長さ)。毎回新規作成(JCL STEP4 DISP=(NEW,KEEP,DELETE)) |
DAIMNT3J_0030TD。書込み前にクリア |
件数¶
| シート | 重大な誤り | 誤り | 計 |
|---|---|---|---|
| プロパティ一覧 | 0 | 1 | 1 |
| メソッド詳細 | 0 | 1 | 1 |
| DB更新仕様 | 1 | 1 | 2 |
| 合計 | 1 | 3 | 4 |
上記以外のシート(表紙/改版履歴/クラス概要/処理フロー/メソッド一覧/マッピング仕様/処理フロー生成定義)は指摘なし。
プロパティ一覧¶
| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| 5-1 | 【誤り】 | AY27(管理台帳 DAIMNT3J_0010TD の取得条件) | 管理台帳を「条件無し」で取得しており、並び順(ORDER BY)の指定が無い。仮定の JCL では、現行の SORT ステップ(JCL STEP2 SORT FIELDS=(251,4,CH,A)、データ部 247〜250 バイト目)に代わり、KS41010 が 請求書出力店所コート゛(KASFHATN)昇順 で読む。メソッド詳細(D24〜D40)は請求書出力店所コート゛が変わるたびに店所基本情報DB2を検索するキーブレイクの作りなので、並び順が違っても付加される値は同じだが、同じ店所コードが離れて出てくるたびに検索し直すため、検索回数が増える(仕様書 8章 No.6)。 |
取得条件に「ORDER BY 請求書出力店所コート゛[KASFHATN] 昇順」を加える。 |
メソッド詳細¶
| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| 7-1 | 【誤り】 | D26、G36(作業キーの終了判定)、AE10(作業キーの初期値) | ループの終了判定に「作業キー=スペース(4)」を使っている。現行は入力の店所コードに入り得ない HIGH(4) を使う(pl1 L58、L68)。スペース(4)だと次の2つの問題がある。①作業キーの初期値(AE10)が空欄で、現行どおり空白で初期化すると(pl1 L38 INIT(' '))、D26 の最初の判定で外側ループに入らず、1件も登録されない。②請求書出力店所コート゛が空白のレコードがあると、そのグループを処理した後で外側ループを抜け、残りのレコードが登録されない。ORDER BY 昇順(5-1)では空白が先頭に来るため、空白のレコードが1件でもあれば、ほぼ全件が登録されない。 |
終了判定を「全レコード処理済み」を表すフラグ(またはデータに入り得ない値)にする。作業キーの初期値を書く。 |
DB更新仕様¶
| No | 区分 | セル | 指摘内容 | 対応案 |
|---|---|---|---|---|
| 8-1 | 【重大な誤り】 | BC4(処理:INSERT)、A3〜BO318 全体 | DAIMNT3J_0030TD への登録が INSERT だけで、登録の前にテーブルをクリアする処理がどこにも無い。現行の出力ワークは毎回新規作成(JCL STEP4 DISP=(NEW,KEEP,DELETE))し、使用後に削除(STEP7)するため、前回分は残らない。仮定の JCL でも「WORKDB は書込み前にクリア」としている。このままでは2回目以降の実行で前回分が残るか、キー重複で登録できず、後続の KS41020 以降が前回分と合わせて処理する(KS41000 レビュー指摘 8-1 と同じ)。 |
登録前に DAIMNT3J_0030TD の全件削除を行う処理を追加する(JOB 側で行う場合は、その旨をクラス概要に書く)。 |
| 8-2 | 【誤り】 | V215〜V216(銀行コード1 TTTBKCD1、口座番号1 TTTKSNO1) | 店所基本情報DB2に該当が無い場合に「変数.現在レコード.銀行コード1(口座番号1)を数値変換してセット」としている。現行は該当が無いとき入力のまま出力し、KS41000 が設定したスペースが残る(pl1 L78〜L91、仕様書 8章 No.7)。スペースや未設定の値を数値変換すると、変換エラーで異常終了するか、0 が入って現行と値が変わる。また注記の「変数.現在レコード.TTTBKCD1 は String 型、変数.現在レコード.TTTBKCD1 は Integer 型」は同じ項目を2つの型と書いており、どちらが変換元か読み取れない。 | 該当が無い場合は現行どおり入力の値をそのまま設定する(列の型が違うなら、空白の扱いを決めて書く)。注記の項目名と型を正しく書き直す。 |
ファイル
表示するデータがありません
操作