# プログラム仕様書　BU10500P（配車入力（自社増便）検証）

| 項目 | 内容 |
|---|---|
| システムID | BU |
| 参考資料 | ・現行ソース BU10500P.pl1<br/>・画面イメージ MPBU040.jpg（配車入力（増便・傭車））<br/>・現行の解析資料 BU0040_配車入力（自社増）.xlsx（シート「MPBU040」「資産一覧」「レコードフォーマット」「SRC_BU10500P」） |
| 項目名の出典 | 画面項目は解析資料のシート「MPBU040」の日本語名、TS・マスターの項目はシート「レコードフォーマット」の日本語名称 |

---

## 1. 概要

| 項目 | 内容 |
|---|---|
| プログラムID | BU10500P（手続き名：BU10500） |
| プログラム名称 | 配車入力（自社　増便）検証 |
| 言語 | PL/I（CICS コマンドレベル） |
| 処理形態 | オンライン（CICS 疑似会話型） |
| 動作環境 | SV（DDP 側） |
| トランザクションID | BU05 |
| パターンID | 冒頭コメントに「２０００年対応済み」とある |
| 使用画面（マップ） | MPBU040（配車入力（増便・傭車））、MPDM010（共通ヘッダ画面）、ELEPHAN（終了画面） |
| 前の処理 | BU04（BU10400P）。PF10 で採番した自社増便の指令書を表示し、BU05 で待機している |
| 次の処理 | チェックOK → BU06（BU10600P：更新）。エラー → BU05（本プログラム） |
| センター照会 | なし |
| 参照ファイル | VPMORTR（ＤＤＰ 車両マスター）、VPJYUGY（ＤＤＰ 従業員マスター）、VPTENMS（ＤＤＰ 店所マスター）、VPCHINM（ＤＤＰ 地名マスター）、VPUNKEI（ＤＤＰ 運賃計算荷主マスター（１））。いずれも参照のみ |
| 呼出しモジュール | LSO0020（チェックデジット生成、区分 '07'、タイプ 'G'）、LSO0130（日数計算） |
| 起動する印刷 | BV13（BV11300P）、BV14（BV11400P）。テスト印刷・印刷装置の解放で START する |
| 一時記憶 | TSキュー（キュー名・長さは通信領域の TSQ_ID・TSQ_LENGTH。BU10400P が書いた「端末ID＋'BU04'」、724バイト） |

### 1.1 機能概要

自社増便の配車内容（1枚目の指令書と、次の指令書 2～4枚目）を入力・チェックする。

1. BU10400P が保存した照会結果（TSキュー）を読み、画面の入力内容を項目ごとにチェックする。
2. マスターから名称・車種・標屯などを取得し、便名・計画便コードを組み立てる。
3. 発行枚数に応じて、次の指令書（2～4枚目）の指令書№を作り、入力内容をチェックする。
4. エラーがあれば、エラー項目を強調して BU05 で待機する。
5. OKなら確認メッセージを表示し、チェック結果を TSキューに書いて、BU06（更新）で待機する。

```mermaid
flowchart LR
    BU04[BU04<br/>BU10400P 照会] -- PF10 採番OK --> BU05[BU05<br/>本プログラム<br/>MPBU040]
    BU05 -- エラー --> BU05
    BU05 -- OK（確認表示） --> BU06[BU06<br/>BU10600P 更新]
    BU05 -- PF2 --> BU04
```

---

## 2. 画面仕様（MPBU040）

画面レイアウトは BU10400P_仕様書.md の 2.1 と同じ。

### 2.1 入力項目とチェック結果の番号

FLG は TSキューのチェック結果（'0'：未入力、'1'：エラー、'2'：OK、'3'：関連エラー）。

