# 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）。内容によってはデータ例外で異常終了し、見出し行も出ない可能性がある。
