プロジェクト

全般

プロフィール

レビュー指摘 #11910 » KS60144_出力ファイル解説.md

[参考資料]現行ソース解析資料 - 幸塚 和久, 2026-10-14 02:20 午後

 

KS60144 出力ファイル解説(SQPRTDA/SQUPSEQ/SEQPAGS)

項目 内容
対象プログラム KS60144P(請求書印刷データ作成)
根拠 KS60144P ソース、INCLUDE(SQALLHED/SQALLDTB/SQALLDTC/SQALLDTD/SQHAIDAA~D/DDPTENMS/SQSSPRSK)、JCL DAISEQ4J
位置づけ 「KS60144_詳細設計書.md」の補足資料(出力ファイルに特化した解説)
作成日 2026/10/13(9章 出力イメージ、10章 入力ファイル・参照DBとの関係を追加)
  • 「推定」と書いた箇所は、ソース・JCLから直接は確定できず、項目名や処理から推測した内容です。
  • 例に使った荷主コード・金額・件数はすべて架空です。

1. ひとことで言うと

ファイル ひとことで 誰が使うか
SQPRTDA 請求書の中身(印刷する1行1行のデータ) 同じJOBの次ステップ KS60151P/KS60152P が帳票に組み立てて電子帳票へ出力
SQUPSEQ 配信店ごとの印刷実績の集計(何社・何ページ・何明細印刷したか) JOB内では未使用。印刷照会マスターを書き換えるための別処理用(推定)
SEQPAGS 顧客ごとの請求書の枚数 JOB内では未使用。顧客別枚数を必要とする別処理用(推定)

SQPRTDA は「何を印刷するか」、SQUPSEQ と SEQPAGS は「どれだけ印刷したか」の管理データです。3本とも、入力(SQALLOK)を1回読むあいだに同時に作られます。


2. 全体の流れ(JOB DAISEQ4J 内)

                         ┌─────────────── KS60144P ───────────────┐
 SQALLOK(請求明細全データ)──▶│ 配信店 ─▶ 請求先 ─▶ 印刷順 ─▶ 1レコード │
 VKSEQSK(印刷照会マスター)─▶│   (読むだけ。更新しない)            │
 VKTENMS(店所マスター)  ───▶│                                      │
                         └──┬───────────┬───────────┬─────────┘
                            │行ごと      │請求先ごと  │配信店ごと
                            ▼            ▼            ▼
                        SQPRTDA      SEQPAGS      SQUPSEQ
                       (印刷データ) (顧客別枚数) (照会マスター更新用)
                            │            │            │
                            ▼            ×            ×
                     KS60151P/KS60152P   JOB内で使用なし(DISP=KEEP で残す)
                     → 電子帳票(SYSOUT)

KS60144P は JOB 内で2回実行されます。

実行 入力 SQALLOK SQPRTDA SQUPSEQ SEQPAGS SQPRTDA の読み手
No.8(全件分) WORK0620 WORK0635 WORK0642 WORK0646 KS60151P(特積)
No.12(対象店所抽出分) WORK062S(KS60135P で抽出) WORK0700 WORK0701 WORK0702 KS60152P(エコデリバー)

データセットのライフサイクル(JCLより):

データセット 作成 JOB内で読むステップ 削除
WORK0635 No.8 KS60151P 当JOBの最後で SCRATCH
WORK0700 No.12 KS60152P 当JOBでは削除せず、次回実行の冒頭で SCRATCH
WORK0642/0646 No.8 なし 次回実行の冒頭(KS60144P 直前)で SCRATCH
WORK0701/0702 No.12 なし 次回実行の冒頭(KS60135P 直前)で SCRATCH
  • SQUPSEQ と SEQPAGS は JOB 内で誰も読みませんが、JOB終了時に消さずに残しています。別JOB(または手作業)がこの時間帯に取り込む運用と推定されます。読み手は今回の資料からは特定できません。

3. 3本の比較

観点 SQPRTDA SQUPSEQ SEQPAGS
正式名(ソースコメント) 請求明細書用の印刷データ 印刷照会マスター更新用データ リニアーP顧客毎請求書出力枚数データ(2013/06/18追加)
1レコードの単位 印字1行(見出し・明細・小計・合計) 配信店(+発行年月日) 請求先(荷主7桁+枝番5桁)
件数の目安 最多(明細件数+見出し・計の行) 最少(配信店の数) 中間(印刷した請求先の数)
レコード形式 VB 可変長(59/88/117/126/138/466バイト) FB 120バイト FB 30バイト
レイアウト SQHAIDAA~D、OUT21/OUT22 SQSSPRSK(印刷照会マスターと同一) SDAREA(ソース内定義)
書く契機 見出し・明細・改ページ・計の都度 配信店が切り替わったとき 請求先の処理が終わったとき
数字の性質 金額・個数など表示用の値 マスターの既存値+今回分の累計 今回分の枚数(新書式ページ数)
出力されない請求先 明細不要(出力区分 '9')、見出しデータのない請求先 同左は件数に加算されない(配信店のレコード自体は出る) 同左は出力されない

4. SQPRTDA(請求明細書 印刷データ)

4.1 中身

請求書を印刷する順に並んだ「行」のデータです。帳票の桁位置や罫線はまだなく、項目の値と、どこに印字するか(ページ・行・改行数)だけを持ちます。

  • 先頭19バイトがキー:月日4+配信店4+連番4+ページ4+行2+データID1
  • キーの昇順=印刷の順序
  • 旧書式(40行/ページ)と新書式(33行/ページ)の両方のページ・行番号を持つ。KS60151P は新書式の番号(NPAG/NLIN/NSKP)だけを使う
種別 レイアウト 長さ 中身
見出し1 SQHAIDAA 59 請求先番号、請求月、期間、本締/仮締、税区分
見出し2 SQHAIDAB 126 または 466 請求先名、発行店、区分表示。請求先の最初の1件だけ鑑付き(466)で、請求額・住所・振込口座を含む
検品料の追加見出し OUT21/OUT22 117 検品料の印刷順だけ(旧書式用)
明細行 SQHAIDAC 138 送り状1件分:送り状番号、元着、月日、地名、名称、個数、重量、運賃・各料金、税、備考
小計・合計 SQHAIDAD 88 ページ小計、元払計、着払計、元着計、総合計

4.2 並びの例

条件:請求先1件、送り状35件、区分1種類。

順 種別 新ページ 新行 DTID 長さ
1~2 旧書式 見出し1・2 1 00 1, 2 59, 126
3~4 新書式 見出し1・2(鑑付き) 1 00 5, 6 59, 466
5~37 明細行 1~33件目 1 01~33 0 138
38 ページ小計 1 91 3 88
39~40 新書式 見出し1・2(鑑なし) 2 00 5, 6 59, 126
41~42 明細行 34~35件目 2 01~02 0 138
43 ページ小計 2 91 3 88
44~46 元払計・着払計・元着計 2 99 1, 2, 3 88
  • 旧書式は40行で1ページに収まり、新書式は33行なので2ページになる。
  • KS60151P は DTID 1/2(元払計・着払計)を印字しないため、実際の請求書に出るのは元着計(50行目の「送り状合計」等)だけ(KS60151 設計書 5.5)。

5. SQUPSEQ(印刷照会マスター更新用データ)

5.1 中身

配信店ごとに1件。印刷照会マスター(VKAD.SQSSPRSK.DTMASTER)のレコードと同じ形式で、次の手順で作られます。

  1. 配信店の処理を始めるとき、印刷照会マスターをキー「配信店4桁+発行年月日6桁」で読む。
    • 該当あり:マスターの内容をそのまま作業域に取り込む。
    • 該当なし:作業域をクリアし、キー(配信店・発行年月日)だけを設定する。
  2. その配信店の請求先・明細を処理しながら、作業域の件数項目に今回分を加算する。
  3. 配信店が切り替わったら、作業域をそのまま SQUPSEQ に書く。

KS60144P は印刷照会マスターを読むだけで更新しません(INPUT で OPEN)。SQUPSEQ は「更新後のマスターレコードの姿」を作ったものであり、マスターへの反映は別の処理で行う設計です(推定。2013年まで同じJOB内にあった KS60140P も同じ SQUPSEQ を出力していた)。値は「既存値+今回分」なので、反映側は加算ではなく**置換(REPLACE)**で取り込む前提と考えられます。

同じレイアウトである根拠

  • ソースでは作業域 VSAREA を %INCLUDE SQSSPRSK で1つだけ定義している。この1つの領域を、マスターの読込み(READ FILE(VKSEQSK) INTO(VSAREA))と SQUPSEQ の書出し(WRITE FILE(SQUPSEQ) FROM(VSAREA))の両方に使っている。
  • JCL の SQUPSEQ は LRECL=120 で、SQSSPRSK の全長120バイトと一致する。
  • マスター(VSAM)自体の定義(IDCAMS の RECSZ)は今回の資料にないため、そこは未確認。