| FLG | 項目ID | 項目名 | 属性・桁 | 必須 |
|---|---|---|---|---|
| 1 | BU04031・BU04032 | 指令書№（頭４桁・後５桁） | 数字 4＋5 | ―（照会結果のまま。入力不可） |
| 2 | BU04033 | 発行枚数 | 数字 1 | 必須 |
| 3 | BU04034 | 運行形態 | 数字 1 | 任意（未入力は 0） |
| 4 | BU04041 | 運行車区分 | 数字 2 | 必須 |
| 5 | BU04071 | 積載車番 | 数字 5 | 実質必須（4.3 の車両の組合せ） |
| 6 | BU04072 | トレーラー | 数字 5 | 任意 |
| 7 | BU04081 | 乗務員Ａコード | 数字 6 | 運行車区分 01 は必須、それ以外は入力不可（4.3） |
| 8 | BU04083 | 乗務員Ｂコード | 数字 6 | 任意（運行車区分 01 以外は入力不可） |
| ― | BU04091 | 発店コード | 数字 4 | ―（照会時の値。入力不可） |
| 9 | BU04093・BU04094 | 発送日 月・日 | 数字 2＋2 | 必須 |
| 10 | BU04095・BU04096 | 発送日 時・分 | 数字 2＋2 | 必須 |
| 11 | BU04101 | 最終卸店コード | 数字 4 | 必須 |
| 12 | BU04103・BU04104 | 最終卸店着日 月・日 | 数字 2＋2 | 必須 |
| 13 | BU04105・BU04106 | 最終卸店着日 時・分 | 数字 2＋2 | 必須 |
| 14 | BU04111 | 最終着店コード | 数字 4 | 必須 |
| 15 | BU04121 | 直配区分 | 文字 1 | 任意（未入力は 0） |
| 16 | BU04122 | 直配着地コード | 数字 5 | 直配区分が 1 なら必須 |
| 17 | BU04123 | フェリー会社 | 数字 7 | 運行車区分 03・04・05、運行形態 4 なら必須 |
| 18 | BU04131 | 連絡事項 | 文字 20 | 任意 |
| 19 | BU04132 | 携帯管理№（特定便区分＋特定便ＮＯ） | 文字 4 | 任意 |
| 20 | BU04133 | 鮮魚保険 | 数字 4 | 任意（未入力は 0） |
| 21～25 | BU04143～BU04161 | ２－出発日付 月・日、２－運行形態、２－最終卸店コード、２－最終卸店到着日 月・日、２－次回運行便出発店所コード | | 2枚目を発行するとき必須（4.4） |
| 26～30 | BU04173～BU04191 | ３－（同上） | | 3枚目を発行するとき必須 |
| 31～35 | BU04203～BU04221 | ４－（同上） | | 4枚目を発行するとき必須 |

表示だけの項目：運行車区分名（BU04042）、運行車形態名（BU04043）、計画便コード（BU04044）、便名（BU04045）、乗務員Ａ名・Ｂ名、発店名、最終卸店名、最終着店名、２～４－発送店コード・発送店名・最終卸店名・次回運行便出発店所名・指令書№。

### 2.2 コードと表示名

| 項目 | コード：表示名 |
|---|---|
| 運行車区分 | 01：ｼﾞｼﾔ、02：ﾖｳｼﾔ、03：31FT（2018/03/31 に「10Tｺﾝ」から変更）、04：5Tｺﾝ、05：ﾌｴﾘｰ、その他：??? |
| 運行形態 | 0：ﾌﾂｳ、1：ﾉﾘﾂｷﾞ、2：ﾄﾞﾂｷﾝｸﾞ、3：ﾏﾙﾆｳﾝｺｳ、4：ﾃｱﾃ ﾌｴﾘ、5：ｶｲｿｳ、6：ｵｳｴﾝ ｶﾗ、7：ｵｳｴﾝ ﾂﾐ、8：ｸｳｼﾔ、その他：????? |

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

| キー | 機能 | 処理概要 |
|---|---|---|
| 実行（Enter） | 継続 | 入力内容をチェックする |
| PF2 | 取消 | TSキューを削除し、BU10400P と同じ初期画面を表示して BU04（照会）に戻る |
| PF3 | 終了 | 印刷装置を解放し、一つ前の画面に戻る |
| PF4 | 戻り | 印刷装置を解放し、メインメニューに戻る |
| PF9 | テスト印刷 | 印刷装置がOK（COMM_PRI_FLG ＝ '2'）ならテスト印刷を出す（BU10400P の 4.9 と同じ。印刷装置のチェックは行わない）。BU05 で待機 |
| PF11 | 印刷装置リセット | BU10400P の 4.9 と同じ。BU05 で待機 |
| CLEAR | 強制終了 | 印刷装置を解放し、TSキューを削除して終了画面を表示 |
| 上記以外 | 再表示 | 画面のデータ部分を再送信し、BU05 で待機 |

PF3・PF4・CLEAR の印刷装置の解放、戻り先の決め方は BU10400P と同じ（印刷装置の解放の条件は COMM_PRI_FLG ＝ '2'）。

