# プログラム仕様書　BU10700P（配車修正入力　照会）

| 項目 | 内容 |
|---|---|
| システムID | BU |
| 参考資料 | ・現行ソース BU10700P.pl1（センター側の動きは BU20700P.pl1 で確認）<br/>・画面イメージ MPBU070.jpg（配車修正入力）<br/>・現行の解析資料 BU0070_配車修正入力.xlsx（シート「資産一覧」「Link XCTL 一覧」「MPBU070」「レコードフォーマット」「SRC_BU10700P」） |
| 項目名の出典 | 画面項目は解析資料のシート「MPBU070」の日本語名、センターとの受渡し項目・マスターの項目はシート「レコードフォーマット」の日本語名称 |

---

## 1. 概要

| 項目 | 内容 |
|---|---|
| プログラムID | BU10700P（手続き名：BU10700） |
| プログラム名称 | 配車修正入力　照会 |
| 言語 | PL/I（CICS コマンドレベル） |
| 処理形態 | オンライン（CICS 疑似会話型） |
| 動作環境 | SV（DDP 側） |
| トランザクションID | BU07 |
| パターンID | PPOD250P（1987/05/01）、業務 BUSHRE30 |
| 使用画面（マップ） | MPBU070（配車修正入力）、MPDM010（共通ヘッダ画面）、ELEPHAN（終了画面） |
| 次の処理 | 照会OK → 自社便は BU08（BU10800P）、傭車便は BV08（BV10800P）。どちらも修正内容を入力してチェックし、BU09（BU10900P）がセンターに更新を依頼する |
| センター照会 | SYSID 'CIC1'、プロセス 'B07U'（BU20700P）と APPC 会話 |
| 参照ファイル | VPTENMS（ＤＤＰ 店所マスター）、VPJYUGY（ＤＤＰ 従業員マスター）、VPUNKEI（ＤＤＰ 運賃計算荷主マスター（１）） |
| 呼出しモジュール | LSO0020（チェックデジットのチェック）、SL11100P（印刷装置のチェック。LINK） |
| 起動するトランザクション | BV13（自社便の指令書印刷）、BV14（傭車便の指令書印刷）。どちらもテストプリント・印刷終了のときだけ |
| 一時記憶 | TSキュー（キュー名「端末ID＋トランザクションID（BU07）」。チェック結果 20バイト、照会OK 時は照会結果 520バイト）。印刷用の TSキュー（端末ID＋'SHTS'／'SHYT'／時刻） |

### 1.1 機能概要

配車済みの運行指令（指令書）を修正する機能の最初の画面。指令書ＮＯ を入力して実行キーを押すと、センターの運行指令マスターから指令書の内容を取り出して表示し、修正できる項目を入力可にして、自社便は BU08、傭車便は BV08 で待機する。

1. 指令書ＮＯ・入力店所・印刷装置をチェックする。
2. センター（B07U：BU20700P）に指令書ＮＯ を送り、運行指令マスターの内容を受け取る。
3. 受け取った内容と、店所名・乗務員名・傭車会社名（DDP のマスターから取得）を表示する。
4. 入力区分（配車の状態）と発店を確認する。修正できる状態なら、運行車区分・増便／定便・送付書の枚数に応じて入力可の項目を決め、照会結果を TSキューに書いて、次のトランザクション（BU08／BV08）で待機する。修正できない状態ならエラー（ERR Q）にする。

```mermaid
flowchart LR
    MENU[メニュー] --> BU07[BU07<br/>本プログラム<br/>MPBU070]
    BU07 -- エラー --> BU07
    BU07 <-- APPC B07U --> CIC1[(センター CIC1<br/>BU20700P<br/>VKUNKSH)]
    BU07 -- 照会OK 自社便 --> BU08[BU08<br/>BU10800P]
    BU07 -- 照会OK 傭車便 --> BV08[BV08<br/>BV10800P]
    BU08 --> BU09[BU09<br/>BU10900P 更新]
    BV08 --> BU09
```

---

## 2. 画面仕様（MPBU070：配車修正入力）

### 2.1 画面レイアウト

```
MPBU070                    配 車 修 正 入 力                         YY/MM/DD
                                                                     HH:MM:SS
 ____（入力店所） 入力店所名（16）

 指令書ＮＯ ：____－_____                       入力区分：_ 入力区分名（12）
 便　コード ：000000 （運行便名（16））
 運行車区分 ：__ 区分名（5）  運行形態区分：_ 形態区分名（8）
 積載　社番 ：_____            トレーラー  ：_____
 発　　　店 ：____ 発店名称（16）            出発予定：__月 __日  __時 __分
 乗継店－１ ：____ 乗継店１名（16）
 乗継店－２ ：____ 乗継店２名（16）
 最終　卸店 ：____ 最終卸店名（16）          到着予定：__月 __日  __時 __分
 次運行発店 ：____ 次運行便発店名（16）

 乗務員－Ａ ：______ 乗務員Ａ名（16）    乗務員－Ｂ ：______ 乗務員Ｂ名（16）
 乗継員１Ａ ：______ 乗継員１Ａ名（16）  乗継員１Ｂ ：______ 乗継員１Ｂ名（16）
 乗継員２Ａ ：______ 乗継員２Ａ名（16）  乗継員２Ｂ ：______ 乗継員２Ｂ名（16）

 直配　区分 ：_        直配　着地：_____          フェリー会社：_______
 連絡　事項 ：________________________ 特定便コード：____ 鮮魚保険料：____
 傭車コード ：_______ 傭車会社名（16）   傭車標屯：__．_ トン
 傭車　形態 ：_ 形態名（5） 一車保険料：____ 円        定額傭車料：______
 実行：継続　２：取消　３：終了　４：戻り　　印刷装置 ____
 エラーメッセージ（70）                                          エラーコード（5）
```

