# プログラム仕様書　BV13500P（他社直卸分発送伝票送付書（傭車便）　照会）

| 項目 | 内容 |
|---|---|
| システムID | BV |
| 参考資料 | ・現行ソース BV13500P.pl1<br/>・画面イメージ MPBV350.jpg（他社直卸分発送伝票送付書（傭車便））<br/>・現行の解析資料 BV0180_他社直卸出発入力（傭車.xlsx（シート「資産一覧」「MPBV350」「レコードフォーマット」「SRC_BV13500P」） |
| 項目名の出典 | 画面項目は解析資料のシート「MPBV350」の日本語名、送受信データ・マスターの項目はシート「レコードフォーマット」の日本語名称 |

---

## 1. 概要

| 項目 | 内容 |
|---|---|
| プログラムID | BV13500P（手続き名：BV13500） |
| プログラム名称 | 他社直卸分発送伝票送付書（傭車便）照会（ソースの冒頭コメントは「傭車発送入力（出発・直集）」） |
| 言語 | PL/I（CICS コマンドレベル） |
| 処理形態 | オンライン（CICS 疑似会話型） |
| 動作環境 | SV（DDP 側） |
| トランザクションID | BV35 |
| パターンID | PPOD150P（1987/05/01）、部品 PBOD200P、業務 BXHEAD30 |
| 使用画面（マップ） | MPBV350（他社直卸分発送伝票送付書（傭車便））、MPDM010（共通ヘッダ画面）、ELEPHAN（終了画面） |
| 次の処理 | 照会OK → BV36（BV13600P：項目の入力・登録） |
| センター照会 | SYSID 'CIC1'、プロセス 'B35V'（BV23500P）と APPC 会話 |
| 参照ファイル | VPSOHFU（ＤＤＰ 送付書マスター）、VPTENMS（ＤＤＰ 店所マスター）、VPUNKEI（ＤＤＰ 運賃計算荷主マスター（１））、VPKONAM（直卸他社の名称マスター）、VPERMSG（エラーメッセージファイル）。いずれも参照のみ |
| 呼出しモジュール | LSO0020（チェックデジットのチェック） |
| 一時記憶 | TSキュー（キュー名「端末ID＋トランザクションID（BV35）」、長さ 300） |

### 1.1 機能概要

傭車便で、他社直卸分の発送伝票送付書を入力する機能の最初の画面。指令書ＮＯ・送付書ＮＯ を入力して実行キーを押すと、送付書（またはその元になる指令書）を照会して内容を表示し、次の入力（BV36）に進む。

1. 指令書ＮＯ・送付書ＮＯ をチェックする。
2. DDP の送付書マスターを送付書ＮＯ で読む。
   - ある場合：傭車便か、利用運送でないか、指令書ＮＯ が合っているかを確認して内容を表示する。
   - ない場合（またはデータ区分が 0 の場合）：センターに照会し、送付書（またはその元の指令書）の内容を表示する。
3. 照会結果の区分（COMM_ITEM_DDP）に応じて、次の画面で入力できる項目を決め、TSキューに保存して BV36 で待機する。

```mermaid
flowchart LR
    MENU[出発到着入力選択<br/>メニュー] --> BV35[BV35<br/>本プログラム<br/>MPBV350]
    BV35 -- エラー --> BV35
    BV35 <-- APPC B35V --> CIC1[(センター CIC1<br/>BV23500P)]
    BV35 --> SOHFU[(VPSOHFU<br/>送付書マスター)]
    BV35 -- 照会OK --> BV36[BV36<br/>BV13600P 入力・登録]
```

---

## 2. 画面仕様（MPBV350：他社直卸分発送伝票送付書（傭車便））

### 2.1 画面レイアウト

```
MPBV350        他社直卸分発送伝票送付書（傭車便）               YY/MM/DD
                                                                HH:MM:SS
     指令書ＮＯ．     _________     運行便名（18）
     送付書ＮＯ．     ________      _

     発送年月日       __年 __月 __日 __時 __分
     発店・発地       ____ _____    発店所名（20）
     着店・着地       ____ _____    着店所名（20）

     傭車会社         _______       傭車会社名（20）
     傭車形態         _ 傭車形態名   傭車料金   _______ 円
     傭車車号         ____          標示屯数   __．_ トン
     ＯＷ区分         _ ＯＷ区分名
     直集軒数         __ 軒
     一車保険料       _______ 円

     直卸他社コード   _______       直卸他社名（14）
     （扱事業所）     ____          扱事業所名（14）

 実行：継続　１：補助　２：取消　３：終了　４：戻り
 エラーメッセージ（70）                                       エラーコード（5）
```