---

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

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

| 項目ID | 本プログラムでの用途 |
|---|---|
| TSQ_ID・TSQ_LENGTH | 読み書きする TSキューの名前・長さ（BU10400P がセット） |
| COMM_TRM_CODE | ＤＤＰ端末ＩＤ（DNKTERM）にセット |
| COMM_RPOC_YMD | 処理日付。入力年月日（DNKIYMD）にセットし、新規の発送日チェックの基準にする |
| COMM_START_YMD・COMM_END_YY／MM／DD | 既存の指令書（データ区分 'D'）の計画の出発年月日・最終卸年月日。日付チェックの基準 |
| COMM_INQ_KBN | 照会区分（PF2・PF9 で使う） |
| COMM_PRI_FLG・COMM_PRINTER_ID・COMM_EDA | 印刷関係（PF2・PF9・PF11・解放） |
| CRT_BACK_KOSU／CRT_BACK_DATA(5) | 戻り先画面のスタック（PF3・PF4） |

### 3.2 TSキュー（CHK_DSP_WORK：724バイト）

| 項目 | 内容 |
|---|---|
| LOOP_FLG・OKFLG | 全体チェック結果（'1'：エラー、'2'：OK） |
| FLG(35) | 項目ごとのチェック結果（2.1）。21～35 は次の指令書 3枚分×5項目（FLGL(3,5)） |
| BACK_AREA | 名称の保存域：便名、傭車会社名、乗務員Ａ名・Ｂ名、発店名、最終卸店名、最終着店名、発店・最終卸店の所在地コード（先頭5桁）、次の指令書ごとの発送店名・最終卸店名・次回運行便出発店所名と所在地コード |
| REVE_DATA | 照会結果（DEFPBU04：配車　照会、検証後（増、傭）ＤＥＦＩＮ、410バイト）。本プログラムのチェック結果を書き込み、BU06 に渡す |

### 3.3 チェック結果としてセットする主な項目（DEFPBU04）

| 項目ID | 項目名 | セットする値 |
|---|---|---|
| DNKTERM | ＤＤＰ端末ＩＤ | 端末ID |
| DNKIYMD | 入力年月日 | 処理日付 |
| DNKSHCN・DNKKEIT・DNKKUBN | 指令書発行枚数・運行形態区分・運行車区分 | 画面の入力値 |
| DNKCARS・DNKTONS・DNKSYAS | 積載車番・積載車標屯・積載車種 | 画面の積載車番と、車両マスターから決めた標屯・車種（4.2 No.5） |
| DNKCART・DNKTONT・DNKSYAT | トレーラ頭・コンテナ車・標屯・車種 | 画面のトレーラーと、車両マスターから決めた標屯・車種（4.2 No.6） |
| DNKDRIA・DNKDRIB | 乗務員 Ａ・Ｂ | 画面の入力値（未入力は 000000） |
| DNKSTTC・DNKSTID | 発店・発支社区分 | 発店コードと店所マスターの支社区分（店所内部コードの1桁目） |
| DNKSTYY～DNKSTMI | 出発 年・月・日・時・分 | 発送日の入力値。年は 4.3 で決める |
| DNKENTC・DNKENID | 最終卸店・最終卸支社区分 | 最終卸店コードと支社区分 |
| DNKENYY～DNKENMI | 最終卸店到着 年・月・日・時・分 | 最終卸店着日の入力値。年は 4.3 で決める |
| DNKFUTC・DNKFUID | 次運行発店・次運行発支社 | 最終着店コードと支社区分 |
| DNKGHKB・DNKGHCD・DNKGHTC | 直配区分・直配着地コード・直配着地最寄りの店所 | 入力値と、地名マスターの扱店コード |
| DNKFRCD | フェリー、ライナーコード | フェリー会社の入力値 |
| DNKINFO | 連絡事項 | 入力値（26バイト） |
| DNKKBID・DNKTKCD | 特定便区分・特定便ＮＯ | 携帯管理№の1桁目・2～4桁目 |
| DNKFISH | 一車保険料（自社、鮮魚の場合） | 鮮魚保険の入力値 |
| DNKBNCD・DNKBNNM・DNKNAMC | 計画便コード・便名（漢字）・便名（カナ） | 新規（データ区分 'N'）のとき組み立てる（4.5） |
| DNKNSNO(3) | 次の運行の指令書ＮＯ | 2～4枚目の指令書№（4.4） |
| DNKNSTT・DNKNSTI・DNKNSYY～DD・DNKNKEI・DNKNENT・DNKNENI・DNKNEYY～DD・DNKNFUT・DNKNFUI・DNKNGNM・DNKNCNM（各3件） | 次の指令書情報 | 2～4枚目の入力値と名称 |
| DNKNYUK・DNKINKB | 入力結果・入力区分 | 通常は '1'・1、減便は '9'・9 |

