[参考資料]確認事項 -
幸塚 和久, 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 が数字と空白だけか確認する。 |