# 機能仕様書（現行）　BK10030　回送到着入力

| 項目 | 内容 |
|---|---|
| 機能ID | BK10030 |
| 機能名 | 回送到着入力 |
| システムID | BK |
| サブシステムID | BK0070（回送・域内便到着入力） |
| 画面ID（マップID） | MPBK150（回送・域内便到着入力） |
| 構成プログラム | BK11500P（BK15）、BK21500P（センター B15K）、BK11600P（BK16）、BK11700P（BK17） |
| 位置づけ | 現行プログラム4本の動作を、1つの画面機能としてまとめた現行仕様書 |
| 参考資料 | ・現行ソース BK11500P.pl1、BK21500P.pl1、BK11600P.pl1、BK11700P.pl1<br/>・画面設計書「BK0070_回送・域内便到着入力.xlsx」（Ver.1.2023.1016.3）：資産一覧、MPBK150 の項目名、レコードフォーマット |
| 個別仕様書 | [BK11500P_仕様書.md](BK11500P_仕様書.md)、[BK21500P_仕様書.md](BK21500P_仕様書.md)、[BK11600P_仕様書.md](BK11600P_仕様書.md)、[BK11700P_仕様書.md](BK11700P_仕様書.md) |

項目・ファイル・レコードの日本語名称は、画面設計書（BK0070）の MPBK150 シートとレコードフォーマットに合わせている。

---

## 1. 概要

### 1.1 機能概要

発送済みの回送便が到着したときに、到着情報を入力する画面機能。

1. 回送入力票ＮＯを入力し、発送時の内容（発店・発送日時・入力区分・社番・乗務員・指示キロメートル）を照会する。ＤＤＰ（店所側）の回送マスターになければ、センターの回送マスターに照会する。
2. 到着店コード・到着日時・指示キロメートルを入力し、チェックする。
3. 確認画面で実行キーを押すと、ＤＤＰ回送マスターに到着情報を書き込み、集信データ（発送鑑データ・到着鑑データ）を出力する。
4. 登録後は空の画面に戻り、次の回送入力票ＮＯを入力できる。

### 1.2 処理段階

画面 MPBK150 の状態を、次の3つの段階に分けて説明する。

| 段階 | 画面の状態 | 担当プログラム | 待機トランザクション |
|---|---|---|---|
| ① 回送入力票ＮＯの照会 | 回送入力票ＮＯだけ入力可 | BK11500P（センター照会は BK21500P） | BK15 |
| ② 到着情報の入力・検証 | 到着店コード・到着年月日時分・指示キロメートルが入力可 | BK11600P | BK16 |
| ③ 確認・登録 | 全項目が入力不可（確認画面） | BK11700P | BK17 |

```mermaid
stateDiagram-v2
    state "① 回送入力票NOの照会（BK15）" as S1
    state "② 到着情報の入力・検証（BK16）" as S2
    state "③ 確認・登録（BK17）" as S3
    [*] --> S1 : サブメニューから起動
    S1 --> S1 : 実行［エラー・取消済み・入力区分エラー・回送未入力］
    S1 --> S2 : 実行［照会OK］
    S2 --> S2 : 実行［エラー］
    S2 --> S3 : 実行［OK → 確認画面］
    S3 --> S1 : 実行［登録 → 空の画面］
    S3 --> [*] : PF3 終了／PF4 戻り［登録してから戻る］
    S2 --> S1 : PF2 取消
    S3 --> S1 : PF2 取消［登録しない］
    S1 --> [*] : PF3／PF4／CLEAR
    S2 --> [*] : PF3／PF4／CLEAR
```

### 1.3 システム構成

画面設計書の資産一覧に基づく。

| 環境 | プログラム | 画面 | 使用ファイル（R：読込、W：書込） | モジュール |
|---|---|---|---|---|
| SV | BK11500P | MPBK150、MPDM010、ELEPHAN | VPTENMS（R）、VPJYUGY（R）、VPKAISO（R）、センターとの受渡し DPCEB02K・CEDPB15K | LSO0020 |
| CIC1 | BK21500P | ― | VKKAISO（R） | ― |
| SV | BK11600P | MPBK150、MPDM010、ELEPHAN | VPTENMS（R） | LSO0020、LSO0040 |
| SV | BK11700P | MPBK150、MPDM010、ELEPHAN | VPKAISO（R/W）、VPTENMS（R）、VPMORTR（R）、TD（SYUS）SSS21・SSS13（W） | ― |