### 2.2 画面項目

I：入力、O：出力。「FLG」は BV13600P が使う TSキューのチェック結果の番号（2.4）。

| No | 項目ID | 項目名 | 属性・桁 | I/O | 本プログラムで表示する内容 |
|---|---|---|---|---|---|
| 1 | BV35011 | システム年月日 | 文字 8 | O | `YY/MM/DD` |
| 2 | BV35021 | システム時分秒 | 文字 8 | O | `HH:MM:SS` |
| 3 | BV35041 | 指令書NO | 数字 9 | I | 入力値（必須、FLG 1） |
| 4 | BV35042 | 運行便名 | 文字 18 | O | センターの運行便名 |
| 5 | BV35051 | 送付書NO | 数字 8 | I | 入力値（必須、FLG 2） |
| 6 | BV35052 | （名称なし） | 文字 1 | O | 使用しない |
| 7～11 | BV35071～BV35075 | 発送年・発送月・発送日・発送時・発送分 | 数字 2×5 | I | 送付書の発送年月日・出発時分、またはセンターの年月日・時分（FLG 3～7） |
| 12・13 | BV35081・BV35082 | 発店コード・発地コード | 数字 4・5 | I | 送付書の積店コード・発地コード、または端末の店所コード・所在地コード（先頭5桁）（FLG 8・9） |
| 14 | BV35083 | 発店所名 | 文字 20 | O | 店所略名（漢字） |
| 15・16 | BV35091・BV35092 | 着店コード・着地コード | 数字 4・5 | I | 送付書の卸店コード・着地コード（FLG 10・11） |
| 17 | BV35093 | 着店所名 | 文字 20 | O | 着店コードの店所略名（漢字） |
| 18 | BV35111 | 傭車会社コード | 数字 7 | I | 傭車会社コード |
| 19 | BV35112 | 傭車会社名 | 文字 20 | O | 運賃計算荷主マスター（１）の略名（KNTNRGNM） |
| 20 | BV35121 | 傭車形態 | 文字 1 | I | 傭車形態（2：屯当り、3：定額） |
| 21 | BV35122 | 傭車形態名 | 文字 6 | O | 2→「屯当」、3→「定額」、それ以外→空白。差額区分が '1' なら「利用」 |
| 22 | BV35123 | 傭車料金 | 数字 7 | I | 傭車料（定額傭車料） |
| 23 | BV35131 | 傭車番号（傭車車号） | 数字 4 | I | 車号（5桁）の下4桁 |
| 24・25 | BV35132・BV35133 | 標示屯数（整数）・標示屯数（小数） | 数字 2・1 | I | 標屯の整数部・小数第1位 |
| 26 | BV35141 | OW区分 | 数字 1 | I | ＯＷ区分 |
| 27 | BV35142 | OW区分名 | 文字 8 | O | 1→「Ｏマン」、2→「Ｗマン」、それ以外→空白 |
| 28 | BV35151 | 直集軒数 | 数字 2 | I | 送付書の直集軒数（FLG 12）。照会OK 後は常に入力不可 |
| 29 | BV35161 | 一車保険料 | 数字 7 | I | 一車保険料 |
| 30 | BV35181 | 直卸他社コード | 数字 7 | I | 直卸他社コード（FLG 13） |
| 31 | BV35182 | 直卸他社名 | 文字 14 | O | 直卸他社の名称マスターの名称 |
| 32 | BV35191 | 扱事業所コード | 数字 4 | I | 直卸他社の名称マスターの扱店 |
| 33 | BV35192 | 扱事業所名 | 文字 14 | O | 扱事業所コードの店所略名（漢字） |
| 34 | BV35231 | ＰＦキー説明 | 文字 76 | O | 固定表示 |
| 35 | BV35241 | エラーメッセージ | 文字 70 | O | 5章のメッセージ |
| 36 | BV35242 | エラーコード | 文字 5 | O | 5章のエラーコード |