画面イメージで乗継店－１・－２のコード欄は見えないが、画面項目（BU07101・BU07111）としてある。

### 2.2 画面項目

I：入力、O：出力。「BU07」は本プログラムの段階で入力するか（I）表示だけか（O）を示す（解析資料のシート「MPBU070」より）。修正の段階（BU08／BV08）で入力可にする項目は 4.5 で決める。

| No | 項目ID | 項目名 | 属性・桁 | BU07 | 本プログラムで表示する内容 |
|---|---|---|---|---|---|
| 1 | BU07011 | システム日付 | 文字 8 | O | `YY/MM/DD` |
| 2 | BU07021 | システム時刻 | 文字 8 | O | `HH:MM:SS` |
| 3 | BU07031 | 入力店所コード | 数字 4 | I | 端末の店所コード（PF12 のときだけ入力可） |
| 4 | BU07032 | 入力店所名 | 文字 16 | O | 店所マスターの店所略名（漢字）。なければ「？？？？？？」 |
| 5 | BU07051 | 指令書№（頭４桁） | 数字 4 | I | 入力値 |
| 6 | BU07052 | 指令書№（後５桁） | 数字 5 | I | 入力値 |
| 7 | BU07053 | 入力区分 | 数字 1 | O | 運行指令の入力区分 |
| 8 | BU07054 | 入力区分名 | 文字 12 | O | 0：配車未入力、1：配車入力済、2：出発点呼済、5：到着入力済、9：減便入力済、それ以外：？？？？？ |
| 9 | BU07061 | 計画便コード | 文字 6 | O | 計画便コード |
| 10 | BU07062 | 運行便名 | 文字 16 | O | 便名（漢字）。属性は保護・変更フラグオン |
| 11 | BU07071 | 運行車区分 | 数字 2 | O | 運行車区分 |
| 12 | BU07072 | 運行車区分名 | 文字 5 | O | 1：ｼﾞｼﾔ、2：ﾖｳｼﾔ、3：31FT、4：5Tｺﾝ、5：ﾌｴﾘｰ、それ以外：??? |
| 13 | BU07073 | 運行車形態区分 | 数字 1 | O | 運行形態区分 |
| 14 | BU07074 | 運行車形態区分名 | 文字 8 | O | 0：ﾌﾂｳ、1：ﾉﾘﾂｷﾞ、2：ﾄﾞﾂｷﾝｸﾞ、3：ﾏﾙﾆｳﾝｺｳ、4：ﾃｱﾃ ﾌｴﾘ、5：ｶｲｿｳ、6：ｵｳｴﾝ ｶﾗ、7：ｵｳｴﾝ ﾂﾐ、8：ｸｳｼﾔ、それ以外：????? |
| 15 | BU07081 | 積載社番 | 数字 5 | O | 積載社番（0 なら空欄） |
| 16 | BU07082 | トレーラー | 数字 5 | O | トレーラ頭・コンテナ車（0 なら空欄） |
| 17 | BU07091 | 発店コード | 数字 4 | O | 発店（0 なら空欄） |
| 18 | BU07092 | 発店名称 | 文字 16 | O | 店所略名（漢字）。なければ「？？？？？」 |
| 19～22 | BU07093～BU07096 | 出発予定日　月・日・時・分 | 数字 2×4 | O | 出発の月・日・時・分（月・日は 0 なら空欄、時・分は両方 0 なら空欄） |
| 23 | BU07101 | 乗継店１コード | 数字 4 | O | 乗継店１（0 なら空欄） |
| 24 | BU07102 | 乗継店１名 | 文字 16 | O | 店所略名（漢字）。なければ「？？？？？」 |
| 25 | BU07111 | 乗継店２コード | 数字 4 | O | 乗継店２（0 なら空欄） |
| 26 | BU07112 | 乗継店２名 | 文字 16 | O | 店所略名（漢字）。なければ「？？？？？」 |
| 27 | BU07121 | 最終卸店コード | 数字 4 | O | 最終卸店（0 なら空欄） |
| 28 | BU07122 | 最終卸店名 | 文字 16 | O | 店所略名（漢字）。なければ「？？？？？」 |
| 29～32 | BU07123～BU07126 | 到着予定日　月・日・時・分 | 数字 2×4 | O | 最終卸店到着の月・日・時・分（空欄の扱いは出発と同じ） |
| 33 | BU07131 | 次運行便発店コード | 数字 4 | O | 次運行発店（0 なら空欄） |
| 34 | BU07132 | 次運行便発店名 | 文字 16 | O | 店所略名（漢字）。なければ「？？？？？」 |
| 35～42 | BU07151～BU07174 | 乗務員Ａ・Ｂ、乗継員１Ａ・１Ｂ、乗継員２Ａ・２Ｂ（コード・名） | 数字 6・文字 16 | O | 従業員コード（0 なら空欄）と従業員氏名（漢字）。コードが 999999 なら「ダミーコード」、マスターになければ「？？？？？？」 |
| 43 | BU07191 | 直配区分 | 文字 1 | O | 直配区分（0 なら空欄） |
| 44 | BU07192 | 直配　着地コード | 数字 5 | O | 直配着地コード（0 なら空欄） |
| 45 | BU07193 | フェリー会社コード | 数字 7 | O | フェリー、ライナーコード（0 なら空欄） |
| 46 | BU07201 | 連絡事項 | 文字 24 | O | 連絡事項（26桁）の先頭24桁。シフトコードの切れを補正する（4.8） |
| 47 | BU07202 | 特定便コード | 文字 4 | O | 特定便区分（1）＋特定便ＮＯ（3）。特定便区分が空白なら空欄 |
| 48 | BU07203 | 鮮魚保険料 | 数字 4 | O | 一車保険料（自社、鮮魚の場合）を左詰め（0 なら空欄。4.8） |
| 49 | BU07211 | 傭車会社コード | 数字 7 | O | 傭車会社コード（0 なら空欄） |
| 50 | BU07212 | 傭車会社名 | 文字 16 | O | 運賃計算荷主マスター（１）の顧客略名（漢字）。なければ「？？？？？？？」 |
| 51・52 | BU07213・BU07214 | 傭車標屯（整数）・傭車標屯（少数点） | 数字 2・1 | O | 運行車区分が 2（傭車）で積載車標屯が 0 でない場合だけ、積載車標屯の整数部・小数部 |
| 53 | BU07221 | 傭車形態区分 | 文字 1 | O | 傭車使用形態。0・1 なら空欄 |
| 54 | BU07222 | 傭車形態区分名 | 文字 5 | O | 2：ﾄﾝｱﾀﾘ、3：ﾃｲｶﾞｸ、4：* ﾘﾖｳ（差額的傭車）、0・1：空欄、それ以外：???? |
| 55 | BU07223 | 一車保険料 | 数字 4 | O | 一車保険料（傭車の場合）を左詰め（0 なら空欄） |
| 56 | BU07224 | 定額傭車料 | 数字 6 | O | 定額傭車料を左詰め（0 なら空欄） |
| 57 | BU07231 | ＰＦキー説明 | 文字 52 | O | 固定表示 |
| 58 | BU07PRT | 印刷装置 | 文字 4 | I | 入力値。チェックOK 後は入力不可 |
| 59 | BU07241 | エラーメッセージ | 文字 70 | O | 5章のメッセージ |
| 60 | BU07242 | エラーコード | 文字 5 | O | 5章のエラーコード |

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