出力される条件(「更新用」でも全件出る)

  • 入力に現れた配信店ごとに、無条件で1件出力する。WRITE文に条件はない。
  • 件数が1つも加算されなかった配信店も出力する。たとえば、その配信店の請求先がすべて明細不要(出力区分 '9')だった場合でも出力される。
    • マスターに該当があった場合:マスターと同じ内容になる。
    • マスターに該当がなかった場合:キーだけを設定し、件数がすべて0のレコードになる。
  • 逆に、入力に現れなかった配信店のマスターレコードは出力されない。SQUPSEQ はマスターの全件ではなく、「今回処理した配信店の分」だけである。
  • 該当なしのときはキーだけのレコードを新しく作って出力するため、反映側は「既存キーは置換、新しいキーは追加」の動作が前提になる。IDCAMS の REPRO … REPLACE がこの動作をする(推定)。
  • ★ マスターを読むキーの発行年月日は、その配信店の最初のレコードのものだけを使う。キーブレイクは配信店だけで判定しているため、同じ配信店に別の発行年月日のデータが混ざると、その件数も最初の発行年月日のレコードに加算される。

5.2 項目と、KS60144P での扱い

項目 位置 長さ 属性 KS60144P での扱い
SEQTENCD 1 4 PIC 4桁 キー:配信店
SEQTFYMD 5 6 PIC 6桁 キー:発行年月日
SEQTHNIK(1)/SEQTHPAG(1) 11/15 4/4 パック7桁 マスター値のまま
SEQTTNIK(1)/SEQTTPAG(1) 19/23 4/4 パック7桁 マスター値のまま
SEQTSHNI(1)/SEQTSHPG(1)/SEQTSHME(1) 27/31/35 4/4/5 パック マスター値のまま
SEQTSTNI(1) 40 4 パック7桁 +印刷した請求先の数
SEQTSTPG(1) 44 4 パック7桁 +旧書式ページ数(40行/ページ)の合計
SEQTSTME(1) 48 5 パック9桁 +出力した明細行の数
SEQTEQDT(2)(2要素目) 53~94 42 - マスター値のまま
SEQTSHNP 95 3 パック5桁 マスター値のまま
SEQTSTNP 98 3 パック5桁 +新書式ページ数(33行/ページ)の合計
SEQTNHNI/SEQTNTNI/SEQTNTNK 101/104/107 3 パック5桁 マスター値のまま
SEQTSPAC 110 11 CHAR マスター値のまま
  • KS60144P が更新するのは太字の4項目だけです。
  • 項目名の HONS/SHON は「本社」、TENS/STEN は「店所」の出力分を表すと推定されます。本社出力は2012年に廃止されている(JCLヘッダーのコメント)ため、本社側の項目は現在は増えないと考えられます。
  • SEQTEQDT が2回繰り返される理由(2要素目の用途)は不明です。KS60144P は1要素目だけを使います。

6. SEQPAGS(顧客毎請求書出力枚数データ)

6.1 中身

印刷データを出力した請求先ごとに1件、「この顧客の請求書は何枚になったか」を記録します。JCLヘッダーに「顧客毎出力枚数追加 KS60144P 13/06/20」とあり、後から追加されたファイルです。

項目 位置 長さ 属性 内容
PAGSSQNO 1 12 PIC 12桁 請求先番号(荷主7桁+枝番5桁)
PAGSHYMD 13 6 CHAR 発行年月日
PAGSPAGE 19 5 PIC 5桁 請求書の枚数=新書式のページ数
PAGSSPAC 24 7 CHAR 空白
  • 枚数は新書式(KS60151P/KS60152P が出力する請求書の書式)のページ数なので、実際に出力される請求書の枚数と一致します。
  • 区分が2つ以上ある請求書では、最後に総合計だけのページが1枚増えます。この1枚も枚数に含まれます。
  • 配信店の項目は持ちません。
  • コメントの「リニアーP」は、枚数を必要とする外部の印刷・発送サービス(または課金処理)の名称と推定されますが、資料からは特定できません。

7. 具体例(3本を並べて見る)

7.1 入力の条件

請求先 内容 新書式ページ 旧書式ページ
A:1234567-00001 区分1種類、送り状35件 2(33+2行) 1(40行に収まる)
B:2345678-00000 区分2種類、送り状10件と5件 3(区分ごとに1ページ+総合計1ページ) 2(区分ごとに1ページ)
C:3456789-00000 出力区分 '9'(明細不要) - -
  • 配信店 1001、発行年月日 260930。
  • 印刷照会マスターには(1001, 260930)のレコードがまだないものとします。

7.2 出力結果

各ファイルのレコードの実際の形(ダンプイメージ)と、請求書としての印刷イメージは 9章にあります。

SQPRTDA(行データ。A・Bの分だけ)

キー(月日 配信店 連番 頁 行 DTID)  種別
0930 1001 0001 0001 00 1          A 旧見出し1
0930 1001 0001 0001 00 2          A 旧見出し2
0930 1001 0001 0001 00 5          A 新見出し1
0930 1001 0001 0001 00 6          A 新見出し2(鑑付き 466バイト)
0930 1001 0001 0001 01 0          A 明細 1件目
  …(4.2 の例と同じ並び)…
0930 1001 0001 0001 99 3          A 元着計
0930 1001 0002 0001 00 1          B 区分1 旧見出し1
  …
0930 1001 0002 …    99 9          B 総合計
(C の行は1件もない)

SEQPAGS(請求先ごと。30バイト。□は空白)

位置 1           13    19   24
     12345670000126093000002□□□□□□□   ← A:2枚
     23456780000026093000003□□□□□□□   ← B:3枚

SQUPSEQ(配信店ごと。120バイト。パック項目は値で表示)

項目 値 内訳
SEQTENCD 1001
SEQTFYMD 260930
SEQTSTNI(1) 2 A+B(C は数えない)
SEQTSTPG(1) 3 旧書式 A 1+B 2
SEQTSTME(1) 50 明細 A 35+B 15
SEQTSTNP 5 新書式 A 2+B 3
その他の件数項目 0 マスターに該当なし → クリア

マスターにすでに(1001, 260930)があり、たとえば SEQTSTNI(1)=10 だった場合、SQUPSEQ の SEQTSTNI(1) は 12 になります。

7.3 3本の突合せ(同じ配信店について成り立つ関係)

関係 例
SEQPAGS の件数 = SQUPSEQ.SEQTSTNI(1) の増加分 2件 = 2
SEQPAGS の PAGSPAGE 合計 = SQUPSEQ.SEQTSTNP の増加分 2+3 = 5
SQPRTDA の明細行(DTID 0)の件数 = SQUPSEQ.SEQTSTME(1) の増加分 50 = 50
SQPRTDA の新見出し1(DTID 5)で、請求先ごとの最大ページ番号 = その請求先の PAGSPAGE A:2、B:3
  • テストや障害調査では、この関係を使って3本の整合性を確認できます。
  • SEQPAGS には配信店がないため、配信店単位で突き合わせるときは出力順(配信店順に並んでいる)を利用します。

8. 注意点・要確認事項

  1. 配信店 1025→1001 の読替えによる SQUPSEQ の重複
    • 1025 のデータは配信店を 1001 に置き換えて処理されます。並び順は元の 1025 の位置(1024 の後)のままです。
    • そのため配信店 1001 の処理が2回に分かれ、SQUPSEQ に(1001, 発行日)のレコードが2件出ます。
    • 2件目は「マスター値+1025分だけ」の値です。反映側が置換(REPLACE)で取り込むと、1件目(本来の 1001 分)の加算が失われます。
  2. No.8 と No.12 の SQUPSEQ の関係
    • どちらも同じ印刷照会マスター(更新前)を起点に加算します。
    • 同じ配信店が両方に含まれる場合、両方を置換で反映すると、後に反映した方だけが残ります。No.12 は対象店所の抽出分なので、両方に同じ配信店が含まれ得ます。
    • 反映側の処理(どのファイルを、どの順に、加算か置換か)の確認が必要です。
  3. SQUPSEQ/SEQPAGS の読み手が JOB 内にない
    • 出力はされているが使われていない可能性もあります。
    • 運用(後続JOB、外部転送、手作業)を確認してください。
  4. 出力されない請求先
    • 出力区分 '9'(明細不要)の請求先と、見出しデータのない請求先は、3本のどれにも現れません。件数にも数えません。
    • 見出しデータのない請求先はメッセージも出ません(KS60144 設計書 10章 No.2)。
  5. 旧書式ページ数の残存
    • SEQTSTPG(1) には旧書式(40行)のページ数を加算しています。
    • 現在の請求書は新書式なので、実際の枚数は SEQTSTNP と SEQPAGS の方です。SEQTSTPG(1) を枚数として使っている処理があれば、値がずれます。