本プログラムで入力をチェックするのは指令書NO・送付書NO だけ。そのほかの項目は照会結果の表示で、入力は次の BV13600P で行う。

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

| キー | 機能 | 処理概要 |
|---|---|---|
| 実行（Enter） | 継続 | 指令書ＮＯ・送付書ＮＯ をチェックし、照会する |
| PF1 | 補助 | 表示はあるが処理はない（その他のキーと同じく再表示） |
| PF2 | 取消 | 画面をクリアし、TSキューを削除して、共通ヘッダ画面と空の MPBV350 を表示する。BV35 で待機 |
| PF3 | 終了 | TSキューを削除し、戻り先画面のスタックから一つ前の画面に戻る（4.6） |
| PF4 | 戻り | TSキューを削除し、メインメニューに戻る（4.6） |
| CLEAR | 強制終了 | TSキューを削除し、終了画面（ELEPHAN）を表示して終了 |
| 上記以外 | 再表示 | 画面のデータ部分を再送信し、BV35 で待機 |

### 2.4 チェック結果の番号（FLG）

TSキューの FLG(1)～FLG(30) は、'0'：未入力、'1'：エラー、'2'：OK、'3'：関連エラー。FLGX は必須（'1'）かどうか。本プログラムでは 1・2 を使い、3 以降は BV13600P のために設定する。

| FLG | 項目 | FLG | 項目 |
|---|---|---|---|
| 1 | 指令書NO | 8・9 | 発店コード・発地コード |
| 2 | 送付書NO | 10・11 | 着店コード・着地コード |
| 3～5 | 発送年・月・日 | 12 | 直集軒数 |
| 6・7 | 発送時・分 | 13 | 直卸他社コード |

---

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

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

| 項目ID | 本プログラムでの用途 |
|---|---|
| CRT_BACK_KOSU／CRT_BACK_DATA(5) | 戻り先画面のスタック（トランザクションID・マップID、最大5件） |
| TSQ_ID・TSQ_LENGTH | TSキューの名前・長さ |
| COMM_TEN_CODE・COMM_TEN_NAME・COMM_TEN_ADRCD | 端末の店所コード・店所名・所在地コード（新規の送付書の発店・発地、他店所チェック） |
| COMM_SAGAK | 差額区分（センターまたは送付書マスターの値をセットし、後続に渡す） |
| COMM_ITEM_NO | 作業選択番号（センターに選択ＮＯ として送る） |
| COMM_ITEM_DDP | 照会結果の区分（3.4） |

### 3.2 センター照会（B35V：BV23500P）

| 項目 | 内容 |
|---|---|
| 接続先 | SYSID 'CIC1'、プロセス名 'B35V' |
| 送信（23バイト） | トランザクションID 'B35V'（4）＋ 指令書ＮＯ（B35VSRNO、9）・送付書ＮＯ（B35VSFNO、8）・選択ＮＯ（B35VSELN、2：作業選択番号） |
| 受信（150バイト） | エラーフラグ（SESS_ERR_FLG、1）＋エラーコード（SESS_ERR_CODE、4）＋ CEDPBV35（他社直卸分発送伝票送付書（傭）［ＣＤ］） |

受信データ（CEDPBV35）のうち、本プログラムで使う項目は次のとおり。

| 項目ID | 項目名 | 用途 |
|---|---|---|
| BV35SYMD・BV35DHMM | 年月日・時分 | 発送年月日・発送時分（時分は送付書ありの場合だけ） |
| BV35BNKB | 運行車区分 | 自社便のチェック、TSキューに保存 |
| BV35STNC | 指令店所 | TSキューに保存 |
| BV35SYAB | 積載社番 | 傭車番号（下4桁） |
| BV35YSCD・BV35KETA・BV35YSRY | 傭車コード・傭車形態・傭車料 | 傭車会社・傭車形態・傭車料金 |
| BV35HYTN・BV35OWKB・BV35HKRY | 標屯・ＯＷ区分・一車保険料 | 標示屯数・ＯＷ区分・一車保険料 |
| BV35BINM | 運行便名 | 運行便名 |
| BV35TCYD | 到着予定年月日 | TSキューに保存 |
| BV35SHAT | 送付書発店 | 他店所のチェック |
| BV35JONC | 直卸他社コード | 直卸他社コード（送付書ありの場合） |
| BV35SAGK | 差額区分 | 利用運送の表示、通信領域・TSキューに保存 |