---

## 4. 処理仕様

### 4.1 処理の流れ

```mermaid
flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[印刷装置解放・TSキュー削除<br/>終了画面]
    AID -- PFキー --> PF[ファンクションキー処理 2.3]
    AID -- 実行 --> RCV[MPBU040 を受信<br/>TSキューを読んで削除]
    RCV -- TSキューなし --> CLR
    RCV --> CHK[項目チェック 4.2<br/>関連チェック 4.3<br/>次の指令書 4.4<br/>便コード 4.5]
    CHK --> DSP[表示の編集 4.6]
    DSP -- エラー --> ERR[TSキュー保存<br/>エラー表示] --> W05([BU05 で待機])
    DSP -- OK --> OK[TSキュー保存<br/>確認メッセージ表示] --> W06([BU06 で待機])
```

### 4.2 開始時の処理と項目チェック（CHECK_SUB_RTN_LVL1）

1. 例外条件（画面データなし・レコードなし・ファイルの終わり）と CLEAR は終了処理へ。それ以外のPFキーは 2.3。
2. 画面を受信し、TSキューを読んで削除する。読めなければ終了処理へ。
3. TSキューの全体チェック結果が OK（BU10400P から来たとき）なら、FLG(1～35) をすべて '1' にして全項目をチェックし直す。
4. ＤＤＰ端末ＩＤ・入力年月日をセットし、次の順にチェックする。FLG が '2' の項目はチェックしない。

| No | 項目 | 未入力 | チェック内容（満たさなければエラー） |
|---|---|---|---|
| 1 | 指令書№ | 未入力（'0'） | 数字で、照会結果の指令書ＮＯ と同じ。'999999999' のときは減便とし、全項目のチェック結果をOKにして入力結果を '9' にする |
| 2 | 発行枚数 | エラー | 1～4 |
| 3 | 運行形態 | 0（OK） | 0・3・4・5・6・7・8 のいずれか |
| 4 | 運行車区分 | エラー | 数字で 01・03・04・05 のいずれか |
| 5 | 積載車番 | 車番 0、標屯 0、車種空白 | 数字。標屯・車種は下表で決める（車種が決まらない場合は 'X'） |
| 6 | トレーラー | 車番 0、標屯 0、車種空白 | 数字。車両マスターを読み、車両現廃区分（VESYGHKB）が 1 以下なら、標屯＝最大積載量÷1000、車種は車両車種（VESYSYAS）が 01→'R'、03→'F'、04→'G'、それ以外→'X'。マスターになければ 'X' |
| 7 | 乗務員Ａコード | 未入力（'0'） | 運行形態・運行車区分がOKのときだけチェックする。数字で、従業員マスターにあり採用・退職区分（VEJYSTKB）が 0（氏名を表示）。マスターになく 999999 なら「ダミーコード」。それ以外はエラー（氏名に「？？？？？？」） |
| 8 | 乗務員Ｂコード | 未入力（'0'） | 乗務員Ａと同じ |
| ― | 発店コード | ― | 初回だけ（発店の所在地コードが未設定のとき）店所マスターを読み、店所名・所在地コードを取得する。店所区分（VETNGETA）が 1、または 4 で店所 0641 でなければ店所名に「？？？？？？」を表示する（チェック結果には反映しない）。支社区分は 4.3 |
| 9 | 発送日 月・日 | エラー | 数字。月 01～12、日 01～31 |
| 10 | 発送日 時・分 | エラー | 数字。時 00 なら分 01～59、時 01～23 なら分 00～59 |
| 11 | 最終卸店コード | エラー | 数字で店所マスターにあり、店所区分が 1 または 8 |
| 12 | 最終卸店着日 月・日 | エラー | 9 と同じ |
| 13 | 最終卸店着日 時・分 | エラー | 10 と同じ |
| 14 | 最終着店コード | エラー | 数字で店所マスターにあり、店所区分が 1 |
| 15 | 直配区分 | 0（未入力） | 0 または 1 |
| 16 | 直配着地コード | 直配区分が 1 ならエラー（直配区分もエラー）、それ以外は 0 | 数字で地名マスターにあり、入力区分（VCHIIKUB）が 1。直配区分が 1 なら扱店コード（VCHIATCD）を直配着地最寄りの店所にセット、1 以外ならエラー（直配区分もエラー） |
| 17 | フェリー会社 | 運行車区分 03・04・05 または運行形態 4 ならエラー、それ以外はOK | 数字で 9950000～9989999。運賃計算荷主マスター（１）（キー：コード＋'00000001'）にあり、運行車区分 03・04（ライナー）はフェリー会社区分（KDEXKBNN）が 2、それ以外（フェリー）は 1 |
| 18 | 連絡事項 | 未入力（'0'） | チェックなし |
| 19 | 携帯管理№ | OK | 1桁目（特定便区分）が S・F・R のいずれか、2～4桁目（特定便ＮＯ）が数字で 000 より大きい。特定便区分 R は発店が 0407・0405・0404・0326 のときだけ |
| 20 | 鮮魚保険 | 0（OK） | 数字 |