| キー | 機能 | 処理概要 |
|---|---|---|
| 実行（Enter） | 継続 | 指令書ＮＯ などをチェックし、センターに照会して表示する |
| PF2 | 取消 | 初期画面を表示する（入力店所は入力不可）。BU07 で待機 |
| PF3 | 終了 | 印刷終了の処理をして、一つ前の画面に戻る（4.7） |
| PF4 | 戻り | 印刷終了の処理をして、メインメニューに戻る（4.7） |
| PF8 | テストプリント（傭車） | 印刷装置をチェックし、傭車便の指令書のテスト印刷を起動する |
| PF9 | テストプリント（自社） | 印刷装置をチェックし、自社便の指令書のテスト印刷を起動する |
| PF11 | 印刷装置の再接続 | 印刷装置を強制解放し、再び接続する |
| PF12 | 取消（入力店所の入力可） | 初期画面を表示し、入力店所を入力可にしてカーソルを置く。BU07 で待機 |
| CLEAR | 強制終了 | 印刷終了の処理をして、終了画面（ELEPHAN）を表示して終了 |
| 上記以外 | 再表示 | 画面のデータ部分を再送信し、BU07 で待機 |

画面の PFキー説明には PF8・PF9・PF11・PF12 は表示されていない。

---

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

### 3.1 通信領域（COMMAREA：256バイト）

| 項目ID | 本プログラムでの用途 |
|---|---|
| CRT_BACK_KOSU／CRT_BACK_DATA(5) | 戻り先画面のスタック（トランザクションID・マップID、最大5件） |
| COMM_TRM_CODE | 端末ID（印刷の入力端末ＩＤ） |
| COMM_TEN_CODE・COMM_TEN_NAME | 端末の店所コード・店所名（入力店所の既定値） |
| COMM_RPOC_YMD | 処理日付（YYMMDD） |
| COMM_PRINTER_ID | 印刷装置のID |
| COMM_RETURN_CD | SL11100P（印刷装置のチェック）の戻り値 |
| COMM_PRI_FLG | 印刷装置の状態（4.2 の表） |
| COMM_YOS_FLG | 照会OK 時に '1'（自社便）／'2'（傭車便）。PF8 は '2'、PF9 は '1'、PF2 は '0' |
| COMM_START_YMD | 照会OK 時に出発の年月日（YYMMDD） |
| COMM_END_YMD（COMM_END_YY・MM・DD） | 照会OK 時に最終卸店到着の年・月・日 |