使っていない項目：指令着店（BV35SRCT）、セミトレ社番・積載社番１・２など（BV35SEMI・BV35SYB1・BV35SEM1・BV35SYB2・BV35SEM2）、送付書発地・着店・着地（BV35SHCH・BV35SCAT・BV35SCKT）、積区分（BV35TMKB）、区域区分（BV35KUIK）、マスター区分（BV35MKBN）。

### 3.3 送付書マスター（VPSOHFU：ＤＤＰ 送付書マスター）

キーは発送伝票送付書ＮＯ（KSHSSFNO）。本プログラムで使う項目は次のとおり。

| 項目ID | 項目名 | 用途 |
|---|---|---|
| KSHSSRNO | 指令書ＮＯ | 入力した指令書ＮＯ との一致チェック |
| KSHSDKB1 | テ゛ータ区分 | 0 ならセンターに照会する |
| KSHSSHKB | 運行車区分 | 02（傭車）以外はエラー |
| KSHSSAGK | 差額区分 | '1'（利用運送）はエラー |
| KSHSHYMD・KSHSHTIM | 発送年月日・出発時分 | 発送年月日・時分 |
| KSHSTUTN・KSHSHTCD | 積店コート゛・発地コード | 発店コード・発地コード |
| KSHSORTN・KSHSCKCD | 卸店コート゛・着地コード | 着店コード・着地コード |
| KSHSYSCD・KSHSKETA・KSHSYORO | 傭車会社コート゛・傭車形態・定額傭車料 | 傭車会社・傭車形態・傭車料金 |
| KSHSSHGO・KSHSHYTN・KSHSOWKB | 車号・標屯・ｏ・ｗ区分 | 傭車番号・標示屯数・ＯＷ区分 |
| KSHSJKKN・KSHSSHHO | 直集軒数・一車保険料 | 直集軒数・一車保険料 |
| KSHSJONC | 直卸他社コード | 直卸他社コード（レコードの136～139バイト目が空白でなければ） |
| KSHSYYMD | 到着予定年月日 | TSキューに保存 |

### 3.4 照会結果の区分（COMM_ITEM_DDP）

| 区分 | 意味 | セットする箇所 |
|---|---|---|
| '1' | DDP の送付書マスターにあり、指令書ＮＯ も一致 | 送付書マスターの処理（4.4） |
| '2' | DDP の送付書マスターになく、センターに照会してOK（新規の送付書・センターに送付書ありの両方。4.5・7章 1） | 照会処理（4.3） |
| '5' | DDP の送付書マスターにあるがデータ区分 0 で、センターでは新規 | 送付書マスターの処理（4.4）・センター照会（4.5） |
| '6' | DDP の送付書マスターにあるがデータ区分 0 で、センターに送付書あり | センター照会（4.5） |

### 3.5 TSキュー（CHK_DSP_WORK：300バイト）

| 項目ID | 内容 |
|---|---|
| LOOP_FLG・OKFLG | 初期化済み（'1'）・チェック結果（'2'：OK、それ以外：エラー） |
| FLG(30)・FLGX(30) | チェック結果・必須の区分（2.4） |
| BV35041B～BV35191B | 画面項目の保存域（指令書ＮＯ、送付書ＮＯ、運行便名、発送年月日時分、発店・発地・発店所名、着店・着地・着店所名、傭車会社、傭車形態・傭車形態名、傭車料金、傭車番号、標示屯数、ＯＷ区分・ＯＷ区分名、直集軒数、一車保険料、直卸他社コード、扱事業所コード） |
| TS35SYMD・TS35STNC・TS35BNKB・TS35HYTN・TS35TCYD | 照会結果の年月日・指令店所（積店）・運行車区分・標屯・到着予定年月日 |
| BUYUSOK | 輸送粁程（本プログラムでは 0） |
| WK_TEIKBN | 項目を入力したかの区分（本プログラムでは '0'） |
| TS35SAGK | 差額区分 |

---

## 4. 処理仕様

### 4.1 処理の流れ