```mermaid
flowchart LR
    MENU[サブメニュー] --> P1[BK11500P<br/>BK15<br/>① 照会]
    P1 -- 読込 --> DDP[(VPKAISO<br/>ＤＤＰ　回送マスター)]
    P1 -- APPC 照会 --> P0[BK21500P<br/>CIC1 B15K]
    P0 -- 読込 --> CEN[(VKKAISO<br/>回送マスター（センター）)]
    P1 -- 書込 --> TS[(TSキュー<br/>端末ID＋BK15)]
    TS --> P2[BK11600P<br/>BK16<br/>② 検証]
    P2 --> TS
    TS --> P3[BK11700P<br/>BK17<br/>③ 登録]
    P3 -- 更新 --> DDP
    P3 -- 書込 --> TD[(TDキュー SYUS<br/>発送鑑・到着鑑)]
```

---

## 2. 画面仕様（MPBK150）

### 2.1 画面レイアウト（24行×80桁）

```
行
01  MPBK150        ┃ 回 送 ・ 域 内 便 到 着 入 力 ┃                  [システム年月日]
02                                                                   [システム時分秒]
03      回送入力票ＮＯ  ： [回送入力票NO]
04      発 店 コ ー ド  ： [発店][発店所名            ]
05      発 送 年月日    ： [年]年 [月]月 [日]日 [時]時 [分]分
06      入 力 区 分     ： [区]（１店所間回送　３域内）
07
08      到着店 コード   ： [到着店][到着店所名          ]
09      到 着 年月日    ： [年]年 [月]月 [日]日 [時]時 [分]分
10      社 番（自社）   ： [社番 ]
11      乗務員コード    ： [コード１][コード２]  [乗務員名１    ] [乗務員名２    ]
12
13      ＊＊ 指 示 粁 ＊＊＊
14      指示粁・出発時  ： [出発時 ]
15        〃 ・到着時   ： [到着時 ]         走行粁： [走行粁] km
   …
22  実行：継続　２：取消　３：終了　４：戻り
23  [エラーメッセージ（70桁）                                        ] [エラーコード]
```

### 2.2 画面項目一覧

制御の記号：**入**＝入力可、**表**＝表示のみ（入力不可）

| No | 項目ID | 項目名 | 属性・桁 | ① | ② | ③ | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | BK15011 | システム年月日 | 文字 8 | 表 | 表 | 表 | `YY/MM/DD` |
| 2 | BK15021 | システム時分秒 | 文字 8 | 表 | 表 | 表 | `HH:MM:SS` |
| 3 | BK15031 | 回送入力票NO | 数字 8 | **入**（必須） | 表 | 表 | |
| 4 | BK15041 | 発店コード | 数字 4 | 表 | 表 | 表 | 回送マスターから表示 |
| 5 | BK15042 | 発店所名 | 文字 20 | 表 | 表 | 表 | 店所マスターの店所略名（漢字） |
| 6～10 | BK15051～BK15055 | 発送年・発送月・発送日・発送時・発送分 | 数字 2×5 | 表 | 表 | 表 | 回送マスターから表示 |
| 11 | BK15061 | 入力区分 | 数字 1 | 表 | 表 | 表 | 1：店所間回送、3：域内 |
| 12 | BK15081 | 到着店コード | 数字 4 | 表 | **入** | 表 | |
| 13 | BK15082 | 到着店所名 | 文字 20 | 表 | 表 | 表 | 店所マスターの店所略名（漢字） |
| 14～18 | BK15091～BK15095 | 到着年・到着月・到着日・到着時・到着分 | 数字 2×5 | 表 | **入** | 表 | 未登録なら年月日に処理日を表示 |
| 19 | BK15121 | 社番（自社） | 数字 5 | 表 | 表 | 表 | |
| 20・21 | BK15131・BK15132 | 乗務員コード１・２ | 数字 6 | 表 | 表 | 表 | |
| 22・23 | BK15133・BK15134 | 乗務員名１・２ | 文字 14 | 表 | 表 | 表 | 従業員マスターの従業員氏名（漢字） |
| 24 | BK15141 | 指示キロメートル・出発時 | 数字 7 | 表 | **入** | 表 | |
| 25 | BK15151 | 指示キロメートル・到着時 | 数字 7 | 表 | **入** | 表 | |
| 26 | BK15152 | 走行キロメートル | 数字 3 | 表 | 表 | 表 | ②で計算して表示 |
| 27 | BK15231 | ＰＦキー説明 | 文字 | 表 | 表 | 表 | 固定表示 |
| 28 | BK15241 | エラーメッセージ | 文字 70 | 表 | 表 | 表 | 7章 参照 |
| 29 | BK15242 | エラーコード | 文字 5 | 表 | 表 | 表 | 7章 参照 |