### 3.2 センター照会（B07U：BU20700P）

| 項目 | 内容 |
|---|---|
| 接続先 | SYSID 'CIC1'、プロセス名 'B07U' |
| 送信（35バイト） | トランザクションID 'B07U'（4）＋予備（1）＋配車修正照会データ（DPCEB05U：トランザクションID 'B07U'、データ区分 空白、指令書ＮＯ（UNKSHIN、9）、予備） |
| 受信（250バイト） | トランザクションID（4）＋エラーフラグ（1）＋エラーコード（4）＋配車修正照会後データ（CEDPBU07、241） |

受信する主な項目（CEDPBU07）。センターは運行指令マスター（VKUNKSH）を指令書ＮＯ で読んで編集する（BU20700P）。

| 項目ID | 項目名 | センターでの編集元・備考 |
|---|---|---|
| UNKIYMD | 入力年月日 | 運行指令の入力年月日 |
| UNKSHNO・UNKSHCN | 指令書ＮＯ・指令書発行枚数 | |
| UNKBNCD・UNKBNNM | 計画便コード・便名（漢字） | |
| UNKKUBN・UNKKEIT | 運行車区分・運行形態区分 | |
| UNKINKB | 入力区分 | 運行指令の入力区分。指令書がなければ 6、読込みエラーなら 7 |
| UNKSTTC・UNKENTC | 発店・最終卸店 | 入力区分が 0・9 なら計画の発店・着店、それ以外は実績の発店・着店 |
| UNKSTYY～UNKSTMI | 出発　年・月・日・時・分 | 予定年月日時分（出発） |
| UNKENYY～UNKENMI | 最終卸店到着　年・月・日・時・分 | 予定年月日時分（到着） |
| UNKFUTC | 次運行発店 | |
| UNKCARS・UNKTONS | 積載社番・積載車標屯 | 始発積載の車種が 'F' なら頭・子を入れ替える |
| UNKCART | トレーラ頭・コンテナ車 | |
| UNKDRIA・UNKDRIB | 乗務員　Ａ・Ｂ | |
| UNKNTC1・UNKND1A・UNKND1B | 乗継店１・乗継員１Ａ・１Ｂ | |
| UNKNTC2・UNKND2A・UNKND2B | 乗継店２・乗継員２Ａ・２Ｂ | |
| UNKGHKB・UNKGHCD | 直配区分・直配着地コード | |
| UNKFRCD | フェリー、ライナーコード | 運行車区分が 02 以外のとき |
| UNKINFO | 連絡事項 | 26桁 |
| UNKKBID・UNKTKNO | 特定便区分・特定便ＮＯ | |
| UNKFISH | 一車保険料（自社、鮮魚の場合） | |
| UNKYOSC | 傭車会社コード | 運行車区分が 02 のとき |
| UNKYOSK | 傭車使用形態 | 差額的傭車なら 4 |
| UNKYSRY・UNKYOSH | 定額傭車料・一車保険料（傭車の場合） | |
| UNKSOFI・UNKSOFD | 送付書枚数・取消送付書枚数 | 入力可の項目の判定に使う（4.5） |

センターのエラーフラグは通常 '0'。指令書がない・読込みエラーは、エラーフラグではなく入力区分（6・7）で返る。

### 3.3 参照するマスター

| ファイル | 日本語名 | キー | 使う項目 |
|---|---|---|---|
| VPTENMS | ＤＤＰ 店所マスター | 店所コード | 店所略名（漢字）（VETNSRNM） |
| VPJYUGY | ＤＤＰ 従業員マスター | 従業員コード | 従業員氏名（漢字）（VEJYJNM1） |
| VPUNKEI | ＤＤＰ 運賃計算荷主マスター（１） | 傭車会社コード（7）＋'00000001' | 顧客略名（漢字）（KNTNRGNM） |

### 3.4 TSキュー

| キュー | 長さ | 内容 |
|---|---|---|
| 端末ID＋'BU07'（チェック結果） | 20 | 初期化済み（LOOP_FLG）、チェック結果（OKFLG：'2' OK、それ以外エラー）、FLG(1)・FLG(2)（指令書ＮＯ・入力店所。'0'：未チェック、'1'：エラー、'2'：OK）、指令書ＮＯ（頭４桁・後５桁）・入力店所の保存域 |
| 端末ID＋'BU07'（照会結果） | 520 | 照会OK 時に書く。フラグ（OK '2'）、表示した名称の保存域（入力区分、運行便名、発店名・乗継店名・最終卸店名・次運行発店名、乗務員名など、傭車会社名）、変更前の傭車使用形態、センターから受信したデータ（入力年月日は処理日付に置き換える）。次の BU10800P／BV10800P が使う |
| 端末ID＋'SHTS'（318）・'SHYT'（144） | | テストプリントの印刷データ（自社・傭車）。4.6 |
| 端末ID＋'8'／'9'＋時刻（分の1の位・秒） | 14 | 印刷終了レコード（END RECORD FLG 'E'）。4.7 |

