プロジェクト

全般

プロフィール

タスク #11973 » BU83000J_詳細設計書_JOBフロー.md

幸塚 和久, 2026-10-19 01:26 午後

 

JOB詳細設計書(JOBフロー) BU83000J

項目 内容
JOB名 BU83000J
JOB名称 高速利用料自動伝票 翌月調整分 発行処理
作成元資料 JCL BU83000J.jcl(221行)、ジョブフロー図 BU83000J_jobflow.svg
作成日 2026-10-19
作成方法 JCL からのリバース作成。プログラムのソースは無いため、処理内容は JCL から分かる範囲で書き、推定には「(推定)」を付ける。帳票はレイアウトがプログラム内にあるため、帳票イメージは載せない
  • ステップ番号 #1〜#14 と処理のまとまり ①〜⑥ は、ジョブフロー図に合わせる。
  • 本文・表では、データセットを 3章で定義した略称で書く(DSN は 3章にだけ書く)。

目次

  1. JOB概要
  2. JOB文・共通定義
  3. データセット一覧(略称の定義)
  4. JOBフロー
  5. ステップ一覧
  6. ステップ詳細(6.1〜6.6 = ①〜⑥)
  7. 出力物一覧

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、L220 ENA 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 内の後続ステップは読まない。
(1-1/4)