①で回送入力票NOを入力するまでは、他の項目は空。照会OK後に回送マスターの内容が表示され、②で入力対象の項目だけが入力可になる。

### 2.3 ファンクションキー

| キー | ① 照会 | ② 検証 | ③ 確認・登録 |
|---|---|---|---|
| 実行（Enter） | 照会 | チェックし、OKなら確認画面 | **登録**し、空の画面で①へ |
| PF2：取消 | 空の画面で①へ | 空の画面で①へ | **登録せず**、空の画面で①へ |
| PF3：終了 | 一つ前の画面へ | 一つ前の画面へ | **登録してから**一つ前の画面へ |
| PF4：戻り | メインメニューへ | メインメニューへ | **登録してから**メインメニューへ |
| CLEAR | 終了画面（ELEPHAN）で終了 | 同左 | 同左（登録しない） |
| 上記以外 | 再表示 | 再表示 | 再表示 |

### 2.4 表示属性

| 状態 | 入力可否 | カーソル |
|---|---|---|
| チェックOK・確定した項目 | 入力不可 | ― |
| チェックエラーの項目 | 入力可・高輝度 | 置く |
| ①の照会OK後の入力対象項目（到着店コード・到着年月日時分・指示キロメートル） | 入力可（数字のみ） | 到着店コード |

色は設定しない（画面定義の初期値のまま）。

---

## 3. インターフェース

### 3.1 通信領域（COMMAREA）

| 項目ID | 項目名 | 用途 |
|---|---|---|
| CRT_BACK_KOSU／CRT_BACK_DATA(5) | 戻り先画面のスタック | PF3・PF4 の戻り先。①の照会OK時に本画面を積む |
| TSQ_ID・TSQ_LENGTH | TSキュー名・長さ | ①で「端末ID＋BK15」・280 を設定し、②③でもそのまま使う |
| COMM_TEN_CODE | 店所コード | 集信データの入力店所コード |
| COMM_TEN_ADRCD | 店所の所在地コード | 発送鑑データの着地コード |
| COMM_RPOC_YMD | 処理日（YYMMDD） | 到着年月日の初期値 |
| COMM_ITEM_DDP | 照会元（ＤＤＰ区分） | '1'：ＤＤＰ回送マスターから照会、'2'：センターから照会。③でＤＤＰ回送マスターを更新するかどうかに使う |

### 3.2 段階間の受渡しデータ（TSキュー：端末ID＋'BK15'、280バイト）

| 内容 | ① | ② | ③ |
|---|---|---|---|
| 項目ごとのチェック結果・入力状態（FLG・FLGX） | 回送入力票NO（1番）を設定。到着年月日が未登録なら②の必須項目を設定 | 到着店～指示キロメートル（2～9番）を設定 | 使わない |
| 画面項目の値（回送入力票NO～走行キロメートル） | 回送マスターの内容を設定 | 到着情報を設定 | 参照（登録に使う） |
| 運行車区分（BK15UNKB） | 13 を設定 | ― | ― |
| 回送粁程（BK15KIKM、5桁） | ― | 走行キロメートルを設定 | 回送マスター・集信データに使う |
| 訂正区分（WK_TEIKBN） | '0' で初期化 | 入力があれば '1' | 使わない |

②で必須になる項目：

| ケース | 必須になる項目 |
|---|---|
| 回送マスターに回送着年月日がない | 到着時・到着分・指示キロメートル・出発時・到着時 |
| 回送マスターに回送着年月日がある | なし |

### 3.3 使用ファイル

| データセット | 名称 | キー | 使用段階 | 入出力 |
|---|---|---|---|---|
| VPKAISO | ＤＤＰ　回送マスター（DDPKAISO） | 回送入力票ＮＯ | ①（読込）、③（更新） | 読込・更新 |
| VKKAISO | 回送マスター（センター、KAISOHBN） | 回送入力票ＮＯ | ①（センター照会） | 読込 |
| VPTENMS | ＤＤＰ　店所マスター（DDPTENMS） | 店所コード | ①②③ | 読込 |
| VPJYUGY | ＤＤＰ　従業員マスター（DDPJYUGY） | 従業員コード | ① | 読込 |
| VPMORTR | ＤＤＰ　車両マスター（DDPMORTR） | 社番 | ③ | 読込 |

