# 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 機能

ソース先頭のコメント：「請求明細全送状データを読み、訂正分を除外して郵送用データを作成する。」

1. **TRYFILE**（対象店所の一覧）を読み、対象店所コードの表を作る。
2. **ALLSQDT**（請求明細の全データ）を先頭から読み、次の両方を満たすレコードだけを **SQALLOK** に書き出す。
   - 荷主の先頭レコードの配信店が、対象店所の表にある。
   - データIDが **31～33（訂正）ではない**。
3. レコードの内容は一切変えない（読んだレコードをそのまま書く）。
4. 終了時に、入力件数・出力件数を 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 前処理（対象店所の表の作成）

1. `TBLTNCD = ''` で表をクリアし、TRYCNT を 0 にする。
2. TRYFILE を1件ずつ読み、終わるまで次を繰り返す。
   - TRYCNT ＋1
   - TBLTNCD(TRYCNT) ← TRYTNCD（読んだレコードの先頭4桁）
3. `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 終了処理

1. 次の3行を DISPLAY する（6章）。
   - `<<<  INPUT COUNT = ` ∥ ICNT
   - `<<< OUTPUT COUNT = ` ∥ OCNT
   - `<<< CHANGE COUNT = ` ∥ CCNT
2. 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. 留意事項（★）

1. **TRYFILE の件数上限**：100件を超えるとチェックなしで表の範囲を超える。
2. **荷主の区切りが荷主コード7桁だけ**：配信店が変わっても荷主コードが同じなら区切られず、前の配信店の判定が引き継がれる（7.4）。
3. **訂正除外による金額の不一致の可能性**：明細の訂正（31～33）は除外するが、見出しデータ（00）の鑑の金額は変えない。後続の請求書で鑑の請求額と明細合計がずれる可能性がある。KS60144P（No.12）の総合計は明細から集計するため、明細側の合計は訂正を含まない。
4. **データID 32**：31～33 の範囲で除外しているが、KS60144P では 32 の扱いがない。範囲指定のため、将来 32 を別用途に使うと意図せず除外される。
5. **CHANGE COUNT は常に 0**：CCNT は宣言・表示のみ。
6. **TRY TEN CODE の表示は1件目だけ**：対象店所の件数や2件目以降は確認できない。
7. **ND53500P と同じパラメータメンバ**：SEQTRYTN は JOB DAIMNT3J の ND53500P でも使われている。メンバを変更すると両方に影響する。
8. **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 |  |