---

## 4. 処理仕様

### 4.1 処理の流れ

```mermaid
flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[印刷終了の処理<br/>終了画面]
    AID -- PFキー --> PF[ファンクションキー処理 4.6・4.7]
    AID -- 実行 --> RCV[MPBU070 を受信<br/>TSキューを読む]
    RCV -- なし --> INI[初期化]
    RCV -- あり --> DEL[TSキュー削除]
    INI --> CHK
    DEL --> CHK[入力チェック 4.2]
    CHK -- エラー --> ERR[TSキュー保存<br/>エラー表示] --> W07([BU07 で待機])
    CHK -- OK --> INQ[センター照会 4.3]
    INQ -- 通信エラー --> ERR
    INQ -- OK --> DSP[照会結果の表示 4.4]
    DSP --> ST{入力区分・発店}
    ST -- 修正できない --> ERRQ[ERR Q<br/>TSキュー保存] --> W07
    ST -- 修正できる --> ATR[入力可の項目を決める 4.5]
    ATR --> OK[照会結果を TSキューに書く]
    OK -- 自社便 --> W08([BU08 で待機])
    OK -- 傭車便 --> WV08([BV08 で待機])
```

### 4.2 初期化と入力チェック（INITIAL_RTN、CHECK_SUB_RTN_LVL1）

1. 画面を受信し、TSキュー（端末ID＋'BU07'）を読む。なければ初期化する（LOOP_FLG '1'、OKFLG・FLG '0'、印刷装置の状態が '0'～'9' 以外なら '0'、自社傭車フラグが '1'・'2' 以外なら '0'、入力店所に端末の店所コード、指令書ＮＯ の保存域を LOW-VALUE）。あれば削除する。
2. チェック結果が '2'（OK済み）の項目はチェックしない。

| FLG | 項目 | チェック内容（満たさなければエラー） |
|---|---|---|
| 1 | 指令書NO（頭４桁＋後５桁） | 入力されている（両方とも未入力ならエラー）。9桁が数字で、チェックデジットが正しく（LSO0020、区分 '07'、タイプ 'C'）、8桁目が 1～4 |
| 2 | 入力店所コード | 入力がなく、値が端末の店所コードと違えばエラー（店所名を空白にする）。それ以外は数字で、店所マスター（VPTENMS）にあること。あれば入力店所名に店所略名（漢字）、なければ「？？？？？？」を表示 |

3. 印刷装置をチェックする（印刷装置の状態が '2'（使用可）なら行わない）。

| 入力 | 処理 | 印刷装置の状態（COMM_PRI_FLG） |
|---|---|---|
| 未入力 | 印刷装置のIDを空白にする | '0'（印刷しない） |
| 4桁 | 印刷装置のIDをセットし、SL11100P を LINK して確認する | 戻り値 'O'：'2'（使用可）、'R'：'3'（使用不可能）、'C'：'4'（印刷装置ではない）、'N'：'5'（存在しない）、'P'：'6'（プリンター確認）、'U'：'7'（使用中）、それ以外：'1' |
| 4桁以外 | | '1'（エラー） |

4. FLG(1)・FLG(2) のどちらかが '1'、または印刷装置の状態が '0'・'2' 以外なら全体エラー（OKFLG '1'）。

### 4.3 表示の編集とセンター照会（DISPLAY_SUB_RTN_LVL1、INQUIRE_SUB_RTN）

1. 表示の編集
   - 印刷装置：状態が '0'・'2' なら入力不可。それ以外は入力可（輝度）でカーソルを置く。
   - 入力店所：OK・未チェックなら入力不可。エラーなら入力可（輝度）でカーソルを置く。
   - 指令書NO：OK なら入力不可。それ以外は入力可（輝度）で頭４桁にカーソルを置く。
   - エラーなら、印刷装置の状態に応じたメッセージ（5章）とエラーコード 'ERR 1' をセットし、TSキューを書いて画面のデータ部分を送信し（カーソル指定）、BU07 で待機する。通信エラーのとき（エラーフラグ '7'～'9'）は通信エラーのメッセージ（下表）と通信エラーのエラーコードを表示する。
   - OK なら、エラーコード 'OK  2' とメッセージ「各項目を入力して実行キーを押して下さい」をセットし、センター照会に進む。
2. センター照会：センター（CIC1 の B07U）に接続し、指令書ＮＯ を送信して結果を受信する（3.2）。終了データを送って会話を終える。
3. 通信エラーは次のとおり。回線混雑（ASYSB）は、メッセージを表示して画面を受信し、接続からやり直す。それ以外はエラーフラグをセットして全体エラーにし、1 の表示の編集に戻る。

