KS60135 詳細設計書
| 項目 |
内容 |
| プログラムID |
KS60135(ソース名 KS60135P) |
| プログラム名 |
請求明細 郵送用(対象店所)データ抽出 |
| 言語 |
PL/I(OPTIONS(MAIN))。パターン PPB0010P(ファイルのIO・SINGLE) |
| 業務ID |
NSSQNN50(ソースの +DC GYOM) |
| 起動JOB |
DAISEQ4J ステップ No.11(JCL コメント「エコデリバー用請求処理スタート」の直後) |
| 作成日 |
2026/10/13 |
| 作成方法 |
ソースコードからのリバース作成 |
前提
- INCLUDE の SQALLHED、SQALLDTB、SQALLDTC、SQALLDTD、SDPSQALA は、添付のソースを展開して解析した(付録A~E)。
- ブラックボックス(BB)として扱うものはない。このプログラムは外部手続きの CALL も、マスターの参照も行わない。
- JCL(DAISEQ4J)との対応は、10/13 にいただいた JCL による。
- データIDの意味(01=計上、31=単品訂正 等)は、同じ入力を読む KS60144P の解析結果と、ソースのコメントによる。
- このプログラムは帳票を出力しない。「印刷イメージ」として、SYSPRINT に出るメッセージのイメージ(6章)と、入出力データの対比イメージ(7章)を示す。
- ★印は、ソースから読み取れる潜在的な問題点または注意点を示す。
1. 概要
1.1 機能
ソース先頭のコメント:「請求明細全送状データを読み、訂正分を除外して郵送用データを作成する。」
-
TRYFILE(対象店所の一覧)を読み、対象店所コードの表を作る。
-
ALLSQDT(請求明細の全データ)を先頭から読み、次の両方を満たすレコードだけを SQALLOK に書き出す。
- 荷主の先頭レコードの配信店が、対象店所の表にある。
- データIDが 31~33(訂正)ではない。
- レコードの内容は一切変えない(読んだレコードをそのまま書く)。
- 終了時に、入力件数・出力件数を SYSPRINT に表示する。
出力(WORK062S)は、後続の KS60144P(No.12)と KS60630P(No.29)の入力になり、エコデリバー(郵送)用の請求書と CSV の元データになる。
1.2 処理概要図
ADG.ALTLIB(SEQTRYTN) ──▶ TRYFILE ─┐(対象店所コードの表 TBLTNCD)
▼
WORK0620 ──▶ ALLSQDT ──▶ KS60135P ──▶ SQALLOK ──▶ WORK062S
(請求明細 全件) │ (対象店所分・訂正除く)
▼ │
SYSPRINT ├──▶ No.12 KS60144P → No.13 KS60152P(エコデリバー請求書)
(件数メッセージ) └──▶ No.29 KS60630P(請求書顧客CSV)
2. 外部インターフェース
2.1 ファイル一覧
| DD名 |
編成/属性(DCL) |
入出力 |
内容 |
読込/書出領域 |
| TRYFILE |
RECORD INPUT(順次) |
入力 |
対象店所コードの一覧(パラメータメンバ) |
TRYAREA(80バイト:店所コード4桁+空白76) |
| ALLSQDT |
RECORD INPUT(順次・可変長) |
入力 |
請求明細の全データ(見出し+明細) |
INAREA CHAR(560) VAR |
| SQALLOK |
RECORD OUTPUT(順次・可変長) |
出力 |
抽出後の請求明細データ |
INAREA(読んだものをそのまま) |
| SYSPRINT |
- |
出力 |
DISPLAY のメッセージ |
- |
2.2 JCL との対応(DAISEQ4J No.11)
| DD名 |
データセット |
DISP |
属性 |
作成元/利用先 |
| TRYFILE |
ADG.ALTLIB(SEQTRYTN) |
SHR |
PDS メンバ(80桁と推定) |
運用で保守するパラメータ。JOB DAIMNT3J の ND53500P も同じメンバを使用 |
| ALLSQDT |
TEMP.DAISEQ4J.WORK0620 |
SHR |
VB |
作成:No.3 SORT(KS60130P の出力を並べ替え)。No.8 KS60144P も同じデータを読む |
| SQALLOK |
TEMP.DAISEQ4J.WORK062S |
(NEW,KEEP,DELETE) |
VB、BLKSIZE=12000、SPACE=(CYL,(300,100),RLSE)、DASD09 |
利用:No.12 KS60144P、No.29 KS60630P。削除:次回実行の No.10 |
| SYSPRINT |
SYSOUT=* |
- |
- |
- |
| SYSUDUMP |
SYSOUT=* |
- |
- |
異常終了時のダンプ |
- DD名 SQALLOK は、KS60144P の入力 DD 名と同じ名前である。KS60135P の出力をそのまま KS60144P の入力形式で作ることを表している。
2.3 複数ファイルの違い
このプログラムは入力2本・出力1本を扱う。とくに ALLSQDT と SQALLOK は同じ形式のファイルで、違いは「どのレコードが入っているか」だけである。
| 観点 |
TRYFILE |
ALLSQDT(入力) |
SQALLOK(出力) |
| 役割 |
抽出条件(対象店所の一覧) |
抽出元(全店所・全データ) |
抽出結果(郵送用) |
| データセット |
ADG.ALTLIB(SEQTRYTN) |
WORK0620 |
WORK062S |
| レコード形式 |
80バイト(店所コード4桁+空白) |
VB(80・90・100・230・560バイトの5種類) |
ALLSQDT と同じ |
| レイアウト |
TRYAREA(ソース内定義) |
SQALLHED/SQALLDTB/SQALLDTC/SQALLDTD/SDPSQALA |
ALLSQDT と同じ(項目の値も変えない) |
| 対象の店所 |
- |
全店所 |
TRYFILE に載っている店所だけ |
| 対象のデータID |
- |
すべて |
31~33(訂正)を除くすべて |
| 並び順 |
任意 |
配信店・請求先番号・データID 等の順(SORT 済み) |
ALLSQDT と同じ順(抜き出すだけ) |
| 件数 |
対象店所数(最大100) |
全件 |
ALLSQDT 以下 |
| 読み方 |
最初に全件を表に読む |
1件ずつ順に読む |
1件ずつ順に書く |
ALLSQDT と SQALLOK の違いを、データIDごとにまとめると次のとおり(対象店所の荷主の場合)。
| データID |
内容(KS60144P の解析より) |
レイアウト |
長さ |
SQALLOK への出力 |
| 00 |
見出し(請求先ごとの鑑・名称・住所) |
SQALLHED |
560 |
出力する |
| 01 |
送り状明細(計上) |
SQALLDTB |
230 |
出力する |
| 02 |
デパート回収計上 |
SDPSQALA |
100 |
出力する(ソースコメントでは「未使用」) |
| 21 |
送り状明細(単品付替) |
SQALLDTB |
230 |
出力する |
| 22 |
一括付替 |
SQALLDTC |
80 |
出力する |
| 31 |
送り状明細(単品訂正) |
SQALLDTB |
230 |
出力しない |
| 32 |
(KS60144P に定義なし) |
- |
- |
出力しない |
| 33 |
一括訂正 |
SQALLDTC |
80 |
出力しない |
| 45、55、65 |
POSメイト・CP使用料、FAXサービス、サポートⅡ |
SQALLDTD |
90 |
出力する |
| 95 |
検品料 |
SQALLDTB |
230 |
出力する |
- 対象外の店所の荷主は、データIDに関係なくすべて出力しない。
3. データ定義
3.1 入力・出力エリア
| 名称 |
属性 |
内容 |
| INAREA |
CHAR(560) VAR |
ALLSQDT の読込域。SQALLOK にもそのまま書く |
| INARA |
DEF INAREA:DUMMYA BIN(15)+SQALLHED |
見出し(ID 00)として参照 |
| INARB |
DEF INAREA:DUMMYB BIN(15)+SQALLDTB |
送り状明細として参照(未使用) |
| INARC |
DEF INAREA:DUMMYC BIN(15)+SQALLDTC |
一括付替・訂正として参照(未使用) |
| INARD |
DEF INAREA:DUMMYD BIN(15)+SQALLDTD |
POSメイト等として参照(未使用) |
| INARX |
DEF INAREA:DUMMYX BIN(15)+SDPSQALA |
デパート請求として参照(未使用。コメント「未使用」) |
| TRYAREA |
TRYTNCD PIC'(4)9'+TRYSPAC CHAR(76) |
TRYFILE の読込域(80バイト) |
- DUMMYx は可変長文字列 INAREA の長さ部(2バイト)に重なる。各 INCLUDE の1バイト目は、レコードのデータ部の1バイト目に対応する。
- プログラムが参照する項目は、全レイアウトで共通の位置にある3項目だけである。そのため、どのデータIDのレコードも INARA(SQALLHED)の項目名で判定している。
| 位置 |
長さ |
参照する項目名(SQALLHED) |
他のレイアウトでの名前 |
属性 |
用途 |
| 1 |
4 |
SDTASHTN |
SDTBSEHT、SDTCSEHA、SDTDSEHA、SSALSEHA |
PIC'(4)9' |
配信店。対象店所の判定 |
| 15 |
7 |
SDTASQNO |
SDTBSENO、SDTCSENO、SDTDSENO、SSALSENO |
FIXED DEC(13) |
請求先番号。荷主の区切り |
| 33 |
2 |
SDTADTID |
SDTBDTID、SDTCDDID、SDTDDDID、SSALDDID |
PIC'(2)9' |
データID。訂正の除外 |
3.2 ワークエリア
| 名称 |
属性 |
初期値 |
内容 |
| EOF_SW |
BIT(1) |
'1'B |
ALLSQDT の終了で '0'B |
| TRY_SW |
BIT(1) |
'1'B |
TRYFILE の終了で '0'B |
| OUT_SW |
CHAR(1) |
- |
'Y':処理中の荷主は対象店所/'N':対象外 |
| SEQNO |
PIC'(13)9' |
0 |
請求先番号13桁の作業域 |
| SEQNO_DF |
DEF SEQNO |
- |
SEQ_ZERO PIC'9'(1桁目)+SEQ_NICD PIC'(7)9'(2~8桁目:荷主コード)+SEQ_SQNO PIC'(5)9'(9~13桁目:枝番) |
| BREAKA |
PIC'(7)9' |
0 |
処理中の荷主コード(区切りの判定用) |
| II |
FIXED DEC(3) |
0 |
表の検索用添字 |
| ICNT |
FIXED DEC(9) |
0 |
入力件数 |
| OCNT |
FIXED DEC(9) |
0 |
出力件数 |
| CCNT |
FIXED DEC(9) |
0 |
変更件数(一度も加算されない) |
| TRYCNT |
FIXED DEC(5) |
0 |
対象店所の件数 |
| TBLTNCD(100) |
PIC'(4)9' |
- |
対象店所コードの表(最大100) |
| MS_SW |
CHAR(1) |
- |
未使用 |
4. 処理フロー
開始
├─ ON ENDFILE(ALLSQDT) → EOF_SW='0'B、ON ENDFILE(TRYFILE) → TRY_SW='0'B
├─ OPEN ALLSQDT、TRYFILE、SQALLOK
├─ 【前処理】対象店所の表を作る
│ TBLTNCD をクリア、TRYCNT=0
│ TRYFILE を終わりまで読み、TBLTNCD(TRYCNT) に TRYTNCD を格納
│ DISPLAY '<<< TRY TEN CODE = ' ∥ TBLTNCD(1)
├─ INAREA をクリアし、ALLSQDT を1件読む
├─ DO WHILE(ALLSQDT が終わるまで) … 荷主の単位
│ SEQNO ← SDTASQNO、BREAKA ← SEQ_NICD(荷主7桁)
│ OUT_SW ← 'N'
│ SDTASHTN が TBLTNCD(1~TRYCNT) にあれば OUT_SW ← 'Y'
│ DO WHILE(終わっていない かつ 荷主が BREAKA と同じ) … レコードの単位
│ ICNT +1
│ SDTADTID が 31~33 → 何もしない(訂正を除外)
│ それ以外で OUT_SW='Y' → SQALLOK に INAREA を WRITE、OCNT +1
│ ALLSQDT を1件読む、SEQNO ← SDTASQNO
│ END
│ END
├─ DISPLAY 入力件数・出力件数・変更件数
├─ CLOSE ALLSQDT、TRYFILE、SQALLOK
終了
5. 処理詳細
5.1 前処理(対象店所の表の作成)
-
TBLTNCD = '' で表をクリアし、TRYCNT を 0 にする。
- TRYFILE を1件ずつ読み、終わるまで次を繰り返す。
- TRYCNT +1
- TBLTNCD(TRYCNT) ← TRYTNCD(読んだレコードの先頭4桁)
-
DISPLAY('<<< TRY TEN CODE = '||TBLTNCD(1)) で、表の1件目だけを表示する。
- ★ 表は100件分しかないが、件数の上限チェックがない。TRYFILE が101件以上あると、添字が範囲を超える(SUBSCRIPTRANGE は既定で無効のため、エラーにならず他の領域を壊す可能性がある)。
- ★ TRYFILE が0件の場合、表示は TBLTNCD(1) のクリア後の値(0000 と推定)になり、出力は0件になる。
- 店所コードが数字でない行(コメント行など)があると、PIC から PIC への代入で CONVERSION 条件が起きる可能性がある。ON CONVERSION の定義はないため、その場合は異常終了する。
5.2 主処理(荷主単位の抽出)
荷主の先頭レコードで行うこと
| 手順 |
内容 |
| 1 |
SEQNO ← SDTASQNO(パック13桁 → 数字13桁) |
| 2 |
BREAKA ← SEQ_NICD(13桁の2~8桁目=荷主コード7桁) |
| 3 |
OUT_SW ← 'N' |
| 4 |
TBLTNCD(1)~TBLTNCD(TRYCNT) を先頭から調べ、SDTASHTN と一致すれば OUT_SW ← 'Y' として検索を終える |
同じ荷主のレコードごとに行うこと(荷主コードが BREAKA と同じ間)
| 手順 |
内容 |
| 1 |
ICNT +1 |
| 2 |
SDTADTID ≧ 31 かつ ≦ 33 なら何もしない(ソースコメント「訂正データは送付用から除外」) |
| 3 |
上記以外で OUT_SW = 'Y' なら WRITE FILE(SQALLOK) FROM(INAREA)、OCNT +1 |
| 4 |
ALLSQDT を1件読み、SEQNO ← SDTASQNO |
- 荷主の区切りは荷主コード7桁だけで判定する(枝番5桁と配信店は見ない)。同じ荷主の枝番違いは、1つのまとまりとして扱われる。
- 出力するかどうか(OUT_SW)は、荷主のまとまりの先頭レコードの配信店だけで決まる。
- 書き出すのは INAREA(可変長)そのものなので、レコード長・内容・並び順は入力と同じになる。
- ★ 入力は「配信店→予備→請求先番号」の順に並んでいる。ある配信店の最後の荷主と、次の配信店の最初の荷主が同じ荷主コードだと、2つが1つのまとまりとして扱われる。このとき、後ろの配信店の分も前の配信店の判定(OUT_SW)で出力・非出力が決まる。
- ★ 訂正(31~33)だけを除外し、見出しデータ(00)の鑑の金額はそのまま出力する。見出しの請求額に訂正分が含まれている場合、後続の請求書で「鑑の請求額」と「明細の合計」が一致しなくなる可能性がある(要確認)。
5.3 終了処理
- 次の3行を DISPLAY する(6章)。
-
<<< INPUT COUNT = ∥ ICNT
-
<<< OUTPUT COUNT = ∥ OCNT
-
<<< CHANGE COUNT = ∥ CCNT
- 3ファイルを CLOSE する。
- ICNT は ALLSQDT の全件数(対象外の店所・訂正も含む)。
- ★ CCNT はどこでも加算されないため、常に 0 が表示される。
6. 印刷イメージ(SYSPRINT のメッセージ)
帳票は出力しない。SYSPRINT(SYSOUT=*)に次の4行が出る。7章の例の場合のイメージ:
<<< TRY TEN CODE = 1001
<<< INPUT COUNT = 16
<<< OUTPUT COUNT = 9
<<< CHANGE COUNT = 0
| メッセージ |
内容 |
留意点 |
<<< TRY TEN CODE = nnnn |
対象店所の表の1件目 |
2件目以降は表示されない。件数も表示されない |
<<< INPUT COUNT = n |
ALLSQDT の読込件数 |
対象外・訂正を含む全件 |
<<< OUTPUT COUNT = n |
SQALLOK の書出件数 |
|
<<< CHANGE COUNT = n |
変更件数 |
常に 0(未使用のカウンタ) |
- 件数(FIXED DEC(9))は、文字列への変換規則により右詰めの数字列(前に空白が付く)で表示される。空白の数は変換規則によるもので、イメージは目安である。
- 確認方法:
INPUT COUNT − OUTPUT COUNT = 対象外の店所の件数 + 対象店所の訂正(31~33)の件数 となる。
7. 入出力データの対比イメージ
7.1 例の条件
- TRYFILE:
1001、1305 の2件(対象店所は 1001 と 1305)
- ALLSQDT:配信店 1001、1002、1305 のデータ 16件
7.2 TRYFILE のイメージ(80バイト)
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
1001
1305
- 先頭4桁だけを使う。5~80桁目(TRYSPAC)は見ない。
7.3 ALLSQDT(入力)と SQALLOK(出力)の対比
| No |
配信店 |
請求先番号 |
データID |
内容 |
レイアウト/長さ |
判定 |
SQALLOK |
| 1 |
1001 |
1234567-00001 |
00 |
見出し |
SQALLHED/560 |
荷主 1234567 の先頭。1001 は対象 → OUT_SW='Y' |
○ 1件目 |
| 2 |
1001 |
1234567-00001 |
01 |
送り状明細(計上) |
SQALLDTB/230 |
対象・訂正でない |
○ 2件目 |
| 3 |
1001 |
1234567-00001 |
01 |
送り状明細(計上) |
SQALLDTB/230 |
同上 |
○ 3件目 |
| 4 |
1001 |
1234567-00001 |
21 |
単品付替 |
SQALLDTB/230 |
同上 |
○ 4件目 |
| 5 |
1001 |
1234567-00001 |
31 |
単品訂正 |
SQALLDTB/230 |
訂正のため除外 |
× |
| 6 |
1001 |
1234567-00002 |
00 |
見出し(枝番違い) |
SQALLHED/560 |
荷主コードが同じなので同じまとまり |
○ 5件目 |
| 7 |
1001 |
1234567-00002 |
33 |
一括訂正 |
SQALLDTC/80 |
訂正のため除外 |
× |
| 8 |
1001 |
2345678-00000 |
00 |
見出し |
SQALLHED/560 |
荷主 2345678 の先頭。1001 は対象 |
○ 6件目 |
| 9 |
1001 |
2345678-00000 |
22 |
一括付替 |
SQALLDTC/80 |
対象・訂正でない |
○ 7件目 |
| 10 |
1002 |
3456789-00000 |
00 |
見出し |
SQALLHED/560 |
荷主 3456789 の先頭。1002 は対象外 → OUT_SW='N' |
× |
| 11 |
1002 |
3456789-00000 |
01 |
送り状明細 |
SQALLDTB/230 |
対象外 |
× |
| 12 |
1002 |
3456789-00000 |
45 |
POSメイト等 |
SQALLDTD/90 |
対象外 |
× |
| 13 |
1305 |
4567890-00000 |
00 |
見出し |
SQALLHED/560 |
荷主 4567890 の先頭。1305 は対象 |
○ 8件目 |
| 14 |
1305 |
4567890-00000 |
95 |
検品料 |
SQALLDTB/230 |
対象・訂正でない |
○ 9件目 |
| 15 |
1305 |
4567890-00000 |
31 |
単品訂正 |
SQALLDTB/230 |
訂正のため除外 |
× |
| 16 |
1305 |
4567890-00000 |
32 |
(定義なし) |
- |
31~33 のため除外 |
× |
- 入力 16件 → 出力 9件(対象外の店所 3件、訂正 4件を除外)。6章のメッセージはこの件数。
- 出力の各レコードは、入力のレコードとバイト単位で同じ(長さも同じ)。並び順も入力の順のまま。
7.4 ★ 配信店の境目で荷主コードが同じ場合
| No |
配信店 |
請求先番号 |
データID |
判定 |
SQALLOK |
| 1 |
1001 |
5678901-00000 |
00 |
荷主 5678901 の先頭。1001 は対象 → OUT_SW='Y' |
○ |
| 2 |
1001 |
5678901-00000 |
01 |
対象 |
○ |
| 3 |
1002 |
5678901-00000 |
00 |
荷主コードが同じため区切られない。OUT_SW は 'Y' のまま |
○(本来は対象外) |
| 4 |
1002 |
5678901-00000 |
01 |
同上 |
○(本来は対象外) |
- 逆に、前の配信店が対象外で後ろの配信店が対象の場合は、後ろの分が出力されない。
- 同じ荷主が複数の配信店に存在し得るかどうかは、運用の確認が必要である。
8. メッセージ一覧
| No |
メッセージ |
出力先 |
契機 |
| 1 |
<<< TRY TEN CODE = ∥ 店所コード |
SYSPRINT(DISPLAY) |
前処理の終了時 |
| 2 |
<<< INPUT COUNT = ∥ 件数 |
同上 |
終了時 |
| 3 |
<<< OUTPUT COUNT = ∥ 件数 |
同上 |
終了時 |
| 4 |
<<< CHANGE COUNT = ∥ 件数 |
同上 |
終了時(常に 0) |
9. 異常処理
| 事象 |
検出 |
処理 |
| TRYFILE の終了 |
ENDFILE 条件 |
TRY_SW='0'B で表の作成を終える(正常) |
| ALLSQDT の終了 |
ENDFILE 条件 |
EOF_SW='0'B でループを終える(正常) |
| TRYFILE が0件 |
なし |
表が空のまま進み、出力0件で正常終了する |
| ALLSQDT が0件 |
なし |
出力0件で正常終了する |
| TRYFILE が101件以上 |
なし |
★ 添字範囲外の書込み(結果は不定) |
| 店所コードが数字でない |
CONVERSION 条件(の可能性) |
ON 定義なし → 異常終了(SYSUDUMP) |
| その他の入出力エラー |
- |
ON ERROR の定義なし → PL/I 標準のエラー処理(異常終了) |
| リターンコード |
- |
設定なし(正常時は 0) |
10. 留意事項(★)
-
TRYFILE の件数上限:100件を超えるとチェックなしで表の範囲を超える。
-
荷主の区切りが荷主コード7桁だけ:配信店が変わっても荷主コードが同じなら区切られず、前の配信店の判定が引き継がれる(7.4)。
-
訂正除外による金額の不一致の可能性:明細の訂正(31~33)は除外するが、見出しデータ(00)の鑑の金額は変えない。後続の請求書で鑑の請求額と明細合計がずれる可能性がある。KS60144P(No.12)の総合計は明細から集計するため、明細側の合計は訂正を含まない。
-
データID 32:31~33 の範囲で除外しているが、KS60144P では 32 の扱いがない。範囲指定のため、将来 32 を別用途に使うと意図せず除外される。
-
CHANGE COUNT は常に 0:CCNT は宣言・表示のみ。
-
TRY TEN CODE の表示は1件目だけ:対象店所の件数や2件目以降は確認できない。
-
ND53500P と同じパラメータメンバ:SEQTRYTN は JOB DAIMNT3J の ND53500P でも使われている。メンバを変更すると両方に影響する。
-
KS60151P の ALTFILE とは別のメンバ:KS60151P は SEQPRTNC(自店出力の店所)、本プログラムは SEQTRYTN(郵送対象の店所)を使う。名前が似ているが用途が異なる。
11. 未使用項目
| 項目 |
内容 |
| INARB、INARC、INARD、INARX |
各レイアウトの重ね定義(項目は1つも参照しない。共通位置の3項目を INARA の名前で参照) |
| SQALLHED の SDTASHTN、SDTASQNO、SDTADTID 以外の全項目 |
参照なし |
| SEQ_ZERO、SEQ_SQNO |
SEQNO の分解項目のうち、荷主コード以外 |
| CCNT |
加算なし(表示のみ) |
| MS_SW |
宣言のみ |
| TRYSPAC |
TRYFILE の5~80桁目 |
| BUILTIN の ADDR、SUBSTR、HIGH、LOW、LENGTH、STRING、VERIFY、UNSPEC |
宣言のみ |
付録A SQALLHED(見出し、データID 00、560バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SDTASHTN |
PIC'(4)9' |
|
1 |
4 |
配信店:対象店所の判定(荷主の先頭のみ) |
| 02 |
SDTAKKKK |
CHAR(10) |
|
5 |
10 |
|
| 02 |
SDTASQNO |
FIXED DEC(13) |
|
15 |
7 |
請求先番号:荷主コード(2~8桁目)で区切り判定 |
| 02 |
SDTASPA1 |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SDTADTID |
PIC'(2)9' |
|
33 |
2 |
データID:31~33 を除外 |
| 02 |
SDTAKARI |
PIC'(1)9' |
|
35 |
1 |
|
| 02 |
SDTADPKB |
PIC'(1)9' |
|
36 |
1 |
|
| 02 |
SDTAYYMM |
PIC'(4)9' |
|
37 |
4 |
|
| 02 |
SDTAHYMD |
PIC'(6)9' |
|
41 |
6 |
|
| 02 |
SDTACKTT |
PIC'(4)9' |
|
47 |
4 |
|
| 02 |
SDTAKIKN |
(集団項目) |
|
51 |
12 |
|
| 03 |
SDTAKYMD |
PIC'(6)9' |
|
51 |
6 |
|
| 03 |
SDTASYMD |
PIC'(6)9' |
|
57 |
6 |
|
| 02 |
SDTASQN1 |
CHAR(8) |
|
63 |
8 |
|
| 02 |
SDTASQNI |
CHAR(64) |
|
71 |
64 |
|
| 02 |
SDTASQN2 |
CHAR(5) |
|
135 |
5 |
|
| 02 |
SDTASQNM |
CHAR(36) |
|
140 |
36 |
|
| 02 |
SDTAPKEI |
PIC'(1)9' |
|
176 |
1 |
|
| 02 |
SDTAPKBN |
CHAR(1) |
|
177 |
1 |
|
| 02 |
SDTAHYOG |
(集団項目) |
|
178 |
20 |
|
| 03 |
SDTANNNO |
PIC'(1)9' |
20 |
178 |
1×20=20 |
|
| 02 |
SDTABIKB |
PIC'(1)9' |
|
198 |
1 |
|
| 02 |
SDTAZKIN |
PIC'(1)9' |
|
199 |
1 |
|
| 02 |
SDTAZKI1 |
PIC'(1)9' |
|
200 |
1 |
|
| 02 |
SDTAJIKB |
PIC'(1)9' |
|
201 |
1 |
|
| 02 |
SDTABBKB |
PIC'(1)9' |
|
202 |
1 |
|
| 02 |
SDTAHHTN |
PIC'(4)9' |
|
203 |
4 |
|
| 02 |
SDTASPAC |
CHAR(14) |
|
207 |
14 |
|
| 02 |
SDTAHEAD |
(集団項目) |
|
221 |
340 |
|
| 03 |
SDTAMTTO |
(集団項目) |
|
221 |
30 |
|
| 04 |
SDTAUNTI |
FIXED DEC(9) |
|
221 |
5 |
|
| 04 |
SDTARYOK |
FIXED DEC(9) |
|
226 |
5 |
|
| 04 |
SDTATTAX |
FIXED DEC(9) |
|
231 |
5 |
|
| 04 |
SDTAHOKR |
FIXED DEC(9) |
|
236 |
5 |
|
| 04 |
SDTAAAAA |
FIXED DEC(9) |
|
241 |
5 |
|
| 04 |
SDTAATAX |
FIXED DEC(9) |
|
246 |
5 |
|
| 03 |
SDTAYUNN |
CHAR(7) |
|
251 |
7 |
|
| 03 |
SDTAYUNO |
PIC'(5)9' |
|
258 |
5 |
|
| 03 |
SDTAJKAN |
(集団項目) |
|
263 |
124 |
|
| 04 |
SDTAJKA1 |
CHAR(34) |
|
263 |
34 |
|
| 04 |
SDTAJKA2 |
CHAR(38) |
|
297 |
38 |
|
| 04 |
SDTAJKA3 |
CHAR(52) |
|
335 |
52 |
|
| 03 |
SDTAJKNA |
(集団項目) |
|
387 |
129 |
|
| 04 |
SDTAJKN1 |
CHAR(32) |
|
387 |
32 |
|
| 04 |
SDTAJKN2 |
CHAR(47) |
|
419 |
47 |
|
| 04 |
SDTAJKN3 |
CHAR(50) |
|
466 |
50 |
|
| 03 |
SDTADTEL |
CHAR(12) |
|
516 |
12 |
|
| 03 |
SDTABANK |
FIXED DEC(7) |
|
528 |
4 |
|
| 03 |
SDTAKONO |
PIC'(1)9' |
|
532 |
1 |
|
| 03 |
SDTAKOBA |
FIXED DEC(9) |
|
533 |
5 |
|
| 03 |
SDTABAN1 |
FIXED DEC(7) |
|
538 |
4 |
|
| 03 |
SDTAKON1 |
PIC'(1)9' |
|
542 |
1 |
|
| 03 |
SDTAKOB1 |
FIXED DEC(9) |
|
543 |
5 |
|
| 03 |
SDTATKB3 |
PIC'(1)9' |
|
548 |
1 |
|
| 03 |
SDTATENK |
FIXED DEC(9) |
|
549 |
5 |
|
| 03 |
SDTASPA2 |
CHAR(7) |
|
554 |
7 |
|
付録B SQALLDTB(送り状明細、データID 01・21・31・95、230バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SDTBSEHT |
PIC'(4)9' |
|
1 |
4 |
(SDTASHTN として参照) |
| 02 |
SDTBKKKK |
CHAR(10) |
|
5 |
10 |
|
| 02 |
SDTBSENO |
FIXED(13) |
|
15 |
7 |
(SDTASQNO として参照) |
| 02 |
SDTBPSEQ |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SDTBDTID |
PIC'(2)9' |
|
33 |
2 |
(SDTADTID として参照) |
| 02 |
SDTBYYMD |
FIXED(7) |
|
35 |
4 |
|
| 02 |
SDTBMOCH |
PIC'(1)9' |
|
39 |
1 |
|
| 02 |
SDTBOKRN |
FIXED(11) |
|
40 |
6 |
|
| 02 |
SDTBRECT |
PIC'(1)9' |
|
46 |
1 |
|
| 02 |
SDTBTENS |
FIXED(5) |
|
47 |
3 |
|
| 02 |
SDTBMONI |
(集団項目) |
|
50 |
29 |
|
| 03 |
SDTBCHCD |
FIXED(5) |
|
50 |
3 |
|
| 03 |
SDTBNIAD |
CHAR(12) |
|
53 |
12 |
|
| 03 |
SDTBNINA |
CHAR(14) |
|
65 |
14 |
|
| 02 |
SDTBKOSU |
FIXED(5) |
|
79 |
3 |
|
| 02 |
SDTBKKGG |
FIXED(5) |
|
82 |
3 |
|
| 02 |
SDTBKEIY |
(集団項目) |
|
85 |
8 |
|
| 03 |
SDTBUUNN |
FIXED(7) |
|
85 |
4 |
|
| 03 |
SDTBRYKE |
FIXED(7) |
|
89 |
4 |
|
| 02 |
SDTBTATE |
FIXED(7) |
|
93 |
4 |
|
| 02 |
SDTBWARI |
FIXED(5) |
|
97 |
3 |
|
| 02 |
SDTBHOKN |
(集団項目) |
|
100 |
7 |
|
| 03 |
SDTBFUTT |
PIC'(1)9' |
|
100 |
1 |
|
| 03 |
SDTBKING |
FIXED(5) |
|
101 |
3 |
|
| 03 |
SDTBEENN |
FIXED(5) |
|
104 |
3 |
|
| 02 |
SDTBDAII |
(集団項目) |
|
107 |
13 |
|
| 03 |
SDTBDAKU |
PIC'(1)9' |
|
107 |
1 |
|
| 03 |
SDTBDAKI |
FIXED(7) |
|
108 |
4 |
|
| 03 |
SDTBRONN |
FIXED(7) |
|
112 |
4 |
|
| 03 |
SDTBTESO |
FIXED(7) |
|
116 |
4 |
|
| 02 |
SDTBRYRY |
(集団項目) |
|
120 |
44 |
|
| 03 |
SDTBWAWA |
(集団項目) |
|
120 |
9 |
|
| 04 |
SDTBWAHA |
FIXED(5) |
|
120 |
3 |
|
| 04 |
SDTBWACH |
FIXED(5) |
|
123 |
3 |
|
| 04 |
SDTBWAFU |
FIXED(5) |
|
126 |
3 |
|
| 03 |
SDTBTESU |
(集団項目) |
|
129 |
6 |
|
| 04 |
SDTBTECH |
FIXED(5) |
|
129 |
3 |
|
| 04 |
SDTBTERE |
FIXED(5) |
|
132 |
3 |
|
| 03 |
SDTBSHSH |
FIXED(5) |
|
135 |
3 |
|
| 03 |
SDTBHHAI |
FIXED(5) |
|
138 |
3 |
|
| 03 |
SDTBKOSO |
FIXED(7) |
|
141 |
4 |
|
| 03 |
SDTBCHOS |
FIXED(5) |
|
145 |
3 |
|
| 03 |
SDTBKONP |
FIXED(7) |
|
148 |
4 |
|
| 03 |
SDTBYUDO |
FIXED(7) |
|
152 |
4 |
|
| 03 |
SDTBETCC |
FIXED(7) |
|
156 |
4 |
|
| 03 |
SDTBYOBI |
FIXED(7) |
|
160 |
4 |
|
| 02 |
SDTBKIRO |
(集団項目) |
|
164 |
8 |
|
| 03 |
SDTBKISH |
FIXED(3) |
|
164 |
2 |
|
| 03 |
SDTBKKRO |
FIXED(5) |
|
166 |
3 |
|
| 03 |
SDTBKICC |
FIXED(5) |
|
169 |
3 |
|
| 02 |
SDTBAINI |
CHAR(14) |
|
172 |
14 |
|
| 02 |
SDTBSEKU |
CHAR(10) |
|
186 |
10 |
|
| 02 |
SDTBTANO |
CHAR(13) |
|
196 |
13 |
|
| 02 |
SDTBHNCD |
FIXED(7) |
|
209 |
4 |
|
| 02 |
SDTBTELL |
CHAR(10) |
|
213 |
10 |
|
| 02 |
SDTBJIKB |
PIC'(1)9' |
|
223 |
1 |
|
| 02 |
SDTBBTAX |
FIXED(7) |
|
224 |
4 |
|
| 02 |
SDTBSPAC |
CHAR(3) |
|
228 |
3 |
|
付録C SQALLDTC(一括付替・訂正、データID 22・33、80バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SDTCSEHA |
PIC'(4)9' |
|
1 |
4 |
(SDTASHTN として参照) |
| 02 |
SDTCKKKK |
CHAR(10) |
|
5 |
10 |
|
| 02 |
SDTCSENO |
FIXED(13) |
|
15 |
7 |
(SDTASQNO として参照) |
| 02 |
SDTCETCC |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SDTCDDID |
PIC'(2)9' |
|
33 |
2 |
(SDTADTID として参照) |
| 02 |
SDTCTETU |
FIXED(7) |
|
35 |
4 |
|
| 02 |
SDTCTTTN |
FIXED(5) |
|
39 |
3 |
|
| 02 |
SDTCUNCH |
FIXED(9) |
|
42 |
5 |
|
| 02 |
SDTCUNZK |
FIXED(9) |
|
47 |
5 |
|
| 02 |
SDTCOLDS |
FIXED(13) |
|
52 |
7 |
|
| 02 |
SDTCRIYU |
PIC'(2)9' |
|
59 |
2 |
|
| 02 |
SDTCAINA |
CHAR(14) |
|
61 |
14 |
|
| 02 |
SDTCJIKB |
PIC'(1)9' |
|
75 |
1 |
|
| 02 |
SDTCSPAC |
CHAR(5) |
|
76 |
5 |
|
付録D SQALLDTD(POSメイト・FAXサービス・サポートⅡ等、データID 45・55・65、90バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SDTDSEHA |
PIC'(4)9' |
|
1 |
4 |
(SDTASHTN として参照) |
| 02 |
SDTDKKKK |
CHAR(10) |
|
5 |
10 |
|
| 02 |
SDTDSENO |
FIXED(13) |
|
15 |
7 |
(SDTASQNO として参照) |
| 02 |
SDTDETCC |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SDTDDDID |
PIC'(2)9' |
|
33 |
2 |
(SDTADTID として参照) |
| 02 |
SDTDYYYY |
FIXED(7) |
|
35 |
4 |
|
| 02 |
SDTDYUDA |
FIXED(9) |
|
39 |
5 |
|
| 02 |
SDTDMUDA |
FIXED(9) |
|
44 |
5 |
|
| 02 |
SDTDUNCH |
FIXED(9) |
|
49 |
5 |
|
| 02 |
SDTDUNZK |
FIXED(9) |
|
54 |
5 |
|
| 02 |
SDTDSONO |
FIXED(9) |
|
59 |
5 |
|
| 02 |
SDTDJIKB |
PIC'(1)9' |
|
64 |
1 |
|
| 02 |
SDTDSPAC |
CHAR(26) |
|
65 |
26 |
|
付録E SDPSQALA(デパート請求、データID 02、100バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SSALSEHA |
PIC'(4)9' |
|
1 |
4 |
(SDTASHTN として参照) |
| 02 |
SSALKKKK |
CHAR(10) |
|
5 |
10 |
|
| 02 |
SSALSENO |
FIXED(13) |
|
15 |
7 |
(SDTASQNO として参照) |
| 02 |
SSALPSEQ |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SSALDDID |
PIC'(2)9' |
|
33 |
2 |
(SDTADTID として参照) |
| 02 |
SSALUKET |
(集団項目) |
|
35 |
7 |
|
| 03 |
SSALUKYM |
FIXED(7) |
|
35 |
4 |
|
| 03 |
SSALUKTE |
FIXED(5) |
|
39 |
3 |
|
| 02 |
SSALMIUN |
(集団項目) |
|
42 |
10 |
|
| 03 |
SSALUNCN |
FIXED(9) |
|
42 |
5 |
|
| 03 |
SSALRYOK |
FIXED(9) |
|
47 |
5 |
|
| 02 |
SSALWARI |
FIXED(7) |
|
52 |
4 |
|
| 02 |
SSALHONA |
(集団項目) |
|
56 |
8 |
|
| 03 |
SSALHOKN |
FIXED(7) |
|
56 |
4 |
|
| 03 |
SSALHOKE |
FIXED(7) |
|
60 |
4 |
|
| 02 |
SSALDAIB |
(集団項目) |
|
64 |
28 |
|
| 03 |
SSALDAII |
(集団項目) |
|
64 |
14 |
|
| 04 |
SSALDAKI |
FIXED(9) |
|
64 |
5 |
|
| 04 |
SSALDARO |
FIXED(9) |
|
69 |
5 |
|
| 04 |
SSALDASO |
FIXED(7) |
|
74 |
4 |
|
| 03 |
SSALDABE |
(集団項目) |
|
78 |
14 |
|
| 04 |
SSALDABN |
FIXED(9) |
|
78 |
5 |
|
| 04 |
SSALDABS |
FIXED(9) |
|
83 |
5 |
|
| 04 |
SSALDABT |
FIXED(7) |
|
88 |
4 |
|
| 02 |
SSALMAIS |
FIXED(7) |
|
92 |
4 |
|
| 02 |
SSALJIKB |
PIC'(1)9' |
|
96 |
1 |
|
| 02 |
SSALSPAC |
CHAR(4) |
|
97 |
4 |
|