KS60630 詳細設計書
| 項目 |
内容 |
| プログラムID |
KS60630(ソース名 KS60630P) |
| プログラム名 |
郵送用 請求書顧客データ(CSV)作成 |
| 言語 |
PL/I(OPTIONS(MAIN))。パターン PPB0010P(ファイルのIO・SINGLE) |
| 業務ID |
NSSQNN50(ソースの +DC GYOM) |
| 起動JOB |
DAISEQ4J ステップ No.29 |
| 作成日 |
2026/10/13 |
| 作成方法 |
ソースコードからのリバース作成 |
前提
- INCLUDE のうち、次を添付ソースで展開して解析した。
- SQALLHED(ご指示の SQALLHEA に相当)、SQALLDTB、SQALLDTC、SQALLDTD、SSYUPRNT、CORPOMAN
- SDPSQALA は今回の指定にないが、KS60135 の解析時(同日)にいただいた同じメンバーを展開した(付録E)。プログラムでは項目を参照しない。
- 外部手続きの CALL はなく、ブラックボックス(BB)として扱う部分はない。
- 文字コードは日本語EBCDIC(CCSID 930 等)を想定する。CSV の漢字項目はシフトアウト X'0E'/シフトイン X'0F' で囲まれる。
- CSV の値(7章)はすべて架空の例である。項目の位置・長さはソースの定義どおり。
- ★印は、ソースから読み取れる潜在的な問題点または注意点を示す。
1. 概要
1.1 機能
ソース先頭のコメント:「郵送用請求データを読み、優先印刷マスター、請求集約等の情報を付加して出力する。」
- 郵送用の請求明細データ(INFILE。KS60135P の出力)を先頭から読む。
- 荷主コード(請求先番号の先頭7桁)が変わるたびに、優先印刷マスターと顧客法人管理マスターを荷主コードで読む。
- 見出しデータ(データID 00)1件ごとに、CSV の明細行を1行出力する。明細データ(01、22 等)は読み飛ばす。
- CSV の先頭に見出し行を1行出力する。
- 終了時に、入力件数・出力件数を SYSPRINT に表示する。
出力する CSV の項目は5つ。
| 列 |
見出し |
内容 |
取得元 |
| 1 |
締め日 |
請求期間の至(YYMMDD) |
入力の見出しデータ SDTASYMD |
| 2 |
扱い店 |
店所コード4桁 |
顧客法人管理マスター CORPATTN |
| 3 |
請求先顧客コード |
荷主コード7桁 |
入力の請求先番号の2~8桁目 |
| 4 |
集約コード |
集約代表の荷主コード7桁 |
顧客法人管理マスター CORPZAND |
| 5 |
取扱 |
'エコ'/'優先'/'不要' |
優先印刷マスターの有無と UPRNASKB |
1.2 処理概要図
VKSYUPR(優先印刷マスター)──┐ 荷主コードで読む
VKCORPO(顧客法人管理) ───┤
▼
WORK062S ──▶ INFILE ──────────────────────▶ KS60630P ──▶ CSVFILE ──▶ SEAD.DAISEQ4J.CSV(DASD11)
(KS60135P の出力: │ │
郵送対象店所・訂正除外) ▼ ▼
SYSPRINT(件数) No.30・31 MVSCMD(F AUTO1,ASVQ803/808)
→ 後続の転送・配信処理(推定)
2. 外部インターフェース
2.1 ファイル一覧
| DD名 |
編成/属性(DCL) |
入出力 |
内容 |
読込/書出領域 |
| INFILE |
RECORD INPUT(順次・可変長) |
入力 |
郵送用の請求明細データ |
INAREA CHAR(560) VAR |
| VKSYUPR |
RECORD KEYED DIRECT INPUT ENV(VSAM) |
入力 |
優先印刷マスター |
SYUAREA(SSYUPRNT 40バイト)。キー=荷主コード7桁 |
| VKCORPO |
RECORD KEYED DIRECT INPUT ENV(VSAM) |
入力 |
顧客法人管理マスター |
CORAREA(CORPOMAN 120バイト)。キー=荷主コード7桁 |
| CSVFILE |
RECORD OUTPUT(順次・可変長) |
出力 |
請求書顧客データ(CSV) |
HEDAREA(56バイト)/CSVAREA(34バイト) |
| SYSPRINT |
- |
出力 |
DISPLAY のメッセージ |
- |
2.2 JCL との対応(DAISEQ4J No.29)
| DD名 |
データセット |
DISP |
属性 |
作成元/利用先 |
| INFILE |
TEMP.DAISEQ4J.WORK062S |
SHR |
VB |
作成:No.11 KS60135P。No.12 KS60144P も読む |
| VKSYUPR |
VKAD.SSYUPRNT.DTMASTER |
SHR |
VSAM |
KS60130P、KS60151P、KS60152P、KS60760P も使用 |
| VKCORPO |
VKAD.CORPOMAN.DTMASTER |
SHR |
VSAM |
KS60152P、KS60750P、KS60790P も使用 |
| CSVFILE |
SEAD.DAISEQ4J.CSV |
(NEW,KEEP,DELETE) |
RECFM=VB、BLKSIZE=12000(LRECL 指定なし)、DASD11 |
事前削除:No.28。JOB 内に読むステップはない。No.30・31 の MVSCMD の後、別の処理で取り込まれると推定 |
| SYSPRINT/SYSDBOUT |
SYSOUT=* |
- |
- |
- |
- CSV のデータセットは JOB の最後でも削除されず、次回実行の No.28 で削除される。
- ★ JCL に LRECL の指定がない。プログラムの DCL にも ENV(RECSIZE) の指定がないため、レコード長はシステムの既定に依存する(実績上問題ないなら影響なし。要確認)。
2.3 入力ファイルの違い
(1) 本プログラムが読む3本の違い
| 観点 |
INFILE |
VKSYUPR |
VKCORPO |
| 種類 |
順次ファイル(作業データ) |
VSAM マスター |
VSAM マスター |
| 名称 |
郵送用の請求明細データ |
優先印刷マスター |
顧客法人管理マスター |
| データセット |
TEMP.DAISEQ4J.WORK062S |
VKAD.SSYUPRNT.DTMASTER |
VKAD.CORPOMAN.DTMASTER |
| レイアウト |
SQALLHED ほか5種(80~560バイト) |
SSYUPRNT(40バイト) |
CORPOMAN(120バイト) |
| 読み方 |
先頭から全件 |
荷主コード(7桁)でキー読み |
荷主コード(7桁)でキー読み |
| 読む回数 |
全件 |
荷主が変わるたびに1回 |
荷主が変わるたびに1回 |
| 使う項目 |
SDTASQNO(荷主コード)、SDTADTID、SDTASYMD |
UPRNASKB(と、該当の有無) |
CORPATTN、CORPZAND |
| CSV のどこに入るか |
締め日、請求先顧客コード、出力する行の決定 |
取扱(エコ/優先/不要) |
扱い店、集約コード |
| 該当がないとき |
- |
取扱=エコ
|
扱い店=0000(推定)、集約コード=空白 |
| OPEN |
明示的に OPEN |
OPEN 文なし(最初の READ で暗黙オープン) |
同左 |
- 2つのマスターは同じキー(荷主コード)で読むが、役割が違う。優先印刷マスターは「誰が郵送(エコ)対象か」、顧客法人管理マスターは「どの店・どの代表でまとめるか」を表す。
- 入力ファイルは、見出しデータ(ID 00)しか CSV に使わない。明細データ(01、21、22、45 等)は件数を数えるだけで読み飛ばす。
(2) 同じ JOB のほかのプログラムの入力との違い
| 観点 |
KS60630P(本PG)の INFILE |
KS60135P の入力(WORK0620) |
KS60152P の入力(WORK0700) |
| データセット |
WORK062S |
WORK0620 |
WORK0700 |
| 中身 |
郵送対象店所の請求明細(訂正除外) |
全店所の請求明細 |
WORK062S を KS60144P で印刷用の行データにしたもの |
| レイアウト |
SQALLHED ほか(請求明細データ) |
同左 |
SQHAIDAA~D(印刷データ) |
| 本PG との関係 |
- |
KS60135P がこれから WORK062S を作る |
同じ WORK062S が元。同じ顧客が KS60152P の請求書と本PG の CSV の両方に出る |
- KS60152P と本PG は、同じ2つのマスターで顧客を判定するが、扱いが一部違う(1.3)。
2.4 KS60152P の判定との対応
| 優先印刷マスター |
KS60152P(請求書) |
本PG(CSV の取扱) |
| 無い |
OUTFILE・OUTFIL3(インフォコム系)に出力 |
エコ |
| 有る(UPRNASKB≠'6') |
OUTFIL2(事業所送付用)に出力 |
優先 |
| 有る(UPRNASKB='6') |
どこにも出力しない |
不要(CSV には出る) |
| 顧客法人管理マスターの項目 |
KS60152P |
本PG |
| CORPZAND(集約代表) |
請求書2行目の集約代表コード |
CSV の集約コード |
| CORPZDTN(代表扱い店) |
インフォコムの1行目の店所CD |
使わない |
| CORPATTN |
使わない |
CSV の扱い店 |
- ★ CSV の「扱い店」(CORPATTN)と、KS60152P がインフォコムの振分けに使う「代表扱い店」(CORPZDTN)は別の項目である。両者の意味の違いは、マスターの仕様で確認が必要。
3. データ定義
3.1 入力エリア
| 名称 |
属性 |
内容 |
| INAREA |
CHAR(560) VAR |
INFILE の読込域 |
| INARA |
DEF INAREA:DUMMYA BIN(15)+SQALLHED |
見出し(ID 00)として参照 |
| INARB/INARC/INARD/INARX |
DEF INAREA+SQALLDTB/SQALLDTC/SQALLDTD/SDPSQALA |
宣言のみ(未使用) |
| SYUAREA |
SSYUPRNT(40バイト) |
優先印刷マスターの読込域 |
| CORAREA |
CORPOMAN(120バイト) |
顧客法人管理マスターの読込域 |
- 参照する入力項目は、全レイアウト共通の位置にある SDTASQNO(15バイト目、7)、SDTADTID(33バイト目、2)と、見出しデータだけにある SDTASYMD(57バイト目、6)の3つ。
3.2 出力エリア
HEDAREA(CSV の見出し行、56バイト)
| 項目 |
属性 |
初期値 |
| HEDDAT1 |
CHAR(50) |
締め日,扱い店,請求先顧客コード,集約コード,(漢字は SO/SI 付き。ちょうど50バイト) |
| HEDDAT2 |
CHAR(6) |
取扱(SO+4バイト+SI) |
CSVAREA(CSV の明細行、34バイト)
| 項目 |
位置 |
長さ |
属性 |
内容 |
編集元 |
| CSVSQMD |
1 |
6 |
CHAR(6) |
締め日 |
SDTASYMD |
| CSVCM01 |
7 |
1 |
CHAR(1) |
',' |
|
| CSVATTN |
8 |
4 |
CHAR(4) |
扱い店 |
CORPATTN |
| CSVCM02 |
12 |
1 |
CHAR(1) |
',' |
|
| CSVSQNI |
13 |
7 |
PIC'(7)9' |
請求先顧客コード |
BREAKA(荷主コード) |
| CSVCM03 |
20 |
1 |
CHAR(1) |
',' |
|
| CSVSQHD |
21 |
7 |
CHAR(7) |
集約コード |
CORPZAND |
| CSVCM04 |
28 |
1 |
CHAR(1) |
',' |
|
| CSVECOD |
29 |
6 |
CHAR(6) |
取扱 |
'エコ'/'不要'/'優先'(SO+4バイト+SI) |
- 区切りはカンマ。引用符(")は付けない。各項目は固定長のため、集約コードが空白の場合も7桁分の空白が入る。
- 最後の列の後にカンマは付かない(列数5)。
3.3 ワークエリア
| 名称 |
属性 |
初期値 |
内容 |
| EOF_SW |
BIT(1) |
'1'B |
INFILE の終了で '0'B |
| MS_SW |
CHAR(1) |
- |
優先印刷マスターの該当('Y'=あり/'N'=なし) |
| CO_SW |
CHAR(1) |
- |
顧客法人管理マスターの該当(設定するが判定に使わない) |
| SEQNO |
PIC'(13)9' |
0 |
請求先番号13桁 |
| SEQNO_DF |
DEF SEQNO |
- |
SEQ_ZERO(1桁)+SEQ_NICD(荷主7桁)+SEQ_SQNO(枝番5桁) |
| BREAKA |
PIC'(7)9' |
0 |
処理中の荷主コード(マスターのキーにも使う) |
| ICNT/OCNT/CCNT |
FIXED DEC(9) |
0 |
入力件数/CSV 明細行の件数/変更件数(加算なし) |
| TRY_SW、OUT_SW、II |
- |
- |
宣言のみ(KS60135P からの流用と推定) |
4. 処理フロー
開始
├─ ON ENDFILE(INFILE) → EOF_SW='0'B
│ ON KEY(VKSYUPR) → MS_SW='N'、ON KEY(VKCORPO) → CO_SW='N'
├─ OPEN INFILE、CSVFILE(マスター2本は OPEN しない)
├─ INAREA をクリアし、INFILE を1件読む。SEQNO ← SDTASQNO
├─ CSV の見出し行(HEDAREA)を WRITE
├─ DO WHILE(INFILE が終わるまで) … 荷主の単位
│ BREAKA ← SEQ_NICD(荷主7桁)
│ SYUAREA、CORAREA をクリア
│ MS_SW='Y'、VKSYUPR を KEY(BREAKA) で READ
│ CO_SW='Y'、VKCORPO を KEY(BREAKA) で READ
│ DO WHILE(終わっていない かつ 荷主が BREAKA と同じ) … レコードの単位
│ ICNT +1
│ SDTADTID = 00 なら CSV 明細行を編集して WRITE、OCNT +1
│ INFILE を1件読む、SEQNO ← SDTASQNO
│ END
│ END
├─ DISPLAY 入力件数・出力件数・変更件数
├─ CLOSE INFILE、CSVFILE
終了
5. 処理詳細
5.1 開始処理
- ON 条件を設定する。マスターの KEY 条件(該当なし・キーエラー)は、それぞれ MS_SW/CO_SW を 'N' にするだけで処理を続ける。
- INFILE と CSVFILE を OPEN する。
- VKSYUPR・VKCORPO の OPEN 文はない。最初の READ で、DCL の属性(RECORD KEYED DIRECT INPUT)に従って暗黙にオープンされ、終了時に自動でクローズされる。
-
INAREA = '' の後、INFILE を1件読み、SEQNO ← SDTASQNO。
-
入力の有無にかかわらず、CSV の見出し行(HEDAREA、56バイト)を書く。
- ★ INFILE が0件の場合、SDTASQNO(パック10進)の位置には有効なデータがないまま SEQNO への変換が行われる。内容によってはデータ例外(0C7)で異常終了する可能性がある。
5.2 荷主単位の処理
| 手順 |
内容 |
| 1 |
BREAKA ← SEQ_NICD(請求先番号13桁の2~8桁目=荷主コード) |
| 2 |
SYUAREA、CORAREA をクリア(= '')。該当がない場合はクリアした値のまま使われる |
| 3 |
MS_SW ← 'Y'。READ FILE(VKSYUPR) INTO(SYUAREA) KEY(BREAKA)。該当なしなら MS_SW='N' |
| 4 |
CO_SW ← 'Y'。READ FILE(VKCORPO) INTO(CORAREA) KEY(BREAKA)。該当なしなら CO_SW='N'(以後使わない) |
- 区切りは荷主コード7桁だけで判定する。同じ荷主の枝番違い(別の請求先)は、同じまとまりになり、マスターは1回だけ読む。
5.3 レコードごとの処理(CSV 明細行の出力)
- ICNT +1
- SDTADTID = 00(見出しデータ)の場合だけ、次を行う(ソースコメント「ヘッダー部のレコードのみ出力」)。
| 手順 |
内容 |
| a |
CSVAREA をクリア |
| b |
CSVSQMD ← SDTASYMD(締め日) |
| c |
CSVATTN ← CORPATTN(扱い店) |
| d |
CSVSQNI ← BREAKA(請求先顧客コード=荷主コード7桁) |
| e |
CSVSQHD ← CORPZAND(集約コード) |
| f |
取扱:MS_SW='N' → 'エコ'。MS_SW='Y' で UPRNASKB='6' → '不要'、それ以外 → '優先' |
| g |
CSVCM01~04 ← ','、WRITE FILE(CSVFILE) FROM(CSVAREA)、OCNT +1 |
- INFILE を1件読み、SEQNO ← SDTASQNO。
- 見出しデータは請求先(荷主+枝番)ごとに1件あるため、CSV は請求先ごとに1行になる。
- ★ 枝番は CSV に出力しない。同じ荷主の枝番違いがあると、内容が同じ行(締め日も同じなら完全に同じ行)が複数出る。
- ★ 顧客法人管理マスターに該当がない場合、CORAREA のクリア値がそのまま出る。扱い店(PIC 項目)は '0000'、集約コード(CHAR 項目)は空白7桁になると推定される。CO_SW で判定していないため、「マスターになし」を示す値にはならない。
- ★ 優先印刷マスターの読込みでキーエラー(該当なし以外)が起きた場合も MS_SW='N' となり、'エコ' と出力される。
5.4 終了処理
- 次の3行を DISPLAY する。
-
<<< INPUT COUNT = ∥ ICNT(INFILE の全件数)
-
<<< OUTPUT COUNT = ∥ OCNT(CSV の明細行数。見出し行は含まない)
-
<<< CHANGE COUNT = ∥ CCNT(常に 0)
- INFILE と CSVFILE を CLOSE する。
6. SYSPRINT のメッセージイメージ
7章の例(入力 18件のうち見出しデータ 5件)の場合:
<<< INPUT COUNT = 18
<<< OUTPUT COUNT = 5
<<< CHANGE COUNT = 0
- CSV ファイルの行数は OUTPUT COUNT+1(見出し行)になる。
- 件数の前の空白の数は、FIXED DEC(9) を文字に変換する規則によるもので、イメージは目安である。
7. CSV の出力イメージ
7.1 例の条件
| 入力の請求先 |
見出しデータ |
明細データ |
優先印刷マスター |
顧客法人管理マスター(ATTN/ZAND) |
| 1234567-00001 |
1件 |
3件 |
なし |
1002/7654321 |
| 1234567-00002 |
1件 |
2件 |
(同じ荷主のため読み直さない) |
(同左) |
| 2345678-00000 |
1件 |
4件 |
あり(UPRNASKB='1') |
1003/2345678 |
| 3456789-00000 |
1件 |
2件 |
あり(UPRNASKB='6') |
1305/3456789 |
| 4567890-00000 |
1件 |
2件 |
なし |
なし |
- 締め日(期間の至)はすべて 260930。入力は 18件(見出し 5件+明細 13件)。
7.2 CSV(PC に転送して文字コードを変換した後のイメージ)
締め日,扱い店,請求先顧客コード,集約コード,取扱
260930,1002,1234567,7654321,エコ
260930,1002,1234567,7654321,エコ
260930,1003,2345678,2345678,優先
260930,1305,3456789,3456789,不要
260930,0000,4567890, ,エコ
| 行 |
請求先 |
条件 |
CSV の行 |
| 1 |
- |
見出し行(入力に関係なく必ず出る) |
締め日,扱い店,請求先顧客コード,集約コード,取扱 |
| 2 |
1234567-00001 |
優先印刷マスターに無し・顧客法人管理マスターに有り |
260930,1002,1234567,7654321,エコ |
| 3 |
1234567-00002 |
同じ荷主の別の枝番(請求先) |
260930,1002,1234567,7654321,エコ |
| 4 |
2345678-00000 |
優先印刷マスターに有り(UPRNASKB='1')・顧客法人管理マスターに有り |
260930,1003,2345678,2345678,優先 |
| 5 |
3456789-00000 |
優先印刷マスターに有り(UPRNASKB='6':明細不要) |
260930,1305,3456789,3456789,不要 |
| 6 |
4567890-00000 |
どちらのマスターにも無し |
260930,0000,4567890, ,エコ |
- 2行目と3行目は、枝番が出力されないため同じ内容になる(5.3 の★)。
- 5行目(明細不要の顧客)は、KS60152P の請求書には出ないが、CSV には「不要」として出る。
- 6行目は、顧客法人管理マスターにないため、扱い店が 0000、集約コードが空白7桁になる(推定)。
7.3 ホスト上のイメージ(EBCDIC、SO/SI を < > で表示)
<締め日>,<扱い店>,<請求先顧客コード>,<集約コード>,<取扱>
260930,1002,1234567,7654321,<エコ>
260930,1002,1234567,7654321,<エコ>
260930,1003,2345678,2345678,<優先>
260930,1305,3456789,3456789,<不要>
260930,0000,4567890, ,<エコ>
- 漢字の項目(見出し行の各見出し、取扱の値)は、SO(X'0E')と SI(X'0F')で囲まれている。PC へ転送するときの変換で、SO/SI は削除されるか空白になる(転送ツールの設定による)。
- 空白になる設定の場合、見出し行は「
締め日 , 扱い店 ,…」のように各項目の前後に空白が入る。
7.4 レコードのダンプイメージ
見出し行(56バイト)
1 ----+----1----+----2----+----3----+----4----+----5----+-
文字 <締め日>,<扱い店>,<請求先顧客コード>,<集約コード>,<取扱>
ZONE 0484A460604648450604E4A4A4E4D48454C0604A4B48454C0604A460
NUMR EA04752FBEC94284FBEA89072EEAE3A383EFBE707D3A383EFBE66C9F
明細行(2行目、34バイト)
1 ----+----1----+----2----+----3----
文字 260930,1002,1234567,7654321,<エコ>
ZONE FFFFFF6FFFF6FFFFFFF6FFFFFFF6048480
NUMR 260930B1002B1234567B7654321BE343AF
- 文字コードは CCSID 930 を想定。カンマは X'6B'、数字は X'F0'~X'F9'。
8. メッセージ一覧
| No |
メッセージ |
出力先 |
契機 |
| 1 |
<<< INPUT COUNT = ∥ 件数 |
SYSPRINT(DISPLAY) |
終了時 |
| 2 |
<<< OUTPUT COUNT = ∥ 件数 |
同上 |
終了時 |
| 3 |
<<< CHANGE COUNT = ∥ 件数 |
同上 |
終了時(常に 0) |
9. 異常処理
| 事象 |
検出 |
処理 |
| INFILE の終了 |
ENDFILE 条件 |
EOF_SW='0'B でループを終える(正常) |
| 優先印刷マスターに該当なし・キーエラー |
KEY 条件 |
MS_SW='N'。取扱='エコ' で続行(メッセージなし) |
| 顧客法人管理マスターに該当なし・キーエラー |
KEY 条件 |
CO_SW='N'(使わない)。クリア値のまま CSV に出力(メッセージなし) |
| INFILE が0件 |
なし |
見出し行だけの CSV を出力。★ パック項目の変換でデータ例外の可能性(5.1) |
| マスターのデータセットが割り当てられていない |
UNDEFINEDFILE 条件 |
ON 定義なし → 異常終了 |
| その他 |
- |
ON ERROR の定義なし → PL/I 標準のエラー処理(異常終了) |
| リターンコード |
- |
設定なし(正常時は 0) |
10. 留意事項(★)
-
枝番違いの請求先が重複行になる:CSV に枝番がないため、同じ荷主の複数の請求先が区別できない行として出る。
-
顧客法人管理マスターに該当がない顧客:扱い店 0000(推定)、集約コード空白で出力される。CO_SW を設定しているが使っていない。
-
扱い店の項目が KS60152P と違う:CSV は CORPATTN、KS60152P の振分けは CORPZDTN を使う(2.4)。
-
明細不要の顧客も CSV に出る:取扱='不要' として出力する。KS60152P の請求書には出ない。
-
マスター2本の OPEN 文がない:暗黙オープンで動作するが、オープンエラーの検出・メッセージがない。
-
入力0件時のデータ例外の可能性(5.1)。
-
JCL に LRECL の指定がない(2.2)。
-
CHANGE COUNT は常に 0。TRY_SW、OUT_SW、II 等の未使用変数がある(KS60135P からの流用と推定)。
-
締め日は西暦下2桁の YYMMDD:CSV の利用側で年の解釈が必要。
-
SO/SI 付きの漢字:CSV に漢字(見出し・取扱)が含まれる。PC への転送設定によって、見出しや値に空白が混ざる。
11. 未使用項目
| 項目 |
内容 |
| INARB、INARC、INARD、INARX |
各レイアウトの重ね定義(共通位置の項目を INARA の名前で参照) |
| SQALLHED の SDTASQNO、SDTADTID、SDTASYMD 以外 |
参照なし |
| SSYUPRNT の UPRNASKB 以外 |
参照なし |
| CORPOMAN の CORPATTN、CORPZAND 以外 |
参照なし |
| CO_SW |
設定のみ |
| TRY_SW、OUT_SW、II、SEQ_ZERO、SEQ_SQNO |
宣言のみ |
| CCNT |
加算なし(表示のみ) |
付録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桁目)で区切り判定、CSV の請求先顧客コード |
| 02 |
SDTASPA1 |
CHAR(11) |
|
22 |
11 |
|
| 02 |
SDTADTID |
PIC'(2)9' |
|
33 |
2 |
データID:00 のレコードだけ CSV に出力 |
| 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 |
CSV の締め日 |
| 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 |
|
| 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 |
|
| 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メイト等、データID 45・55・65、90バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
SDTDSEHA |
PIC'(4)9' |
|
1 |
4 |
|
| 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 |
|
| 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 |
|
付録F SSYUPRNT(優先印刷マスター、40バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
UPRNNICD |
PIC'(7)9' |
|
1 |
7 |
キー(荷主コード) |
| 02 |
UPRNKUBN |
PIC'(1)9' |
|
8 |
1 |
|
| 02 |
UPRNTHKB |
CHAR(1) |
|
9 |
1 |
|
| 02 |
UPRNSPAC |
CHAR(1) |
|
10 |
1 |
|
| 02 |
UPRNAIXK |
(集団項目) |
|
11 |
23 |
|
| 03 |
UPRNATEN |
PIC'(4)9' |
|
11 |
4 |
|
| 03 |
UPRNAKBK |
PIC'(1)9' |
|
15 |
1 |
|
| 03 |
UPRNAKUB |
PIC'(1)9' |
|
16 |
1 |
|
| 03 |
UPRNASKB |
CHAR(1) |
|
17 |
1 |
'6' なら CSV の取扱=不要 |
| 03 |
UPRNASCN |
CHAR(9) |
|
18 |
9 |
|
| 03 |
UPRNANIC |
PIC'(7)9' |
|
27 |
7 |
|
| 02 |
UPRNSPA2 |
CHAR(7) |
|
34 |
7 |
|
付録G CORPOMAN(顧客法人管理マスター、120バイト)
| LV |
項目名 |
属性 |
繰返し |
位置 |
長さ |
本PGでの使用 |
| 02 |
CORPVKEY |
(集団項目) |
|
1 |
7 |
|
| 03 |
CORPNICD |
CHAR(7) |
|
1 |
7 |
キー(荷主コード) |
| 02 |
CORPAIX1 |
(集団項目) |
|
8 |
7 |
|
| 03 |
CORPTKCD |
CHAR(7) |
|
8 |
7 |
|
| 02 |
CORPAIX2 |
(集団項目) |
|
15 |
7 |
|
| 03 |
CORPZAND |
CHAR(7) |
|
15 |
7 |
CSV の集約コード |
| 02 |
CORPATTN |
PIC'(4)9' |
|
22 |
4 |
CSV の扱い店 |
| 02 |
CORPTKTN |
PIC'(4)9' |
|
26 |
4 |
|
| 02 |
CORPZDTN |
PIC'(4)9' |
|
30 |
4 |
|
| 02 |
CORPJGKB |
CHAR(1) |
|
34 |
1 |
|
| 02 |
CORPTKJG |
CHAR(1) |
|
35 |
1 |
|
| 02 |
CORPDLKB |
CHAR(1) |
|
36 |
1 |
|
| 02 |
CORPNINM |
CHAR(42) |
|
37 |
42 |
|
| 02 |
CORPCOKB |
CHAR(1) |
|
79 |
1 |
|
| 02 |
CORPDSTK |
CHAR(1) |
|
80 |
1 |
|
| 02 |
CORPWARI |
FIXED DEC(3) |
|
81 |
2 |
|
| 02 |
CORPNMKB |
CHAR(1) |
|
83 |
1 |
|
| 02 |
CORPSPAC |
CHAR(14) |
|
84 |
14 |
|
| 02 |
CORPPUDL |
CHAR(1) |
|
98 |
1 |
|
| 02 |
CORPPUMD |
CHAR(6) |
|
99 |
6 |
|
| 02 |
CORPJYCD |
CHAR(6) |
|
105 |
6 |
|
| 02 |
CORPTRMD |
CHAR(4) |
|
111 |
4 |
|
| 02 |
CORPUYMD |
CHAR(6) |
|
115 |
6 |
|
- CORPOMAN の項目名の意味(ATTN=扱い店、ZAND=集約代表 等)は、CSV の見出しとソースのコメントからの推定である。