タスク #11973 » BU83000J_詳細設計書_JOBフロー.md
JOB詳細設計書(JOBフロー) BU83000J
| 項目 | 内容 |
|---|---|
| JOB名 | BU83000J |
| JOB名称 | 高速利用料自動伝票 翌月調整分 発行処理 |
| 作成元資料 | JCL BU83000J.jcl(221行)、ジョブフロー図 BU83000J_jobflow.svg
|
| 作成日 | 2026-10-19 |
| 作成方法 | JCL からのリバース作成。プログラムのソースは無いため、処理内容は JCL から分かる範囲で書き、推定には「(推定)」を付ける。帳票はレイアウトがプログラム内にあるため、帳票イメージは載せない |
- ステップ番号 #1〜#14 と処理のまとまり ①〜⑥ は、ジョブフロー図に合わせる。
- 本文・表では、データセットを 3章で定義した略称で書く(DSN は 3章にだけ書く)。
目次
- JOB概要
- JOB文・共通定義
- データセット一覧(略称の定義)
- JOBフロー
- ステップ一覧
- ステップ詳細(6.1〜6.6 = ①〜⑥)
- 出力物一覧
1. JOB概要
1.1 基本情報
| 項目 | 内容 |
|---|---|
| JOB名/名称 | BU83000J/高速利用料自動伝票 翌月調整分 発行処理(L6 のコメントより) |
| 起動 | JCL からは分からない(ジョブスケジューラからの定期起動と推定) |
| ステップ数 | 14 処理ブロック(JCL 上の EXEC も 14。CEMT の EXEC 2行はコメントアウト) |
| ステップの内訳 | 業務プログラム 6(BU83010P×2〔#3・#6 で同一PGMを2回実行〕、BU83000P、KE85390P、KE85360P、KE53015P)、SORT 5(USORTM)、IEHPROGM 2、IDCAMS 1 |
| 主な入力 | 高速SD(最新、他JOB作成と推定)、高速SD前世代(他JOB作成)、KEDATE1 |
| 主な出力 | 帳票1種(KE853601)、CSV 1本(仕訳CSV)、マスター更新(番号M) |
1.2 処理のまとまり
| まとまり | ステップ | 概要 |
|---|---|---|
| ① 前処理 | #1 | 前回のワーク10本(W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070、S0060)を削除する |
| ② 高速SD(最新)の編集 | #2〜#4 | 高速SD をコピーし、BU83010P で編集して、キー (61,17) で並べ替える(W0010 → W0011 → W0012) |
| ③ 高速SD(前世代)の編集 | #5〜#7 | 高速SD前世代 に対して②と同じ編集を行う(W0020 → W0021 → W0022) |
| ④ 翌月調整分データ作成(MASTER SD CREATE) | #8〜#9 | 最新(W0012)と前世代(W0022)を突き合わせて翌月調整分のデータ W0030 を作り、仕訳の順に並べ替えて W0050 にする(推定) |
| ⑤ 仕訳伝票マスター登録・補助表印刷 | #10〜#12 | W0050 から仕訳伝票マスターの登録データ S0060 と採番後の番号M レコード W0070 を作る(推定)。補助表 KE853601 を印刷し、番号M を更新する |
| ⑥ 仕訳データCSV作成 | #13〜#14 | 前回の仕訳CSV を削除し、S0060 から仕訳CSV を作る |
2. JOB文・共通定義
2.1 JOB文・JOBLIB
//BU83000J JOB CLASS=B,MSGCLASS=Q,MSGLEVEL=(1,1),REGION=0M,
// COND=(9,LT)
//JOBLIB DD DSN=ENT.BATCHA.LOD,DISP=SHR
| 項目 | 内容 |
|---|---|
| CLASS/MSGCLASS/MSGLEVEL | B/Q(SYSOUT=* もこのクラス)/(1,1) |
| TIME/REGION | 指定なし/0M(#12 は EXEC に REGION=6144K) |
| COND | (9,LT):RC が 10 以上のステップがあると、以降のステップは実行しない |
| JOBLIB | LOD。#3・#6・#8 は STEPLIB にも LOD を指定する |
| 実行順 | #1 → #14 の直列。分岐は無い。ステップ名 SCRATCH が #1・#13、BU83010P が #3・#6 で重複する。SORT5 と WORK0040 は欠番 |
- L4 の
/*は JOBLIB の直後にある区切りで、処理には影響しない。
2.2 共通の決まり
| 項目 | 内容 |
|---|---|
| ワークの作成 | 非カタログの DISP=(,KEEP,DELETE) で作り、参照側は DISP=SHR と UNIT/VOL=SER を指定する。仕訳CSV だけは (,CATLG,DELETE) でカタログする |
| ボリューム | TEMP. のワーク(W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070)は DASD03、SEAD. のワーク・CSV(S0060、仕訳CSV)は DASD11 |
| ワークの削除 | 使用後の削除は無い。ワーク・CSV は JOB 終了後も残り、次回実行の事前削除(#1、#13)で消える。S0060 は KEEP のまま残り、翌日の #1 で削除される |
| SORT | プロシージャ USORTM。SORTIN/SORTOUT/SYSIN を上書きする。ソート対象は FB のため、キー位置はレコード先頭からの位置 |
| 帳票 |
SYSOUT=(E,ライター名,フォーム) でクラス E に出す |
2.3 共通パターン(各所では1行で書く)
| パターン | 使うステップ | 内容 |
|---|---|---|
| SCRATCH | #1、#13 | IEHPROGM の SCRATCH で前回分を削除する。カタログする仕訳CSV だけは #13 で UNCATLG してから SCRATCH する。対象が無いときの RC は COND=(9,LT) の範囲内(推定) |
| REPLACE | #12 | IDCAMS REPRO INFILE(INFL) OUTFILE(VKKEINO) REPLACE で、更新データを番号M に反映する。同じキーは置換、無いキーは追加し、削除はしない |
- BACK(更新前の退避)は無い。
- 番号M を CICS ファイル VKKEINO として閉じる・開く CEMT の行(L185
CLO、L220ENA OPE。プロシージャ MVSCMD、CICS 領域 CIC1)はコメントアウトされており、現在は実行されない。 - 番号M の更新は「業務プログラムが更新データを作る → REPLACE」の2段で行う。番号M の更新(#12)は仕訳CSV の作成(#13・#14)より前に実行する。
| 台帳 | 更新データ作成 | 更新データ | BACK → 退避 | REPLACE |
|---|---|---|---|---|
| 番号M | #10 | W0070 | なし | #12 |
3. データセット一覧(略称の定義)
DSN を書くのはこの章だけ。本文・表ではすべて略称を使う。
3.1 マスタ・パラメータ・入力
| 略称 | DSN | 種類 | 形式・長さ | 作成 | 使用 | 内容 |
|---|---|---|---|---|---|---|
| LOD | ENT.BATCHA.LOD | マスタ参照 | ロードライブラリ | - | JOBLIB、#3、#6、#8 の STEPLIB | プログラム格納先 |
| 日付PTR | VRAD.PROCDATE.POINTER(DD VRDTPTR) | マスタ参照 | - | - | #10 | 処理日付ポインター(推定) |
| 番号M | VKAD.KEIRIEDP.NOMASTER(DD VKKEINO) | マスタ更新 | VSAM(推定) | #12 | #10 | 伝票番号マスター(推定) |
| 科目M | VKAD.KAMOKUCD.DTMASTER(DD VKKAMCD) | マスタ参照 | - | - | #11、#14 | 勘定科目コードマスター(推定) |
| KE85300J | ADG.ALTLIB(KE85300J)(DD CDFILE) | マスタ参照 | PDS メンバ | - | #11 | 補助表のパラメータ(推定) |
| 店所M | SEAD.TENSCODE.CDMASTER(DD VETENCD) | マスタ参照 | DASD11(VOL=SER 指定) | - | #11 | 店所コードマスター(推定) |
| KEDATE1 | ADG.ALTLIB(KEDATE1)(DD KEDATFL) | パラメータ | PDS メンバ | - | #8 | 計上日などの日付パラメータ(推定) |
| 高速SD | SEAD.KOSOKSQD.DTMASTER(DD SORTIN) | 入力(他JOB作成と推定) | DASD85(VOL=SER 指定) | 他JOB(推定) | #2 | 高速料金の仕訳SD・最新(推定) |
| 高速SD前世代 | MTAD.KOSOKSQD.DTMASTER(-1)(DD SORTIN) | 入力(他JOB作成) | テープGDG(UNIT=VTAP) | 他JOB | #5 | 高速SD の1つ前の世代(推定) |
- 高速SD の旧入力はテープ GDG の MTAD.KOSOKSQD.DTMASTER(0)(UNIT=VTAP)で、L29〜30 でコメントアウトされている。
- 高速SD前世代は旧入力の (0) を DASD 版に置き換えた後も (-1) のままである。DASD 版の高速SD が GDG(0) と同じ世代かどうかで前世代の意味が変わるため、要確認。
- 高速SD・高速SD前世代は本JOB では作成しないため、作成元JOB の完了後に実行する必要がある(推定)。
3.2 ワーク・CSV・帳票
- 「削除」は事前削除(SCRATCH)するステップ。
| 略称 | DSN | 種類 | 形式・長さ | 作成 | 使用 | 内容 |
|---|---|---|---|---|---|---|
| W0010 | TEMP.BU83000J.WORK0010 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #2 | #3 | 高速SD のコピー |
| W0011 | TEMP.BU83000J.WORK0011 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #3 | #4 | 高速SD(最新)の BU83010P 編集後(推定) |
| W0012 | TEMP.BU83000J.WORK0012 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #4 | #8 | W0011 をキー (61,17) で並べ替えたもの |
| W0020 | TEMP.BU83000J.WORK0020 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #5 | #6 | 高速SD前世代 のコピー |
| W0021 | TEMP.BU83000J.WORK0021 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #6 | #7 | 高速SD前世代の BU83010P 編集後(推定) |
| W0022 | TEMP.BU83000J.WORK0022 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #7 | #8 | W0021 をキー (61,17) で並べ替えたもの |
| W0030 | TEMP.BU83000J.WORK0030 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #8 | #9 | 翌月調整分データ(推定) |
| W0050 | TEMP.BU83000J.WORK0050 | ワーク | FB 120/6240、SPACE (6240,(10,1))、DASD03 | #9 | #10 | 翌月調整分データを仕訳の順に並べたもの(推定) |
| S0060 | SEAD.BU83000J.WORK0060 | ワーク | FB 160/6240、SPACE (6240,(100,100))、DASD11 | #10 | #11、#14 | 仕訳伝票マスターの登録データ(推定) |
| W0070 | TEMP.BU83000J.WORK0070 | ワーク | FB 80/6240、SPACE (6240,(1,1))、DASD03 | #10 | #12 | 採番後の番号M レコード(推定) |
| 仕訳CSV | SEAD.BU83000J.CSV | CSV | FB 260/2600、SPACE (2600,(30000,100))、(,CATLG,DELETE)、DASD11 | #14 | なし | 仕訳データ CSV |
| KE853601 | SYSOUT=(E,KE853601,10)(DD OUTPR) | 帳票 | FA、BLKSIZE=160(LRECL 指定なし) | #11 | - | 仕訳伝票 補助表(推定) |
- SPACE はいずれも RLSE 付き。W0 系のワーク9本は (,KEEP,DELETE)・DASD03 で共通。
- 事前削除:W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070(DASD03)と S0060(DASD11)は #1。仕訳CSV は #13(UNCATLG+SCRATCH)。
- 仕訳CSV は JOB 内では使わない(後続JOB での配信・取込み用と推定)。
4. JOBフロー
① #1 SCRATCH(前回分を削除:W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070、S0060)
② 高速SD(他JOB作成と推定)
→ #2 SORT1(COPY)→ W0010
→ #3 BU83010P → W0011
→ #4 SORT2(61,17)→ W0012
③ 高速SD前世代(テープGDG(-1)、他JOB作成)
→ #5 SORT3(COPY)→ W0020
→ #6 BU83010P → W0021
→ #7 SORT4(61,17)→ W0022
④ W0012(最新)+ W0022(前世代)+ KEDATE1
→ #8 BU83000P → W0030
→ #9 SORT6(9キー)→ W0050
⑤ W0050 → #10 KE85390P(番号M・日付PTR)─┬→ S0060 ─┬→ #11
│ └→ ⑥ #14
└→ W0070 ──→ #12
S0060 → #11 KE85360P(科目M・KE85300J・店所M)→ KE853601
#12 VKKEINO REPLACE(W0070 → 番号M)
⑥ #13 SCRATCH(仕訳CSV) → S0060 → #14 KE53015P(科目M)→ 仕訳CSV
5. ステップ一覧
| No | まとまり | ステップ名 | PGM | 内容 | 入力 | 出力 | JCL行 |
|---|---|---|---|---|---|---|---|
| 1 | ① | SCRATCH | IEHPROGM | 前回分の削除(10本) | - | (削除)W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070、S0060 | L9–24 |
| 2 | ② | SORT1 | USORTM | コピー(並べ替えなし) | 高速SD | W0010 | L25–40 |
| 3 | ② | BU83010P | BU83010P | 高速SD(最新)の編集(推定) | W0010 | W0011 | L42–55 |
| 4 | ② | SORT2 | USORTM | 並べ替え | W0011 | W0012 | L56–71 |
| 5 | ③ | SORT3 | USORTM | コピー(並べ替えなし) | 高速SD前世代 | W0020 | L72–85 |
| 6 | ③ | BU83010P | BU83010P | 高速SD前世代の編集(推定) | W0020 | W0021 | L87–100 |
| 7 | ③ | SORT4 | USORTM | 並べ替え | W0021 | W0022 | L101–116 |
| 8 | ④ | BU83000P | BU83000P | 最新と前世代の突き合わせ・翌月調整分データ作成(推定) | W0012、W0022、KEDATE1 | W0030 | L118–136 |
| 9 | ④ | SORT6 | USORTM | 並べ替え(MASTER SD CREATE) | W0030 | W0050 | L138–154 |
| 10 | ⑤ | KE85390P | KE85390P | 仕訳伝票マスター登録データ作成・採番(推定) | W0050、番号M、日付PTR | S0060、W0070 | L155–173 |
| 11 | ⑤ | KE85360P | KE85360P | 仕訳伝票 補助表の印刷 | S0060、科目M、KE85300J、店所M | KE853601 | L174–184 |
| 12 | ⑤ | VKKEINO | IDCAMS | 番号マスターの更新 | W0070 | 番号M | L187–196 |
| 13 | ⑥ | SCRATCH | IEHPROGM | 仕訳CSV の削除(UNCATLG+SCRATCH) | - | (削除)仕訳CSV | L198–204 |
| 14 | ⑥ | KE53015P | KE53015P | 仕訳データ CSV の作成 | S0060、科目M | 仕訳CSV | L205–219 |
6. ステップ詳細
SORT キーの「項目」はすべて(推定)。位置はバイト位置、CH・昇順以外は明記する。
KE85390P・KE85360P・KE53015P は、接頭辞 KE などから経理側の共通プログラムと推定。KE85390P はソートキーが JOB ごとに異なる(BU82905J は (5,3)(72,1)、BY60410J は (5,3)(72,1)(74,4)、本JOB は9キー)。
6.1 ① 前処理(#1)
- #1 SCRATCH:SCRATCH パターン。前回分の W0010、W0011、W0012、W0020、W0021、W0022、W0030、W0050、W0070(DASD03)と S0060(DASD11)を削除する。DD は DASD03・DASD11 の2本。
6.2 ② 高速SD(最新)の編集(#2〜#4)
#2 SORT1
- 目的:高速SD を W0010(DASD03)にコピーする。
- SORT キー:並べ替えなし(データセットのコピー)。
SORT FIELDS=COPY。 - 入力は以前はテープGDG の高速SD だった(L29–30 コメントアウト)。
#3 BU83010P
- 目的:W0010 を翌月調整分の突き合わせ用に編集する(推定)。
- 処理内容:W0010(INFILE)を読み、編集して W0011(OUTFILE)に出す(推定)。#6 と同じプログラムで、入力のデータが最新か前世代かだけが異なる(推定)。STEPLIB は LOD。
#4 SORT2
- 目的:W0011 を #8 の突き合わせ用に並べ替える。
- SORT キー:61〜77(17)突き合わせキー(推定)CH 昇順。
- 出力は W0012(FB 120/6240)。
6.3 ③ 高速SD(前世代)の編集(#5〜#7)
#5 SORT3
- 目的:高速SD前世代 を W0020(DASD03)にコピーする。
- SORT キー:並べ替えなし(データセットのコピー)。
SORT FIELDS=COPY。 - 入力はテープGDG(-1)(UNIT=VTAP)で、DASD への取り込みの役割もある(推定)。
#6 BU83010P
- 目的:W0020 を #3 と同じ形式に編集する(推定)。
- 処理内容:W0020(INFILE)を読み、編集して W0021(OUTFILE)に出す(推定)。#3 と同一PGM。STEPLIB は LOD。
#7 SORT4
- 目的:W0021 を #8 の突き合わせ用に並べ替える。
- SORT キー:61〜77(17)突き合わせキー(推定)CH 昇順(#4 と同じキー)。
- 出力は W0022(FB 120/6240)。
6.4 ④ 翌月調整分データ作成(MASTER SD CREATE)(#8〜#9)
#8 BU83000P
- 目的:最新と前世代を突き合わせて、翌月調整分のデータを作る(推定)。
- 処理内容:W0012 を MSFILE(最新)、W0022 を TRFILE(前世代)として、同じキー (61,17) の順に突き合わせ、差分などから翌月調整分のデータを W0030(OUTFILE)に出す(推定)。KEDATE1(KEDATFL)は計上日などの日付パラメータ(推定)。STEPLIB は LOD。
#9 SORT6(L137 のコメント:MASTER SD CREATE)
- 目的:W0030 を仕訳伝票マスターの登録順(#10 の処理順)に並べる(推定)。
- SORT キー(9キー、L151–152):
① 5〜7(3)仕訳の大分類(推定)CH 昇順 → ② 72(1)区分(推定)CH 昇順 → ③ 74〜77(4)店所コード等(推定)BI(2進)昇順 → ④ 73(1)区分(推定)BI(2進)昇順 → ⑤ 61〜67(7)日付等(推定)BI(2進)昇順 → ⑥ 100〜103(4)項目名不明(推定)BI(2進)昇順 → ⑦ 98(1)項目名不明(推定)BI(2進)昇順 → ⑧ 99(1)項目名不明(推定)BI(2進)昇順 → ⑨ 87〜93(7)項目名不明(推定)BI(2進)昇順 - BI キーは2進比較(パック・バイナリ項目の可能性、推定)。
6.5 ⑤ 仕訳伝票マスター登録・補助表印刷(#10〜#12)
#10 KE85390P
- 目的:仕訳伝票マスターの登録データを作り、伝票番号を採番する(推定)。
- 処理内容:日付PTR から伝票日付を取り、番号M の最終番号から伝票の区切りごとに番号を振る(推定)。伝票番号付きの登録データを S0060(FB 160)に、採番後の番号M レコードを W0070(FB 80、数件程度)に出す(推定)。番号M はここでは更新しない(DISP=SHR)。S0060 をマスターに登録するステップは JOB 内に無い。
#11 KE85360P
-
目的:仕訳伝票の補助表(KE853601)を印刷する。
-
処理内容:S0060 を読み、科目M で科目名、店所M で店所名を付けて出す(推定)。KE85300J は見出しや固定値のパラメータ(推定)。
-
#12 VKKEINO:REPLACE パターン(DD 名 INFL → VKKEINO)。W0070 → 番号M。退避は無い。番号M の CEMT CLO(L185)は前に、ENA OPE(L220)は JOB の最後にあるが、どちらもコメントアウトされており、CICS 側はオープンのまま更新する。
6.6 ⑥ 仕訳データCSV作成(#13〜#14)
- #13 SCRATCH:SCRATCH パターン。仕訳CSV を UNCATLG してから SCRATCH する(DASD11)。
#14 KE53015P
-
目的:仕訳データの CSV(仕訳CSV)を作る。
-
処理内容:S0060 を1件ずつ読み、科目M で科目名などを付けて CSV(1行最大 260 バイト)に編集する(推定)。
-
番号M の更新(#12)は仕訳CSV の作成(#13〜#14)より前に行う。BY60410J(KE53015P → VKKEINO)とは順序が逆で、BU82905J と同じ。
7. 出力物一覧
7.1 帳票(SYSOUT クラス E)
| 帳票 | 作成 | 内容 | フォーム | 形式 |
|---|---|---|---|---|
| KE853601 | #11 KE85360P | 仕訳伝票 補助表 | 10 | FA、BLKSIZE=160 |
- SYSPRINT・SYSUDUMP(SYSOUT=*)は MSGCLASS=Q に出る。
7.2 CSV
| CSV | 作成 | 内容 | 形式 | 事前削除 |
|---|---|---|---|---|
| 仕訳CSV | #14 KE53015P | 仕訳データの CSV | FB 260、DASD11、カタログ | #13(UNCATLG+SCRATCH) |
- JOB 内では使わない(後続JOB での配信・取込み用と推定)。
7.3 更新されるマスター
| マスター | 更新ステップ | 更新方法 | 退避 | CICS |
|---|---|---|---|---|
| 番号M | #12 | REPLACE | なし | VKKEINO(CEMT CLO/ENA OPE は L185・L220 でコメントアウトされ、CICS 側はオープンのまま更新) |
- 更新後の番号M を JOB 内の後続ステップは読まない。