### 3.4 出力：集信データ（TDキュー SYUS、384バイト）

③で、回送票1件につき2レコードを出力する。

#### 集信Ｒ２　発送鑑データ（SSS21、レコードＩＤ 230）

| 項目ID | 項目名 | 設定値 |
|---|---|---|
| SS21TNCD | 入力店所コード | 店所コード（COMM_TEN_CODE） |
| SS21KEKB | 継続区分 | 0 |
| SS21REID | レコードＩＤ | 230 |
| SS21LENG | ＬＥＮＧ | 384 |
| SS21ENYY～SS21ENSS | 入力　年・月・日・時・分・秒 | 出力時点のシステム日時 |
| SS21SINO | 指令書ＮＯ | 0 |
| SS21SONO | 送付書ＮＯ | 回送入力票ＮＯ |
| SS21TRIK | 取消区分（ソースのコメントでは「訂正区分」） | 1 |
| SS21HATN | 出発　店所コード | 発店コード |
| SS21STYY～SS21STMI | 出発　年・月・日・時・分 | 発送年・月・日・時・分 |
| SS21TYYY～SS21TYDD | 到着予定年月日 | 0 |
| SS21HACH | 発地コード | 発店の店所所在地コードの先頭5桁。店所マスターになければ 0 |
| SS21ORTN | 卸店コード | 到着店コード |
| SS21CCHI | 着地コード | 店所の所在地コード（COMM_TEN_ADRCD）の先頭5桁 |
| SS21ATTN | 扱い店所コード | 到着店コード |
| SS21USKM | 輸送粁程 | 回送粁程（走行キロメートル） |
| SS21SHKB | 運行車区分 | 13 |
| SS21SBAN | 積載社番（車号） | 社番 |
| SS21HTON | 標屯 | 車両マスターの最大積載量 ÷ 1000。車両マスターになければ空 |
| SS21OWKB | ｏｗ区分 | 乗務員コード２ ＝ 0 なら 1（ワンマン）、それ以外は 2（ダブル） |
| SS21YOCD・SS21KEIT・SS21YORY | 傭車会社コード・形態・定額傭車料 | 0 |
| SS21GIKN・SS21TUOR・SS21HOKN | 直集軒数・積区分・一車保険料 | 0 |
| SS21FUGO・SS21ROGA | 符合・増減重量 | '0'・0 |
| SS21KNKB | 入力区分 | 入力区分 |
| SS21KOKU・SS21KORO | 航空会社区分・航空航路区分 | 0 |
| SS21STAT・SS21KCHA | 指示粁　出発時・帰着時 | 指示キロメートル・出発時・到着時 |
| SS21CODA・SS21CODB | 従業員コードＡ・Ｂ | 乗務員コード１・２ |
| SS21TCDT | 到着年月日時分 | 0 |
| SS21ORNO(1)(2)・SS21FKNO(1)(2) | 行き分指令書ＮＯ・帰り分指令書ＮＯ | 0 |
| SS21SPAC | スペース | 空白 |

#### 集信Ｒ１・２　到着鑑データ（SSS13、レコードＩＤ 130）

| 項目ID | 項目名 | 設定値 |
|---|---|---|
| SSS3TNCD | 入力店所コード | 店所コード（COMM_TEN_CODE） |
| SSS3KEKB | 継続区分 | 0 |
| SSS3REID | レコードＩＤ | 130 |
| SSS3LENG | ＬＥＮＧ | 384 |
| SSS3ENYY～SSS3ENSS | 入力　年・月・日・時・分・秒 | 出力時点のシステム日時 |
| SSS3CHTN | 到着店所コード | 到着店コード |
| SSS3KNSU | データ件数 | 1 |
| SSS3SINO | 指令書ＮＯ | 0 |
| SSS3SONO | 送付書ＮＯ | 回送入力票ＮＯ |
| SSS3CHYY～SSS3CHMI | 到着　年・月・日・時・分 | 到着年・月・日・時・分 |
| SSS3ORKB | 卸区分 | 0 |
| SSS3GHKN | 直配件数 | 0 |

### 3.5 使用モジュール・連携プログラム