```mermaid
flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[TSキュー削除<br/>終了画面]
    AID -- PFキー --> PF[ファンクションキー処理 4.6]
    AID -- 実行 --> RCV[MPBV350 を受信<br/>TSキューを読む]
    RCV -- なし --> INI[初期化 4.2]
    RCV -- あり --> DEL[TSキュー削除]
    INI --> CHK
    DEL --> CHK[指令書ＮＯ・送付書ＮＯ のチェック 4.2]
    CHK -- エラー --> ERR[TSキュー保存<br/>エラー表示] --> W35([BV35 で待機])
    CHK -- OK --> SO{送付書マスター}
    SO -- あり --> SOC[送付書マスターの処理 4.4]
    SO -- なし --> INQ[センター照会 4.5]
    SO -- 読込みエラー --> ERR
    SOC -- データ区分 0 --> INQ
    SOC -- エラー --> ERR
    INQ -- エラー --> ERR
    SOC -- OK --> OK[照会OK の処理 4.7]
    INQ -- OK --> OK
    OK --> W36([BV36 で待機])
```

### 4.2 初期化と入力チェック

1. 画面を受信し、TSキュー（端末ID＋'BV35'）を読む。なければ初期化する。あれば削除する。
   - 初期化：FLG(1)～FLG(5) を '1'、それ以外を '0'。FLGX(1)・FLGX(2) を '1'（必須）。画面項目の保存域を 0 または空白（傭車形態は '0'）、WK_TEIKBN を '0' にする。
2. 指令書ＮＯ・送付書ＮＯ をチェックする。チェック結果が '2'（OK済み）の項目はチェックしない。入力がなければ、必須なのでエラー（FLG '1'）。

| FLG | 項目 | チェック内容（満たさなければエラー） |
|---|---|---|
| 1 | 指令書NO | 数字で 0 でなく、9桁入力されている。チェックデジットが正しい（LSO0020、区分 '07'、タイプ 'C'） |
| 2 | 送付書NO | 数字で 0 でなく、8桁入力されている。チェックデジットが正しい（LSO0020、10000000 未満は区分 '10'、以上は区分 '07'、タイプ 'C'）。番号が 8000000～9999999 または 70000000～89999999 の範囲（傭車便のＮＯ帯）でなければＮＯ帯エラー |

3. どちらかがエラーなら全体エラー（OKFLG '1'）。

### 4.3 エラー時・照会前の表示（DISPLAY_SUB_RTN_LVL1）

1. 指令書NO・送付書NO：OK・未入力なら入力不可（自動スキップ）、エラーなら入力可・赤でカーソルを置く。
2. メッセージ：エラーならＮＯ帯エラーのとき「ERR 2」「ＮＯ帯エラー，再入力して下さい」、それ以外は「ERR 1」「エラー項目あり，再入力して下さい」。OK なら「OK  2」でメッセージは空白。
3. エラーの場合は、TSキューを書き、メッセージ・エラーコードを赤にして、画面を消去して送信し（カーソル指定）、BV35 で待機する。
4. OK の場合は、送付書マスターを送付書ＮＯ で読み（4.4）、なければセンターに照会する（4.5）。

| 送付書マスターの読込み結果 | 処理 |
|---|---|
| あり | 4.4 |
| なし | センターに照会する（4.5）。OK なら照会結果の区分を '2' にする |
| 上記以外（読込みエラー） | 指令書NO・送付書NO をエラーにし、全体エラーとして 3 の表示をやり直す（メッセージは「ERR 1」。7章 5） |

照会でエラーになった場合は、指令書NO・送付書NO のチェック結果をエラー（FLG・FLGX '1'）にし、入力可・赤でカーソルを置いて、メッセージ（5章）を表示する。TSキューを書いて BV35 で待機する。

### 4.4 送付書マスターの処理（SFMST_RTN）

送付書マスターにある場合は、次の順に判定する。

| 順 | 条件 | 処理 |
|---|---|---|
| 1 | 運行車区分（KSHSSHKB）≠ 02 | エラー「傭車便でありません。確認せよ。」 |
| 2 | 差額区分（KSHSSAGK）＝ '1' | エラー「この送付書№は利用運送です。直集入力して下さい。」、エラーコード 'SAGK' |
| 3 | テ゛ータ区分（KSHSDKB1）＝ 0 | 照会結果の区分を '5' にして、センターに照会する（4.5） |
| 4 | 指令書ＮＯ が送付書の指令書ＮＯ（KSHSSRNO）と同じ | 送付書の内容を表示する（下表）。照会結果の区分を '1' にする |
| 5 | 指令書ＮＯ が違う | エラー。エラーコード 'BU04' でエラーメッセージファイルを読み、メッセージ内容を表示する |

