レビュー指摘 #12048 » DAISEQ4J_詳細設計書_JOBフロー (1).md
JOB詳細設計書(JOBフロー) DAISEQ4J 【第2版】
| 項目 | 内容 |
|---|---|
| 解析対象 | DAISEQ4J.jcl(JCL、850行。10/13 受領分。初版と同一内容) |
| 作成方法 | JCL と、JOB 内の全業務プログラム(11種)のソース解析結果からのリバース設計 |
| 作成日 | 2026/10/08(初版)、2026/10/13(第2版) |
【本書の前提】
- JCL の解析では、初版と同じくコメント行(
//*で始まる行。//**を含む)は根拠にしていない。コメントアウトされたステップ(KS60140P、KS60141P、KS60150P、KS60480P、IDCAMS 等)は存在しないものとして扱う。 - 第2版では、各ステップの業務的な役割・入出力の中身を、次のプログラム設計書(ソース解析結果)に基づいて記述した。初版で「(推定)」としていた箇所の多くは確定した。
| プログラム | 設計書 | 使用ステップ |
|---|---|---|
| KS60130P | KS60130_詳細設計書.md | No.3 |
| KS60135P | KS60135_詳細設計書.md | No.11 |
| KS60144P | KS60144_詳細設計書.md、KS60144_出力ファイル解説.md | No.8、No.12 |
| KS60151P | KS60151_詳細設計書.md | No.9 |
| KS60152P | KS60152_詳細設計書.md | No.13 |
| KS60630P | KS60630_詳細設計書.md | No.29 |
| KS60750P | KS60750_詳細設計書.md | No.15 |
| KS60760P | KS60760_詳細設計書.md | No.17 |
| KS60770P | KS60770_詳細設計書.md | No.18 |
| KS60780P | KS60780_詳細設計書.md | No.22、No.23 |
| KS60790P | KS60790_詳細設計書.md | No.25、No.27 |
- プログラムが呼ぶ外部手続き(LKN0010、LSS0050、LSS0051)、ソートのカタログ式プロシージャ、パラメータメンバの中身、運用系タスクはブラックボックス(BB)として扱う(9章)。
- ステップは実行順の通番(No.1~33)で識別する(ステップ名が重複しているため)。
- ★印は、JOB 全体として注意が必要な点を示す(10章にまとめた)。
目次
- 第2版での主な変更点
- JOB概要
- JOB文・共通定義
- JOBフロー
- ステップ一覧
- ステップ詳細
- 出力物一覧(帳票・CSV・中間ファイル)
- データセット一覧
- 実行条件と異常時の動作
- ブラックボックス一覧
- 留意事項・要確認事項
- 関連設計書
0. 第2版での主な変更点
| 項目 | 初版 | 第2版 |
|---|---|---|
| 各ステップの役割 | DD名・データセット名からの推定 | プログラムのソース解析結果で確定 |
| 系統の意味 | 系統A=全件、系統B=抽出、系統C=突合せ | 系統A=特積の請求書、系統B=エコデリバー・事業所郵送の請求書、系統C=郵送集約の請求一覧、系統D=郵送顧客CSV(1.2) |
| 中間ファイルの中身 | 不明 | レコード形式・抽出条件・並び順を記載(3.4) |
| ソートキーの意味 | 位置のみ | 項目名・業務上の意味を記載(5.6) |
| 帳票 | ライター名のみ | 帳票の内容・出力対象・振分けを記載(6.1) |
| 留意事項 | JCL 上の問題のみ | プログラムをまたがる問題を追加(10章) |
| SEQTRYTN/SEQPRTNC | パラメータメンバ(BB) | 用途が判明:SEQTRYTN=郵送対象の店所一覧、SEQPRTNC=自店出力の店所一覧(中身は BB) |
| VKAD.SSYUPRNT.DTMASTER 等 | 「内容不明」 | 優先印刷マスター等、名称と使い方を記載(7.1) |
1. JOB概要
1.1 基本情報
| 項目 | 内容 |
|---|---|
| JOB名 | DAISEQ4J |
| ステップ数 | 33(有効なステップのみ) |
| 処理形態 | バッチ(請求明細データの請求書化) |
| 業務プログラム | 11種・14ステップ |
| ユーティリティ等 | IEHPROGM 9ステップ、ソート 8ステップ(USORTG×2、USORTM×6)、MVSCMD 2ステップ |
| 主な入力 | TEMP.DAISEQ1J.WORK0510(別JOB作成の請求明細データ。見出し+送り状明細) |
| 主な出力 | 電子帳票(SYSOUT クラスE)7種、SEAD.DAISEQ4J.CSV |
1.2 機能概要
請求明細データ(請求先ごとの見出し=鑑と、送り状ごとの明細)から、次の4系統の出力を作る。
| 系統 | ステップ | 対象 | 出力 |
|---|---|---|---|
| 共通 | No.1~6 | 全データ | 地名付加・配信店変換・並べ替え済みの共通データ WORK0620 |
| A:特積の請求書 | No.7~9 | 全店所・全請求先 | 新書式の請求書(控え・送付用)2種 |
| B:郵送用の請求書 | No.10~13 | 郵送対象店所(SEQTRYTN)の請求先。訂正明細を除く | 新書式の請求書(インフォコム・インフォコム送付用・事業所送付用)3種 |
| C:郵送集約の請求一覧 | No.14~27 | 顧客法人管理マスターで「他の代表に集約」とされた請求先と、その代表 | 集約代表あての請求一覧(事業所用・エコデリバー用)2種 |
| D:郵送顧客CSV | No.28~31 | 系統Bと同じ請求先 | 請求先ごとの取扱区分(エコ/優先/不要)の CSV |
| 後処理 | No.32~33 | - | ワークと入力データの削除 |
請求明細(DAISEQ1J.WORK0510)
│ No.2~5:地名付加、配信店変換、0円除外、並べ替え
▼
共通データ WORK0620 ─┬─▶ 系統A:KS60144P → KS60151P ……… 請求書(特積)2種
│
├─▶ 系統B:KS60135P(郵送対象店所・訂正除外)→ WORK062S
│ ├─▶ KS60144P → KS60152P ……… 請求書(郵送)3種
│ └─▶ 系統D:KS60630P ………………… CSV
│
└─▶ 系統C:KS60770P(見出しのみ)─┐
顧客法人管理マスター → KS60750P → KS60760P ─┴─▶ KS60780P → KS60790P … 請求一覧2種
- 系統A は全請求先を対象とするため、系統B・C・D の請求先も系統A の請求書に含まれる(用途が異なる重複。10章 No.12)。
2. JOB文・共通定義
2.1 JOB文
| パラメータ | 値 | 内容 |
|---|---|---|
| CLASS | B | ジョブクラス |
| MSGCLASS | Q | ジョブログ出力クラス |
| MSGLEVEL | (1,1) | JCL文・割振りメッセージをすべて出力 |
| REGION | 6144K | リージョンサイズ |
| COND | (9,LT) | 先行ステップのリターンコードが 9 を超えた(10以上)場合、以降のステップを実行せずJOBを終了 |
| PERFORM | 1 | パフォーマンスグループ 1 |
2.2 JOBLIB
| DD名 | DSN | DISP |
|---|---|---|
| JOBLIB | ENT.BATCHA.LOD | SHR |
2.3 共通仕様
- ワークデータセットは DASD09 上に
DISP=(NEW,KEEP,DELETE)で作成する非カタログデータセットであり、参照側は UNIT/VOL=SER を明示している。 - 各系統の先頭に、その系統で作成するワークを IEHPROGM の SCRATCH で事前削除するステップを置いている。
- 可変長(VB)ワークの DCB は
RECFM=VB,BLKSIZE=12000のみで LRECL の指定がない。レコード長はプログラムまたはソートの入力側の属性で決まる。 - 可変長データに対する SORT のキー位置は、先頭4バイトの RDW を含む位置である(データ部の位置=指定位置-4)。
- 帳票は
SYSOUT=(E,ライター名,99)の形式で、クラスE・用紙番号99、帳票ごとに異なるライター名を指定して出力する。
3. JOBフロー
3.1 処理の流れ(業務の言葉で)
- 共通データの作成(No.2~5):入力を地名コード順に並べ(No.2)、KS60130P で漢字地名を付け、検品料のデータIDを 95 に変え、0円の明細を除き、優先印刷マスターで配信店を変換する(No.3)。これを「配信店・請求先・データID・区分・日付」の順に並べて共通データ WORK0620 にする(No.5)。
- 系統A(No.7~9):KS60144P が WORK0620 から請求書の行データ(見出し・明細・計)を作り(No.8)、KS60151P が電子帳票の請求書(控え・送付用)を出力する(No.9)。
- 系統B(No.10~13):KS60135P が郵送対象店所(SEQTRYTN)の請求先だけを、訂正明細を除いて抜き出す(No.11)。これを KS60144P で行データにし(No.12)、KS60152P が優先印刷マスターで振り分けて、インフォコム系2種・事業所送付用1種の請求書を出力する(No.13)。
-
系統C(No.14~27):
- 顧客法人管理マスターから「荷主 → 集約代表」の対応表を作り(No.15)、代表自身を補って、優先印刷マスターの有無で2つに分ける(No.17)。
- WORK0620 から請求額≠0 の見出しだけを抜き出し(No.18)、請求先番号順に並べる(No.21)。
- 見出しと対応表を荷主コードで突き合わせ、集約代表・代表扱い店を書き込む(No.22・23)。
- 代表扱い店・集約代表の順に並べ(No.24・26)、KS60790P が集約代表ごとの請求一覧を出力する(No.25・27)。
- 系統D(No.28~31):系統B の抽出データから、請求先ごとの取扱区分を CSV にし(No.29)、運用系に MODIFY コマンドを2つ発行する(No.30・31)。
- 後処理(No.32~33):ワークの一部と入力データを削除する。
3.2 全体フロー(データセットの流れ)
【1. 共通データの作成】
[No.1 DELETE] ワーク事前削除
TEMP.DAISEQ1J.WORK0510(DASD30。別JOBで作成)
│
▼
[No.2 SORT] キー(54,3)
│
▼
(WORK0600) VKAD.CHIMEIET.DTMASTER ─┐
│ VKAD.SSYUPRNT.DTMASTER ─┤
▼ │
[No.3 KS60130P] ←──────────────────────────┘
│ [No.4 DELETE] WORK0600 削除
▼
(WORK0610)
│
▼
[No.5 SORT] キー7項目
│ [No.6 DELETE] WORK0610 削除
▼
(WORK0620) ── 共通データ。系統A・B・Cの入力
│
┌──────┼─────────────────────────┐
▼ ▼ ▼
系統A 系統B 系統C
【2. 系統A】 【3. 系統B】
[No.7 SCRATCH] [No.10 DELETE]
(WORK0620) (WORK0620) ADG.ALTLIB(SEQTRYTN)
│ │ │
▼ ▼ │
[No.8 KS60144P] [No.11 KS60135P] ←───┘
│ ├→ (WORK0642) │
│ └→ (WORK0646) ▼
▼ (WORK062S) ───────────────┐
(WORK0635) │ │
│ ▼ │
▼ [No.12 KS60144P] │
[No.9 KS60151P] │ ├→ (WORK0701) │
│ │ └→ (WORK0702) │
▼ ▼ │
SYSOUT KS601511 (WORK0700) │
SYSOUT KS601512 │ │
▼ │
[No.13 KS60152P] │
│ │
▼ │
SYSOUT KS601521 │
SYSOUT KS601522 │
SYSOUT KS601523 │
│
【5. CSV出力と後処理】 │
│
[No.28 DELETE] CSV 事前削除 │
[No.29 KS60630P] ←─────────────────────────────────────┘
│
▼
SEAD.DAISEQ4J.CSV(DASD11)
[No.30 MVSCMD1] F AUTO1,ASVQ803
[No.31 MVSCMD1] F AUTO1,ASVQ808
[No.32 DELETE] ワーク削除
[No.33 DELETE] TEMP.DAISEQ1J.WORK0510 削除
3.3 系統Cのフロー
[No.14 SCRATCH] TEMP.KS60750J.WORK0010~0130 事前削除
VKAD.CORPOMAN.DTMASTER (TEMP.DAISEQ4J.WORK0620)
│ │
▼ ▼
[No.15 KS60750P] [No.18 KS60770P]
│ │
▼ ▼
(K-WORK0010) (K-WORK0050)
│ │
▼ ▼
[No.16 SORT1] キー(8,7) [No.21 SORT3] キー(19,8,PD)
│ │
▼ ▼
(K-WORK0020) VKAD.SSYUPRNT.DTMASTER (K-WORK0090)
│ │ │
▼ │ ┌────────┴────────┐
[No.17 KS60760P] ←─────────┘ │ │
│ │ │
┌────┴─────┐ │ │
▼ ▼ │ │
(K-WORK0030) (K-WORK0040) │ │
│ │ │ │
▼ ▼ │ │
[No.19 SORT2] [No.20 SORT2] キー(1,7) │ │
│ │ │ │
▼ ▼ │ │
(K-WORK0060) (K-WORK0080) │ │
│ │ │ │
│ └─────────────────────┐ │ │
▼ │ ▼ │
[No.22 KS60780P] ←─────────────────────┼─── (K-WORK0090) │
│ ▼ │
│ [No.23 KS60780P] ←────────────────┘
▼ │
(K-WORK0100) ▼
│ (K-WORK0110)
▼ │
[No.24 SORT4] キー3項目 ▼
│ [No.26 SORT4] キー3項目
▼ │
(K-WORK0120) ▼
│ (K-WORK0130)
▼ │
[No.25 KS60790P] ▼
│ [No.27 KS60790P]
▼ │
SYSOUT KS607902 ▼
SYSOUT KS607901
- 図中の (WORKnnnn) は TEMP.DAISEQ4J.WORKnnnn、(K-WORKnnnn) は TEMP.KS60750J.WORKnnnn を表す。
- 実行順は No.1 → No.33 の直列であり、並行実行や条件分岐はない。
- No.25、27 の KS60790P は、図示した入力のほかにマスター6本を参照する(5.4 参照)。
3.4 中間ファイルの中身
| データセット | 作成 | 中身 | レコード | 並び順 |
|---|---|---|---|---|
| WORK0600 | No.2 | 入力の請求明細(見出し+明細、5レイアウト) | VB 80~560 | 地名コード(明細の 50~52 バイト目) |
| WORK0610 | No.3 | 地名付加・検品料ID変更・0円除外・配信店変換後の請求明細 | 同上 | 入力順 |
| WORK0620 | No.5 | 同上(共通データ) | 同上 | 配信店・予備・請求先番号 → データID十の位 → 区分 → データID一の位 → 日付 → 元着・送り状番号 |
| WORK0635 | No.8 | 請求書の行データ(見出し1・2、明細行、ページ小計・区分計・総合計) | VB 59~466(SQHAIDAA~D) | 印刷順(月日・配信店・連番・頁・行・DTID) |
| WORK0642/0701 | No.8/No.12 | 印刷照会マスター更新用(配信店ごとの件数・ページ数) | FB 120(SQSSPRSK) | 配信店順 |
| WORK0646/0702 | No.8/No.12 | 顧客ごとの請求書枚数 | FB 30 | 配信店・請求先順 |
| WORK062S | No.11 | 郵送対象店所の請求明細(訂正 ID 31~33 を除く) | VB 80~560 | WORK0620 と同じ |
| WORK0700 | No.12 | WORK062S から作った請求書の行データ | VB(SQHAIDAA~D) | 印刷順 |
| K-WORK0010 | No.15 | 荷主・集約代表・代表扱い店(荷主≠集約代表のもの) | FB 18 | 荷主コード順 |
| K-WORK0020 | No.16 | 同上 | FB 18 | 集約代表順 |
| K-WORK0030/0040 | No.17 | 代表自身を補った対応表。優先印刷マスターに有る荷主/無い荷主 | FB 18 | 集約代表順 |
| K-WORK0060/0080 | No.19/20 | 同上 | FB 18 | 荷主コード順 |
| K-WORK0050 | No.18 | 全店所の見出しデータ(請求額≠0) | VB 560 | WORK0620 と同じ |
| K-WORK0090 | No.21 | 同上 | VB 560 | 請求先番号順 |
| K-WORK0100/0110 | No.22/23 | 突合せで一致した見出し(本締のみ)。データID=00 代表/99 配下、区分=集約代表+代表扱い店 | VB 560 | 請求先番号順 |
| K-WORK0120/0130 | No.24/26 | 同上 | VB 560 | 代表扱い店・集約代表・扱い店 |
| SEAD.DAISEQ4J.CSV | No.29 | 見出し行+請求先ごとの「締め日,扱い店,請求先顧客コード,集約コード,取扱」 | VB 56/34 | WORK062S の順 |
3.5 ワークデータセットのライフサイクル
| ワーク | 作成 | 参照 | 削除 |
|---|---|---|---|
| TEMP.DAISEQ4J.WORK0600 | No.2 | No.3 | No.4(No.1、No.32 でも指定) |
| TEMP.DAISEQ4J.WORK0610 | No.3 | No.5 | No.6(No.1、No.32 でも指定) |
| TEMP.DAISEQ4J.WORK0620 | No.5 | No.8、11、18 | 次回実行時の No.1 |
| TEMP.DAISEQ4J.WORK0635 | No.8 | No.9 | No.32(次回の No.7 でも指定) |
| TEMP.DAISEQ4J.WORK0642 | No.8 | 本JOB内になし | 次回実行時の No.7 |
| TEMP.DAISEQ4J.WORK0646 | No.8 | 本JOB内になし | 次回実行時の No.7 |
| TEMP.DAISEQ4J.WORK062S | No.11 | No.12、29 | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0700 | No.12 | No.13 | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0701 | No.12 | 本JOB内になし | 次回実行時の No.10 |
| TEMP.DAISEQ4J.WORK0702 | No.12 | 本JOB内になし | 次回実行時の No.10 |
| TEMP.KS60750J.WORK0010~0130(11本) | No.15~26 | No.16~27 | 次回実行時の No.14 |
| SEAD.DAISEQ4J.CSV | No.29 | 本JOB内になし | 次回実行時の No.28 |
| TEMP.DAISEQ1J.WORK0510(入力) | 別JOB | No.2 | No.33 |
- TEMP.DAISEQ4J.WORK0630、0631、0632、0641 は、No.1/No.32 で削除対象に指定されているが、本JOBの有効なステップでは作成していない。
- TEMP.KS60750J.WORK0070 は No.14 で削除対象に指定されているが、本JOBでは作成していない。
4. ステップ一覧
| No | ステップ名 | 実行PGM/PROC | 系統 | 処理概要 | 主な入力 | 主な出力 |
|---|---|---|---|---|---|---|
| 1 | DELETE | IEHPROGM | 共通 | ワーク事前削除(7本) | - | - |
| 2 | SORT | USORTG | 共通 | 地名コード順に並べ替え | DAISEQ1J.WORK0510 | WORK0600 |
| 3 | KS60130P | KS60130P | 共通 | 地名付加・検品料ID変更・0円除外・配信店変換 | WORK0600、地名マスター、優先印刷マスター | WORK0610 |
| 4 | DELETE | IEHPROGM | 共通 | WORK0600 削除 | - | - |
| 5 | SORT | USORTG | 共通 | 配信店・請求先・データID・区分・日付順に並べ替え | WORK0610 | WORK0620 |
| 6 | DELETE | IEHPROGM | 共通 | WORK0610 削除 | - | - |
| 7 | SCRATCH | IEHPROGM | A | 系統Aワーク事前削除 | - | - |
| 8 | KS60144P | KS60144P | A | 請求書の行データ作成(全件) | WORK0620、印刷照会・店所・店所コード | WORK0635、0642、0646 |
| 9 | KS60151P | KS60151P | A | 新請求書(特積)出力:控え・送付用 | WORK0635、店所・銀行・優先印刷、SEQPRTNC | SYSOUT KS601511、KS601512 |
| 10 | DELETE | IEHPROGM | B | 系統Bワーク事前削除 | - | - |
| 11 | KS60135P | KS60135P | B | 郵送対象店所の抽出(訂正除外) | WORK0620、SEQTRYTN | WORK062S |
| 12 | KS60144P | KS60144P | B | 請求書の行データ作成(郵送分) | WORK062S、同上 | WORK0700、0701、0702 |
| 13 | KS60152P | KS60152P | B | 新請求書(郵送)出力:インフォコム・インフォコム送付用・事業所送付用 | WORK0700、店所・銀行・優先印刷・顧客法人管理、SEQPRTNC | SYSOUT KS601521~23 |
| 14 | SCRATCH | IEHPROGM | C | 系統Cワーク事前削除 | - | - |
| 15 | KS60750P | KS60750P | C | 郵送集約の対応表作成(荷主≠集約代表) | 顧客法人管理マスター | K-WORK0010 |
| 16 | SORT1 | USORTM | C | 集約代表順に並べ替え | K-WORK0010 | K-WORK0020 |
| 17 | KS60760P | KS60760P | C | 代表自身を補い、優先印刷マスターの有無で2分割 | K-WORK0020、優先印刷 | K-WORK0030、0040 |
| 18 | KS60770P | KS60770P | C | 見出し(請求額≠0)の抽出 | WORK0620 | K-WORK0050 |
| 19 | SORT2 | USORTM | C | 荷主コード順に並べ替え(有る分) | K-WORK0030 | K-WORK0060 |
| 20 | SORT2 | USORTM | C | 荷主コード順に並べ替え(無い分) | K-WORK0040 | K-WORK0080 |
| 21 | SORT3 | USORTM | C | 請求先番号順に並べ替え | K-WORK0050 | K-WORK0090 |
| 22 | KS60780P | KS60780P | C | 見出しと対応表(有る分)の突合せ | K-WORK0090、0060 | K-WORK0100 |
| 23 | KS60780P | KS60780P | C | 見出しと対応表(無い分)の突合せ | K-WORK0090、0080 | K-WORK0110 |
| 24 | SORT4 | USORTM | C | 代表扱い店・集約代表・扱い店順に並べ替え | K-WORK0100 | K-WORK0120 |
| 25 | KS60790P | KS60790P | C | 郵送集約の請求一覧(事業所用)出力 | K-WORK0120、マスター6本 | SYSOUT KS607902 |
| 26 | SORT4 | USORTM | C | 同上 | K-WORK0110 | K-WORK0130 |
| 27 | KS60790P | KS60790P | C | 郵送集約の請求一覧(エコデリバー用)出力 | K-WORK0130、マスター6本 | SYSOUT KS607901 |
| 28 | DELETE | IEHPROGM | D | CSV 事前削除 | - | - |
| 29 | KS60630P | KS60630P | D | 郵送顧客 CSV 作成 | WORK062S、優先印刷・顧客法人管理 | SEAD.DAISEQ4J.CSV |
| 30 | MVSCMD1 | MVSCMD | D | F AUTO1,ASVQ803 | - | - |
| 31 | MVSCMD1 | MVSCMD | D | F AUTO1,ASVQ808 | - | - |
| 32 | DELETE | IEHPROGM | 後処理 | ワーク削除(6本) | - | - |
| 33 | DELETE | IEHPROGM | 後処理 | 入力データ削除 | - | DAISEQ1J.WORK0510 削除 |
- 「WORKnnnn」は TEMP.DAISEQ4J.WORKnnnn、「K-WORKnnnn」は TEMP.KS60750J.WORKnnnn を表す。
5. ステップ詳細
業務プログラムのステップは、「JCL」(DD 構成)と「処理内容」(プログラム設計書の要約)を示す。プログラムの詳細は各設計書を参照。
5.1 共通データの作成(No.1~6)
JCL:No.2 SORT
EXEC USORTG(カタログ式プロシージャ。BB)
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SORTIN | TEMP.DAISEQ1J.WORK0510 | SHR | 入力 | DASD30。別JOB(DAISEQ1J と推定)が作成 |
| SORTOUT | TEMP.DAISEQ4J.WORK0600 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |
| SYSIN | ストリーム内 | - | 入力 | 下記制御文 |
SORT FIELDS=(54,3,CH,A)
END
- キー(データ部 50~52 バイト目)は、送り状明細(SQALLDTB)の 地名コード SDTBCHCD(パック10進5桁)。次の KS60130P が地名マスターをスキップ順次で読むため、地名コード順に並べている。
JCL:No.3 KS60130P
EXEC PGM=KS60130P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSDBOUT | SYSOUT=* | - | 出力 | デバッグ出力 |
| VKCHINM | VKAD.CHIMEIET.DTMASTER | SHR | 入力 | 地名マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| ALLSQDT | TEMP.DAISEQ4J.WORK0600 | SHR | 入力 | DASD09 |
| SQALLOK | TEMP.DAISEQ4J.WORK0610 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |
処理内容(KS60130 設計書)
- 金額がすべて0のレコードを除く(送り状明細は、仮締のダミーと特定荷主330コードは残す)。
- 送り状明細(ID 01、21、31)に、地名マスターから漢字地名(最大5文字)を付ける。
- 検品料に当たる送り状明細のデータIDを 95 に書き換える。
- 全レコードについて、優先印刷マスター(VKSYUPR)の変換指定で配信店を書き換える。特定5荷主は配信店を 1025 に固定する。
- ★ 1025 は後の KS60144P で 1001 に読み替えられる(10章 No.9)。
JCL:No.5 SORT
EXEC USORTG
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SORTIN | TEMP.DAISEQ4J.WORK0610 | SHR | 入力 | DASD09 |
| SORTOUT | TEMP.DAISEQ4J.WORK0620 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(250,200),RLSE)、DASD09 |
| SYSIN | ストリーム内 | - | 入力 | 下記制御文 |
SORT FIELDS=(5,21,CH,A,37,1,CH,A,26,11,CH,A,
38,1,CH,A,39,2,Y2P,A,40,3,PD0,A,43,7,CH,A)
END
| 優先順 | 指定 | データ部の位置 | 長さ | 形式 | 内容 |
|---|---|---|---|---|---|
| 1 | 5,21,CH,A | 1~21 | 21 | 文字 | |
| 2 | 37,1,CH,A | 33 | 1 | 文字 | |
| 3 | 26,11,CH,A | 22~32 | 11 | 文字 | |
| 4 | 38,1,CH,A | 34 | 1 | 文字 | |
| 5 | 39,2,Y2P,A | 35~36 | 2 | 2桁年(パック) | 4バイトのパック10進日付(YYMMDD)の年部分 |
| 6 | 40,3,PD0,A | 36~38 | 3 | パック(先頭桁と符号を無視) | 同じ日付の月日部分 |
| 7 | 43,7,CH,A | 39~45 | 7 | 文字 |
| 優先順 | データ部の位置 | 項目(SQALLHED/SQALLDTB の名前) | 内容 |
|---|---|---|---|
| 1 | 1~21 | SDTASHTN+SDTAKKKK+SDTASQNO | 配信店4+予備10+請求先番号(パック13桁) |
| 2 | 33 | SDTADTID の1桁目 | データIDの十の位(00 の見出しが先、01・02 の計上明細、21・22 付替、31・33 訂正…の順) |
| 3 | 22~32 | SDTASPA1/SDTBPSEQ | 区分(印刷順の区分) |
| 4 | 34 | SDTADTID の2桁目 | データIDの一の位 |
| 5・6 | 35~38 | SDTBYYMD | 年月日(パック10進。Y2P で世紀つき) |
| 7 | 39~45 | SDTBMOCH+SDTBOKRN | 元着区分+送り状番号 |
- この並びが、KS60144P の印刷順(請求先 → 区分 → 日付 → 送り状)の前提になる。
5.2 系統A:特積の請求書(No.7~9)
JCL:No.8 KS60144P
EXEC PGM=KS60144P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSDBOUT | SYSOUT=* | - | 出力 | |
| VKSEQSK | VKAD.SQSSPRSK.DTMASTER | SHR | 入力 | 印刷照会マスター(更新はしない) |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター(KS60144P は読むが未使用) |
| VETENCD | SEAD.TENSCODE.CDMASTER | SHR | 入力 | DASD11。店所コードマスター(推定) |
| SQALLOK | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | DASD09 |
| SQPRTDA | TEMP.DAISEQ4J.WORK0635 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(12000,(8000,2500),RLSE)、DASD09 |
| SQUPSEQ | TEMP.DAISEQ4J.WORK0642 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=120、BLKSIZE=12000、SPACE=(12000,(5,5),RLSE)、DASD09 |
| SEQPAGS | TEMP.DAISEQ4J.WORK0646 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=30、BLKSIZE=6300、SPACE=(6300,(100,50),RLSE)、DASD09 |
処理内容(KS60144 設計書)
- 請求先ごとの見出しデータから請求書の見出し(鑑)を作り、明細を表示パターンに従って運賃・料金欄に振り分けた明細行、ページ小計・元払計・着払計・元着計・総合計を作る。旧書式(40行/頁)と新書式(33行/頁)の番号を両方持つ。
- 出力区分 '9'(明細不要)の請求先と、見出しのない請求先は出力しない。
- SQUPSEQ:印刷照会マスター(VKSEQSK)の値に今回の件数を加えた「更新後のレコード」。配信店ごとに1件。マスター自体は更新しない。
- SEQPAGS:請求先ごとの請求書枚数(新書式のページ数)。
- 配信店 1025 を 1001 に読み替える。
JCL:No.9 KS60151P
EXEC PGM=KS60151P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSUDUMP | SYSOUT=* | - | 出力 | ダンプ |
| ALTFILE | ADG.ALTLIB(SEQPRTNC) | SHR | 入力 | パラメータメンバ |
| SQHAIDA | TEMP.DAISEQ4J.WORK0635 | SHR | 入力 | DASD09 |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| MDMIKAN | VKAD.MISYUKAN.DTMASTER | SHR | 入力 | 未収管理マスター(推定)。LKN0010(BB)が使用と推定 |
| OUTFILE | SYSOUT=(E,KS601511,99) | - | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL2 | SYSOUT=(E,KS601512,99) | - | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
処理内容(KS60151 設計書)
- WORK0635 の新書式の行データを、プレ印刷の請求書(1ページ50行)に編集する。店所・銀行・優先印刷マスターで店名・住所・振込口座等を補う。
- OUTFILE(KS601511)=控え:全請求先。明細不要(優先印刷マスター UPRNASKB='6')の請求先には '#' を付ける。
- OUTFIL2(KS601512)=送付用:明細不要の請求先を除く。1行目の店所コードを集約店所(LKN0010。BB)に置き換える(自店出力の店所=SEQPRTNC と、自店所出力の顧客を除く)。
- ★ 元払計・着払計の行は印字しない。
5.3 系統B:郵送用の請求書(No.10~13)
JCL:No.11 KS60135P
EXEC PGM=KS60135P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSUDUMP | SYSOUT=* | - | 出力 | |
| TRYFILE | ADG.ALTLIB(SEQTRYTN) | SHR | 入力 | パラメータメンバ |
| ALLSQDT | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | DASD09 |
| SQALLOK | TEMP.DAISEQ4J.WORK062S | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE)、DASD09 |
処理内容(KS60135 設計書)
- SEQTRYTN(郵送対象の店所一覧、最大100件)にある配信店の請求先だけを、レコードを変えずに抜き出す。
- データID 31~33(単品訂正・一括訂正)は除外する。
- ★ 出力の判定は荷主コード7桁の区切りの先頭レコードの配信店だけで行う。
- ★ 訂正明細を除いても鑑の金額は変えないため、請求書で鑑と明細が一致しない可能性がある。
JCL:No.12 KS60144P
EXEC PGM=KS60144P
DD 構成は No.8 と同一。データセットのみ異なる。
| DD名 | No.8(系統A) | No.12(系統B) |
|---|---|---|
| SQALLOK(入力) | TEMP.DAISEQ4J.WORK0620 | TEMP.DAISEQ4J.WORK062S |
| SQPRTDA(出力) | TEMP.DAISEQ4J.WORK0635 | TEMP.DAISEQ4J.WORK0700 |
| SQUPSEQ(出力) | TEMP.DAISEQ4J.WORK0642 | TEMP.DAISEQ4J.WORK0701 |
| SEQPAGS(出力) | TEMP.DAISEQ4J.WORK0646 | TEMP.DAISEQ4J.WORK0702 |
処理内容:No.8 と同じプログラム。入力が郵送対象・訂正除外のデータになるだけ。
JCL:No.13 KS60152P
EXEC PGM=KS60152P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSUDUMP | SYSOUT=* | - | 出力 | |
| ALTFILE | ADG.ALTLIB(SEQPRTNC) | SHR | 入力 | No.9 と同じメンバ |
| SQHAIDA | TEMP.DAISEQ4J.WORK0700 | SHR | 入力 | DASD09 |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| MDMIKAN | VKAD.MISYUKAN.DTMASTER | SHR | 入力 | 未収管理マスター(推定) |
| OUTFILE | SYSOUT=(E,KS601521,99) | - | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL2 | SYSOUT=(E,KS601522,99) | - | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
| OUTFIL3 | SYSOUT=(E,KS601523,99) | - | 出力 | 帳票。RECFM=FA、BLKSIZE=133 |
処理内容(KS60152 設計書)
- 帳票の編集は KS60151P と同じ。顧客ごとに優先印刷マスターで出力先を1つに振り分ける。
| 優先印刷マスター | 出力先 | 1行目の店所コード |
|---|---|---|
| 無い | OUTFILE(KS601521、インフォコム)と OUTFIL3(KS601523、インフォコム送付用)の両方 | OUTFILE=代表扱い店(顧客法人管理マスター CORPZDTN)、OUTFIL3=発行店 |
| 有る(明細不要以外) | OUTFIL2(KS601522、事業所送付用) | 集約店所(LKN0010)。自店出力の店所・自店所出力の顧客は発行店 |
| 有る(明細不要 '6') | どこにも出さない | - |
- 2行目に顧客法人管理マスターの集約代表コードを印字する。★ 2ページ目以降は自分の荷主コードになる。
5.4 系統C:郵送集約の請求一覧(No.14~27)
系統Cのワークはすべて TEMP.KS60750J.WORKnnnn(DASD09)。業務プログラムのステップには SYSPRINT 等の DD がなく、件数メッセージはジョブログに出る。
JCL:No.15 KS60750P
EXEC PGM=KS60750P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| INFILE | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスターを順次に全件読む |
| OUTFILE | K-WORK0010 | (NEW,KEEP,DELETE) | 出力 | RECFM=FB、LRECL=18、BLKSIZE=9000、SPACE=(9000,(1000,100),RLSE) |
処理内容(KS60750 設計書):顧客法人管理マスターを全件読み、荷主≠集約代表(CORPZAND)のものについて「荷主7・集約代表7・代表扱い店4」を出力。★ 集約代表が空白の荷主も出力される。
JCL:No.17 KS60760P
EXEC PGM=KS60760P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| INFILE | K-WORK0020 | SHR | 入力 | 対応表(集約代表順) |
| OUTFIL1 | K-WORK0030 | (NEW,KEEP,DELETE) | 出力 | FB/18/9000 |
| OUTFIL2 | K-WORK0040 | (NEW,KEEP,DELETE) | 出力 | FB/18/9000 |
処理内容(KS60760 設計書):集約代表が変わるたびに代表自身のレコードを補い、代表・配下それぞれの荷主コードで優先印刷マスターを引いて、有る → OUTFIL1(K-WORK0030)、無い → OUTFIL2(K-WORK0040)に分ける。★ 代表と配下が別のファイルに分かれることがある。明細不要('6')は区別しない。
JCL:No.18 KS60770P
EXEC PGM=KS60770P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| INFILE | TEMP.DAISEQ4J.WORK0620 | SHR | 入力 | 共通データ |
| OUTFILE | K-WORK0050 | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE) |
処理内容(KS60770 設計書):見出しデータ(ID 00)のうち、請求額(運賃+料金+消費税+保険料)≠0 のものだけを出力。店所では絞らない。★ INPUT COUNT は常に 0 と表示される。
JCL:No.22、23 KS60780P
EXEC PGM=KS60780P
| DD名 | No.22 | No.23 | 入出力 | 備考 |
|---|---|---|---|---|
| INFILE | K-WORK0090 | K-WORK0090 | 入力 | No.21 の出力。両ステップで同じ |
| TRFILE | K-WORK0060 | K-WORK0080 | 入力 | 顧客リスト1/顧客リスト2 |
| OUTFILE | K-WORK0100 | K-WORK0110 | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE) |
処理内容(KS60780 設計書)
- 見出し(請求先番号順)と対応表(荷主コード順)を荷主コード7桁で突き合わせ、一致したものだけを出力する。データIDを 00(代表)/99(配下)に、区分を「集約代表7+代表扱い店4」に書き換える。仮締は出力しない。
- No.22 は優先印刷マスターに有る荷主(→ 事業所用)、No.23 は無い荷主(→ エコデリバー用)。INFILE は共通。
- ★ 一致すると両ファイルを1件ずつ進めるため、同じ荷主の2件目以降の請求先(枝番違い)は捨てられる。
JCL:No.25、27 KS60790P
EXEC PGM=KS60790P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| VKKANBS | VK47.KANBASED.DTMASTER | SHR | 入力 | 顧客基本マスター。JOB「DAIMNT3J」で再作成される |
| VKTENMS | VKAD.CENTENMS.DTMASTER | SHR | 入力 | 店所マスター |
| VKBANKM | VKAD.BANKMAST.NMMASTER | SHR | 入力 | 銀行マスター |
| VKKONAM | VKAD.KONAMMST.DTMASTER | SHR | 入力 | 荷主名マスター(推定) |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| VETENCD | SEAD.TENSCODE.CDMASTER | SHR | 入力 | DASD11 |
| INFILE | No.25:K-WORK0120/No.27:K-WORK0130 | SHR | 入力 | 突合せ済みの見出し(代表扱い店・集約代表順) |
| OUTFILE | No.25:SYSOUT=(E,KS607902,99)/No.27:SYSOUT=(E,KS607901,99) | - | 出力 | 帳票。RECFM=FA、LRECL=133 |
処理内容(KS60790 設計書)
- 集約代表ごとに、顧客基本マスター(KANBASED)・顧客法人管理マスターから代表の名称・住所・口座、店所マスターから発行店の情報を取り、代表あての請求一覧(1行=1請求先の請求額。1ページ30件、最終ページに合計)を出力する。
- No.25(K-WORK0120)=事業所用(KS607902)、No.27(K-WORK0130)=エコデリバー用(KS607901)。プログラム・様式は同じ。
- ★ 店住所は先頭14文字しか印字されない。顧客基本マスターに代表がないと、前の代表の住所が残る。420件を超える請求先は一覧に載らない。
5.5 系統D:郵送顧客CSV(No.28~31)
JCL:No.29 KS60630P
EXEC PGM=KS60630P
| DD名 | DSN/指定 | DISP | 入出力 | 備考 |
|---|---|---|---|---|
| SYSPRINT | SYSOUT=* | - | 出力 | |
| SYSDBOUT | SYSOUT=* | - | 出力 | |
| VKSYUPR | VKAD.SSYUPRNT.DTMASTER | SHR | 入力 | 優先印刷マスター |
| VKCORPO | VKAD.CORPOMAN.DTMASTER | SHR | 入力 | 顧客法人管理マスター |
| INFILE | TEMP.DAISEQ4J.WORK062S | SHR | 入力 | No.11 の出力(系統Bの抽出データ) |
| CSVFILE | SEAD.DAISEQ4J.CSV | (NEW,KEEP,DELETE) | 出力 | RECFM=VB、BLKSIZE=12000、SPACE=(12000,(8000,2500),RLSE)、DASD11 |
処理内容(KS60630 設計書)
- WORK062S の見出しデータ1件(=請求先1件)ごとに、CSV を1行出力する。先頭に見出し行。
- 列:締め日(期間至)、扱い店(CORPATTN)、請求先顧客コード(荷主7桁)、集約コード(CORPZAND)、取扱(優先印刷マスターに無い=エコ/有る=優先/明細不要=不要)。
- ★ 枝番を出さないため、同じ荷主の複数の請求先は区別できない行になる。扱い店は CORPATTN で、KS60152P の CORPZDTN とは別の項目。
No.30、31 MVSCMD1
//MVSCMD1 EXEC MVSCMD,PARM='F AUTO1,ASVQ803'
//MVSCMD1 EXEC MVSCMD,PARM='F AUTO1,ASVQ808'
- カタログ式プロシージャ MVSCMD(BB)に、オペレーターコマンド文字列を PARM で渡している。
- 発行するコマンドは MODIFY コマンド(F)で、タスク AUTO1 に対して ASVQ803、ASVQ808 を指示する。AUTO1 は自動運転系のタスク、指示内容は後続の配信・転送処理の起動または保留解除と推定されるが、JCLからは判別できない(BB)。
- 2ステップとも DD 文の追加・変更はない。
5.6 ソートステップ(キーの意味)
| No | SORTIN → SORTOUT | SORT FIELDS | データ部の位置 | キーの項目 | 目的 |
|---|---|---|---|---|---|
| 2 | DAISEQ1J.WORK0510 → WORK0600 | (54,3,CH,A) | 50~52 | 地名コード SDTBCHCD | KS60130P の地名マスター読込み順 |
| 5 | WORK0610 → WORK0620 | 7項目(5.1) | 1~45 | 配信店・請求先・データID・区分・日付・送り状 | 請求書の印刷順 |
| 16 | K-WORK0010 → 0020 | (8,7,CH,A) | 8~14 | 集約代表コード | KS60760P の代表ごとの処理 |
| 19 | K-WORK0030 → 0060 | (1,7,CH,A) | 1~7 | 荷主コード | KS60780P の突合せキー |
| 20 | K-WORK0040 → 0080 | (1,7,CH,A) | 1~7 | 荷主コード | 同上 |
| 21 | K-WORK0050 → 0090 | (19,8,PD,A) | 15~22 | 請求先番号 SDTASQNO(15~21)+区分の1バイト目 | 同上。★ キーが1バイト長い(10章 No.13) |
| 24 | K-WORK0100 → 0120 | (33,4,CH,A,26,7,CH,A,51,4,CH,A) | 29~32、22~28、47~50 | 代表扱い店、集約代表(KS60780P が区分に設定)、扱い店 SDTACKTT | KS60790P の代表ごとの印刷 |
| 26 | K-WORK0110 → 0130 | 同上 | 同上 | 同上 | 同上 |
- 可変長(VB)のキー位置は、先頭4バイトのレコード長部(RDW)を含む指定位置から4を引いた位置がデータ部の位置。
5.7 IEHPROGM ステップ(まとめ)
| No | ステップ名 | ボリューム | SCRATCH 対象 | 位置づけ |
|---|---|---|---|---|
| 1 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600、0610、0620、0630、0631、0632、0641 | 事前削除 |
| 4 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600 | 使用後削除 |
| 6 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0610 | 使用後削除 |
| 7 | SCRATCH | DASD09 | TEMP.DAISEQ4J.WORK0635、0642、0646 | 事前削除 |
| 10 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK062S、0700、0701、0702 | 事前削除 |
| 14 | SCRATCH | DASD09 | TEMP.KS60750J.WORK0010、0020、0030、0040、0050、0060、0070、0080、0090、0100、0110、0120、0130 | 事前削除 |
| 28 | DELETE | DASD11 | SEAD.DAISEQ4J.CSV | 事前削除 |
| 32 | DELETE | DASD09 | TEMP.DAISEQ4J.WORK0600、0610、0630、0631、0632、0635 | 使用後削除 |
| 33 | DELETE | DASD30 | TEMP.DAISEQ1J.WORK0510 | 入力データの削除 |
6. 出力物一覧
6.1 帳票(電子帳票 SYSOUT クラスE、用紙 99)
| ライター名 | 出力ステップ | 帳票 | 対象 | 1行目の店所コード(配信先) |
|---|---|---|---|---|
| KS601511 | No.9 KS60151P(OUTFILE) | 新請求書(特積)控え | 全請求先(明細不要には '#') | 発行店 |
| KS601512 | No.9 KS60151P(OUTFIL2) | 新請求書(特積)送付用 | 明細不要を除く全請求先 | 集約店所(条件付き) |
| KS601521 | No.13 KS60152P(OUTFILE) | 新請求書(郵送)インフォコム | 郵送対象店所で、優先印刷マスターに無い請求先 | 代表扱い店 |
| KS601523 | No.13 KS60152P(OUTFIL3) | 新請求書(郵送)インフォコム送付用 | 同上(KS601521 と同じ中身) | 発行店 |
| KS601522 | No.13 KS60152P(OUTFIL2) | 新請求書(郵送)事業所送付用 | 郵送対象店所で、優先印刷マスターに有る請求先(明細不要を除く) | 集約店所(条件付き) |
| KS607902 | No.25 KS60790P | 郵送集約 請求一覧(事業所用) | 集約される請求先のうち優先印刷マスターに有るもの、とその代表 | (1行目は改ページのみ。2行目に代表扱い店・集約代表) |
| KS607901 | No.27 KS60790P | 郵送集約 請求一覧(エコデリバー用) | 同上のうち優先印刷マスターに無いもの | 同上 |
- 帳票の様式・印刷イメージは各プログラム設計書を参照(KS60151 6章、KS60152 6章、KS60790 6章)。
6.2 データセット出力
| データセット | 作成 | 中身 | JOB内の利用 |
|---|---|---|---|
| SEAD.DAISEQ4J.CSV | No.29 | 郵送顧客CSV(5列) | なし(No.30・31 のコマンドで後続処理が取り込むと推定) |
| WORK0642、0701 | No.8、12 | 印刷照会マスター更新用 | なし(別JOBでマスター反映と推定) |
| WORK0646、0702 | No.8、12 | 顧客ごとの請求書枚数 | なし |
7. データセット一覧
7.1 恒久データセット(すべて DISP=SHR、読込みのみ)
| DSN | 名称 | 使用ステップ(DD名) | 主な用途 |
|---|---|---|---|
| ENT.BATCHA.LOD | ロードライブラリ | JOBLIB | |
| VKAD.CHIMEIET.DTMASTER | 地名マスター | No.3(VKCHINM) | 漢字地名 |
| VKAD.SSYUPRNT.DTMASTER | 優先印刷マスター | No.3、9、13、17、29(VKSYUPR) | 配信店変換(No.3)、明細不要・自店所出力・出力先の振分け |
| VKAD.SQSSPRSK.DTMASTER | 印刷照会マスター | No.8、12(VKSEQSK) | SQUPSEQ の元(更新はしない) |
| VKAD.CENTENMS.DTMASTER | 店所マスター | No.8、9、12、13、25、27(VKTENMS) | 店略称・住所・〒・電話(No.8・12 は読むが未使用) |
| SEAD.TENSCODE.CDMASTER | 店所コードマスター | No.8、12、25、27(VETENCD) | 外部手続き LSS0050/LSS0051(BB)が使用と推定 |
| VKAD.BANKMAST.NMMASTER | 銀行マスター | No.9、13、25、27(VKBANKM) | 銀行名・支店名 |
| VKAD.MISYUKAN.DTMASTER | (未収管理と推定) | No.9、13(MDMIKAN) | 外部手続き LKN0010(BB)が使用と推定 |
| VKAD.CORPOMAN.DTMASTER | 顧客法人管理マスター | No.13、25、27、29(VKCORPO)、No.15(INFILE) | 集約代表・代表扱い店・扱い店・法人名 |
| VK47.KANBASED.DTMASTER | 顧客基本マスター | No.25、27(VKKANBS) | 代表の名称・住所・口座 |
| VKAD.KONAMMST.DTMASTER | 荷主名マスター(推定) | No.25、27(VKKONAM) | 請求一覧の荷主名 |
| ADG.ALTLIB(SEQPRTNC) | 自店出力の店所一覧 | No.9、13(ALTFILE) | 送付用の店所コードを集約店所に置き換えない店所 |
| ADG.ALTLIB(SEQTRYTN) | 郵送対象の店所一覧 | No.11(TRYFILE) | 系統B・D の対象店所 |
- 本JOB のプログラムは、どのマスターも更新しない(すべて INPUT で OPEN)。
7.2 ワーク・出力データセット
| DSN | VOL | 属性 | スペース |
|---|---|---|---|
| TEMP.DAISEQ1J.WORK0510(入力) | DASD30 | 別JOBで作成(可変長と推定) | - |
| TEMP.DAISEQ4J.WORK0600、0610、0620 | DASD09 | VB/LRECL指定なし/12000 | CYL(250,200) |
| TEMP.DAISEQ4J.WORK0635、0700 | DASD09 | VB/LRECL指定なし/12000 | (12000,(8000,2500)) |
| TEMP.DAISEQ4J.WORK0642、0701 | DASD09 | FB/120/12000 | (12000,(5,5)) |
| TEMP.DAISEQ4J.WORK0646、0702 | DASD09 | FB/30/6300 | (6300,(100,50)) |
| TEMP.DAISEQ4J.WORK062S | DASD09 | VB/LRECL指定なし/12000 | CYL(300,100) |
| TEMP.KS60750J.WORK0010、0020、0030、0040、0060、0080 | DASD09 | FB/18/9000 | (9000,(1000,100)) |
| TEMP.KS60750J.WORK0050、0090、0100、0110、0120、0130 | DASD09 | VB/LRECL指定なし/12000 | CYL(300,100) |
| SEAD.DAISEQ4J.CSV | DASD11 | VB/LRECL指定なし/12000 | (12000,(8000,2500)) |
8. 実行条件と異常時の動作
8.1 実行条件
| 指定箇所 | 指定 | 動作 |
|---|---|---|
| JOB文 | COND=(9,LT) | いずれかのステップのRCが10以上になった時点で、以降の全ステップを実行せずJOB終了 |
-
RC 0~9 は正常扱いで後続へ進む。
-
IEHPROGM は SCRATCH 対象が存在しない場合 RC=8 となるが、上記条件によりJOBは継続する。事前削除ステップを成立させるための設定と考えられる。
-
業務プログラムはリターンコードを設定しない(正常時 0)。異常は PL/I の標準処理による異常終了(ABEND)で検知される。
8.2 正常終了時に残るデータセット
正常終了後も次のデータセットは削除されず、次回実行時の事前削除まで残る。
| データセット | 次回の削除ステップ |
|---|---|
| TEMP.DAISEQ4J.WORK0620 | No.1 |
| TEMP.DAISEQ4J.WORK0642、0646 | No.7 |
| TEMP.DAISEQ4J.WORK062S、0700、0701、0702 | No.10 |
| TEMP.KS60750J.WORK0010~0130(作成した11本) | No.14 |
| SEAD.DAISEQ4J.CSV | No.28 |
8.3 異常終了時の状態と再実行
| 異常発生箇所 | 状態 | 再実行の考え方 |
|---|---|---|
| No.2~6 | 共通データ WORK0620 が未完成。入力 WORK0510 は残っている | 先頭から再実行できる(No.1 が途中のワークを削除する) |
| No.7~9(系統A) | WORK0620 は完成。系統Aの帳票が未出力または途中 | No.7 から再実行できる |
| No.10~13(系統B) | 系統Aの帳票は出力済み | No.10 から再実行できる |
| No.14~27(系統C) | 系統A・Bの帳票は出力済み | No.14 から再実行できる |
| No.28~29 | 帳票7種は出力済み。CSV が未作成または途中 | No.28 から再実行できる(WORK062S が必要) |
| No.30~33 | CSV まで完了。コマンド発行・削除が未了 | 未実行のステップのみ実行する |
-
先頭からの再実行と帳票の二重出力:帳票を出力済みの状態で先頭や途中から再実行すると、同じ帳票が再度 SYSOUT へ出力される。出力済み分の取消しまたは再実行範囲の限定が必要となる。
-
正常終了後の再実行:No.33 で入力の TEMP.DAISEQ1J.WORK0510 を削除するため、正常終了後は先頭から再実行できない。WORK0620 は残っているので、No.7 以降の再実行は可能である。
-
ステップ名指定のリスタート:ステップ名が重複している(DELETE×7、SORT×2、SCRATCH×2、KS60144P×2、SORT2×2、KS60780P×2、SORT4×2、KS60790P×2、MVSCMD1×2)ため、ステップ名指定(RESTART=)では対象が一意に決まらない。
-
コマンドの再発行:No.30、31 を再実行すると同じコマンドが再度発行される。
-
プログラム上の再実行の注意:KS60144P の SQUPSEQ(WORK0642、0701)は「マスター値+今回分」なので、再実行で作り直しても二重加算にはならない。ただし、マスターへの反映(別JOB)を済ませた後に再実行すると、反映済みの値に再度加算された内容になる。
9. ブラックボックス一覧
| 種別 | 名称 | 使用箇所 | 本書での扱い |
|---|---|---|---|
| カタログ式PROC | USORTG | No.2、5 | ソート |
| カタログ式PROC | USORTM | No.16、19~21、24、26 | ソート |
| カタログ式PROC | MVSCMD | No.30、31 | オペレーターコマンドの発行 |
| 運用系タスク | AUTO1(ASVQ803、ASVQ808) | No.30、31 | MODIFY コマンドの受け側。CSV 等の後続処理と推定 |
| 外部手続き | LKN0010 | No.9、13(KS60151P、KS60152P) | 店所コード → 集約店所コード |
| 外部手続き | LSS0050 | No.8、12(KS60144P) | 発行店コード → 店名 |
| 外部手続き | LSS0051 | No.25、27(KS60790P) | 扱い店コード → 店名 |
| パラメータメンバ | SEQPRTNC、SEQTRYTN | No.9、11、13 | 用途は判明(7.1)。登録内容は不明 |
| マスター | VKAD.KONAMMST、VKAD.MISYUKAN、SEAD.TENSCODE | 7.1 | レイアウト未入手 |
| 別JOB | TEMP.DAISEQ1J.WORK0510 の作成元 | No.2 | DAISEQ1J と推定 |
| 別JOB | SQUPSEQ、SEQPAGS、CSV の取込み先 | - | 不明 |
10. 留意事項・要確認事項
10.1 JCL 上の問題(初版から継続)
No.1 正常時でも RC=8 のステップが発生する
- No.1、14、32 は本JOB で作らないワーク(WORK0630~0632、0641、K-WORK0070)や削除済みのワークを SCRATCH 対象にしており、正常時でも RC=8 になり得る。JOB の最大 RC では正常・異常を判別できない。
No.2 入力データを最終ステップで削除している
- No.33 で TEMP.DAISEQ1J.WORK0510 を削除するため、正常終了後は先頭からの再実行ができない。
No.3 ステップ名の重複
- DELETE×7、SORT×2、SCRATCH×2、KS60144P×2、SORT2×2、KS60780P×2、SORT4×2、KS60790P×2、MVSCMD1×2。ステップ名指定のリスタートができない。
No.4 他JOB名を持つワーク
- 系統C のワークは TEMP.KS60750J.WORKnnnn。KS60750J という別 JOB と同時に実行すると競合する。
No.5 SYSPRINT 等の DD がないステップ
- 系統C の業務プログラム(No.15~27)は件数メッセージがジョブログに出る。
No.6 LRECL 指定のない可変長ファイル・CSV
- CSV(SEAD.DAISEQ4J.CSV)も LRECL の指定がなく、プログラム側にも指定がない(KS60630 設計書)。
No.7 Y2P による世紀判定
- No.5 の日付キー。設定値の確認が必要。
No.8 顧客基本マスターの再作成との重なり
- VK47.KANBASED.DTMASTER は JOB DAIMNT3J で再作成される。本JOB の No.25・27 と重ならないこと。
10.2 プログラムをまたがる問題(第2版で追加)
No.9 配信店 1025 の扱い
- KS60130P が特定5荷主の配信店を 1025 に固定し、KS60144P が 1025 を 1001 に読み替える。並び順は 1025 の位置のままのため、KS60144P の印刷照会マスター更新用データ(SQUPSEQ)に 1001 が2件出る(KS60144 設計書 10章 No.1)。
No.10 「明細不要」「優先印刷」の扱いがプログラムごとに違う
| プログラム | 優先印刷マスターに無い | 有る | 有る・明細不要('6') |
|---|---|---|---|
| KS60151P(系統A) | 控え・送付用 | 控え・送付用 | 控え('#' 付き)のみ |
| KS60152P(系統B) | インフォコム2種 | 事業所送付用 | 出力しない |
| KS60630P(系統D) | 取扱=エコ | 取扱=優先 | 取扱=不要(CSV には出る) |
| KS60760P(系統C) | エコデリバー用 | 事業所用 | 事業所用(区別しない) |
- 明細不要の顧客が、系統C の事業所用請求一覧には載る一方、系統B の請求書には出ない。業務上の意図の確認が必要。
No.11 郵送集約のグループが分かれる・欠ける
- KS60760P の振分けは荷主ごとのため、代表と配下が事業所用・エコデリバー用に分かれる(KS60780 設計書 6.6)。
- KS60780P の1対1マッチングにより、同じ荷主の2件目以降の請求先は請求一覧に載らない。
- 代表の請求額が0(KS60770P で除外)または仮締の場合、代表の行がない一覧になる。
- KS60750P で集約代表が空白のまま抽出された荷主は、KS60790P で「前の代表の住所」が残る見出しになる。
No.12 同じ請求先が複数の帳票に出る
- 系統A は全請求先、系統B は郵送対象店所の請求先を出力するため、郵送対象の請求先は特積の請求書(KS601511/12)と郵送の請求書(KS601521~23)の両方に出る。系統C の請求一覧にも、集約対象なら載る。
- 系統B は訂正明細を除いたデータ、系統A は訂正を含むデータから作るため、同じ請求先でも明細と計が異なり得る(KS60135 設計書 5.2)。
No.13 SORT3 のキー長
- No.21 のキー(データ部 15~22、8バイト PD)は請求先番号(7バイト)より1バイト長く、区分の1バイト目を含む。通常は空白なので請求先番号順になると考えられるが、確認が必要(KS60770 設計書 6.4)。
No.14 系統B の対象判定
- KS60135P は荷主コード7桁の区切りの先頭レコードの配信店で、郵送対象かどうかを決める。配信店の境目で同じ荷主コードが続くと、後ろの配信店の分も前の判定に従う(KS60135 設計書 7.4)。
No.15 帳票上の不具合(主なもの)
| 帳票 | 内容 | 設計書 |
|---|---|---|
| KS601511~12、KS601521~23 | 元払計・着払計の行は印字されない | KS60151 5.5 |
| KS601521~23 | 2ページ目以降の集約代表コードが自分の荷主コードになる | KS60152 5.2 |
| KS607901~02 | 店住所が先頭14文字で切れる | KS60790 5.4 |
| KS607901~02 | 421件目以降の請求先は一覧に載らないが合計には入る | KS60790 5.5 |
No.16 後続で使われない出力
- SQUPSEQ(印刷照会マスター更新用)、SEQPAGS(請求書枚数)、CSV は本JOB 内で使われない。取り込む別JOB の確認が必要。No.8 と No.12 の SQUPSEQ は同じマスター値を起点にしているため、両方を置換で反映すると片方の加算が失われる(KS60144 出力ファイル解説 8章)。
11. 関連設計書
| 設計書 | 内容 |
|---|---|
| KS60130_詳細設計書.md | 地名付加・配信店変換 |
| KS60135_詳細設計書.md | 郵送対象店所の抽出 |
| KS60144_詳細設計書.md/KS60144_出力ファイル解説.md | 請求書行データ作成、出力3ファイルの解説 |
| KS60151_詳細設計書.md | 新請求書(特積)、印刷イメージ |
| KS60152_詳細設計書.md | 新請求書(郵送)3種、印刷イメージ |
| KS60630_詳細設計書.md | 郵送顧客 CSV、CSV イメージ |
| KS60750_詳細設計書.md | 郵送集約の対応表 |
| KS60760_詳細設計書.md | 代表の補完と振分け |
| KS60770_詳細設計書.md | 見出しの抽出 |
| KS60780_詳細設計書.md | 見出しと対応表の突合せ(No.22/23 の違い) |
| KS60790_詳細設計書.md | 郵送集約の請求一覧、印刷イメージ(30件超を含む) |
以上