プログラム仕様書 BU10600P(配車入力(自社増便・傭車増/定便)確認・更新)
| 項目 |
内容 |
| システムID |
BU |
| 参考資料 |
・現行ソース BU10600P.pl1 ・画面イメージ MPBU040.jpg(配車入力(増便・傭車)) ・現行の解析資料 BU0040_配車入力(自社増).xlsx(シート「MPBU040」「資産一覧」「レコードフォーマット」「SRC_BU10600P」) |
| 項目名の出典 |
画面項目は解析資料のシート「MPBU040」、送受信データの項目はシート「レコードフォーマット」の日本語名称 |
1. 概要
| 項目 |
内容 |
| プログラムID |
BU10600P(手続き名:BU10600) |
| プログラム名称 |
配車入力(傭車 増、定便)確認(ソースの冒頭コメント。自社増便でも使う) |
| 言語 |
PL/I(CICS コマンドレベル) |
| 処理形態 |
オンライン(CICS 疑似会話型) |
| 動作環境 |
SV(DDP 側) |
| トランザクションID |
BU06 |
| パターンID |
PPOD255P(1987/05/01)、業務 BUSHRE30、部品 PBOD020P |
| 使用画面(マップ) |
MPBU040(配車入力(増便・傭車))、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面) |
| 前の処理 |
BU05(BU10500P:自社増便の検証)、BV05(傭車の検証)。確認メッセージを表示して BU06 で待機している |
| 次の処理 |
更新後は BU06 で待機し、次の実行キーで初期画面(BU04)に戻る。PF5(修正)は BU05/BV05 |
| センター照会 |
あり。APPC で CIC1 のトランザクション B06U に更新を依頼(BU20600P) |
| 参照・更新ファイル |
なし(更新はセンター側) |
| 起動する印刷 |
BV13(BV11300P:自社の指令書)、BV14(BV11400P:傭車の指令書) |
| 一時記憶 |
TSキュー(通信領域の TSQ_ID・TSQ_LENGTH。「端末ID+'BU04'」、724バイト)。印刷用 TSキュー(端末ID+現在の分秒) |
1.1 機能概要
検証が終わった配車内容を、実行キーでセンターに送って更新し、指令書を印刷する。
- TSキューから検証済みのデータを読み、センター(B06U)に送信して更新結果を受け取る。
- 更新結果(入力結果)をメッセージで表示する。
- 印刷装置が指定されていれば、更新できた指令書を印刷する(自社は枝番の印刷を指定すると 2~4枚目も)。
- PF5 で修正に戻れる(検証画面 BU05・BV05)。
flowchart LR
BU05[BU05/BV05<br/>検証] -- OK --> BU06[BU06<br/>本プログラム]
BU06 <-- APPC B06U --> CIC1[(センター CIC1<br/>BU20600P)]
BU06 -- 印刷 --> PRT[BV13/BV14<br/>指令書印刷]
BU06 -- PF5 --> BU05
BU06 -- 更新後の実行 --> BU04[BU04 初期画面]
2. 画面仕様(MPBU040)
画面レイアウト・項目は BU10400P_仕様書.md の 2.1・2.2 と同じ。本プログラムでは画面の入力値は使わず、メッセージ欄(BU04241:エラーメッセージ)とエラーコード欄(BU04242)だけを書き換える。
2.1 ファンクションキー
| キー |
機能 |
処理概要 |
| 実行(Enter) |
更新 |
センターに更新を依頼する(4.2) |
| PF2 |
取消 |
TSキューを削除し、BU10400P と同じ初期画面を表示して BU04 に戻る |
| PF3 |
終了 |
印刷装置を解放し(COMM_PRI_FLG = '2' のとき)、一つ前の画面に戻る |
| PF4 |
戻り |
印刷装置を解放し、メインメニューに戻る |
| PF5 |
修正 |
入力項目を入力可にして検証画面に戻る(4.4) |
| PF9 |
テスト印刷 |
印刷装置がOKならテスト印刷を出す(BU10500P と同じ)。BU06 で待機 |
| PF11 |
印刷装置リセット |
BU10400P と同じ。BU06 で待機 |
| CLEAR |
強制終了 |
印刷装置を解放し、TSキューを削除して終了画面を表示 |
| 上記以外 |
再表示 |
画面のデータ部分を再送信し、BU06 で待機 |
3. インターフェース
3.1 通信領域(COMMAREA:256バイト)
| 項目ID |
本プログラムでの用途 |
| TSQ_ID・TSQ_LENGTH |
検証済みデータの TSキュー名・長さ |
| COMM_TRM_CODE・COMM_TEN_CODE・COMM_TEN_NAME・COMM_RPOC_YMD |
端末ID・店所・処理日付(初期画面・印刷) |
| COMM_INQ_KBN |
照会区分。'10':傭車、それ以外:自社増便 |
| COMM_PRI_FLG・COMM_PRINTER_ID |
印刷装置のチェック結果('2':OK)・印刷装置ID |
| COMM_EDA |
枝番の印刷('1':あり) |
| COMM_PF5 |
PF5(修正)を押したら '1' |
| CRT_BACK_KOSU/CRT_BACK_DATA(5) |
戻り先画面のスタック(PF3・PF4) |
3.2 TSキュー(CHK_DSP_WORK:724バイト)
BU10500P と同じ形式。後半 419バイト(SEND_DATA)を CEDPBU04(配車入力照会後、検証後データ(増、傭))としてそのままセンターに送る。
3.3 センター送受信
| 項目 |
内容 |
| 接続先 |
SYSID 'CIC1'、プロセス名 'B06U' |
| 送信(419バイト) |
TSキューの SEND_DATA(トランザクションID・エラーフラグ・エラーコード+CEDPBU04) |
| 受信(54バイト) |
トランザクションID(4)+エラーフラグ(1)+エラーコード(4)+トン単価(10進5桁)+CEDPBU06(配車入力(傭・増)更新後データ セ=>D) |
受信データ(CEDPBU06)のうち本プログラムで使うもの:
| 項目ID |
項目名 |
用途 |
| DNKNYUK |
入力結果 |
更新結果のメッセージ(4.2) |
| UNQSZTC |
所属店 |
傭車の指令書印刷の所属店 |
| UNQDTIM |
道路情報 日時(XX日XX時) |
自社の指令書印刷 |
| UNQDONO・UNQDIN1~3 |
道路 No・道路情報コード1~3 |
自社の指令書印刷 |
| SESS_TONTAN |
トン単価 |
傭車形態 2(トン当たり)の傭車料として印刷 |
4. 処理仕様
4.1 処理の流れ
flowchart TD
S([開始]) --> AID{押されたキー}
AID -- CLEAR --> CLR[印刷装置解放・TSキュー削除<br/>終了画面]
AID -- PFキー --> PF[ファンクションキー処理 2.1・4.4]
AID -- 実行 --> RCV[MPBU040 を受信<br/>TSキューを読む]
RCV -- TSキューなし --> INI[初期画面を表示<br/>Q ERR] --> W04([BU04 で待機])
RCV -- あり --> DEL[TSキューを削除]
DEL --> SND[センターに更新を依頼 4.2]
SND -- 通信エラー・更新エラー --> ERR[TSキューを書き戻し<br/>エラー表示] --> W06([BU06 で待機])
SND -- OK --> PRT[指令書の印刷 4.3]
PRT --> MSG[結果メッセージ表示] --> W06
4.2 更新(実行キー)
- 画面を受信し、TSキューを読む。
- 読めない場合(更新が終わった後の実行キーなど):BU10400P の PF2 と同じ初期画面(照会区分に応じた見出し・メッセージ、印刷装置・枝番の印刷は前回の値)を表示し、エラーコードに「Q ERR」をセットして BU04 で待機する。
- 読めた場合:TSキューを削除する。
- センター(CIC1 の B06U)に接続し、TSキューの SEND_DATA(419バイト)を送信して、結果(54バイト)を受信する。受信後に終了を送信してセッションを解放する。
- 通信エラーの場合は、BU10400P の 4.5 と同じエラーコード(ASYSB・ASYSI・A9999・CTERM・C9999・STERM・S9999・RTERM・RLENG・R9999)をセットし、メッセージを「セッションエラー」+次の文言にする。回線混雑(ASYSB)は、メッセージを表示して画面を受信し、送信をやり直す。
| エラーフラグ |
メッセージ(後半) |
| 7 |
回線不通の可能性あり センターに連絡 !! |
| 8 |
サポート外ERROR センターに連絡 !! |
| 9 |
LENGERR |
- 正常に受信した場合は、入力結果(DNKNYUK)でメッセージを決める。'2'~'8' はエラー。
| 入力結果 |
メッセージ |
判定 |
| '1' |
更新OK!! |
OK(印刷する) |
| '9' |
減便になりました。 |
OK |
| '5' |
更新済、次の枝番無し |
エラー(印刷する) |
| '4' |
料金マスターに無し |
エラー |
| '6' |
指令書マスターに無し |
エラー |
| '7' |
すでに入力済でした。 |
エラー |
| '8' |
マスターI/Oエラー |
エラー |
| 'A' |
携帯番号無し? |
OK |
| '0' |
(空白) |
OK |
| その他 |
?????? |
OK |
- エラーの場合:TSキューを書き戻し(書けなければ終了処理)、メッセージ・エラーコードをセットして画面のデータ部分を送信し、BU06 で待機する(実行キーで再度更新できる)。
- OKの場合:印刷(4.3)をしてから、メッセージを反転表示でセットして画面のデータ部分を送信し、BU06 で待機する。TSキューは削除したままなので、次に実行キーを押すと初期画面に戻る。
4.3 指令書の印刷
印刷装置がOK(COMM_PRI_FLG = '2')で、入力結果が '1' または '5' の場合に行う。印刷情報(店所コード、端末ID、印刷装置ID、処理日付、TSキュー名=端末ID+現在の分秒)を作り、印刷データを TSキューに書いて、印刷トランザクションを印刷装置で起動する。
自社増便(照会区分 '10' 以外):BVPRIN04 形式、1件 375バイト、BV13 を起動(印刷区分 '4')。
| 印刷データ |
1枚目 |
2~4枚目(枝番の印刷 '1' のとき、発行枚数まで) |
| 指令書NO |
指令書NO |
次の運行の指令書NO |
| 発行枚数・運行車区分 |
指令書発行枚数・運行車区分 |
同左 |
| 計画便コード |
計画便コード |
計画便コードの6桁目を枝番(2~4)にしたもの |
| 便名 |
便名(漢字) |
次の指令書の便名(漢字) |
| 運行形態・入力区分 |
運行形態区分・入力区分 |
次の指令書の運行形態区分・0 |
| 発店・出発日時 |
発店・出発 年月日時分 |
次の指令書の発店・出発 年月日(時分は 0) |
| 最終卸店・次運行発店 |
最終卸店・次運行発店 |
1枚目の最終卸店・次の指令書の次運行発店 |
| 最終卸店到着日時 |
年月日。時分は最終卸店と次運行発店が同じときだけ印刷(違えば 0) |
次の指令書の最終卸店到着 年月日(時分は 0) |
| 積載車番・トレーラー・乗務員A・B |
1枚目の値 |
1枚目と同じ |
| 直配区分・直配着地コード・連絡事項・特定便区分・特定便NO・一車保険料(鮮魚) |
1枚目の値 |
印刷しない |
| 所属店 |
発店 |
1枚目の発店 |
| 車種 |
積載車種 T→1、S→2、G→3、'4'→4、その他→0 |
同左 |
| 道路情報 |
センターから受け取った道路情報コード・道路No・日時 |
印刷しない |
傭車(照会区分 '10'):BVPRIN02 形式、130バイト、BV14 を起動。
| 印刷データ |
内容 |
| 指令書NO・発行枚数・計画便コード・便名・運行車区分・運行形態・入力区分 |
1枚目の値 |
| 発店・出発日時、最終卸店・最終卸店到着日時 |
年月日時分 |
| 次運行発店 |
最終卸店(次運行発店ではない) |
| 積載車番・トレーラー・乗務員A・B・直配区分・直配着地コード・連絡事項 |
1枚目の値 |
| 傭車会社コード・傭車形態・標屯 |
傭車会社コード・傭車使用形態・積載車標屯×10 |
| 傭車料 |
傭車形態が 2(トン当たり)ならセンターから受け取ったトン単価、それ以外は定額傭車料 |
| 一車保険料 |
一車保険料(傭車の場合) |
| 所属店 |
センターから受け取った所属店 |
| 車種 |
自社と同じ |
| 携帯管理№ |
特定便区分+特定便NO |
4.4 PF5:修正
- TSキューを読んで削除する。読めなければエラーコードに「Q ERR」をセットして画面を送信し、検証画面のトランザクションで待機する。
- COMM_PF5 を '1' にし、入力可にする項目を次のようにセットする。
| 照会区分 |
データ区分 |
入力可にする項目 |
カーソル |
| 傭車 |
'N'(新規) |
傭車会社コード・標屯・傭車形態・一車保険料・定額傭車料(数字)、携帯管理№。指令書№は入力不可 |
傭車会社コード |
| 傭車 |
'D'(既存) |
指令書№ と上と同じ項目 |
指令書№ |
| 自社増便 |
'N' |
発行枚数・運行形態・運行車区分・フェリー会社・鮮魚保険・最終着店コード・次の指令書(2~4-の出発日付・最終卸店・最終卸店到着日・次回運行便出発店所)(数字)。指令書№は入力不可 |
発行枚数 |
| 自社増便 |
'D' |
指令書№ と上と同じ項目 |
指令書№ |
| 共通 |
|
発送日 月・日・時・分、積載車番、トレーラー、乗務員A・B、最終卸店コード、最終卸店着日 月・日・時・分、直配区分、直配着地コード(数字)、連絡事項 |
|
- メッセージ「修正する項目を、入力してください。」を反転表示し、TSキューの全体チェック結果を OK にして入力年月日に処理日付をセットし、TSキューを書く(書けなければ終了処理)。
- 画面のデータ部分を送信し、傭車は BV05、自社増便は BU05 で待機する(検証画面は全体チェック結果が OK のため全項目をチェックし直す)。
5. メッセージ一覧
| No |
エラーコード |
メッセージ |
表示するとき |
| 1 |
― |
更新OK!! |
入力結果 '1' |
| 2 |
― |
減便になりました。 |
入力結果 '9' |
| 3 |
― |
更新済、次の枝番無し |
入力結果 '5' |
| 4 |
― |
料金マスターに無し |
入力結果 '4' |
| 5 |
― |
指令書マスターに無し |
入力結果 '6' |
| 6 |
― |
すでに入力済でした。 |
入力結果 '7' |
| 7 |
― |
マスターI/Oエラー |
入力結果 '8' |
| 8 |
― |
携帯番号無し? |
入力結果 'A' |
| 9 |
ASYSB |
回線が混雑しています!! 実行キーをもう一度押して下さい |
センターが混雑 |
| 10 |
ASYSI・CTERM・STERM・RTERM |
セッションエラー 回線不通の可能性あり センターに連絡 !! |
通信エラー(7) |
| 11 |
A9999・C9999・S9999・R9999 |
セッションエラー サポート外ERROR センターに連絡 !! |
通信エラー(8) |
| 12 |
RLENG |
セッションエラー LENGERR |
受信長エラー |
| 13 |
Q ERR |
定便=>便コード・出発月日、又は指令NO 増便=>PF10 / PF10を押して、指令書NOを表示してください。 |
TSキューがない(更新後の実行キーなど) |
| 14 |
― |
修正する項目を、入力してください。 |
PF5 |
6. 画面遷移
flowchart LR
BU05[BU05/BV05 検証] --> BU06[BU06<br/>本プログラム]
BU06 -- 実行(更新OK) --> BU06
BU06 -- 実行(エラー) --> BU06
BU06 -- 実行(更新済み・TSなし) --> BU04[BU04 初期画面]
BU06 -- PF2 --> BU04
BU06 -- PF5 --> BU05
BU06 -- PF3 --> PREV[一つ前の画面]
BU06 -- PF4 --> MAIN[メインメニュー]
BU06 -- CLEAR --> END[ELEPHAN 終了]
7. 補足・留意事項
-
更新後の画面:更新OK後も BU06 で待機し、次の実行キーで TSキューがないため初期画面に戻る。このとき「Q ERR」が表示される。
-
入力結果 '5' の扱い:「更新済、次の枝番無し」はエラー扱い(TSキューを書き戻す)だが、指令書は印刷する。ただし、センターの BU20600P は '5' を返さないため、現行では発生しない。
-
入力結果 'A':「携帯番号無し?」はエラーとして扱われない(文字の大小比較で '2'~'8' に入らない)。センター側の携帯番号チェックはコメントアウトされており、現行では発生しない。
-
傭車の次運行発店:傭車の指令書印刷では、次運行発店に最終卸店をセットしている。
-
枝番の印刷で印刷しない項目:2~4枚目は直配区分・連絡事項・特定便・鮮魚保険・道路情報を印刷しない。
-
センターのエラーフラグ:受信データのエラーフラグ・エラーコードは見ていない。センター側の結果は入力結果(DNKNYUK)だけで判断する。
-
PF5 の携帯管理№:携帯管理№ は傭車では入力可、自社増便では入力不可にしている(いずれも「M.TANAKA」のコメントがある修正)。