| エラーコード | 発生箇所 | エラーフラグ | メッセージ |
|---|---|---|---|
| ASYSB | 接続先の割当て（混雑） | － | 回線が混雑しています！！　実行キーをもう一度押して下さい |
| ASYSI・CTERM・STERM・RTERM | 割当て（SYSID エラー）・接続・送信・受信（回線切断） | 7 | 照会不可能！！回線不通の可能性あり　センターに連絡して下さい |
| A9999・C9999・S9999・R9999 | 割当て・接続・送信・受信（その他） | 8 | 照会不可能！！サポート外ＥＲＲＯＲ　センターに連絡して下さい |
| RLENG | 受信（長さエラー） | 9 | 照会不可能！！ＬＥＮＧＥＲＲ |

4. センターから受信したエラーフラグが '0' 以外でも全体エラーにする（このときメッセージは表示の編集で '7'～'9' 以外のため空白のまま）。

### 4.4 照会結果の表示

照会がOK なら、表示用の名称の保存域と名称欄を空白にしてから、2.2 の内容で受信データを表示する。店所名・従業員名・傭車会社名は DDP のマスターを読んで表示する（3.3）。

続いて、入力区分と発店から状態を判定し、メッセージをセットする。

| 入力区分 | 条件 | メッセージ | 判定 |
|---|---|---|---|
| 0（配車未入力） | | 配車未入力！！　修正できません。取消してから入力してください。 | エラー |
| 1・2・5（配車入力済・出発点呼済・到着入力済） | 発店 ＝ 入力店所 | 修正する項目を入力してください。 | 修正できる |
| 1・2・5 | 発店 ≠ 入力店所 | 出発店所エラー！！　修正できません。取消してから入力してください | エラー（入力区分を 4 に置き換えて判定） |
| 9（減便入力済） | 発店 ＝ 入力店所 | 減便入力済です！！　　復活するなら『Ｒ』を入力してください。 | 修正できる（入力区分だけ入力可） |
| 9 | 発店 ≠ 入力店所 | 出発店所エラー！！　修正できません。取消してから入力してください | エラー |
| 6 | | 指令書マスターに無し | エラー |
| 7 | | Ｉ／Ｏエラー | エラー |
| それ以外 | | ？？？？？？？？？？ | エラー |

照会OK のときは、通信領域に出発の年月日（COMM_START_YMD）と最終卸店到着の年月日（COMM_END_YMD）をセットする。

エラーのときは、指令書NO を入力不可（変更フラグオン）にして頭４桁にカーソルを置き、FLG(1) を '1'、全体エラーにして、エラーコード 'ERR Q' をセットする。TSキュー（チェック結果）を書いて画面のデータ部分を送信し、BU07 で待機する。

### 4.5 入力可の項目（修正できる場合）

入力区分が 1・2・5 の場合は、運行車区分、指令書ＮＯ の1桁目（'9' は増便）、送付書枚数によって、次のように入力可にする。入力可（数字）は DFHUNNUM、入力可（文字）は変更フラグオン、入力不可は保護・変更フラグオン。どの場合も積載社番にカーソルを置く。

| 項目 | 自社・増便（送付書枚数 0） | 自社・増便（送付書あり） | 自社・定便（送付書枚数 0 または全件取消） | 自社・定便（送付書あり） | 傭車（送付書枚数 0） | 傭車（送付書あり） |
|---|---|---|---|---|---|---|
| 入力区分 | 入力可 | 入力不可 | 指令書ＮＯ の8桁目が '1' なら入力可、それ以外は入力不可 | 入力不可 | 入力可 | 入力不可 |
| 運行車区分 | 指令書ＮＯ の8桁目が '1' なら入力可、それ以外は入力不可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 |
| 運行車形態区分 | 入力可 | 入力可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 |
| 発店・出発予定（月日時分） | 入力可 | 入力不可 | 入力可 | 入力不可 | 入力可 | 入力不可 |
| 乗継店１・２ | 入力可（下線） | （変更しない） | （変更しない） | （変更しない） | （変更しない） | （変更しない） |
| 次運行発店 | 入力可 | 入力不可 | 指令書ＮＯ の8桁目が指令書発行枚数と違えば入力可 | 入力不可 | （変更しない） | 入力不可 |
| 傭車会社・傭車標屯・傭車形態・一車保険料・定額傭車料 | （変更しない） | （変更しない） | （変更しない） | （変更しない） | 入力可 | 入力不可 |
| フェリー会社 | 入力年月日 ＝ 処理日付なら入力可 | 同左 | 同左 | 同左 | （変更しない） | （変更しない） |
| 鮮魚保険料 | 入力可 | 入力可 | 入力可 | 入力可 | （変更しない） | （変更しない） |
| 特定便コード | 入力可 | 入力可 | 入力可 | 入力可 | 入力可 | 入力可 |

「送付書あり」は送付書枚数が 0 でない場合（自社・定便は、送付書枚数が 0 でなく取消送付書枚数とも違う場合）。「（変更しない）」は本プログラムでは属性をセットしない項目。

さらに、入力区分 1・2・5 のときは次の項目を常に入力可にする：積載社番、トレーラー、最終卸店、到着予定（月・日・時・分）、乗務員Ａ・Ｂ、直配区分、直配着地（以上は数字）、連絡事項（文字）。乗継員１Ａ～２Ｂは本プログラムでは属性をセットしない。

入力区分が 9（減便入力済）のときは、入力区分だけを入力可にしてカーソルを置く。