9. 出力イメージ(推定)

7章の例(配信店 1001、発行年月日 260930、請求先A・B・C)について、3本のファイルの中身をレコードの形で示します。

9.0 イメージの見方

  • ダンプイメージ:ホストのデータ表示(ISPF の HEX 表示)と同じ縦3行形式です。
    • 「文字」行:EBCDIC の文字。パック10進などの文字にならないバイトは「.」です。パックのバイトが偶然文字コードと一致すると「ッ」「*」などが表示されますが、データとしては数値です。
    • 「ZONE」「NUMR」行:各バイトの16進の上位4ビット・下位4ビットです。縦に読むと1バイト(例:Z=F/N=1 → X'F1'=文字の1、Z=0/N=C → パックの末尾 0C)。
    • 漢字はシフトアウト X'0E'(「<」で表示)とシフトイン X'0F'(「>」で表示)で囲まれ、1文字2バイトです。
  • 文字コードは CCSID 930(日本語EBCDIC カタカナ) を想定しています。漢字・カナのコード値は実機の設定によって異なることがあります。
  • SQPRTDA は可変長(VB)です。実ファイルでは各レコードの前に4バイトのレコード長(RDW)が付きますが、イメージでは省いています。
  • PIC 項目は「文字の数字」、FIXED 項目は「パック10進(符号 C)」です。プログラムでクリア(= '')した数値項目はパックの0、文字項目は空白(X'40')になります。
  • 値はすべて架空です。項目の位置・長さ・属性は INCLUDE の定義どおりです。

9.1 SQPRTDA(請求明細書 印刷データ)

(1) レコード一覧(請求先A:送り状35件、区分1種類)

先頭29バイトのキー部はすべて文字の数字なので、ダンプでもそのまま読めます。

No 長さ 月日 配信店 連番 旧頁 旧行 DTID 旧SKIP 新頁 新行 新SKIP 種別
1 59 0930 1001 0001 0001 00 1 00 0001 00 00 旧書式 見出し1
2 126 0930 1001 0001 0001 00 2 01 0001 00 01 旧書式 見出し2
3 59 0930 1001 0001 0001 00 5 00 0001 00 00 新書式 見出し1
4 466 0930 1001 0001 0001 00 6 01 0001 00 01 新書式 見出し2(鑑付き)
5 138 0930 1001 0001 0001 01 0 03 0001 01 03 明細 1件目
6 138 0930 1001 0001 0001 02 0 00 0001 02 00 明細 2件目
7 138 0930 1001 0001 0001 03 0 00 0001 03 00 明細 3件目
8 138 0930 1001 0001 0001 04 0 00 0001 04 00 明細 4件目
… … … … … … … … … … … … 明細 5~29件目(行番号が1ずつ増える)
34 138 0930 1001 0001 0001 30 0 00 0001 30 00 明細 30件目
35 138 0930 1001 0001 0001 31 0 00 0001 31 00 明細 31件目
36 138 0930 1001 0001 0001 32 0 00 0001 32 00 明細 32件目
37 138 0930 1001 0001 0001 33 0 00 0001 33 00 明細 33件目
38 88 0930 1001 0001 0001 33 3 00 0001 91 00 ページ小計(新1頁)
39 59 0930 1001 0001 0001 33 5 00 0002 00 00 新書式 見出し1(改頁)
40 126 0930 1001 0001 0001 33 6 01 0002 00 01 新書式 見出し2(改頁)
41 138 0930 1001 0001 0001 34 0 00 0002 01 03 明細 34件目
42 138 0930 1001 0001 0001 35 0 00 0002 02 00 明細 35件目
43 88 0930 1001 0001 0001 35 3 06 0002 91 32 ページ小計(新2頁)
44 88 0930 1001 0001 0001 99 1 06 0002 99 32 元払計
45 88 0930 1001 0001 0001 99 2 00 0002 99 32 着払計
46 88 0930 1001 0001 0001 99 3 00 0002 99 00 元着計
  • 請求先Bの分は、連番 0002 でこの後に続きます(区分が2つあるため、区分ごとの見出し・明細・計の後に、総合計(DTID 9)が出ます)。
  • C(明細不要)のレコードは1件もありません。

(2) 代表的なレコードのダンプ