積載車番の標屯・車種：

| 条件 | 標屯 | 車種 |
|---|---|---|
| 運行車区分 03 | 13.8（以前は 10.0） | '1' |
| 運行車区分 04 | 5.0 | '5' |
| 上記以外で車両マスターにない、または車両現廃区分が 2 以上 | ― | 'X' |
| 車両車種 14・26（26 はリース） | 最大積載量÷1000 | 最大積載量 0：'X'、2000 以下：'2'、4000 以下：運行車区分 04 なら '5'、それ以外 '4'、4000 超：'T' |
| 車両車種 01／02／03／04／07 | 同上 | 'R'／'S'／'T'／'G'／'T' |
| 車両車種 91 | 13.8（運行車区分 04 なら 5.0） | '1'（運行車区分 04 なら '5'） |
| 車両車種 92 | 5.0 | '5' |
| 車両車種 その他 | 最大積載量÷1000 | 'X' |

### 4.3 関連チェック

減便（入力結果 '9'）のときは行わない。

| No | 条件 | チェック内容（満たさなければエラー） |
|---|---|---|
| 1 | 運行形態・運行車区分がOK | 運行車区分が 01 以外なら発行枚数は 1（エラーは発行枚数）。運行形態が 4（手当付きフェリー）なら運行車区分は 01・05、運行形態が 0・8 以外（3・5・6・7）なら運行車区分は 01（エラーは運行形態・運行車区分） |
| 2 | 運行形態・運行車区分がOK（積載車番・トレーラーがともにOKでない場合） | 車両の組合せ（下表）。満たさなければ積載車番・トレーラーをエラー。運行形態・運行車区分がエラーなら積載車番・トレーラーもエラー |
| 3 | 運行形態・運行車区分がOK | 運行車区分 01：乗務員Ａが必須。乗務員Ａと乗務員Ｂが同じ（999999 を除く）ならエラー。運行車区分 01 以外：乗務員Ａ・Ｂとも未入力でなければエラー。運行形態・運行車区分がエラーなら乗務員Ａ・Ｂもエラー |
| 4 | 発店 | 店所区分が 1、または 4 で店所 0641 のとき、既存の指令書（データ区分 'D'）は照会結果の発支社区分と店所の支社区分が同じであること（大阪第一 'B' と大阪第二 'C' は同一管内として可）。新規（'N'）は店所の支社区分をセット。最終卸店・最終着店も同様（最終卸店は店所区分 1・8、最終着店は 1） |
| 5 | 発送日・時分、最終卸店着日・時分がすべてOK | 日付の範囲（下表）。発送日・最終卸店着日をエラーにする。同じ日の場合は発送時分 ＜ 最終卸店着時分でなければ、4項目すべてエラー。OKなら出発年・最終卸店到着年をセット |
| 6 | 運行形態・運行車区分・フェリー会社がOK | フェリー会社は、運行車区分 03・04・05 または運行形態 4 のときだけ入力できる。それ以外で入力されていれば運行車区分・フェリー会社をエラー |
| 7 | 携帯管理№・鮮魚保険・運行車区分がOK | 特定便区分 R：運行車区分 01 なら鮮魚保険 0～3000、それ以外はエラー（鮮魚保険 0 なら携帯管理№だけ、それ以外は両方）。特定便区分 R 以外：鮮魚保険は 0。エラーは関連エラー（'3'） |