| 名称 | 種別 | 使用段階 | 用途 |
|---|---|---|---|
| LSO0020 | チェックディジット検証モジュール | ① | 回送入力票ＮＯのチェックディジット検証（モジュラス10・7DR） |
| LSO0040 | 年月日 → 通日変換モジュール | ② | 発送日と到着日の日数の差を求める |
| BK21500P（CIC1 の B15K） | センター照会プログラム | ① | センターの回送マスターの照会（APPC 会話） |

---

## 4. 処理の全体フロー

```mermaid
flowchart TD
    S([実行キー]) --> ST{待機中の<br/>トランザクション}
    ST -- BK15 --> A1[① 回送入力票NOのチェック]
    A1 -- エラー --> W1([BK15 で待機])
    A1 -- OK --> A2{ＤＤＰ回送マスター}
    A2 -- あり --> A4{取消済み・<br/>入力区分}
    A2 -- なし --> A3[センター照会<br/>BK21500P]
    A3 --> A4
    A4 -- エラー --> W1
    A4 -- OK --> W2([BK16 で待機<br/>到着情報を入力可])
    ST -- BK16 --> B1[② 到着情報のチェック<br/>項目間チェック]
    B1 -- エラー --> W2
    B1 -- OK --> W3([BK17 で待機<br/>確認画面])
    ST -- BK17 --> C1[③ ＤＤＰ回送マスター更新<br/>集信データ出力]
    C1 --> W1b([空の画面<br/>BK15 で待機])
```

各段階の実行キーでの処理は、次の共通の流れになる。

1. 画面の入力を受け取る。
2. TSキューから前回の状態を読み込み、キューを削除する。
3. チェック・登録などの処理を行う。
4. エラーなら状態をTSキューに保存し、エラーメッセージを表示して同じ段階で待機する。OKなら状態を保存して次の段階で待機する。

---

## 5. 段階別の処理仕様

### 5.1 ① 回送入力票ＮＯの照会（BK11500P、BK21500P）

詳細は [BK11500P_仕様書.md](BK11500P_仕様書.md)・[BK21500P_仕様書.md](BK21500P_仕様書.md) を参照。

#### 5.1.1 回送入力票ＮＯのチェック

| No | チェック | エラー条件 |
|---|---|---|
| 1 | 未入力 | 未入力 |
| 2 | 形式・桁数 | 数字以外を含む、または8桁で入力されていない |
| 3 | 値 | 0 |
| 4 | 番号の範囲 | 10000000～89999999（先頭が 1～8） |
| 5 | チェックディジット | 先頭 0 はモジュラス10、先頭 9 は 7DR で検証してエラー |

#### 5.1.2 回送マスターの照会

1. ＤＤＰ回送マスター（VPKAISO）を読む。
   - ある場合：照会元を '1' とし、内容を画面に表示する。取消区分 ＝ 9 なら「取消済み」、回送入力区分が 1・3 以外なら「入力区分エラー」。
   - ない場合（読込みエラーを含む）：照会元を '2' とし、センターに照会する。
2. センター照会（BK21500P）の結果：

| センターの結果 | 画面の表示 |
|---|---|
| 正常（入力区分 1・3、削除区分が 9 以外） | 照会内容を表示 |
| 該当なし | ERR 3：回送未入力です。 |
| 読込みエラー | ERR 3：センターの回送マスターの　Ｉ／Ｏエラー |
| 入力区分が 1・3 以外 | ERR 5：この回送票の入力区分がエラーです。再入力して下さい |
| 削除区分 ＝ 9 | ERR 9：この回送票は取消済みです。　　再入力して下さい |
| センター側の CICS エラー | ERR ?：？？？？？？？？？？？？ |
| 通信エラー | 照会不可能！！…（[BK11500P_仕様書.md](BK11500P_仕様書.md) 4.5.1） |

3. 画面に表示する内容：

| 画面項目 | 設定値 |
|---|---|
| 発店所名・到着店所名 | 店所マスターの店所略名（漢字）。なければ空白 |
| 到着年～到着分 | 回送マスターの回送着年月日・回送着時分。回送着年月日がなければ年月日に処理日をセットし、時分は空 |
| 乗務員名１・２ | 従業員マスターの従業員氏名（漢字）。なければ、コード 0 は空白、111111 は「ライナー傭車」、999999 は「ダミーコード」、それ以外は「？？？？」 |
| 指示キロメートル・走行キロメートル | 出発時・帰着時がどちらも 0 なら表示しない |