No.3 新書式 見出し1(SQHAIDAA)(59バイト)

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----
  文字 09301001000100010050000010000..ッ[...09260901260930110000001
  ZONE FFFFFFFFFFFFFFFFFFFFFFFFFFFFF1357001FFFFFFFFFFFFFFFFFFFFFFF
  NUMR 09301001000100010050000010000246000C09260901260930110000001

項目別の値

項目 位置 長さ 属性 値 16進 内容
SQHAYYMM 1 4 PIC'(4)9' 0930 F0F9F3F0 月日(発行年月日の月日)
SQHATNCD 5 4 PIC'(4)9' 1001 F1F0F0F1 配信店
SQHARENB 9 4 PIC'(4)9' 0001 F0F0F0F1 連番(配信店内の請求先の通番)
SQHAPAGE 13 4 PIC'(4)9' 0001 F0F0F0F1 旧書式ページ
SQHALINE 17 2 PIC'(2)9' 00 F0F0 旧書式行
SQHADTID 19 1 PIC'(1)9' 5 F5 データID 5=新書式見出し1
SQHASKIP 20 2 PIC'(2)9' 00 F0F0 旧書式 改行数
SQHANPAG 22 4 PIC'(4)9' 0001 F0F0F0F1 新書式ページ
SQHANLIN 26 2 PIC'(2)9' 00 F0F0 新書式行
SQHANSKP 28 2 PIC'(2)9' 00 F0F0 新書式 改行数
SQHASQNO 30 7 FIXED(13) 1234567000001 1234567000001C 請求先番号 1234567-00001
SQHAMONT 37 2 PIC'(2)9' 09 F0F9 請求月
SQHASYMD 39 6 PIC'(6)9' 260901 F2F6F0F9F0F1 期間(自)
SQHAEYMD 45 6 PIC'(6)9' 260930 F2F6F0F9F3F0 期間(至)
SQHASSKB 51 1 PIC'(1)9' 1 F1 固定 1
SQHAKMKB 52 1 PIC'(1)9' 1 F1 1=本締
SQHADPKB 53 1 PIC'(1)9' 0 F0
SQHAZKKB 54 1 PIC'(1)9' 0 F0 税区分
SQHAZKK1 55 1 PIC'(1)9' 0 F0 税区分2
SQHAOPAG 56 4 PIC'(4)9' 0001 F0F0F0F1 旧書式ページ
No.4 新書式 見出し2・鑑付き(SQHAIDAB)(466バイト)
  • 請求先の最初の1件だけ466バイト。2件目以降(No.40など)は先頭126バイトだけのレコードです。
  • 293~421バイト目は住所2組目(SQHBJKN1~3。用途不明)の欄で、この例では空白です。

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 09301001000100010060100010001<(株)><サンプル商事>                                                 
  ZONE FFFFFFFFFFFFFFFFFFFFFFFFFFFFF044454500484B4D4A4B4C04444444444444444444444444444444444444444444444444
  NUMR 09301001000100010060100010001E2D862DFE3C3D373F6E5EF0000000000000000000000000000000000000000000000000

   101 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字            <テスト支店>  0..「..... ....、................123456700000<東京都千代田区>                
  ZONE 4444444444404948494745044F004000004000040000000000000000FFFFFFFFFFFF04547444449464504444444444444444
  NUMR 00000000000E343E357B84F0000020C0020C0044C0000C0000C0000C123456700000E57555F5C5A5354F0000000000000000

   201 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字   <架空町一丁目2番3号>                <サンプルビル5階>                                          
  ZONE 4404E4845444C474F4B4F4E044444444444444440484B4D4A4D4A4F4A0444444444444444444444444444444444444444444
  NUMR 00EE87D5551BE6522892382F0000000000000000E3C3D373F303F2599F000000000000000000000000000000000000000000

   301 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字                                                                                                     
  ZONE 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
  NUMR 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

   401 ----+----1----+----2----+----3----+----4----+----5----+----6----+-
  文字                      0000-00-0000ネネ..1...ッ@....0.....00.....      
  ZONE 444444444444444444444FFFF6FF6FFFF9901F013570000F00000FF00000444444
  NUMR 000000000000000000000000000000000990C10246C000C00000C000000C000000

項目別の値

項目 位置 長さ 属性 値 16進 内容
SQHBYYMM 1 4 PIC'(4)9' 0930 F0F9F3F0
SQHBTNCD 5 4 PIC'(4)9' 1001 F1F0F0F1
SQHBRENB 9 4 PIC'(4)9' 0001 F0F0F0F1
SQHBPAGE 13 4 PIC'(4)9' 0001 F0F0F0F1
SQHBLINE 17 2 PIC'(2)9' 00 F0F0
SQHBDTID 19 1 PIC'(1)9' 6 F6 データID 6=新書式見出し2
SQHBSKIP 20 2 PIC'(2)9' 01 F0F1
SQHBNPAG 22 4 PIC'(4)9' 0001 F0F0F0F1
SQHBNLIN 26 2 PIC'(2)9' 00 F0F0
SQHBNSKP 28 2 PIC'(2)9' 01 F0F1
SQHBHEAD 30 8 CHAR(8) '(株)' 0E424D4856425D0F 法人格
SQHBNAME 38 64 CHAR(64) 'サンプル商事' 0E438C43BD43D743AF46… 請求先名
SQHBSQKB 102 10 CHAR(10) (空白) 40404040404040404040 区分表示(出力区分0のため空白)
SQHBHTEN 112 14 CHAR(14) 'テスト支店' 0E4394438E4395477B48… 発行店名
SQHBKENP 126 1 PIC'(1)9' 0 F0 1=検品料
SQHBUNTI 127 5 FIXED DEC(9) 42000 000042000C 鑑:運賃
SQHBRYOK 132 5 FIXED DEC(9) 2400 000002400C 鑑:料金
SQHBTTAX 137 5 FIXED DEC(9) 4440 000004440C 鑑:消費税
SQHBHOKR 142 5 FIXED DEC(9) 0 000000000C 鑑:保険料
SQHBAAAA 147 5 FIXED DEC(9) 0 000000000C 鑑:歩引
SQHBATAX 152 5 FIXED DEC(9) 0 000000000C 鑑:再計算税
SQHBYUNN 157 7 CHAR(7) '1234567' F1F2F3F4F5F6F7 郵便番号7桁
SQHBYUNO 164 5 PIC'(5)9' 00000 F0F0F0F0F0 郵便番号5桁(旧)
SQHBJKA1 169 34 CHAR(34) '東京都千代田区' 0E45574575454F454C45… 住所1
SQHBJKA2 203 38 CHAR(38) '架空町一丁目2番3号' 0E4EE8478D455545414B… 住所2
SQHBJKA3 241 52 CHAR(52) 'サンプルビル5階' 0E438C43BD43D743AF43… 住所3
SQHBJKN1 293 32 CHAR(32) (空白) 40404040404040404040… 住所2組目1(用途不明)
SQHBJKN2 325 47 CHAR(47) (空白) 40404040404040404040… 同2
SQHBJKN3 372 50 CHAR(50) (空白) 40404040404040404040… 同3
SQHBDTEL 422 12 CHAR(12) '0000-00-0000' F0F0F0F060F0F060F0F0F0F0 顧客電話番号
SQHBBANK 434 4 FIXED DEC(7) 9999001 9999001C 振込銀行1(銀行マスターのキー前半)
SQHBKONO 438 1 PIC'(1)9' 1 F1 口座種別1(1=普通)
SQHBKOBA 439 5 FIXED DEC(9) 1234567 001234567C 口座番号1
SQHBBAN1 444 4 FIXED DEC(7) 0 0000000C 振込銀行2(0=なし)
SQHBKON1 448 1 PIC'(1)9' 0 F0 口座種別2
SQHBKOB1 449 5 FIXED DEC(9) 0 000000000C 口座番号2
SQHBTKB3 454 1 PIC'(1)9' 0 F0 振込区分
SQHBJIKB 455 1 PIC'(1)9' 0 F0
SQHBTENK 456 5 FIXED DEC(9) 0 000000000C 鑑:サーチャージ
SQHBSPA2 461 6 CHAR(6) (空白) 404040404040 空き
No.5 明細行・1件目(SQHAIDAC)(138バイト)

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 09301001000100010100300010103..ッpソ.1.ソ.<大阪市北区>テスト シヨウジ     ......%............................
  ZONE FFFFFFFFFFFFFFFFFFFFFFFFFFFFF135791F09104549454545098948A88B4444400200060001000000000000000000000000
  NUMR 0930100100010001010030001010324680C100CE5B51535A54F4E50DC3DE0000000C001C0010C000C000C000C000C000C000

   101 ----+----1----+----2----+----3----+---
  文字 ......... ...            ...          
  ZONE 00000001040014444444444440114444444444
  NUMR C000C001C010C00000000000010C0000000000

項目別の値

項目 位置 長さ 属性 値 16進 内容
SQHCYYMM 1 4 PIC'(4)9' 0930 F0F9F3F0
SQHCTNCD 5 4 PIC'(4)9' 1001 F1F0F0F1
SQHCRENB 9 4 PIC'(4)9' 0001 F0F0F0F1
SQHCPAGE 13 4 PIC'(4)9' 0001 F0F0F0F1
SQHCLINE 17 2 PIC'(2)9' 01 F0F1
SQHCDTID 19 1 PIC'(1)9' 0 F0 データID 0=明細
SQHCSKIP 20 2 PIC'(2)9' 03 F0F3 ページ先頭のため 3
SQHCNPAG 22 4 PIC'(4)9' 0001 F0F0F0F1
SQHCNLIN 26 2 PIC'(2)9' 01 F0F1
SQHCNSKP 28 2 PIC'(2)9' 03 F0F3 ページ先頭のため 3
SQHCOKNO 30 6 FIXED(11) 12345678901 12345678901C 送り状番号
SQHCMCKB 36 1 PIC'(1)9' 1 F1 元着(1=元払)
SQHCMMDD 37 3 FIXED(5) 901 00901C 月日
SQHCCHNM 40 12 CHAR(12) '大阪市北区' 0E455B45914553455A45540F 地名
SQHCSHNM 52 14 CHAR(14) 'テスト シヨウジ' 948E95408DAC838DBE40… 名称
SQHCKOSU 66 3 FIXED(5) 2 00002C 個数
SQHCJRYO 69 4 FIXED(7) 16 0000016C 重量
SQHCUNCN 73 5 FIXED(9) 1100 000001100C 運賃
SQHCSHUH 78 4 FIXED(7) 0 0000000C 集配料
SQHCKOSO 82 4 FIXED(7) 0 0000000C 航送料
SQHCDAIB 86 4 FIXED(7) 0 0000000C 転嫁料
SQHCHOKN 90 4 FIXED(7) 0 0000000C 保険料
SQHCSONN 94 4 FIXED(7) 0 0000000C その他
SQHCTATE 98 4 FIXED(7) 0 0000000C 立替
SQHCWARI 102 4 FIXED(7) 0 0000000C 割引
SQHCZIKN 106 4 FIXED(7) 110 0000110C 税
SQHCTSKB 110 1 CHAR(1) (空白) 40 付替訂正区分
SQHCTENS 111 3 FIXED(5) 1001 01001C 店
SQHCBIKO 114 12 CHAR(12) (空白) 404040404040404040404040 備考
SQHCHCCD 126 3 FIXED(5) 1101 01101C 地名コード
SQHCTELN 129 10 CHAR(10) (空白) 40404040404040404040 電話番号(検品料のみ)
No.46 元着計(SQHAIDAD)(88バイト)
  • 元払計(No.44)・着払計(No.45)・ページ小計(No.38、No.43)も同じ88バイトの形式で、データID・行・金額が異なります。

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+---
  文字 09301001000100019930000029900......ッサ..「.... ...........................、.           00 
  ZONE FFFFFFFFFFFFFFFFFFFFFFFFFFFFF00010058004000040000000000000000000000000004044444444444FF4
  NUMR 09301001000100019930000029900007C006C0020C020C000C000C000C000C000C000C044C00000000000000

項目別の値

項目 位置 長さ 属性 値 16進 内容
SQHDYYMM 1 4 PIC'(4)9' 0930 F0F9F3F0
SQHDTNCD 5 4 PIC'(4)9' 1001 F1F0F0F1
SQHDRENB 9 4 PIC'(4)9' 0001 F0F0F0F1
SQHDPAGE 13 4 PIC'(4)9' 0001 F0F0F0F1
SQHDLINE 17 2 PIC'(2)9' 99 F9F9 99=区分計の行
SQHDDTID 19 1 PIC'(1)9' 3 F3 データID 3=元着計
SQHDSKIP 20 2 PIC'(2)9' 00 F0F0
SQHDNPAG 22 4 PIC'(4)9' 0002 F0F0F0F2
SQHDNLIN 26 2 PIC'(2)9' 99 F9F9 99
SQHDNSKP 28 2 PIC'(2)9' 00 F0F0
SQHDKOSU 30 4 FIXED(7) 71 0000071C 個数計
SQHDJRYO 34 4 FIXED(7) 568 0000568C 重量計
SQHDUNCN 38 5 FIXED(9) 42000 000042000C 運賃計
SQHDSHUH 43 4 FIXED(7) 2400 0002400C 集配料計
SQHDKOSO 47 4 FIXED(7) 0 0000000C 航送料計
SQHDDAIT 51 4 FIXED(7) 0 0000000C 転嫁料計
SQHDSONN 55 4 FIXED(7) 0 0000000C その他計
SQHDHOKN 59 4 FIXED(7) 0 0000000C 保険料計
SQHDSONT 63 4 FIXED(7) 0 0000000C 立替計
SQHDWARI 67 4 FIXED(7) 0 0000000C 割引計
SQHDZIKN 71 4 FIXED(7) 4440 0004440C 税計
SQHDSQKB 75 11 CHAR(11) (空白) 4040404040404040404040 区分(空白)
SQHDHDID 86 1 PIC'(1)9' 0 F0 データIDの10の位
SQHDPKBN 87 1 CHAR(1) '0' F0 出力区分(0=送り状合計)
SQHDSPAC 88 1 CHAR(1) (空白) 40 空き

(3) 請求書としての印刷イメージ(KS60151P が SQPRTDA を印字した結果)

SQPRTDA 自体は印刷されるファイルではありません。KS60151P(特積)がこのファイルを読んで、次のような請求書(1ページ50行)を電子帳票に出力します。桁位置は KS60151P の印字行定義どおりです(KS60151 設計書 6章)。

1ページ目(No.1~No.38 のレコードから)

行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
 1 | 1234567   00001  テスト支店   1001              09                                            26 09 01      26 09 30            1
 2 |
 3 |
 4 |   123-4567                                                             48,840
 5 |
 6 |   東京都千代田区                                                                                               テスト支店
 7 |   架空町一丁目2番3号                           42000    2400    44400    4440            48840         〒 100-0005
 8 |   サンプルビル5階                                                                                       東京都架空区サンプル町
 9 |                                                                                                          1丁目1番1号
10 |                                                サンプル銀行 本店
11 |   (株)サンプル商事                                                 普通  口座番号 1234567                   TEL:03-0000-0000
12 |                     ℡ 0000-00-0000
13 |
14 |                                                                             サーチャージ
15 |12345-678901 元 0901 大阪市北区 テスト シヨウジ         2    16    1100                           110                      1210  1001
16 |12345-678902 元 0901 福岡市博多 カクウ コウギヨウ        3    24    1200                           120                      1320  1001
17 |12345-678903 着 0902 札幌市中央 サンプル シヨウテン       1     8    1300                           130                      1430  1001
18 |12345-678904 元 0902 大阪市北区 テスト シヨウジ         2    16    1400   300                     170                      1870  1001
19 |12345-678905 元 0903 福岡市博多 カクウ コウギヨウ        3    24    1000                           100                      1100  1001
   |                    (20~44行目:明細の続き。省略)
45 |12345-678931 元 0916 大阪市北区 テスト シヨウジ         2    16    1100                           110                      1210  1001
46 |12345-678932 元 0916 福岡市博多 カクウ コウギヨウ        3    24    1200   300                     150                      1650  1001
47 |12345-678933 着 0917 札幌市中央 サンプル シヨウテン       1     8    1300                           130                      1430  1001
48 |                                                                       サーチャージ
49 |                                       66    528    39600   2400                        4200                         46200
50 |

2ページ目(No.39~No.46 のレコードから)

行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
 1 | 1234567   00001  テスト支店   1001              09                                            26 09 01      26 09 30            2
 2 |
 3 |
 4 |
 5 |
 6 |
 7 |
 8 |
 9 |
10 |
11 |   (株)サンプル商事
12 |
13 |
14 |                                                                             サーチャージ
15 |12345-678934 元 0917 大阪市北区 テスト シヨウジ         2    16    1400                           140                      1540  1001
16 |12345-678935 元 0918 福岡市博多 カクウ コウギヨウ        3    24    1000                           100                      1100  1001
17 |
   |                    (18~46行目:空白行。ページ小計の改行数の指定でページ下部へ送る)
47 |
48 |                                                                       サーチャージ
49 |                                        5     40     2400                                240                          2640
50 |                        送り状合計     71    568    42000   2400                        4440                         48840
  • 旧書式の見出し(No.1、No.2)は KS60151P では使わず、印字されません。
  • 元払計(No.44)・着払計(No.45)は KS60151P が読み飛ばすため印字されません。元着計(No.46)が50行目の「送り状合計」になります。
  • 49行目はページ小計(No.38、No.43)です。

9.2 SQUPSEQ(印刷照会マスター更新用データ)

配信店 1001 の1件だけが出力されます(請求先A・Bの合計。Cは数えない)。印刷照会マスターに(1001, 260930)のレコードがなかった場合のイメージです。

ダンプイメージ(120バイト)

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001260930.........................................................................................*
  ZONE FFFFFFFFFF000000000000000000000000000000002000300000000000000000000000000000000000000000000000000005
  NUMR 1001260930000C000C000C000C000C000C0000C000C000C0005C000C000C000C000C000C000C0000C000C000C0000C00C00C

   101 ----+----1----+----2
  文字 .........           
  ZONE 00000000044444444444
  NUMR 00C00C00C00000000000

項目別の値

項目 位置 長さ 属性 値 16進 内容
SEQTENCD 1 4 PIC'(4)9' 1001 F1F0F0F1 キー:配信店
SEQTFYMD 5 6 PIC'(6)9' 260930 F2F6F0F9F3F0 キー:発行年月日
SEQTHNIK 11 4 FIXED(7) 0 0000000C 本社 荷主数(推定)
SEQTHPAG 15 4 FIXED(7) 0 0000000C 本社 ページ(推定)
SEQTTNIK 19 4 FIXED(7) 0 0000000C 店所 荷主数(推定)
SEQTTPAG 23 4 FIXED(7) 0 0000000C 店所 ページ(推定)
SEQTSHNI 27 4 FIXED(7) 0 0000000C
SEQTSHPG 31 4 FIXED(7) 0 0000000C
SEQTSHME 35 5 FIXED(9) 0 000000000C
SEQTSTNI 40 4 FIXED(7) 2 0000002C 今回加算:印刷した請求先数
SEQTSTPG 44 4 FIXED(7) 3 0000003C 今回加算:旧書式ページ数
SEQTSTME 48 5 FIXED(9) 50 000000050C 今回加算:明細行数
SEQTEQDT(2) 53 42 (集団項目) すべて0 0000000C… 2要素目(1要素目と同じ構成)。マスター値のまま
SEQTSHNP 95 3 FIXED(5) 0 00000C
SEQTSTNP 98 3 FIXED(5) 5 00005C 今回加算:新書式ページ数
SEQTNHNI 101 3 FIXED(5) 0 00000C
SEQTNTNI 104 3 FIXED(5) 0 00000C
SEQTNTNK 107 3 FIXED(5) 0 00000C
SEQTSPAC 110 11 CHAR(11) (空白) 4040404040404040404040 空き
  • 先頭10バイト(キー)以外はほとんどがパック10進のため、文字としてはほぼ読めません。値は「項目別の値」の表で確認してください。
  • 98~100バイト目の SEQTSTNP は X'00005C'(=5)で、末尾のバイト X'5C' がたまたま文字の「」と同じコードのため「」と表示されています。
  • マスターにレコードがあった場合は、太字以外の項目にマスターの値が入り、太字の項目は「マスターの値+今回分」になります。

9.3 SEQPAGS(顧客毎請求書出力枚数データ)

請求先A・Bの2件が出力されます(Cは出力されない)。すべて文字項目なので、ダンプの文字行がそのまま読めます。

1件目:請求先A(2枚)

     1 ----+----1----+----2----+----3
  文字 12345670000126093000002       
  ZONE FFFFFFFFFFFFFFFFFFFFFFF4444444
  NUMR 123456700001260930000020000000

2件目:請求先B(3枚)

     1 ----+----1----+----2----+----3
  文字 23456780000026093000003       
  ZONE FFFFFFFFFFFFFFFFFFFFFFF4444444
  NUMR 234567800000260930000030000000
項目 位置 長さ 属性 値 16進 内容
PAGSSQNO 1 12 PIC'(12)9' 123456700001 F1F2F3F4F5F6F7F0F0F0F0F1 請求先番号
PAGSHYMD 13 6 CHAR(6) '260930' F2F6F0F9F3F0 発行年月日
PAGSPAGE 19 5 PIC'(5)9' 00002 F0F0F0F0F2 請求書の枚数
PAGSSPAC 24 7 CHAR(7) (空白) 40404040404040 空き

(上表は1件目の値)


10. 入力ファイル・参照DBとの関係

3本の出力は、入力ファイル(SQALLOK)と参照DB(VSAM)の内容から作られます。この章では、入力側の中身と、どの入力項目がどの出力のどこへ行くかを示します。値は7章・9章と同じ例(配信店 1001、発行年月日 260930、請求先A・B・C)です。

10.1 入力・参照ファイルの一覧

DD名 データセット(No.8) 編成 中身 読み方 3本の出力への影響
SQALLOK TEMP.DAISEQ4J.WORK0620(No.12 は WORK062S) 順次 VB 請求明細データ(見出し+明細)。KS60130P で地名付加、SORT で並替え済み 先頭から順に全件 すべての出力の元データ
VKSEQSK VKAD.SQSSPRSK.DTMASTER VSAM KSDS 印刷照会マスター(120バイト) 配信店ごとに1回、キー(配信店+発行年月日)で読む SQUPSEQ の土台(読んだ値に加算して出力)
VKTENMS VKAD.CENTENMS.DTMASTER VSAM KSDS 店所マスター(170バイト) 配信店ごとに1回、キー(店所コード)で読む なし(読むが、どの項目も使っていない)
VETENCD SEAD.TENSCODE.CDMASTER 不明(BB) 店所コードマスター(推定) プログラムからは直接読まない。外部手続き LSS0050 が使用(推定) SQPRTDA の発行店名(SQHBHTEN)だけ
WHATJOB (JCL に DD なし) STREAM 実行区分パラメータ 開始時に1回 DD がないため常に「指定なし」。出力内容は変わらない
  • 参照DBはすべて読むだけです(INPUT で OPEN)。KS60144P はどのマスターも更新しません。
  • 印刷照会マスターを最新にするには、SQUPSEQ を別の処理で反映する必要があります(5.1)。

10.2 入力項目 → 出力の対応

(1) SQALLOK の見出しデータ(データID 00、SQALLHED)

入力項目 SQPRTDA SQUPSEQ SEQPAGS
SDTASHTN(配信店) 全レコードのキー(月日の次の4桁) SEQTENCD(キー)/配信店の区切り (持たない。区切りにだけ使う)
SDTASQNO(請求先番号) SQHASQNO - PAGSSQNO
SDTAHYMD(発行年月日) 全レコードのキー先頭の月日(3~6桁目) SEQTFYMD(キー) PAGSHYMD
SDTAPKBN(出力区分) '9' なら請求先の全レコードを出さない。それ以外は SQHDPKBN/計の見出し '9' の請求先は件数に数えない '9' の請求先は出力しない
SDTAYYMM、SDTAKYMD、SDTASYMD、SDTAKARI、SDTAZKIN、SDTAZKI1 見出し1(SQHAMONT、SQHASYMD、SQHAEYMD、SQHAKMKB、SQHAZKKB、SQHAZKK1) - -
SDTASQN1、SDTASQNI 見出し2(SQHBHEAD、SQHBNAME) - -
SDTAHHTN(発行店) LSS0050 → VETENAME → SQHBHTEN - -
SDTAUNTI~SDTATENK(鑑:金額・住所・電話・口座) 鑑付き見出し2(SQHBUNTI~SQHBTENK) - -
SDTANNNO(1~20)、SDTABIKB、SDTABBKB 明細行の金額欄の振り分け、備考欄の編集(7章) - -

(2) SQALLOK の明細データ(データID 01 等、SQALLDTB ほか)

入力項目 SQPRTDA SQUPSEQ SEQPAGS
1件ごと 明細行(SQHAIDAC)1件 SEQTSTME(1) +1 -
件数の合計 33件ごとに新書式の改ページ、40件ごとに旧書式の改ページ ページ数を SEQTSTPG(1)、SEQTSTNP に加算 新書式ページ数を PAGSPAGE に出力
SDTBOKRN、SDTBMOCH、SDTBYYMD、SDTBNIAD、SDTBNINA、SDTBKOSU、SDTBKKGG SQHCOKNO、SQHCMCKB、SQHCMMDD、SQHCCHNM、SQHCSHNM、SQHCKOSU、SQHCJRYO - -
SDTBUUNN、各料金、SDTBRONN 等 SQHCUNCN~SQHCZIKN(表示パターンで振り分け)、ページ計・区分計に集計 - -

(3) 参照DB

参照DB SQPRTDA SQUPSEQ SEQPAGS
VKSEQSK(印刷照会マスター) - 該当あり:読んだレコードに加算して出力/該当なし:キーだけのレコードに加算して出力 -
VKTENMS(店所マスター) - - -
VETENCD(LSS0050 経由、BB) SQHBHTEN(発行店名) - -

10.3 SQALLOK(請求明細データ)のイメージ

(1) レコードの並び

SORT(5,21,CH,A,37,1,CH,A,26,11,CH,A,38,1,CH,A,…。RDW 4バイトを含む位置)により、「配信店・予備・請求先番号 → データIDの10の位 → 区分 → データIDの1の位 → 年月日 …」の順に並んでいます。

No 長さ 配信店 請求先番号 区分 データID レイアウト 内容 KS60144P での扱い
1 560 1001 1234567-00001 空白 00 SQALLHED 請求先Aの見出し(出力区分 0) 見出しを保存。鑑の元
2~36 230 1001 1234567-00001 空白 01 SQALLDTB 送り状明細 35件 明細行 35件、新2頁・旧1頁
37 560 1001 2345678-00000 空白 00 SQALLHED 請求先Bの見出し(出力区分 2) 同上
38~47 230 1001 2345678-00000 1000(例) 01 SQALLDTB 区分1の送り状 10件 区分ごとに改ページ
48~52 230 1001 2345678-00000 2000(例) 01 SQALLDTB 区分2の送り状 5件 区分計2件 → 総合計ページを追加
53 560 1001 3456789-00000 空白 00 SQALLHED 請求先Cの見出し(出力区分 9) 明細不要と判定
54~56 230 1001 3456789-00000 空白 01 SQALLDTB 送り状明細 3件 読み飛ばし(どの出力にも出ない)
  • 区分(22~32バイト目)の値は例です。区分は印刷順のキーで、見出しデータは区分が空白(X'40')のため、同じ請求先の明細より先に来ます。
  • 配信店が 1025 のデータは、読込み時に 1001 に置き換えられます(8章 No.1)。

(2) 見出しデータ(請求先A、SQALLHED、560バイト)

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001          ..ッ[...           001026092609300000260901260930<(株)><サンプル商事>                
  ZONE FFFF4444444444135700144444444444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF044454500484B4D4A4B4C04444444444444444
  NUMR 10010000000000246000C00000000000001026092609300000260901260930E2D862DFE3C3D373F6E5EF0000000000000000

   101 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字                                                                            0000000000000000000000000
  ZONE 444444444444444444444444444444444444444444444444444444444444444444444444444FFFFFFFFFFFFFFFFFFFFFFFFF
  NUMR 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

   201 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 001001              ..「..... ....、................123456700000<東京都千代田区>                  <架空
  ZONE FFFFFF44444444444444004000004000040000000000000000FFFFFFFFFFFF045474444494645044444444444444444404E4
  NUMR 001001000000000000000020C0020C0044C0000C0000C0000C123456700000E57555F5C5A5354F000000000000000000EE87

   301 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 町一丁目2番3号>                <サンプルビル5階>                                                
  ZONE 845444C474F4B4F4E044444444444444440484B4D4A4D4A4F4A0444444444444444444444444444444444444444444444444
  NUMR D5551BE6522892382F0000000000000000E3C3D373F303F2599F000000000000000000000000000000000000000000000000

   401 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字                                                                                                     
  ZONE 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
  NUMR 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

   501 ----+----1----+----2----+----3----+----4----+----5----+----6
  文字                0000-00-0000ネネ..1...ッ@....0.....0.....       
  ZONE 444444444444444FFFF6FF6FFFF9901F013570000F00000F000004444444
  NUMR 000000000000000000000000000990C10246C000C00000C00000C0000000

項目別の値(178~197バイト目の SDTANNNO(1~20) は表示パターンで、この例はすべて '0'=各料金をそれぞれの欄に表示)

項目 位置 長さ 属性 値 16進 内容
SDTASHTN 1 4 PIC'(4)9' 1001 F1F0F0F1 配信店 → 全出力のキー、SQUPSEQ のキー
SDTAKKKK 5 10 CHAR(10) (空白) 40404040404040404040 予備(請求先キーの一部)
SDTASQNO 15 7 FIXED DEC(13) 1234567000001 1234567000001C 請求先番号 → SQHASQNO、PAGSSQNO
SDTASPA1 22 11 CHAR(11) (空白) 4040404040404040404040 区分(印刷順のキー)
SDTADTID 33 2 PIC'(2)9' 00 F0F0 データID 00=見出し
SDTAKARI 35 1 PIC'(1)9' 1 F1 仮締区分 → SQHAKMKB
SDTADPKB 36 1 PIC'(1)9' 0 F0 → SQHADPKB
SDTAYYMM 37 4 PIC'(4)9' 2609 F2F6F0F9 請求年月 → SQHAMONT(月)
SDTAHYMD 41 6 PIC'(6)9' 260930 F2F6F0F9F3F0 発行年月日 → キーの月日、SQUPSEQ・SEQPAGS
SDTACKTT 47 4 PIC'(4)9' 0000 F0F0F0F0 (未使用)
SDTAKYMD 51 6 PIC'(6)9' 260901 F2F6F0F9F0F1 期間(自)→ SQHASYMD
SDTASYMD 57 6 PIC'(6)9' 260930 F2F6F0F9F3F0 期間(至)→ SQHAEYMD
SDTASQN1 63 8 CHAR(8) '(株)' 0E424D4856425D0F 法人格 → SQHBHEAD
SDTASQNI 71 64 CHAR(64) 'サンプル商事' 0E438C43BD43D743AF46… 請求先名 → SQHBNAME
SDTASQN2 135 5 CHAR(5) (空白) 4040404040 (未使用)
SDTASQNM 140 36 CHAR(36) (空白) 40404040404040404040… (未使用)
SDTAPKEI 176 1 PIC'(1)9' 0 F0 (未使用)
SDTAPKBN 177 1 CHAR(1) '0' F0 出力区分(9=明細不要)
SDTABIKB 198 1 PIC'(1)9' 0 F0 備考編集区分
SDTAZKIN 199 1 PIC'(1)9' 0 F0 税区分 → SQHAZKKB
SDTAZKI1 200 1 PIC'(1)9' 0 F0 税区分2 → SQHAZKK1
SDTAJIKB 201 1 PIC'(1)9' 0 F0 → SQHBJIKB
SDTABBKB 202 1 PIC'(1)9' 0 F0 歩引前表示区分
SDTAHHTN 203 4 PIC'(4)9' 1001 F1F0F0F1 発行店 → LSS0050 → SQHBHTEN
SDTASPAC 207 14 CHAR(14) (空白) 40404040404040404040…
SDTAUNTI 221 5 FIXED DEC(9) 42000 000042000C 鑑:運賃 → SQHBUNTI
SDTARYOK 226 5 FIXED DEC(9) 2400 000002400C 鑑:料金 → SQHBRYOK
SDTATTAX 231 5 FIXED DEC(9) 4440 000004440C 鑑:消費税 → SQHBTTAX
SDTAHOKR 236 5 FIXED DEC(9) 0 000000000C 鑑:保険料 → SQHBHOKR
SDTAAAAA 241 5 FIXED DEC(9) 0 000000000C 鑑:歩引 → SQHBAAAA
SDTAATAX 246 5 FIXED DEC(9) 0 000000000C 鑑 → SQHBATAX
SDTAYUNN 251 7 CHAR(7) '1234567' F1F2F3F4F5F6F7 郵便番号 → SQHBYUNN
SDTAYUNO 258 5 PIC'(5)9' 00000 F0F0F0F0F0 → SQHBYUNO
SDTAJKA1 263 34 CHAR(34) '東京都千代田区' 0E45574575454F454C45… 住所1 → SQHBJKA1
SDTAJKA2 297 38 CHAR(38) '架空町一丁目2番3号' 0E4EE8478D455545414B… 住所2 → SQHBJKA2
SDTAJKA3 335 52 CHAR(52) 'サンプルビル5階' 0E438C43BD43D743AF43… 住所3 → SQHBJKA3
SDTAJKN1 387 32 CHAR(32) (空白) 40404040404040404040… → SQHBJKN1
SDTAJKN2 419 47 CHAR(47) (空白) 40404040404040404040… → SQHBJKN2
SDTAJKN3 466 50 CHAR(50) (空白) 40404040404040404040… → SQHBJKN3
SDTADTEL 516 12 CHAR(12) '0000-00-0000' F0F0F0F060F0F060F0F0F0F0 電話 → SQHBDTEL
SDTABANK 528 4 FIXED DEC(7) 9999001 9999001C 振込銀行1 → SQHBBANK
SDTAKONO 532 1 PIC'(1)9' 1 F1 → SQHBKONO
SDTAKOBA 533 5 FIXED DEC(9) 1234567 001234567C → SQHBKOBA
SDTABAN1 538 4 FIXED DEC(7) 0 0000000C → SQHBBAN1
SDTAKON1 542 1 PIC'(1)9' 0 F0 → SQHBKON1
SDTAKOB1 543 5 FIXED DEC(9) 0 000000000C → SQHBKOB1
SDTATKB3 548 1 PIC'(1)9' 0 F0 → SQHBTKB3
SDTATENK 549 5 FIXED DEC(9) 0 000000000C サーチャージ → SQHBTENK
SDTASPA2 554 7 CHAR(7) (空白) 40404040404040
  • 請求先B・Cの見出しは、請求先番号・名称・出力区分(B:'2'、C:'9')が違うだけで同じ形式です。鑑の金額などはこの例では省略しています。

(3) 送り状明細(請求先Aの1件目、SQALLDTB、230バイト)

ダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001          ..ッ[...           01.-ソ.1..ッpソ.0......<大阪市北区>テスト シヨウジ     .....%...............0
  ZONE FFFF4444444444135700144444444444FF0691F135791F00101104549454545098948A88B44444002006001000000000000F
  NUMR 10010000000000246000C0000000000001200C124680C010C10CE5B51535A54F4E50DC3DE0000000C01C010C000C000C00C0

   101 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 ......0................................................................                             
  ZONE 000000F000000100000000000000000000000000000000000000000000000000000000044444444444444444444444444444
  NUMR 00C00C0000C001C000C00C00C00C00C00C00C00C000C00C000C000C000C000C0C00C00C00000000000000000000000000000

   201 ----+----1----+----2----+----3
  文字         ....          0....   
  ZONE 4444444400004444444444F0000444
  NUMR 00000000000C00000000000000C000

項目別の値

項目 位置 長さ 属性 値 16進 内容
SDTBSEHT 1 4 PIC'(4)9' 1001 F1F0F0F1 配信店 → SQHCTNCD
SDTBKKKK 5 10 CHAR(10) (空白) 40404040404040404040 予備
SDTBSENO 15 7 FIXED(13) 1234567000001 1234567000001C 請求先番号(キー)
SDTBPSEQ 22 11 CHAR(11) (空白) 4040404040404040404040 区分(キー)
SDTBDTID 33 2 PIC'(2)9' 01 F0F1 データID 01=送り状明細
SDTBYYMD 35 4 FIXED(7) 260901 0260901C 年月日 → SQHCMMDD(下4桁)
SDTBMOCH 39 1 PIC'(1)9' 1 F1 元着 → SQHCMCKB
SDTBOKRN 40 6 FIXED(11) 12345678901 12345678901C 送り状番号 → SQHCOKNO
SDTBRECT 46 1 PIC'(1)9' 0 F0 1なら料金内訳を0にする
SDTBTENS 47 3 FIXED(5) 1001 01001C 店 → SQHCTENS
SDTBCHCD 50 3 FIXED(5) 1101 01101C 地名コード → SQHCHCCD
SDTBNIAD 53 12 CHAR(12) '大阪市北区' 0E455B45914553455A45540F 地名(KS60130で付加)→ SQHCCHNM
SDTBNINA 65 14 CHAR(14) 'テスト シヨウジ' 948E95408DAC838DBE40… 名称 → SQHCSHNM
SDTBKOSU 79 3 FIXED(5) 2 00002C 個数 → SQHCKOSU
SDTBKKGG 82 3 FIXED(5) 16 00016C 重量 → SQHCJRYO
SDTBUUNN 85 4 FIXED(7) 1100 0001100C 運賃 → SQHCUNCN
SDTBRYKE 89 4 FIXED(7) 0 0000000C 料金計
SDTBTATE 93 4 FIXED(7) 0 0000000C 立替 → SQHCTATE
SDTBWARI 97 3 FIXED(5) 0 00000C 割引 → SQHCWARI(×−1)
SDTBFUTT 100 1 PIC'(1)9' 0 F0
SDTBKING 101 3 FIXED(5) 0 00000C
SDTBEENN 104 3 FIXED(5) 0 00000C 保険料 → SQHCHOKN
SDTBDAKU 107 1 PIC'(1)9' 0 F0
SDTBDAKI 108 4 FIXED(7) 0 0000000C
SDTBRONN 112 4 FIXED(7) 110 0000110C 税 → SQHCZIKN
SDTBTESO 116 4 FIXED(7) 0 0000000C
SDTBWAHA 120 3 FIXED(5) 0 00000C
SDTBWACH 123 3 FIXED(5) 0 00000C
SDTBWAFU 126 3 FIXED(5) 0 00000C
SDTBTECH 129 3 FIXED(5) 0 00000C
SDTBTERE 132 3 FIXED(5) 0 00000C
SDTBSHSH 135 3 FIXED(5) 0 00000C 集貨料 → SQHCSHUH(パターン7=0)
SDTBHHAI 138 3 FIXED(5) 0 00000C 配達料 → SQHCSHUH
SDTBKOSO 141 4 FIXED(7) 0 0000000C 航送料 → SQHCKOSO
SDTBCHOS 145 3 FIXED(5) 0 00000C 転嫁料 → SQHCDAIB
SDTBKONP 148 4 FIXED(7) 0 0000000C
SDTBYUDO 152 4 FIXED(7) 0 0000000C
SDTBETCC 156 4 FIXED(7) 0 0000000C その他 → SQHCSONN
SDTBYOBI 160 4 FIXED(7) 0 0000000C
SDTBKISH 164 2 FIXED(3) 0 000C
SDTBKKRO 166 3 FIXED(5) 0 00000C
SDTBKICC 169 3 FIXED(5) 0 00000C
SDTBAINI 172 14 CHAR(14) (空白) 40404040404040404040…
SDTBSEKU 186 10 CHAR(10) (空白) 40404040404040404040 備考の元
SDTBTANO 196 13 CHAR(13) (空白) 40404040404040404040… 備考の元
SDTBHNCD 209 4 FIXED(7) 0 0000000C
SDTBTELL 213 10 CHAR(10) (空白) 40404040404040404040 → SQHCTELN
SDTBJIKB 223 1 PIC'(1)9' 0 F0
SDTBBTAX 224 4 FIXED(7) 0 0000000C 歩引前表示時の税
SDTBSPAC 228 3 CHAR(3) (空白) 404040
  • この明細が SQPRTDA の No.5(明細行・1件目、9.1(2))になります。運賃 1,100、集貨料 0、税 110 は、それぞれ SQHCUNCN、SQHCSHUH、SQHCZIKN に入ります。

10.4 VKSEQSK(印刷照会マスター)のイメージと SQUPSEQ との関係

印刷照会マスターと SQUPSEQ は同じレイアウト(SQSSPRSK、120バイト)です。マスターに(1001, 260930)があるかどうかで、SQUPSEQ の内容が変わります。

ケース マスター(読込み前) SQUPSEQ(出力)
該当なし(9.2 の例) レコードなし キーだけ設定し、件数0から今回分を加算
該当あり(下の例) 他の処理の値を含むレコード 読んだ値をそのまま引き継ぎ、太字4項目に今回分を加算

該当ありの例:マスターに次のレコードがあった場合

項目 位置 マスター(読込み前) 今回分 SQUPSEQ(出力)
SEQTENCD 1 1001 - 1001
SEQTFYMD 5 260930 - 260930
SEQTTNIK 19 3 - 3
SEQTTPAG 23 3 - 3
SEQTSTNI 40 10 +2 12
SEQTSTPG 44 12 +3 15
SEQTSTME 48 300 +50 350
SEQTSTNP 98 15 +5 20
上記以外 - 0 - 0(マスターの値のまま)

マスター(読込み前)のダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001260930.........................................................................................*
  ZONE FFFFFFFFFF000000000003000300000000000000000000200030000000000000000000000000000000000000000000000005
  NUMR 1001260930000C000C000C000C000C000C0000C001C001C0000C000C000C000C000C000C000C0000C000C000C0000C00C01C

   101 ----+----1----+----2
  文字 .........           
  ZONE 00000000044444444444
  NUMR 00C00C00C00000000000

SQUPSEQ(出力)のダンプイメージ

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001260930....................................*.....................................................
  ZONE FFFFFFFFFF000000000003000300000000000000002000500030000000000000000000000000000000000000000000000000
  NUMR 1001260930000C000C000C000C000C000C0000C001C001C0005C000C000C000C000C000C000C0000C000C000C0000C00C02C

   101 ----+----1----+----2
  文字 .........           
  ZONE 00000000044444444444
  NUMR 00C00C00C00000000000
  • SEQTTNIK・SEQTTPAG(店所側の項目と推定)は、KS60144P では触らないため、マスターの 3 がそのまま出力されます。
  • 2つのダンプで違うのは、40~52バイト目(SEQTSTNI/STPG/STME)と98~100バイト目(SEQTSTNP)だけです。
  • 同じ日に No.8 と No.12 が同じマスター(読込み前の値)から別々に加算するため、両方の SQUPSEQ をそのまま置換で反映すると、片方の加算が失われます(8章 No.2)。

10.5 VKTENMS(店所マスター)のイメージ

配信店が変わるたびに、キー=配信店(1001)で読みます。

ダンプイメージ(170バイト)

     1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
  文字 1001    <テスト支店>  <テスト支店>  13101000000<東京都架空区サンプル町1丁目1番1号>               
  ZONE FFFF44440494849474504404948494745044FFFFFFFFFFF04547444E4845484B4D4A454F4C474F4B4F4E0444444444444444
  NUMR 10010000E343E357B84F00E343E357B84F0013101000000E57555FE87D543C3D373F5521BE6521892182F000000000000000

   101 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7
  文字                    1000003-0000-000005......                       05 
  ZONE 4444444444444444444FFFFFFF6FFFF6FFFFFF00000044444444444444444444444FF4
  NUMR 000000000000000000010000030000000000050C0C0C00000000000000000000000050

項目別の値(主な項目)

項目 位置 長さ 属性 値 16進 内容
VETNHTCD 1 4 PIC'(4)9' 1001 F1F0F0F1 キー:店所コード
VETNKNNM 9 14 CHAR(14) 'テスト支店' 0E4394438E4395477B48… 店名(推定)
VETNSRNM 23 14 CHAR(14) 'テスト支店' 0E4394438E4395477B48… 店略称(推定)
VETNADCD 37 11 PIC'(11)9' 13101000000 F1F3F1F0F1F0F0F0F0F0F0 住所コード(推定)
VETNADNM 48 72 CHAR(72) '東京都架空区サンプル町1丁目1番1号' 0E45574575454F4EE847… 店住所
VETNPSNA 120 5 CHAR(5) '10000' F1F0F0F0F0 郵便番号上5桁
VETNTLNO 125 12 CHAR(12) '03-0000-0000' F0F360F0F0F0F060F0F0F0F0 電話番号
VETNPUNO 137 2 PIC'(2)9' 05 F0F5 配信PU番号(推定。かつて配信先振分けに使用)
VETNPSNB 168 2 CHAR(2) '05' F0F5 郵便番号下2桁
  • KS60144P は読み込んだ項目をどこにも使っていません(KS60144 設計書 10章 No.6)。3本の出力の内容は、このマスターの内容や有無に影響されません。
  • 該当がない場合も、読込み域をクリアするだけで処理は続きます(メッセージなし)。
  • 項目名・内容の一部は推定です。店所マスターは、後続の KS60151P が店略称・店住所・郵便番号・電話番号を印字するのに使っています(KS60151 設計書)。

10.6 VETENCD(店所コードマスター)と WHATJOB

  • VETENCD:KS60144P には DD の宣言がなく、外部手続き LSS0050(BB)が発行店コード SDTAHHTN をキーに読んでいると推定されます。KS60144P が使う項目は店名 VETENAME だけで、SQPRTDA の見出し2の発行店名(SQHBHTEN)に入ります。レイアウト(TENSCODE)はソースがないため、イメージは示せません。
  • WHATJOB:実行区分を指定するパラメータですが、JCL に DD がないため、常に「指定なし(NOM)」として動きます。3本の出力内容には影響しません。

10.7 入力・参照DBの状態と出力の関係(まとめ)

入力・参照DBの状態 SQPRTDA SQUPSEQ SEQPAGS
請求先の出力区分が '9'(明細不要) 出ない 件数に数えない(レコードは出る) 出ない
見出しデータのない請求先(明細だけ) 出ない 件数に数えない 出ない
配信店が 1025 1001 として出る 1001 のレコードが2件になる 1001 の分として出る(配信店は持たない)
印刷照会マスターに該当なし 影響なし キーだけのレコードに加算 影響なし
印刷照会マスターに該当あり 影響なし マスター値+今回分 影響なし
店所マスターに該当なし 影響なし 影響なし 影響なし
店所コードマスター(LSS0050)に該当なし 発行店名がどうなるかは不明(BB) 影響なし 影響なし
入力が0件 0件 0件 0件
(2-2/3)