送付書の内容の表示（区分 '1'）：

| 画面項目 | 表示する値 |
|---|---|
| 発送年・月・日、発送時・分 | 発送年月日（KSHSHYMD）、出発時分（KSHSHTIM） |
| 発店コード・発地コード、発店所名 | 積店コート゛（KSHSTUTN）・発地コード（KSHSHTCD）、発店コードの店所マスターの店所略名（漢字） |
| 着店コード・着地コード、着店所名 | 卸店コート゛（KSHSORTN）・着地コード（KSHSCKCD）、着店コードの店所マスターの店所略名（漢字） |
| 傭車会社コード | 傭車会社コート゛（KSHSYSCD） |
| 傭車形態・傭車形態名 | 傭車形態（KSHSKETA）、2→「屯当」、3→「定額」、それ以外→空白 |
| 傭車料金・傭車番号 | 定額傭車料（KSHSYORO）・車号（KSHSSHGO）の下4桁 |
| 標示屯数・ＯＷ区分・ＯＷ区分名 | 標屯（KSHSHYTN）、ｏ・ｗ区分（KSHSOWKB）、1→「Ｏマン」、2→「Ｗマン」 |
| 直集軒数・一車保険料 | 直集軒数（KSHSJKKN）・一車保険料（KSHSSHHO） |
| 直卸他社コード・直卸他社名・扱事業所コード・扱事業所名 | 直卸他社コードがあれば、直卸他社の名称マスター（VPKONAM）を読み、名称・扱店と、扱店の店所略名（漢字）を表示する |

あわせて、差額区分を通信領域（COMM_SAGAK）と TSキューに、発送年月日・積店・標屯・運行車区分・到着予定年月日を TSキューに保存する。傭車会社名・運行便名は表示しない。

### 4.5 センター照会（INQUIRE_SUB_RTN）

1. センター（CIC1 の B35V）に接続し、指令書ＮＯ・送付書ＮＯ・選択ＮＯ（作業選択番号）を送信して、結果を受信する（3.2）。終了データを送って会話を終える。
2. 通信エラーは次のとおり（エラーフラグを '2' にする）。回線混雑（ASYSB）は、メッセージを赤で表示して画面を受信し、送信をやり直す。

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

3. 受信結果を判定する。

| 条件 | 処理 |
|---|---|
| エラーフラグが '0'・'3' 以外 | エラー。エラーコードがあればエラーメッセージファイルを「エラーコード＋'000'」で読み、メッセージ内容を表示する（エラーコードの欄は「エラーフラグ＋エラーコード」）。エラーコードがなくエラーフラグが '4' なら「この依頼書№は利用運送です。直集入力して下さい。」、エラーコード 'SAGK' |
| 送付書発店（BV35SHAT）が端末の店所でも 0 でもない | エラー「この送付書は他店所で入力されています」 |
| 運行車区分（BV35BNKB）が 01・03・04・05（自社便） | エラー「この指令書は自社便で入力されています」（1989/07/28 追加） |
| エラーフラグ ＝ '3'（新規の送付書） | 下表「新規」の内容を表示する。照会結果の区分を '2'（区分が '5' ならそのまま） |
| エラーフラグ ＝ '0'（センターに送付書あり） | 下表「送付書あり」の内容を表示する。照会結果の区分を '3'（区分が '5' なら '6'） |

| 画面項目 | 新規（'3'） | 送付書あり（'0'） |
|---|---|---|
| 運行便名 | 運行便名（BV35BINM） | 同左 |
| 発送年・月・日 | 年月日（BV35SYMD） | 同左 |
| 発送時・分 | （表示しない） | 時分（BV35DHMM） |
| 発店コード・発店所名 | 端末の店所コード・店所名（COMM_TEN_NAME） | 端末の店所コード、店所マスターの店所略名（漢字） |
| 発地コード | 端末の所在地コード（先頭5桁） | 同左 |
| 着店コード・着地コード | （表示しない） | （表示しない） |
| 傭車会社コード・傭車会社名 | 傭車コード（BV35YSCD）、運賃計算荷主マスター（１）の略名 | 同左 |
| 傭車形態・傭車形態名 | 傭車形態（BV35KETA）、2→「屯当」、3→「定額」 | 同左 |
| 傭車料金・傭車番号 | 傭車料（BV35YSRY）・積載社番（BV35SYAB）の下4桁 | 同左 |
| 標示屯数・ＯＷ区分・ＯＷ区分名 | 標屯（BV35HYTN）・ＯＷ区分（BV35OWKB）、1→「Ｏマン」、2→「Ｗマン」 | 同左 |
| 一車保険料 | 一車保険料（BV35HKRY） | 同左 |
| 直卸他社コード・名称、扱事業所コード・名称 | 直卸他社コード（BV35JONC）が 0 でなければ、VPKONAM の名称・扱店と、扱店の店所略名（漢字） | 同左 |

