レビュー指摘 #12452 » BU10700P_仕様書.md
プログラム仕様書 BU10700P(配車修正入力 照会)
| 項目 | 内容 |
|---|---|
| システムID | BU |
| 参考資料 | ・現行ソース BU10700P.pl1(センター側の動きは BU20700P.pl1 で確認) ・画面イメージ MPBU070.jpg(配車修正入力) ・現行の解析資料 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(DDP 店所マスター)、VPJYUGY(DDP 従業員マスター)、VPUNKEI(DDP 運賃計算荷主マスター(1)) |
| 呼出しモジュール | LSO0020(チェックデジットのチェック)、SL11100P(印刷装置のチェック。LINK) |
| 起動するトランザクション | BV13(自社便の指令書印刷)、BV14(傭車便の指令書印刷)。どちらもテストプリント・印刷終了のときだけ |
| 一時記憶 | TSキュー(キュー名「端末ID+トランザクションID(BU07)」。チェック結果 20バイト、照会OK 時は照会結果 520バイト)。印刷用の TSキュー(端末ID+'SHTS'/'SHYT'/時刻) |
1.1 機能概要
配車済みの運行指令(指令書)を修正する機能の最初の画面。指令書NO を入力して実行キーを押すと、センターの運行指令マスターから指令書の内容を取り出して表示し、修正できる項目を入力可にして、自社便は BU08、傭車便は BV08 で待機する。
- 指令書NO・入力店所・印刷装置をチェックする。
- センター(B07U:BU20700P)に指令書NO を送り、運行指令マスターの内容を受け取る。
- 受け取った内容と、店所名・乗務員名・傭車会社名(DDP のマスターから取得)を表示する。
- 入力区分(配車の状態)と発店を確認する。修正できる状態なら、運行車区分・増便/定便・送付書の枚数に応じて入力可の項目を決め、照会結果を TSキューに書いて、次のトランザクション(BU08/BV08)で待機する。修正できない状態ならエラー(ERR Q)にする。
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)
指令書NO :____-_____ 入力区分:_ 入力区分名(12)
便 コード :000000 (運行便名(16))
運行車区分 :__ 区分名(5) 運行形態区分:_ 形態区分名(8)
積載 社番 :_____ トレーラー :_____
発 店 :____ 発店名称(16) 出発予定:__月 __日 __時 __分
乗継店-1 :____ 乗継店1名(16)
乗継店-2 :____ 乗継店2名(16)
最終 卸店 :____ 最終卸店名(16) 到着予定:__月 __日 __時 __分
次運行発店 :____ 次運行便発店名(16)
乗務員-A :______ 乗務員A名(16) 乗務員-B :______ 乗務員B名(16)
乗継員1A :______ 乗継員1A名(16) 乗継員1B :______ 乗継員1B名(16)
乗継員2A :______ 乗継員2A名(16) 乗継員2B :______ 乗継員2B名(16)
直配 区分 :_ 直配 着地:_____ フェリー会社:_______
連絡 事項 :________________________ 特定便コード:____ 鮮魚保険料:____
傭車コード :_______ 傭車会社名(16) 傭車標屯:__._ トン
傭車 形態 :_ 形態名(5) 一車保険料:____ 円 定額傭車料:______
実行:継続 2:取消 3:終了 4:戻り 印刷装置 ____
エラーメッセージ(70) エラーコード(5)
画面イメージで乗継店-1・-2のコード欄は見えないが、画面項目(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桁) | 数字 4 | I | 入力値 |
| 6 | BU07052 | 指令書№(後5桁) | 数字 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 | 乗継店1コード | 数字 4 | O | 乗継店1(0 なら空欄) |
| 24 | BU07102 | 乗継店1名 | 文字 16 | O | 店所略名(漢字)。なければ「?????」 |
| 25 | BU07111 | 乗継店2コード | 数字 4 | O | 乗継店2(0 なら空欄) |
| 26 | BU07112 | 乗継店2名 | 文字 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 | 乗務員A・B、乗継員1A・1B、乗継員2A・2B(コード・名) | 数字 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)+特定便NO(3)。特定便区分が空白なら空欄 |
| 48 | BU07203 | 鮮魚保険料 | 数字 4 | O | 一車保険料(自社、鮮魚の場合)を左詰め(0 なら空欄。4.8) |
| 49 | BU07211 | 傭車会社コード | 数字 7 | O | 傭車会社コード(0 なら空欄) |
| 50 | BU07212 | 傭車会社名 | 文字 16 | O | 運賃計算荷主マスター(1)の顧客略名(漢字)。なければ「???????」 |
| 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 | PFキー説明 | 文字 52 | O | 固定表示 |
| 58 | BU07PRT | 印刷装置 | 文字 4 | I | 入力値。チェックOK 後は入力不可 |
| 59 | BU07241 | エラーメッセージ | 文字 70 | O | 5章のメッセージ |
| 60 | BU07242 | エラーコード | 文字 5 | O | 5章のエラーコード |
2.3 ファンクションキー
| キー | 機能 | 処理概要 |
|---|---|---|
| 実行(Enter) | 継続 | 指令書NO などをチェックし、センターに照会して表示する |
| 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(印刷の入力端末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'、データ区分 空白、指令書NO(UNKSHIN、9)、予備) |
| 受信(250バイト) | トランザクションID(4)+エラーフラグ(1)+エラーコード(4)+配車修正照会後データ(CEDPBU07、241) |
受信する主な項目(CEDPBU07)。センターは運行指令マスター(VKUNKSH)を指令書NO で読んで編集する(BU20700P)。
| 項目ID | 項目名 | センターでの編集元・備考 |
|---|---|---|
| UNKIYMD | 入力年月日 | 運行指令の入力年月日 |
| UNKSHNO・UNKSHCN | 指令書NO・指令書発行枚数 | |
| UNKBNCD・UNKBNNM | 計画便コード・便名(漢字) | |
| UNKKUBN・UNKKEIT | 運行車区分・運行形態区分 | |
| UNKINKB | 入力区分 | 運行指令の入力区分。指令書がなければ 6、読込みエラーなら 7 |
| UNKSTTC・UNKENTC | 発店・最終卸店 | 入力区分が 0・9 なら計画の発店・着店、それ以外は実績の発店・着店 |
| UNKSTYY~UNKSTMI | 出発 年・月・日・時・分 | 予定年月日時分(出発) |
| UNKENYY~UNKENMI | 最終卸店到着 年・月・日・時・分 | 予定年月日時分(到着) |
| UNKFUTC | 次運行発店 | |
| UNKCARS・UNKTONS | 積載社番・積載車標屯 | 始発積載の車種が 'F' なら頭・子を入れ替える |
| UNKCART | トレーラ頭・コンテナ車 | |
| UNKDRIA・UNKDRIB | 乗務員 A・B | |
| UNKNTC1・UNKND1A・UNKND1B | 乗継店1・乗継員1A・1B | |
| UNKNTC2・UNKND2A・UNKND2B | 乗継店2・乗継員2A・2B | |
| UNKGHKB・UNKGHCD | 直配区分・直配着地コード | |
| UNKFRCD | フェリー、ライナーコード | 運行車区分が 02 以外のとき |
| UNKINFO | 連絡事項 | 26桁 |
| UNKKBID・UNKTKNO | 特定便区分・特定便NO | |
| UNKFISH | 一車保険料(自社、鮮魚の場合) | |
| UNKYOSC | 傭車会社コード | 運行車区分が 02 のとき |
| UNKYOSK | 傭車使用形態 | 差額的傭車なら 4 |
| UNKYSRY・UNKYOSH | 定額傭車料・一車保険料(傭車の場合) | |
| UNKSOFI・UNKSOFD | 送付書枚数・取消送付書枚数 | 入力可の項目の判定に使う(4.5) |
センターのエラーフラグは通常 '0'。指令書がない・読込みエラーは、エラーフラグではなく入力区分(6・7)で返る。
3.3 参照するマスター
| ファイル | 日本語名 | キー | 使う項目 |
|---|---|---|---|
| VPTENMS | DDP 店所マスター | 店所コード | 店所略名(漢字)(VETNSRNM) |
| VPJYUGY | DDP 従業員マスター | 従業員コード | 従業員氏名(漢字)(VEJYJNM1) |
| VPUNKEI | DDP 運賃計算荷主マスター(1) | 傭車会社コード(7)+'00000001' | 顧客略名(漢字)(KNTNRGNM) |
3.4 TSキュー
| キュー | 長さ | 内容 |
|---|---|---|
| 端末ID+'BU07'(チェック結果) | 20 | 初期化済み(LOOP_FLG)、チェック結果(OKFLG:'2' OK、それ以外エラー)、FLG(1)・FLG(2)(指令書NO・入力店所。'0':未チェック、'1':エラー、'2':OK)、指令書NO(頭4桁・後5桁)・入力店所の保存域 |
| 端末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 処理の流れ
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)
- 画面を受信し、TSキュー(端末ID+'BU07')を読む。なければ初期化する(LOOP_FLG '1'、OKFLG・FLG '0'、印刷装置の状態が '0'~'9' 以外なら '0'、自社傭車フラグが '1'・'2' 以外なら '0'、入力店所に端末の店所コード、指令書NO の保存域を LOW-VALUE)。あれば削除する。
- チェック結果が '2'(OK済み)の項目はチェックしない。
| FLG | 項目 | チェック内容(満たさなければエラー) |
|---|---|---|
| 1 | 指令書NO(頭4桁+後5桁) | 入力されている(両方とも未入力ならエラー)。9桁が数字で、チェックデジットが正しく(LSO0020、区分 '07'、タイプ 'C')、8桁目が 1~4 |
| 2 | 入力店所コード | 入力がなく、値が端末の店所コードと違えばエラー(店所名を空白にする)。それ以外は数字で、店所マスター(VPTENMS)にあること。あれば入力店所名に店所略名(漢字)、なければ「??????」を表示 |
- 印刷装置をチェックする(印刷装置の状態が '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'(エラー) |
- FLG(1)・FLG(2) のどちらかが '1'、または印刷装置の状態が '0'・'2' 以外なら全体エラー(OKFLG '1')。
4.3 表示の編集とセンター照会(DISPLAY_SUB_RTN_LVL1、INQUIRE_SUB_RTN)
- 表示の編集
- 印刷装置:状態が '0'・'2' なら入力不可。それ以外は入力可(輝度)でカーソルを置く。
- 入力店所:OK・未チェックなら入力不可。エラーなら入力可(輝度)でカーソルを置く。
- 指令書NO:OK なら入力不可。それ以外は入力可(輝度)で頭4桁にカーソルを置く。
- エラーなら、印刷装置の状態に応じたメッセージ(5章)とエラーコード 'ERR 1' をセットし、TSキューを書いて画面のデータ部分を送信し(カーソル指定)、BU07 で待機する。通信エラーのとき(エラーフラグ '7'~'9')は通信エラーのメッセージ(下表)と通信エラーのエラーコードを表示する。
- OK なら、エラーコード 'OK 2' とメッセージ「各項目を入力して実行キーを押して下さい」をセットし、センター照会に進む。
- センター照会:センター(CIC1 の B07U)に接続し、指令書NO を送信して結果を受信する(3.2)。終了データを送って会話を終える。
- 通信エラーは次のとおり。回線混雑(ASYSB)は、メッセージを表示して画面を受信し、接続からやり直す。それ以外はエラーフラグをセットして全体エラーにし、1 の表示の編集に戻る。
| エラーコード | 発生箇所 | エラーフラグ | メッセージ |
|---|---|---|---|
| ASYSB | 接続先の割当て(混雑) | - | 回線が混雑しています!! 実行キーをもう一度押して下さい |
| ASYSI・CTERM・STERM・RTERM | 割当て(SYSID エラー)・接続・送信・受信(回線切断) | 7 | 照会不可能!!回線不通の可能性あり センターに連絡して下さい |
| A9999・C9999・S9999・R9999 | 割当て・接続・送信・受信(その他) | 8 | 照会不可能!!サポート外ERROR センターに連絡して下さい |
| RLENG | 受信(長さエラー) | 9 | 照会不可能!!LENGERR |
- センターから受信したエラーフラグが '0' 以外でも全体エラーにする(このときメッセージは表示の編集で '7'~'9' 以外のため空白のまま)。
4.4 照会結果の表示
照会がOK なら、表示用の名称の保存域と名称欄を空白にしてから、2.2 の内容で受信データを表示する。店所名・従業員名・傭車会社名は DDP のマスターを読んで表示する(3.3)。
続いて、入力区分と発店から状態を判定し、メッセージをセットする。
| 入力区分 | 条件 | メッセージ | 判定 |
|---|---|---|---|
| 0(配車未入力) | 配車未入力!! 修正できません。取消してから入力してください。 | エラー | |
| 1・2・5(配車入力済・出発点呼済・到着入力済) | 発店 = 入力店所 | 修正する項目を入力してください。 | 修正できる |
| 1・2・5 | 発店 ≠ 入力店所 | 出発店所エラー!! 修正できません。取消してから入力してください | エラー(入力区分を 4 に置き換えて判定) |
| 9(減便入力済) | 発店 = 入力店所 | 減便入力済です!! 復活するなら『R』を入力してください。 | 修正できる(入力区分だけ入力可) |
| 9 | 発店 ≠ 入力店所 | 出発店所エラー!! 修正できません。取消してから入力してください | エラー |
| 6 | 指令書マスターに無し | エラー | |
| 7 | I/Oエラー | エラー | |
| それ以外 | ?????????? | エラー |
照会OK のときは、通信領域に出発の年月日(COMM_START_YMD)と最終卸店到着の年月日(COMM_END_YMD)をセットする。
エラーのときは、指令書NO を入力不可(変更フラグオン)にして頭4桁にカーソルを置き、FLG(1) を '1'、全体エラーにして、エラーコード 'ERR Q' をセットする。TSキュー(チェック結果)を書いて画面のデータ部分を送信し、BU07 で待機する。
4.5 入力可の項目(修正できる場合)
入力区分が 1・2・5 の場合は、運行車区分、指令書NO の1桁目('9' は増便)、送付書枚数によって、次のように入力可にする。入力可(数字)は DFHUNNUM、入力可(文字)は変更フラグオン、入力不可は保護・変更フラグオン。どの場合も積載社番にカーソルを置く。
| 項目 | 自社・増便(送付書枚数 0) | 自社・増便(送付書あり) | 自社・定便(送付書枚数 0 または全件取消) | 自社・定便(送付書あり) | 傭車(送付書枚数 0) | 傭車(送付書あり) |
|---|---|---|---|---|---|---|
| 入力区分 | 入力可 | 入力不可 | 指令書NO の8桁目が '1' なら入力可、それ以外は入力不可 | 入力不可 | 入力可 | 入力不可 |
| 運行車区分 | 指令書NO の8桁目が '1' なら入力可、それ以外は入力不可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 |
| 運行車形態区分 | 入力可 | 入力可 | 入力不可 | 入力不可 | 入力不可 | 入力不可 |
| 発店・出発予定(月日時分) | 入力可 | 入力不可 | 入力可 | 入力不可 | 入力可 | 入力不可 |
| 乗継店1・2 | 入力可(下線) | (変更しない) | (変更しない) | (変更しない) | (変更しない) | (変更しない) |
| 次運行発店 | 入力可 | 入力不可 | 指令書NO の8桁目が指令書発行枚数と違えば入力可 | 入力不可 | (変更しない) | 入力不可 |
| 傭車会社・傭車標屯・傭車形態・一車保険料・定額傭車料 | (変更しない) | (変更しない) | (変更しない) | (変更しない) | 入力可 | 入力不可 |
| フェリー会社 | 入力年月日 = 処理日付なら入力可 | 同左 | 同左 | 同左 | (変更しない) | (変更しない) |
| 鮮魚保険料 | 入力可 | 入力可 | 入力可 | 入力可 | (変更しない) | (変更しない) |
| 特定便コード | 入力可 | 入力可 | 入力可 | 入力可 | 入力可 | 入力可 |
「送付書あり」は送付書枚数が 0 でない場合(自社・定便は、送付書枚数が 0 でなく取消送付書枚数とも違う場合)。「(変更しない)」は本プログラムでは属性をセットしない項目。
さらに、入力区分 1・2・5 のときは次の項目を常に入力可にする:積載社番、トレーラー、最終卸店、到着予定(月・日・時・分)、乗務員A・B、直配区分、直配着地(以上は数字)、連絡事項(文字)。乗継員1A~2Bは本プログラムでは属性をセットしない。
入力区分が 9(減便入力済)のときは、入力区分だけを入力可にしてカーソルを置く。
4.6 照会OK時の処理(OK_DATA_PROCESS_SUB_RTN)
- TSキュー(端末ID+'BU07')を削除する。
- 自社傭車フラグ(COMM_YOS_FLG)を、運行車区分が 02 以外なら '1'(自社)、02 なら '2'(傭車)にする。
- 受信データの入力年月日を処理日付に置き換え、照会結果(520バイト)を TSキューに書く。
- 戻り先画面のスタックの最上位が「MPBU070/BU07」でなければ積む(最大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')と、入力端末ID・データ個数 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の位・秒)と、入力端末ID・データ個数 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 | このIDは、印刷装置ではありません。 | 印刷装置の状態 '4' |
| 4 | ERR 1 | このIDは、存在しません。!! | 印刷装置の状態 '5' |
| 5 | ERR 1 | プリンターを確認し、30秒後に実行キーを押して下さい。 | 印刷装置の状態 '6' |
| 6 | ERR 1 | プリンターは現在使用中です。しばらくお待ち下さい。 | 印刷装置の状態 '7' |
| 7 | ASYSB | 回線が混雑しています!! 実行キーをもう一度押して下さい | センター接続の回線混雑 |
| 8 | ASYSI など | 照会不可能!!回線不通の可能性あり センターに連絡して下さい | 通信エラー(4.3) |
| 9 | A9999 など | 照会不可能!!サポート外ERROR センターに連絡して下さい | 通信エラー(4.3) |
| 10 | RLENG | 照会不可能!!LENGERR | 受信の長さエラー |
| 11 | ERR Q | 配車未入力!! 修正できません。取消してから入力してください。 | 入力区分 0 |
| 12 | ERR Q | 出発店所エラー!! 修正できません。取消してから入力してください | 発店が入力店所と違う |
| 13 | ERR Q | 指令書マスターに無し | センターに指令書がない |
| 14 | ERR Q | I/Oエラー | センターの読込みエラー |
| 15 | ERR Q | ?????????? | 入力区分がそれ以外 |
| 16 | OK 2 | 修正する項目を入力してください。 | 照会OK(入力区分 1・2・5) |
| 17 | OK 2 | 減便入力済です!! 復活するなら『R』を入力してください。 | 照会OK(入力区分 9) |
| 18 | OK 2 | 各項目を入力して実行キーを押して下さい | チェックOK(照会の前にセットし、照会後に上書きされる) |
| 19 | (PF2・PF12) | 指令書№を入力して実行キー | 初期画面 |
PF8・PF9 の印刷装置チェックでは、エラーコードは変えずにメッセージだけ表示する(状態 '1' は「エラー項目あり,再入力して下さい」)。
6. 画面遷移
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. 補足・留意事項
- 入力店所による代行修正:PF12 で入力店所を入力可にし、ほかの店所コードを入れると、その店所を発店とする指令書を修正できる(発店と入力店所の一致で判定するため)。
- PF12 の後の入力店所:PF12 では入力店所に端末の店所コードを表示するが、変更フラグをオンにしていない。そのまま実行キーを押すと入力店所は「未入力」で、値が端末の店所コードと一致しないためエラーになる(ソース上の動き)。入力店所を入れ直す必要がある。
- ERR Q の後の指令書NO:ERR Q のときは指令書NO を入力不可(変更フラグオン)にするため、指令書NO を変えられない。そのまま実行キーを押すと同じ指令書を照会して同じエラーになる。別の指令書は PF2/PF12 で取り消してから入力する。
- 印刷区分なし:画面に印刷区分はなく、印刷装置を入れた場合だけ印刷装置の状態を管理する。指令書の印刷そのものは後続(BU10900P など)で行い、本プログラムではテストプリントと印刷終了レコードだけを起動する。
- センターのエラーは入力区分で返る:センターは指令書がない場合に入力区分 6、読込みエラーに入力区分 7 を返し、エラーフラグは '0' のまま。そのため照会結果を一度表示してから ERR Q になる。読込みエラーの内容(センターのエラーコード)は表示しない。
- 金額の桁:一車保険料(傭車の場合、5桁)は4桁、定額傭車料(7桁)は6桁、鮮魚保険料(5桁)は4桁の編集域を通して表示するため、上位の桁は表示されない。
- 連絡事項:センターの連絡事項は26桁だが、画面には先頭24桁だけを表示する。
- 乗継員の属性:乗継員1A~2Bは照会OK 時に属性をセットしない。属性は画面の直前の状態(PF2 の初期画面では入力不可)のままになる。
- 店所区分のチェックは無効:入力店所の店所区分(0・1、または店所 0641 で区分 4)を確認する処理があるが、エラーにする行がコメントになっており判定していない。
- エラーコード 'OK 2':OK 時のエラーコードは 'OK' と '2' の間に空白が2つある(解析資料では 'OK 2')。
- 照会結果の TSキュー名:照会結果は本プログラムのトランザクションID(BU07)を付けたキュー名で書く。後続の BU10800P/BV10800P はこのキューを読む。