4. 照会OKなら、到着店コード・到着年月日時分・指示キロメートル（出発時・到着時）を入力可にしてカーソルを到着店コードに置き、メッセージ「到着店，到着日時，指示粁を入力してください。」（OK DD）を表示する。戻り先画面のスタックに本画面を積み、BK16 で待機する。

### 5.2 ② 到着情報の入力・検証（BK11600P）

詳細は [BK11600P_仕様書.md](BK11600P_仕様書.md) を参照。

#### 5.2.1 項目チェック

| 項目 | チェック内容 |
|---|---|
| 到着店コード | 数字で4桁。店所マスターに存在し、店所区分が '1' または '4' |
| 到着年 | 数字で、95～99 または 00～50 |
| 到着月 | 数字で、1～12 |
| 到着日 | 数字で、1～31 |
| 到着時 | 数字で、0～23 |
| 到着分 | 数字で、0～59 |
| 指示キロメートル・出発時・到着時 | 数字であること |

画面に表示済みの値を書き換えなかった項目は、項目チェックを行わない（①で設定した値をそのまま使う）。

#### 5.2.2 項目間チェック

| No | チェック | エラー条件 | エラー項目 |
|---|---|---|---|
| 1 | 到着日 | 発送日 ＞ 到着日 | 到着年～到着分 |
| 2 | 到着日 | 発送日の通日 ＋ 5 ＜ 到着日の通日 | 到着年～到着分 |
| 3 | 到着日時 | 発送年月日時分 ≧ 到着年月日時分 | 到着年～到着分 |
| 4 | 走行キロメートル | 到着時 − 出発時 ≧ 600 | 指示キロメートル |
| 5 | 指示キロメートル | 出発時・到着時がどちらも 0 | 指示キロメートル |
| 6 | 走行キロメートル（メーター一巡） | 到着時 − 出発時 ≦ 0 の場合、(到着時 ＋ 10,000,000) − 出発時 ≧ 600 | 指示キロメートル |

走行キロメートルを計算して回送粁程に保存し、画面には下3桁を表示する。

#### 5.2.3 結果

| 結果 | エラーコード | メッセージ | 次の段階 |
|---|---|---|---|
| エラーあり | ERR 1 | エラー項目あり，再入力して下さい | ②（BK16） |
| 全項目OK | OK  2 | 確認ＯＫなら実行キーを押して下さい | ③（BK17）。全項目が入力不可の確認画面 |

### 5.3 ③ 確認・登録（BK11700P）

詳細は [BK11700P_仕様書.md](BK11700P_仕様書.md) を参照。

#### 5.3.1 キーの扱い

| キー | 処理 |
|---|---|
| 実行（Enter） | 画面を受信してから登録し、空の画面で①に戻る |
| PF3 | 画面を受信せずに登録し、一つ前の画面に戻る |
| PF4 | 画面を受信せずに登録し、メインメニューに戻る |
| PF2 | 登録せず、TSキューを削除して空の画面で①に戻る |
| CLEAR | 登録せず、TSキューを削除して終了画面（ELEPHAN）で終了 |
| 上記以外 | 画面のデータ部分を再表示し、BK17 で待機 |

#### 5.3.2 登録処理

1. TSキューを読み込み、削除する。キューがない場合は登録せずに終了画面で終了する。
2. 照会元がＤＤＰ（COMM_ITEM_DDP ＝ '1'）の場合、ＤＤＰ回送マスターを更新する。

| 項目ID | 項目名 | 設定値 |
|---|---|---|
| KSKJKINO | 回送入力票ＮＯ | 回送入力票NO |
| KSKJDTKB | データ区分（1：出発、2：到着のみ、3：両方） | 2 ならそのまま。それ以外は 3 |
| KSKJCTCD | 回送着店所コード | 到着店コード |
| KSKJTCDT | 回送到着（回送着年月日＋回送着時分） | 到着年・月・日・時・分（YYMMDDHHMM） |
| KSKJKIKM | 回送粁程 | 回送粁程（走行キロメートル） |
| KSKJSJKD | 指示粁　出発時 | 指示キロメートル・出発時 |
| KSKJSJKT | 指示粁　帰着時 | 指示キロメートル・到着時 |

   - 更新用の読込みで回送票がない場合・書換えエラーの場合は、何もせずに次に進む。
   - 照会元がセンター（'2'）の場合は、ＤＤＰ回送マスターを更新しない（新規登録もしない）。