### 4.6 照会OK時の処理（OK_DATA_PROCESS_SUB_RTN）

1. TSキュー（端末ID＋'BU07'）を削除する。
2. 自社傭車フラグ（COMM_YOS_FLG）を、運行車区分が 02 以外なら '1'（自社）、02 なら '2'（傭車）にする。
3. 受信データの入力年月日を処理日付に置き換え、照会結果（520バイト）を TSキューに書く。
4. 戻り先画面のスタックの最上位が「MPBU070／BU07」でなければ積む（最大5件）。
5. 画面のデータ部分を送信し（カーソル指定）、自社便は BU08、傭車便は BV08 で待機する。メッセージは 4.4、エラーコードは 'OK  2'。

### 4.7 ファンクションキー・例外処理

| キー・条件 | 処理 |
|---|---|
| PF2 | 画面をクリアし、印刷装置の状態が '0'・空白なら印刷装置を空欄、それ以外は印刷装置のIDを表示（入力不可）。自社傭車フラグを '0'、TSキューを削除。日時・入力店所（端末の店所コード・店所名、入力不可）をセットし、修正項目をすべて入力不可にして、メッセージ「指令書№を入力して実行キー」（反転）を表示、指令書NO にカーソルを置いて画面を消去して送信する。BU07 で待機 |
| PF12 | PF2 と同じ表示だが、入力店所を入力可（数字）にしてカーソルを置き、指令書NO を空欄にする。初期化したチェック結果を TSキューに書く。自社傭車フラグは変えない。BU07 で待機 |
| PF8・PF9 | 自社傭車フラグを PF9 は '1'、PF8 は '2' にする。印刷装置の状態が '2' でなければ 4.2 の 3 と同じチェックをして、表示とメッセージを編集する。使用可（'2'）になれば、印刷情報（店所・端末ID・印刷装置・処理日付、キュー名 端末ID＋'MMSS'）と、入力端末ＩＤ・データ個数 1 だけの印刷データを TSキューに書き、自社は 端末ID＋'SHTS'（318バイト、BV031B '4'）に書いて BV13、傭車は 端末ID＋'SHYT'（144バイト）に書いて BV14 を印刷装置で START する（TSキューの書込みエラーなら START しない）。画面のデータ部分を送信し BU07 で待機 |
| PF11 | 印刷装置の状態が '2' なら、印刷装置を強制解放（PURGE）し、正常なら再接続（ACQUIRE・INSERVICE）する。画面のデータ部分を送信し BU07 で待機 |
| PF3 | 印刷装置の状態が '2' なら印刷終了の処理をする。TSキューを削除し、戻り先画面のスタックから一つ前の画面を決める。スタックの最上位が MPBU070 以外ならその画面、MPBU070 ならその一つ下の画面（スタックが空、または下がなければ終了画面）。共通ヘッダ画面（MPDM010）に日時をセットして送信し、戻り先の画面をデータなしで送信して、そのトランザクションで待機 |
| PF4 | 印刷装置の状態が '2' なら印刷終了の処理をする。TSキューを削除し、スタックの1件目が MPBU070 以外ならその画面（スタックを全件消去）、それ以外（スタックが空を含む）は終了画面 |
| CLEAR | 印刷装置の状態が '2' なら印刷終了の処理をする。TSキューを削除し、終了画面（ELEPHAN）を表示して終了 |
| その他のキー | 画面のデータ部分を再送信し、BU07 で待機 |
| 画面データなし・レコードなし・ファイルの終わり | CLEAR と同じ |

印刷終了の処理（PRINTER_FREE）：2回くり返して、印刷情報（キュー名は 端末ID＋'8'／'9'＋現在の分の1の位・秒）と、入力端末ＩＤ・データ個数 0・END RECORD FLG 'E' の印刷終了レコード（14バイト）を TSキューに書き、BV13 を印刷装置で START する。印刷装置の状態を空白にする。

### 4.8 編集の共通処理

| 処理 | 内容 |
|---|---|
| システム日付・時刻（TIMESET_SUB_RTN） | 現在の日時を `YY/MM/DD`・`HH:MM:SS` に編集して日付・時刻欄にセットする（入力不可・変更フラグオン） |
| 数字の左詰め（NUM_SHIFT_RTN） | 先頭の 0 を除いて左に詰め、後ろを LOW-VALUE にする。すべて 0 なら '0' |
| シフトコードの補正（SOSI_EDIT_RTN） | 連絡事項を24桁で切ったときに、シフトアウト（漢字開始）の後にシフトイン（漢字終了）がなければ、桁数に合わせて末尾にシフトインを入れる（全角文字が切れた場合は空白にする） |

---

## 5. メッセージ一覧

