レビュー指摘 #11910 » KS60144_出力ファイル解説.md
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)のレコードと同じ形式で、次の手順で作られます。
- 配信店の処理を始めるとき、印刷照会マスターをキー「配信店4桁+発行年月日6桁」で読む。
- 該当あり:マスターの内容をそのまま作業域に取り込む。
- 該当なし:作業域をクリアし、キー(配信店・発行年月日)だけを設定する。
- その配信店の請求先・明細を処理しながら、作業域の件数項目に今回分を加算する。
- 配信店が切り替わったら、作業域をそのまま 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. 注意点・要確認事項
-
配信店 1025→1001 の読替えによる SQUPSEQ の重複
- 1025 のデータは配信店を 1001 に置き換えて処理されます。並び順は元の 1025 の位置(1024 の後)のままです。
- そのため配信店 1001 の処理が2回に分かれ、SQUPSEQ に(1001, 発行日)のレコードが2件出ます。
- 2件目は「マスター値+1025分だけ」の値です。反映側が置換(REPLACE)で取り込むと、1件目(本来の 1001 分)の加算が失われます。
-
No.8 と No.12 の SQUPSEQ の関係
- どちらも同じ印刷照会マスター(更新前)を起点に加算します。
- 同じ配信店が両方に含まれる場合、両方を置換で反映すると、後に反映した方だけが残ります。No.12 は対象店所の抽出分なので、両方に同じ配信店が含まれ得ます。
- 反映側の処理(どのファイルを、どの順に、加算か置換か)の確認が必要です。
-
SQUPSEQ/SEQPAGS の読み手が JOB 内にない
- 出力はされているが使われていない可能性もあります。
- 運用(後続JOB、外部転送、手作業)を確認してください。
-
出力されない請求先
- 出力区分 '9'(明細不要)の請求先と、見出しデータのない請求先は、3本のどれにも現れません。件数にも数えません。
- 見出しデータのない請求先はメッセージも出ません(KS60144 設計書 10章 No.2)。
-
旧書式ページ数の残存
- 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件 |