3. 発送鑑データ（3.4）を編集し、TDキュー SYUS に出力する。
   - 発地コード：発店コードで店所マスターを読み、店所所在地コードの先頭5桁。
   - 標屯：社番で車両マスターを読み、最大積載量 ÷ 1000。
4. 到着鑑データ（3.4）を編集し、TDキュー SYUS に出力する。

#### 5.3.3 登録後の画面

| キー | 画面 |
|---|---|
| 実行（Enter） | 画面をクリアして空の MPBK150 を表示し、BK15 で待機（次の回送入力票NOの入力） |
| PF3 | 戻り先画面のスタックから一つ前の画面を表示（6.1） |
| PF4 | メインメニューを表示（6.1） |

---

## 6. 共通処理

### 6.1 ファンクションキー（PF3・PF4・PF2・CLEAR）

| キー | 処理 |
|---|---|
| PF2：取消 | TSキューを削除し、空の MPBK150 を表示して BK15 で待機 |
| PF3：終了 | TSキューを削除し、戻り先画面のスタックから一つ前の画面を決める。共通ヘッダ画面（MPDM010）に日時を設定して表示し、戻り先の画面を表示して、そのトランザクションで待機 |
| PF4：戻り | TSキューを削除し、スタックの1件目（メインメニュー）に戻る。表示方法は PF3 と同じ |
| CLEAR | TSキューを削除し、終了画面（ELEPHAN）を表示して終了 |

（③では PF3・PF4 の前に登録処理を行う。5.3 参照）

| PF3 の条件 | 戻り先 |
|---|---|
| スタックが空 | なし（終了画面を表示して終了） |
| 最上位が MPBK150 以外 | 最上位の画面（1件取り除く） |
| 最上位が MPBK150 で、その下がない | なし（終了画面を表示して終了） |
| 最上位が MPBK150 で、その下がある | その下の画面（2件取り除く） |

| PF4 の条件 | 戻り先 |
|---|---|
| スタックが空、または1件目が MPBK150 | なし（終了画面を表示して終了） |
| 1件目が MPBK150 以外 | 1件目の画面（スタックを全件消去） |

### 6.2 システム日付・時刻の設定

画面を送信するたびに、現在の日時を `YY/MM/DD`・`HH:MM:SS` に編集してシステム年月日・システム時分秒に設定する。集信データの入力年月日時分秒にも、このとき取得した日時を使う。

### 6.3 例外処理

| 発生条件 | ① | ② | ③ |
|---|---|---|---|
| 画面データなし・レコードなし・ファイルの終わり | TSキューの読込みから処理を続ける | 終了画面で終了 | 終了画面で終了 |
| TSキューがない | 初期化して続ける | 初期化して続ける | 登録せずに終了画面で終了 |

---

## 7. メッセージ一覧

| No | エラーコード | メッセージ | 段階 | 表示するとき |
|---|---|---|---|---|
| 1 | OK DD | 到着店，到着日時，指示粁を入力してください。 | ① | 照会OK |
| 2 | ERR 1 | エラー項目あり，再入力して下さい | ①② | 項目チェック・項目間チェックのエラー |
| 3 | ERR 3 | 回送未入力です。 | ① | ＤＤＰにもセンターにも回送票がない |
| 4 | ERR 3 | センターの回送マスターの　Ｉ／Ｏエラー | ① | センターの回送マスターの読込みエラー |
| 5 | ERR 5 | この回送票の入力区分がエラーです。再入力して下さい | ① | 入力区分が 1・3 以外 |
| 6 | ERR 9 | この回送票は取消済みです。　　再入力して下さい | ① | 取消済み |
| 7 | ERR ? | ？？？？？？？？？？？？ | ① | センターから想定外の結果 |
| 8 | ASYSB | 回線が混雑しています！！　実行キーをもう一度押して下さい | ① | センター照会で回線混雑 |
| 9 | ASYSI・CTERM・STERM・RTERM | 照会不可能！！回線不通の可能性あり　センターに連絡して下さい | ① | センターとの回線不通 |
| 10 | RLENG | 照会不可能！！　ＬＥＮＧＥＲＲ | ① | センターからの受信データの長さ不正 |
| 11 | A9999・C9999・S9999・R9999 | 照会不可能！！サポート外ＥＲＲＯＲ　センターに連絡して下さい | ① | その他の通信エラー |
| 12 | OK  2 | 確認ＯＫなら実行キーを押して下さい | ② | 全項目OK（確認画面） |