あわせて、差額区分（BV35SAGK）を通信領域と TSキューに保存し、差額区分が '1' なら傭車形態名を「利用」にする。年月日・指令店所・標屯・運行車区分・到着予定年月日を TSキューに保存する。

4. DDP の送付書マスターになかった場合（4.3）は、照会OK の後で照会結果の区分を '2' にする（センターに送付書があり '3' にした場合も '2' になる。7章 1）。

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

| キー・条件 | 処理 |
|---|---|
| PF2 | 画面をクリアし、TSキューを削除して、共通ヘッダ画面（MPDM010）にシステム日付・時刻をセットして送信し、空の MPBV350 を表示する。BV35 で待機 |
| PF3 | TSキューを削除し、戻り先画面のスタックから一つ前の画面を決める。スタックの最上位が MPBV350 以外ならその画面、MPBV350 ならその一つ下の画面（スタックが空、または下がなければ終了画面）。共通ヘッダ画面に日時をセットして送信し、戻り先の画面をデータなしで送信して、そのトランザクションで待機 |
| PF4 | TSキューを削除し、スタックの1件目が MPBV350 以外ならその画面（スタックを全件消去）、それ以外（スタックが空を含む）は終了画面 |
| CLEAR | TSキューを削除し、終了画面（ELEPHAN）を表示して終了 |
| その他のキー（PF1 を含む） | 画面のデータ部分を再送信し、BV35 で待機 |
| 画面データなし・レコードなし・ファイルの終わり | TSキューの読込みから処理を続ける（4.2） |

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

直集軒数を入力不可にし、照会結果の区分に応じて BV36 で入力できる項目（黄色で入力可）とチェック結果を設定する。傭車会社・傭車形態・傭車料金・傭車番号・標示屯数・ＯＷ区分・一車保険料は、どの区分でも入力できない。

| 区分 | 入力可にする項目（BV36 で入力） | チェック結果をOKにする項目 | ほかの設定 |
|---|---|---|---|
| '1' | 発送時・分（カーソル）、着店・着地、直卸他社コード。発送年月日は入力不可 | 年・月・日、発店・発地 | TSキューの到着予定年月日・運行車区分に送付書マスターの値をセット |
| '2'・'5' | 発送年月日・時分（カーソルは時）、着店・着地、直卸他社コード | 発店・発地 | 直卸他社コードを必須（未チェック） |
| '3'・'6' | 直卸他社コード（ほかは入力不可） | 発店・発地 | 直卸他社コードを必須（未チェック） |

その後、TSキューに書き、戻り先画面のスタックの最上位が「MPBV350／BV35」でなければ積み（最大5件）、メッセージ・エラーコード（「OK  2」）をターコイズにして画面を送信し（画面は消去しない、カーソル指定）、BV36 で待機する。

### 4.8 システム日付・時刻の設定（TIMESET_SUB_RTN）

現在の日時を `YY/MM/DD`・`HH:MM:SS` に編集して日付・時刻欄にセットする（入力不可・変更フラグオン）。

---

## 5. メッセージ一覧