車両の組合せ（No.2）：

| 運行車区分 | OKの組合せ（積載車種・トレーラー車種） |
|---|---|
| 01（自社）・05（フェリー） | 積載が F・T・2・4 でトレーラーなし、積載 S＋トレーラー R、積載 G＋トレーラー F |
| 03（31FT） | 積載 '1' でトレーラーなし |
| 04（5Tｺﾝ） | 積載 '5' でトレーラーなし |
| その他 | エラー |

日付の範囲（No.5）：

| データ区分 | 発送日の範囲 | 発送日～最終卸店着日の日数 |
|---|---|---|
| 'D'（既存の指令書） | 計画の出発年月日（COMM_START_YMD）の 0～1日後 | 計画の所要日数（計画の出発～最終卸）が 0 なら 0～1日、それ以外は「計画の所要日数－1」～計画の所要日数。計画の所要日数が取れなければエラー |
| 'N'（新規） | 処理日付の ±20日以内（以前は ±7日） | 0～3日 |

年は基準日の年とし、基準日が12月で入力が1月なら翌年、基準日が1月で入力が12月なら前年とする（最終卸店着日は、発送日が12月で着日が1月なら翌年）。

### 4.4 次の指令書（2～4枚目）のチェック

減便のときは行わない。2枚目から順に 3枚分、次のようにする（以下「n枚目」）。

1. 発行枚数がOKで n ≦ 発行枚数なら「発行する」。発行枚数がエラーの場合も「発行する」とする。
2. 発行する場合、指令書№ を「1枚目の指令書ＮＯ の頭7桁＋n」にチェックデジットを付けて作る（LSO0020）。失敗したら 999999999。発行しない場合・発行枚数がエラーの場合は 0。
3. 発送店：2枚目は1枚目の最終着店、3・4枚目は前の枚の次回運行便出発店所（支社区分・店所名も引き継ぐ）。
4. 各項目をチェックする。発行しない枚は、未入力（運行形態は 0）でなければエラー。

| 項目 | 発行する場合のチェック（満たさなければエラー） |
|---|---|
| 出発日付 月・日 | 必須。数字で月 01～12、日 01～31 |
| 運行形態 | 未入力は 0（未入力扱い）。0・3・5・6・7・8 のいずれか。運行形態・運行車区分がOKなら、0・8 以外は運行車区分 01 のときだけ |
| 最終卸店コード | 必須。数字で店所マスターにあり、店所区分が 1・8（それ以外は大阪第一・第二の支社区分の読替えができなければエラー） |
| 最終卸店到着日 月・日 | 必須。出発日付と同じ |
| 次回運行便出発店所コード | 必須。数字で店所マスターにあり、店所区分が 1（それ以外は最終卸店と同じ） |
| 日付の関連 | 出発日付・最終卸店到着日がOKで、1枚目の日付（4.3 No.5）がOKのとき：出発日付は前の枚の最終卸店到着日（2枚目は1枚目の最終卸店着日）の 0～1日後、最終卸店到着日は出発日付の 0～2日後。年は1枚目の最終卸店到着年を基準に、12月→1月の年またぎを補正する |

### 4.5 入力結果・便コードの設定

1. 減便なら入力結果 '9'・入力区分 9、それ以外は入力結果 '1'・入力区分 1 にする。
2. 新規（データ区分 'N'）で最終卸店がOKなら、計画便コードを「'9'＋発店の頭2桁＋最終卸店の頭2桁＋'1'」にする。
3. 新規の場合、便名を組み立てる。
   - 便名（漢字）：「＊」＋発店の店所略名（先頭6バイト）＋「～」＋最終卸店の店所略名（先頭6バイト）。
   - 便名（カナ）：発店の店所名（カナ）先頭7桁＋'-'＋最終卸店の店所名（カナ）先頭7桁。
   - 次の指令書の便名も、発送店（前の枚の着店）から同様に組み立てる。
   - 店所 2303・2304 の店所略名は、それぞれ「名古南　支店」「名古西　支店」に置き換える。

### 4.6 表示の編集（DISPLAY_SUB_RTN_LVL1）と終了処理