③では、メッセージを設定しない（登録後は空の画面になる）。

---

## 8. 画面遷移

```mermaid
flowchart LR
    MENU[サブメニュー] --> S1[① 照会<br/>BK15]
    S1 -- 実行（エラー） --> S1
    S1 -- 実行（照会OK） --> S2[② 検証<br/>BK16]
    S2 -- 実行（エラー） --> S2
    S2 -- 実行（OK） --> S3[③ 確認・登録<br/>BK17]
    S3 -- 実行（登録） --> S1
    S2 -- PF2 --> S1
    S3 -- PF2（登録しない） --> S1
    S1 -- PF3 --> PREV[一つ前の画面]
    S2 -- PF3 --> PREV
    S3 -- PF3（登録する） --> PREV
    S1 -- PF4 --> MAIN[メインメニュー]
    S2 -- PF4 --> MAIN
    S3 -- PF4（登録する） --> MAIN
    S1 & S2 & S3 -- CLEAR --> END[ELEPHAN 終了]
```

---

## 9. 補足・留意事項

1. **③の PF3・PF4 は登録してから戻る**：確認画面で PF3（終了）・PF4（戻り）を押すと、実行キーと同じく登録してから戻る。登録せずに抜けるには PF2（取消）か CLEAR を使う。
2. **センター照会の回送票はＤＤＰ回送マスターに登録されない**：①でセンターから照会した回送票（照会元 '2'）は、③でＤＤＰ回送マスターの更新も新規登録もしない。集信データ（発送鑑・到着鑑）だけを出力する。
3. **回送マスターの更新エラーを無視する**：③でＤＤＰ回送マスターの読込み・書換えがエラーになっても、メッセージを出さずに集信データを出力する。マスターと集信データが食い違うおそれがある。
4. **集信データの出力エラーを想定していない**：TDキューへの書込みに戻りコードの判定がなく、エラー時は CICS の異常終了になる。
5. **登録完了のメッセージがない**：③で登録した後は空の画面になるだけで、登録したことを示すメッセージは表示しない。
6. **同じ回送票の再登録を防いでいない**：到着済みの回送票でも①で照会でき、再度登録すると回送マスターを上書きし、集信データを再出力する。
7. **発送鑑データの着地コード**：着地コードは到着店ではなく、入力した端末の店所の所在地コードから作る。到着店と入力店が異なる場合は、到着店の所在地と一致しない。
8. **②で書き換えない値はチェックされない**：①で表示した到着店・到着日時・指示キロメートルは、書き換えなければ項目チェックを行わない（項目間チェックは行う）。
9. **指示キロメートルは実質的に必須**：出発時・到着時がどちらも 0 だと②でエラーになる。
10. **年をまたぐ日付の判定**：②の「発送日＋5日」の判定は年内の通日で比べるため、年をまたぐと正しく判定できない。
11. **走行キロメートルの表示**：①でＤＤＰ回送マスターから表示する場合は回送粁程の下3桁、センターからの照会ではセンター側で計算した3桁の値を表示する。1,000km 以上は正しく表示されない（②で 600km 以上はエラーになる）。
12. **①のセンター照会での待機**：回線混雑時は、トランザクションを終わらせずに再入力を待つ（会話型）。
13. **戻り先画面のスタック**：①で本画面をスタックに積むとき、件数が 0 だと配列の範囲外を参照する。

---

## 付録　プログラムと処理段階の対応

| 処理 | BK11500P | BK21500P | BK11600P | BK11700P |
|---|---|---|---|---|
| トランザクション | BK15 | B15K（センター） | BK16 | BK17 |
| 回送入力票NOのチェック | ○ | ― | ― | ― |
| ＤＤＰ回送マスターの読込み | ○ | ― | ― | ○（更新用） |
| センターの回送マスターの照会 | ○（依頼） | ○（読込み） | ― | ― |
| 到着情報のチェック | ― | ― | ○ | ― |
| ＤＤＰ回送マスターの更新 | ― | ― | ― | ○ |
| 集信データ（発送鑑・到着鑑）の出力 | ― | ― | ― | ○ |
| 次の待機トランザクション | BK16（OK）／BK15（エラー） | ― | BK17（OK）／BK16（エラー） | BK15（実行）／戻り先（PF3・PF4） |