| No | エラーコード | メッセージ | 表示するとき |
|---|---|---|---|
| 1 | ERR 1 | エラー項目あり，再入力して下さい | 指令書ＮＯ・送付書ＮＯ のエラー、送付書マスターの読込みエラー |
| 2 | ERR 2 | ＮＯ帯エラー，再入力して下さい | 送付書ＮＯ がＮＯ帯の範囲外 |
| 3 | OK  2 | （空白） | 照会OK |
| 4 | ― | 傭車便でありません。確認せよ。 | DDP の送付書が傭車便でない |
| 5 | SAGK | この送付書№は利用運送です。直集入力して下さい。 | DDP の送付書の差額区分が '1' |
| 6 | SAGK | この依頼書№は利用運送です。直集入力して下さい。 | センターのエラーフラグが '4'（エラーコードなし） |
| 7 | BU04 など | エラーメッセージファイルのメッセージ内容 | DDP の送付書と指令書ＮＯ が違う（BU04）、センターのエラー（エラーコードあり） |
| 8 | ― | この送付書は他店所で入力されています | センターの送付書の発店が他店 |
| 9 | ― | この指令書は自社便で入力されています | センターの運行車区分が自社便（01・03・04・05） |
| 10 | ASYSB ほか | 4.5 の通信エラーのメッセージ | センター照会の通信エラー |

---

## 6. 画面遷移

```mermaid
flowchart LR
    MENU[メニュー] --> BV35[BV35<br/>本プログラム]
    BV35 -- 実行（エラー） --> BV35
    BV35 -- 実行（照会OK） --> BV36[BV36<br/>BV13600P]
    BV35 -- PF2 --> BV35
    BV35 -- PF3 --> PREV[一つ前の画面]
    BV35 -- PF4 --> MAIN[メインメニュー]
    BV35 -- CLEAR --> END[ELEPHAN 終了]
```

---

## 7. 補足・留意事項

1. **センターに送付書がある場合の区分**：DDP の送付書マスターにない場合、センター照会の後に照会結果の区分を無条件に '2' にしている（4.5 の 4）。このため、センターに送付書がある場合（エラーフラグ '0'）も区分 '2'（新規）となり、BV36 で発送年月日・時分・着店・着地が入力可になる。照会の中で '3' をセットしても、最終的に '3' が残ることはない。一方、DDP にデータ区分 0 の送付書がある場合（区分 '5'）は、センターに送付書があれば '6' になる。
2. **送付書ありでも着店・着地を表示しない**：センターに送付書がある場合（エラーフラグ '0'）でも、送付書着店・着地・直集軒数・積区分を画面に表示していない（受信データにはある）。発店も、送付書の発店ではなく端末の店所を表示する。
3. **自社便の判定**：センターの運行車区分が 01・03・04・05 の場合だけエラーにする。02（傭車）以外でも、00 や 06 以上ならエラーにならない。DDP の送付書マスターでは「02 以外」をエラーにしており、判定の仕方が違う。
4. **送付書マスターの判定順**：運行車区分・差額区分のチェックは、データ区分のチェックより前に行う。データ区分 0 の送付書でも、運行車区分が 02 以外ならエラーになる。
5. **読込みエラー時の色の設定**：送付書マスターの読込みエラー（なし以外）の場合、指令書NO・送付書NO の色ではなく属性に赤（DFHRED）の値をセットしている（ソースの記述誤りと思われる）。その後の表示処理で属性は設定し直される。
6. **BU04 のエラーコードの表示**：送付書マスターの指令書ＮＯ が違う場合、エラーコード欄には「エラーフラグ＋'BU04'」を表示するが、このときセンターに照会していないため、エラーフラグは前の値（未設定）のままである。
7. **他店所・自社便のエラーコード**：No.8・9 のメッセージのときはエラーコードをセットしないため、エラーコード欄は空白（または前の値）になる。
8. **ＮＯ帯エラーの判定**：ＮＯ帯エラーの判定に使う作業域（NO_CHK）は、送付書ＮＯ のチェックを行ったときだけセットされる。送付書ＮＯ がOK済みで指令書ＮＯ だけエラーの場合などは、前回の値によって「ＮＯ帯エラー」が表示される可能性がある。
9. **センターのエラーフラグ '4'**：エラーコードが空白の場合だけ「依頼書№は利用運送」のメッセージになる。エラーコードがあれば、エラーメッセージファイルのメッセージが優先される。
10. **発店所名の保存**：新規の送付書（センターのエラーフラグ '3'）では、発店所名を画面にだけセットし、TSキューの保存域（BV35083B）にはセットしていない。
11. **運行便名の表示**：DDP の送付書マスターから表示する場合（区分 '1'）は、運行便名・傭車会社名を表示しない。
12. **PF1（補助）**：ＰＦキー説明に「１：補助」とあるが、処理はなく再表示になる。
