レビュー指摘 #11952 » KS60630_CSV出力イメージ.md
KS60630 CSV 出力イメージ(請求書顧客データ)
| 項目 | 内容 |
|---|---|
| ファイル名 | SEAD.DAISEQ4J.CSV(DD 名 CSVFILE、DASD11) |
| 作成プログラム | KS60630P(DAISEQ4J のステップ KS60630P) |
| レコード形式 | VB(BLKSIZE=12000、JCL に LRECL の指定なし) |
| レコード長 | 見出し行 56 バイト(HEDAREA)/明細行 34 バイト(CSVAREA)。RDW の 4 バイトは含まない |
| 区切り | カンマ(,)。引用符(")なし。最後の列の後にカンマなし。5 列 |
| 文字コード | 現行は EBCDIC(日本語)。漢字は SO(X'0E')/SI(X'0F')付き |
| 行の構成 | 1 行目に見出し行(必ず 1 行)、2 行目以降に明細行(入力の見出しデータ 1 件につき 1 行、入力の順) |
1. 項目レイアウト
| 列 | 見出し | 見出し行の位置 | 明細行の位置 | 明細の長さ | 型・書式 | 編集元(src 行) | 値の決め方 |
|---|---|---|---|---|---|---|---|
| 1 | 締め日 | 1~8(8) | 1~6 | 6 | 数字 6 桁(YYMMDD)、ゼロ埋め | SDTASYMD(L125) | 入力の見出しデータの締め日(SQALLHED の SDTASYMD、PIC'(6)9') |
| - | , |
9 | 7 | 1 | 固定 | L137 | |
| 2 | 扱い店 | 10~17(8) | 8~11 | 4 | 数字 4 桁、ゼロ埋め | CORPATTN(L126) | 顧客法人管理マスター(VKCORPO、キー=荷主コード)の扱い店。マスターに無いときは 0000 |
| - | , |
18 | 12 | 1 | 固定 | L137 | |
| 3 | 請求先顧客コード | 19~36(18) | 13~19 | 7 | 数字 7 桁、ゼロ埋め | BREAKA(L127) | 請求先番号 13 桁の 2~8 桁目(荷主コード)。枝番 5 桁は出ない |
| - | , |
37 | 20 | 1 | 固定 | L137 | |
| 4 | 集約コード | 38~49(12) | 21~27 | 7 | 文字 7 桁、空白埋め(マスターの値のまま) | CORPZAND(L128) | 顧客法人管理マスターの集約代表コード。マスターに無いときは空白 7 桁 |
| - | , |
50 | 28 | 1 | 固定 | L137 | |
| 5 | 取扱 | 51~56(6) | 29~34 | 6 | 漢字 2 文字(SO+4 バイト+SI) | L129~L136 | 下表 |
- 見出し行は HEDAREA の初期値(L50~L54)をそのまま書く(L110)。見出しはすべて漢字で、各見出しの前後に SO/SI がある(( ) 内はバイト数)。
- 明細行の各項目は固定長のため、値が短くても空白が詰められずに残る。
取扱の値(L129~L136)
| 優先印刷マスター(VKSYUPR、キー=荷主コード) | UPRNASKB | 取扱 |
|---|---|---|
| 無い(KEY 条件。キーエラーも同じ) | - | エコ |
| 有る | '6' | 不要 |
| 有る | '6' 以外 | 優先 |
2. 出力イメージ(架空データ)
2.1 例の入力条件
| 入力の請求先(荷主-枝番) | 入力レコード(ID) | 優先印刷マスター | 顧客法人管理マスター(扱い店/集約コード) | 出力 |
|---|---|---|---|---|
| 1000010-00001 | 00 ×1、01 ×2 | 無い | 0101/9000001 | 明細行 1(エコ) |
| 1000010-00002 | 00 ×1、01 ×1 | (同じ荷主のため読み直さない) | (同左) | 明細行 2(行 1 と同じ内容) |
| 2000020-00000 | 00 ×1、01 ×3 | 有る(UPRNASKB='1') | 0202/9000002 | 明細行 3(優先) |
| 3000030-00000 | 00 ×1、01 ×2 | 有る(UPRNASKB='6') | 0303/3000030 | 明細行 4(不要) |
| 4000040-00000 | 00 ×1、22 ×1 | 無い | 無い | 明細行 5(0000/空白/エコ) |
- 締め日(SDTASYMD)はすべて 261031(2026 年 10 月 31 日)。
- 入力 14 件(見出しデータ ID 00 が 5 件、明細データ ID≠00 が 9 件)。ID≠00 のレコードは出力されない(L121)。
- 出力は見出し行 1 行+明細行 5 行の計 6 行(SYSPRINT の OUTPUT COUNT は 5)。
2.2 PC に転送して文字コードを変換した後のイメージ
SO/SI を削除する転送設定の場合。
締め日,扱い店,請求先顧客コード,集約コード,取扱
261031,0101,1000010,9000001,エコ
261031,0101,1000010,9000001,エコ
261031,0202,2000020,9000002,優先
261031,0303,3000030,3000030,不要
261031,0000,4000040, ,エコ
SO/SI を空白に変換する転送設定の場合(見出し行と取扱に空白が入る)。
締め日 , 扱い店 , 請求先顧客コード , 集約コード , 取扱
261031,0101,1000010,9000001, エコ
261031,0101,1000010,9000001, エコ
261031,0202,2000020,9000002, 優先
261031,0303,3000030,3000030, 不要
261031,0000,4000040, , エコ
2.3 ホスト上のイメージ(EBCDIC)
< = SO(X'0E')、> = SI(X'0F')、_ = 空白(X'40')。各 1 バイト。漢字は 1 文字 2 バイト(表示幅 2 桁)。
見出し行(56 バイト)
1 2 3 4 5
----+----0----+----0----+----0----+----0----+----0----+-
<締め日>,<扱い店>,<請求先顧客コード>,<集約コード>,<取扱>
明細行(各 34 バイト)
1 2 3
----+----0----+----0----+----0----
261031,0101,1000010,9000001,<エコ>
261031,0101,1000010,9000001,<エコ>
261031,0202,2000020,9000002,<優先>
261031,0303,3000030,3000030,<不要>
261031,0000,4000040,_______,<エコ>
- カンマは X'6B'、数字は X'F0'~X'F9'。
- VB のため、見出し行と明細行の長さは異なる(後ろに空白は付かない)。
2.4 入力 0 件のとき
見出し行だけの 1 行になる(見出し行は入力の有無に関係なく書く。L110)。
PC 変換後:
締め日,扱い店,請求先顧客コード,集約コード,取扱
ホスト上:
1 2 3 4 5
----+----0----+----0----+----0----+----0----+----0----+-
<締め日>,<扱い店>,<請求先顧客コード>,<集約コード>,<取扱>
3. 注記
- 同じ内容の行が出る:枝番を出力しないため、同じ荷主の枝番違いの請求先は区別できない行になる(例の明細行 1・2)。締め日も同じなら完全に同じ行。
- マスターに無いとき:顧客法人管理マスターに無い荷主は、扱い店 0000、集約コード空白 7 桁になる(読込み域をクリアした値のまま。CO_SW は判定に使っていない)。空白は引用符なしでそのまま出る。
- 優先印刷マスターのキーエラー:該当なし以外のキーエラーでも取扱は「エコ」になる。
- 「不要」も出る:UPRNASKB='6'(明細不要)の顧客も、取扱=不要として CSV に出る。
- 締め日は YYMMDD:西暦下 2 桁。年の解釈は利用側で必要。
- SO/SI:見出しと取扱の漢字は SO/SI 付き。PC への転送設定によって、削除されるか空白になる(2.2)。
- 行の順番:入力(TEMP.DAISEQ4J.WORK062S)の順のまま。並べ替えはしない。
- 入力 0 件のとき:見出し行を書く前に、入力域の請求先番号(パック 10 進)を変換する(L109)。内容によってはデータ例外で異常終了し、見出し行も出ない可能性がある。