1. 次の指令書（2～4枚目）：指令書№、発送店コード・名、出発日付、運行形態、最終卸店コード・名、最終卸店到着日、次回運行便出発店所コード・名を表示する。OK・未入力の項目は入力不可、エラーの項目は入力可・高輝度でカーソルを置く。
2. 1枚目の各項目：OK・未入力は入力不可、エラー（関連エラーを含む）は入力可・高輝度でカーソルを置く。0 の項目（車番・乗務員・直配着地・フェリー会社など）は空欄にする。発店は属性を変えない。
3. 計画便コード・便名を表示し（入力不可）、運行車区分名・運行車形態名を 2.2 のとおり表示する。
4. 全体のチェック結果（FLG(1～35) に '1' または '3' があればエラー）で、メッセージをセットする。

| 状態 | エラーコード | メッセージ | 次の処理 |
|---|---|---|---|
| エラー | ERR 1 | エラー項目あり，再入力して下さい。 | TSキューを書き、画面のデータ部分を送信して BU05 で待機 |
| OK（入力結果 '1'） | OK  2 | 確認ＯＫなら実行キーを押して下さい。修正なら、ＰＦ５ | TSキューを書き（失敗したら終了処理）、画面のデータ部分を送信して BU06 で待機 |
| OK（入力結果 '9'） | OK  2 | 減便になります。　修正なら、ＰＦ５ | 同上 |

---

## 5. メッセージ一覧

| No | エラーコード | メッセージ | 表示するとき |
|---|---|---|---|
| 1 | ERR 1 | エラー項目あり，再入力して下さい。 | 項目エラー・関連エラーがある |
| 2 | OK  2 | 確認ＯＫなら実行キーを押して下さい。修正なら、ＰＦ５ | チェックOK |
| 3 | OK  2 | 減便になります。　修正なら、ＰＦ５ | 指令書№に 999999999 を入力 |
| 4 | ― | 定便＝＞便コード・出発月日、又は指令ＮＯ　　増便＝＞ＰＦ１０ ／ ＰＦ１０を押して、指令書ＮＯを表示してください。 | PF2（初期画面に戻る） |

---

## 6. 画面遷移

```mermaid
flowchart LR
    BU04[BU04 照会] --> BU05[BU05<br/>本プログラム]
    BU05 -- 実行（エラー） --> BU05
    BU05 -- 実行（OK） --> BU06[BU06 更新]
    BU05 -- PF2 --> BU04
    BU05 -- PF9/PF11/その他 --> BU05
    BU05 -- PF3 --> PREV[一つ前の画面]
    BU05 -- PF4 --> MAIN[メインメニュー]
    BU05 -- CLEAR --> END[ELEPHAN 終了]
```

---

## 7. 補足・留意事項

1. **減便は画面から入力できない**：指令書№に 999999999 を入れると減便になる処理があるが、自社増便の画面では指令書№が入力不可（BU10400P・本プログラムとも）のため、実際には入力できない。
2. **発店のエラーがチェック結果に反映されない**：発店の店所区分が合わない、または支社区分が違う場合でも、店所名が「？？？？？？」になるだけで、エラーにならない。
3. **積載車番は実質必須**：積載車番が未入力だと車種が空白になり、車両の組合せ（4.3 No.2）でエラーになる。
4. **フェリー会社の関連チェックの書き方**：関連チェック（4.3 No.6）は条件を8つ並べているが、実質は「フェリー会社は運行車区分 03・04・05 または運行形態 4 のときだけ入力可」となる。
5. **特定便区分 R の扱い**：運行車区分が 01 以外で特定便区分 R の場合は、鮮魚保険の値に関係なくエラーになる。
6. **次の指令書の年**：3・4枚目の日付チェックで、年は1枚目の最終卸店到着年を基準にするため、2枚目以降で年をまたぐ場合に正しく判定されない可能性がある。また、1月→12月（前年）の補正はない。
7. **運行車区分 03 の表示名**：本プログラムは「31FT」と表示するが、BU10400P は「10Tｺﾝ」のまま。
8. **発行枚数がエラーのときの次の指令書**：発行枚数がエラーでも次の指令書は「発行する」扱いになり、全3枚分が必須チェックされる（指令書№は 0）。
9. **PF9 のテスト印刷**：印刷装置のチェックは行わず、BU04 でチェック済み（COMM_PRI_FLG ＝ '2'）の場合だけ印刷する。
10. **使っていない領域**：MAXL・MAX・YCNT・CNT_MAX・TANERR・END_MSG などのワークは使っていない。センター照会は行わない。