| No | エラーコード | メッセージ | 表示するとき |
|---|---|---|---|
| 1 | ERR 1 | エラー項目あり，再入力して下さい | 指令書NO・入力店所のエラー、印刷装置の状態が '1' |
| 2 | ERR 1 | 印刷装置　使用不可能です。！！ | 印刷装置の状態 '3' |
| 3 | ERR 1 | このＩＤは、印刷装置ではありません。 | 印刷装置の状態 '4' |
| 4 | ERR 1 | このＩＤは、存在しません。！！ | 印刷装置の状態 '5' |
| 5 | ERR 1 | プリンターを確認し、３０秒後に実行キーを押して下さい。 | 印刷装置の状態 '6' |
| 6 | ERR 1 | プリンターは現在使用中です。しばらくお待ち下さい。 | 印刷装置の状態 '7' |
| 7 | ASYSB | 回線が混雑しています！！　実行キーをもう一度押して下さい | センター接続の回線混雑 |
| 8 | ASYSI など | 照会不可能！！回線不通の可能性あり　センターに連絡して下さい | 通信エラー（4.3） |
| 9 | A9999 など | 照会不可能！！サポート外ＥＲＲＯＲ　センターに連絡して下さい | 通信エラー（4.3） |
| 10 | RLENG | 照会不可能！！ＬＥＮＧＥＲＲ | 受信の長さエラー |
| 11 | ERR Q | 配車未入力！！　修正できません。取消してから入力してください。 | 入力区分 0 |
| 12 | ERR Q | 出発店所エラー！！　修正できません。取消してから入力してください | 発店が入力店所と違う |
| 13 | ERR Q | 指令書マスターに無し | センターに指令書がない |
| 14 | ERR Q | Ｉ／Ｏエラー | センターの読込みエラー |
| 15 | ERR Q | ？？？？？？？？？？ | 入力区分がそれ以外 |
| 16 | OK  2 | 修正する項目を入力してください。 | 照会OK（入力区分 1・2・5） |
| 17 | OK  2 | 減便入力済です！！　　復活するなら『Ｒ』を入力してください。 | 照会OK（入力区分 9） |
| 18 | OK  2 | 各項目を入力して実行キーを押して下さい | チェックOK（照会の前にセットし、照会後に上書きされる） |
| 19 | （PF2・PF12） | 指令書№を入力して実行キー | 初期画面 |

PF8・PF9 の印刷装置チェックでは、エラーコードは変えずにメッセージだけ表示する（状態 '1' は「エラー項目あり，再入力して下さい」）。

---

## 6. 画面遷移

```mermaid
flowchart LR
    MENU[メニュー] --> BU07[BU07<br/>本プログラム]
    BU07 -- 実行（エラー・ERR Q） --> BU07
    BU07 -- 実行（照会OK 自社便） --> BU08[BU08<br/>BU10800P]
    BU07 -- 実行（照会OK 傭車便） --> BV08[BV08<br/>BV10800P]
    BU07 -- PF2・PF12・PF8・PF9・PF11 --> BU07
    BU07 -- PF3 --> PREV[一つ前の画面]
    BU07 -- PF4 --> MAIN[メインメニュー]
    BU07 -- CLEAR --> END[ELEPHAN 終了]
```

---

## 7. 補足・留意事項

1. **入力店所による代行修正**：PF12 で入力店所を入力可にし、ほかの店所コードを入れると、その店所を発店とする指令書を修正できる（発店と入力店所の一致で判定するため）。
2. **PF12 の後の入力店所**：PF12 では入力店所に端末の店所コードを表示するが、変更フラグをオンにしていない。そのまま実行キーを押すと入力店所は「未入力」で、値が端末の店所コードと一致しないためエラーになる（ソース上の動き）。入力店所を入れ直す必要がある。
3. **ERR Q の後の指令書NO**：ERR Q のときは指令書NO を入力不可（変更フラグオン）にするため、指令書ＮＯ を変えられない。そのまま実行キーを押すと同じ指令書を照会して同じエラーになる。別の指令書は PF2／PF12 で取り消してから入力する。
4. **印刷区分なし**：画面に印刷区分はなく、印刷装置を入れた場合だけ印刷装置の状態を管理する。指令書の印刷そのものは後続（BU10900P など）で行い、本プログラムではテストプリントと印刷終了レコードだけを起動する。
5. **センターのエラーは入力区分で返る**：センターは指令書がない場合に入力区分 6、読込みエラーに入力区分 7 を返し、エラーフラグは '0' のまま。そのため照会結果を一度表示してから ERR Q になる。読込みエラーの内容（センターのエラーコード）は表示しない。
6. **金額の桁**：一車保険料（傭車の場合、5桁）は4桁、定額傭車料（7桁）は6桁、鮮魚保険料（5桁）は4桁の編集域を通して表示するため、上位の桁は表示されない。
7. **連絡事項**：センターの連絡事項は26桁だが、画面には先頭24桁だけを表示する。
8. **乗継員の属性**：乗継員１Ａ～２Ｂは照会OK 時に属性をセットしない。属性は画面の直前の状態（PF2 の初期画面では入力不可）のままになる。
9. **店所区分のチェックは無効**：入力店所の店所区分（0・1、または店所 0641 で区分 4）を確認する処理があるが、エラーにする行がコメントになっており判定していない。
10. **エラーコード 'OK  2'**：OK 時のエラーコードは 'OK' と '2' の間に空白が2つある（解析資料では 'OK 2'）。
11. **照会結果の TSキュー名**：照会結果は本プログラムのトランザクションID（BU07）を付けたキュー名で書く。後続の BU10800P／BV10800P はこのキューを読む。
