レビュー指摘 #12417 » BU10400P_仕様書.md
プログラム仕様書 BU10400P(配車入力(自社増便・傭車定便/増便)照会)
| 項目 | 内容 |
|---|---|
| システムID | BU |
| 参考資料 | ・現行ソース BU10400P.pl1 ・画面イメージ MPBU040.jpg(配車入力(増便・傭車)) ・現行の解析資料 BU0040_配車入力(自社増).xlsx(シート「MPBU040」「BU10400P_参考」「レコードフォーマット」「資産一覧」) |
| 項目名の出典 | 画面項目は解析資料のシート「MPBU040」の日本語名、センター送受信・マスターの項目はシート「レコードフォーマット」の日本語名称 |
1. 概要
| 項目 | 内容 |
|---|---|
| プログラムID | BU10400P(手続き名:BU10400) |
| プログラム名称 | 配車入力(自社増便、傭車増・定便)照会 |
| 言語 | PL/I(CICS コマンドレベル) |
| 処理形態 | オンライン(CICS 疑似会話型) |
| 動作環境 | SV(DDP 側) |
| トランザクションID | BU04 |
| パターンID | PPOD250P(1987/05/01)、業務 BUSHRE30。冒頭コメントに「2000年対応済み」とある |
| 使用画面(マップ) | MPBU040(配車入力)、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面) |
| 次の処理 | 照会OK後、傭車は BV05、自社増便は BU05 で同じ画面の入力を続ける(4.6) |
| センター照会 | あり。APPC で CIC1 のトランザクション B04U に照会(4.5) |
| 参照ファイル | VPTENMS(DDP 店所マスター)、VPJYUGY(DDP 従業員マスター)、VPUNKEI(DDP 運賃計算荷主マスター(1))。いずれも参照のみ |
| 呼出しモジュール | LSO0020(チェックデジット)、LSO0130(日数計算)、SL11100P(印刷装置チェック、LINK) |
| 起動する印刷 | BV13(BV11300P、自社)、BV14(BV11400P、傭車)。テスト印刷・印刷装置の解放で START する |
| 一時記憶 | TSキュー(キュー名=端末ID+'BU04')。エラー時は 44バイトのチェック結果、照会OK時は 724バイトの照会結果を書く |
1.1 機能概要
配車入力の1画面目(照会)。指令書をセンターに照会し、結果を画面に表示して、配車内容の入力(次のトランザクション)に引き継ぐ。通信領域の照会区分(COMM_INQ_KBN)で、次の2つの業務を切り替える。
| 照会区分 | 業務 | 画面見出し | 照会の方法 |
|---|---|---|---|
| '10' | 傭車配車入力(定便・増便) | 傭 車 配 車 入 力(定・増) | 定便:計画便コード+発送日(月日)、または指令書NO を入力して実行 増便:何も入力せずに PF10 |
| '10' 以外 | 自社増便配車入力 | 自 社 増 便 配 車 入 力 | 何も入力せずに PF10 |
- 指令書NO・計画便コード・発店・発送日(月日)、印刷装置・枝番の印刷をチェックする。
- センターに照会する。PF10 のときは新しい指令書NO の採番、それ以外は既存の指令書データの照会になる。
- 照会結果(指令書の内容、名称)を画面に表示し、入力区分(UNKINKB)で入力できる指令書かを判定する。
- 入力できる場合は、照会結果を TSキューに保存し、入力項目を入力可にして、傭車は BV05、自社増便は BU05 で待機する。
- PF9 でテスト印刷、PF11 で印刷装置のリセットができる。
flowchart LR
MENU[メニュー等] --> BU04[BU04<br/>本プログラム<br/>MPBU040]
BU04 -- 照会OK(傭車) --> BV05[BV05<br/>傭車配車入力]
BU04 -- 照会OK(自社増便) --> BU05[BU05<br/>自社増便配車入力]
BU04 -- エラー --> BU04
BU04 <-- APPC B04U --> CIC1[(センター CIC1)]
2. 画面仕様(MPBU040)
2.1 画面レイアウト(画面イメージより)
日付 時刻 配車入力(増便・傭車)
指令書NO ____-_____ 発行枚数 _ 運行形態 _
運行車区分 __ XXXXX XXXXXXX 計画便コード ______ OOOOOOOO
傭車会社コード _______ XXXXXXXX 標屯 __._ トン
傭車形態 _ XXXXXX 一車保険料 ____円 定額傭車料 ______円
積載車番 _____ トレーラー _____
乗務員-A ______ 氏名 乗務員B ______ 氏名
発店 ____ 店所名 (__/__ __:__)
最終卸店 ___ 店所名 (__/__ __:__)
最終着店 ___ 店所名 ==> 次運行発店(仮眠、応援店)
直配区分 _ 直配着地 ____ フェリー会社 ____
連絡事項 ____________ 携帯管理№ ___ 鮮魚保険 ____円
── 次の指令書の情報 *自社増便* ──(3行)
発店 0000 店所名 (__/__) 運行形態 _ 最終卸店 ___ 店所名 (__/__)
次運行発店/最終着店 ___ 店所名 指令書NO 0000-00000
実行:継続 2:取消 3:終了 4:戻り 印刷装置 ____ 枝番の印刷 _ 1:アリ
メッセージ コード
2.2 画面項目一覧
入出力の I は本プログラムでチェックする入力項目。O は照会結果の表示。照会OK後に入力可にする項目(4.6)の入力・チェックは次のトランザクション(BV05・BU05)で行う。
| No | 項目ID | 項目名 | 属性・桁 | 入出力 | 内容 |
|---|---|---|---|---|---|
| 1 | BU04HED | ヘッダータイトル | 文字 34 | O | 1.1 の見出し(PF2・PF12 でセット) |
| 2 | BU04011 | システム日付 | 文字 8 | O | YY/MM/DD |
| 3 | BU04021 | システム時刻 | 文字 8 | O | HH:MM:SS |
| 4 | BU04031 | 指令書№(頭4桁) | 数字 4 | I/O | 照会キー(傭車の定便)。照会結果の指令書NO(UNKSHNO)の頭4桁を表示 |
| 5 | BU04032 | 指令書№(後5桁) | 数字 5 | I/O | 同上(後5桁) |
| 6 | BU04033 | 発行枚数 | 数字 1 | O | 指令書発行枚数(UNKSHCN)。PF10 の新規は傭車 1、自社 2 |
| 7 | BU04034 | 運行形態 | 数字 1 | O | 運行形態区分(UNKKEIT、2.3) |
| 8 | BU04041 | 運行車区分 | 数字 2 | O | 運行車区分(UNKKUBN、2.3) |
| 9 | BU04042 | 運行車区分名 | 文字 5 | O | 2.3 |
| 10 | BU04043 | 運行車形態名 | 文字 7 | O | 運行形態区分の名称(2.3) |
| 11 | BU04044 | 計画便コード | 数字 6 | I/O | 照会キー(傭車の定便)。照会結果の計画便コード(UNKBNCD、0 なら表示しない) |
| 12 | BU04045 | 便名 | 文字 16 | O | 便名(漢字)(UNKBNNM) |
| 13 | BU04051 | 傭車会社コード | 数字 7 | O | 傭車会社コード(UNKYOSC) |
| 14 | BU04052 | 傭車会社名 | 文字 16 | O | 運賃計算荷主マスター(1)の顧客略名(漢字) |
| 15 | BU04053 | 標屯(整数) | 数字 2 | O | 積載車標屯(UNKTONS)の整数部。運行車区分が 2(傭車)のときだけ表示 |
| 16 | BU04054 | 標屯(少数) | 数字 1 | O | 同上の小数部 |
| 17 | BU04061 | 傭車形態 | 数字 1 | O | 傭車使用形態(UNKYOSK、2.3)。0・1 は表示しない |
| 18 | BU04062 | 傭車形態名 | 文字 6 | O | 2.3 |
| 19 | BU04063 | 一車保険料 | 数字 4 | O | 一車保険料(傭車の場合)(UNKYOSH)。前ゼロを除いて左詰め |
| 20 | BU04064 | 定額傭車料 | 数字 6 | O | 定額傭車料(UNKYSRY)。前ゼロを除いて左詰め |
| 21 | BU04071 | 積載車番 | 数字 5 | O | 積載車番(UNKCARS)。解析資料の表記は「積載社番」 |
| 22 | BU04072 | トレーラー | 数字 5 | O | トレーラ頭・コンテナ車(UNKCART) |
| 23 | BU04081 | 乗務員Aコード | 数字 6 | O | 乗務員A(UNKDRIA) |
| 24 | BU04082 | 乗務員A名 | 文字 14 | O | 999999 は「ダミーコード」、それ以外は従業員マスターの従業員氏名(漢字) |
| 25 | BU04083 | 乗務員Bコード | 数字 6 | O | 乗務員B(UNKDRIB) |
| 26 | BU04084 | 乗務員B名 | 文字 14 | O | 乗務員A名と同じ |
| 27 | BU04091 | 発店コード | 数字 4 | I(必須)/O | 照会キー。通常は端末の店所で入力不可、PF12 で入力可。照会結果は発店(UNKSTTC) |
| 28 | BU04092 | 発店名 | 文字 14 | O | 店所マスターの店所略名(漢字) |
| 29 | BU04093 | 発送日 月 | 数字 2 | I(必須)/O | 照会キー。初期値は処理日付の月。照会結果は出発 月(UNKSTMM) |
| 30 | BU04094 | 発送日 日 | 数字 2 | I(必須)/O | 照会キー。初期値は処理日付の日。照会結果は出発 日(UNKSTDD) |
| 31 | BU04095 | 発送日 時 | 数字 2 | O | 出発 時(UNKSTHH)。時・分とも 0 なら表示しない |
| 32 | BU04096 | 発送日 分 | 数字 2 | O | 出発 分(UNKSTMI) |
| 33 | BU04101 | 最終卸店コード | 数字 4 | O | 最終卸店(UNKENTC) |
| 34 | BU04102 | 最終卸店名 | 文字 14 | O | 店所マスターの店所略名(漢字) |
| 35 | BU04103 | 最終卸店着日 月 | 数字 2 | O | 最終卸店到着 月(UNKENMM) |
| 36 | BU04104 | 最終卸店着日 日 | 数字 2 | O | 最終卸店到着 日(UNKENDD) |
| 37 | BU04105 | 最終卸店着日 時 | 数字 2 | O | 最終卸店到着 時(UNKENHH)。時・分とも 0 なら表示しない |
| 38 | BU04106 | 最終卸店着日 分 | 数字 2 | O | 最終卸店到着 分(UNKENMI) |
| 39 | BU04111 | 最終着店コード | 数字 4 | O | 次運行発店(UNKFUTC) |
| 40 | BU04112 | 最終着店名 | 文字 14 | O | 店所マスターの店所略名(漢字) |
| 41 | BU04121 | 直配区分 | 文字 1 | O | 直配区分(UNKGHKB) |
| 42 | BU04122 | 直配着地コード | 数字 5 | O | 直配着地コード(UNKGHCD) |
| 43 | BU04123 | フェリー会社 | 数字 7 | O | フェリー、ライナーコード(UNKFRCD) |
| 44 | BU04131 | 連絡事項 | 文字 20 | O | 連絡事項(UNKINFO、26バイト)の先頭20バイト。シフトコードの対応を補正 |
| 45 | BU04132 | 携帯管理№ | 文字 4 | O | 特定便区分+特定便NO を表示する処理がコメントアウトされており、本プログラムではセットしない |
| 46 | BU04133 | 鮮魚保険 | 数字 4 | O | 一車保険料(自社、鮮魚の場合)(UNKFISH)。前ゼロを除いて左詰め |
| 47~60 | BU04141~BU04164 | 2-発送店コード・発送店名、2-出発日付 月・日、2-運行形態、2-最終卸店コード・最終卸店名、2-最終卸店到着日 月・日、2-次回運行便出発店所コード・名、2-指令書№(頭4桁・後5桁) | ― | 次の指令書の情報(2枚目)。本プログラムでは値をセットせず、自社増便の新規のときに入力可にする(4.6)。2-運行形態は '0' を表示して入力不可 | |
| 61~73 | BU04171~BU04194 | 3-(2枚目と同じ項目) | ― | 次の指令書の情報(3枚目)。同上(3-運行形態は BU04175) | |
| 74~86 | BU04201~BU04224 | 4-(2枚目と同じ項目) | ― | 次の指令書の情報(4枚目)。同上(4-運行形態は BU04205) | |
| 87 | BU04PRT | 印刷装置番号 | 文字 4 | I | 印刷装置の端末ID。任意 |
| 88 | BU04EDA | 枝番の印刷 | 数字 1 | I | '1':あり。任意 |
| 89 | BU04241 | エラーメッセージ | 文字 69 | O | |
| 90 | BU04242 | エラーコード | 文字 5 | O |
次の指令書の情報で自社増便の新規のときに入力可にするのは、各行の出発日付 月・日、最終卸店コード、最終卸店到着日 月・日、次回運行便出発店所コード(2枚目は BU04143・BU04144・BU04151・BU04153・BU04154・BU04161)。運行形態は '0' を表示して入力不可、発送店コード・名と指令書№は入力不可のまま。
2.3 コードと表示名
| 項目 | コード:表示名 |
|---|---|
| 運行車区分(UNKKUBN) | 1:ジシヤ、2:ヨウシヤ、3:10Tコン、4:5Tコン、5:フエリー、その他:??? |
| 運行形態(UNKKEIT) | 0:フツウ(入力区分が 6 のときは ?????)、1:ノリツギ、2:ドツキング、3:マルニウンコウ、4:テアテ フエリ、5:カイソウ、6:オウエン カラ、7:オウエン ツミ、8:クウシヤ、その他:????? |
| 傭車形態(UNKYOSK) | 0・1:表示なし、2:トン アタリ、3:テイガク、4:* リヨウ(1992/03/03 追加)、その他:???? |
2.4 ファンクションキー
| キー | 機能 | 処理概要 |
|---|---|---|
| 実行(Enter) | 継続 | 照会キーをチェックしてセンターに照会する(傭車の定便) |
| PF2 | 取消 | 初期画面を表示する(4.8) |
| PF3 | 終了 | 印刷装置を解放し、一つ前の画面に戻る |
| PF4 | 戻り | 印刷装置を解放し、メインメニューに戻る |
| PF9 | テスト印刷 | 印刷装置にテスト印刷を出す(4.9) |
| PF10 | 新規(増便) | 新しい指令書NO を採番する照会を行う |
| PF11 | 印刷装置リセット | 印刷装置を強制解除して再接続する(4.9) |
| PF12 | 発店変更 | 発店を入力可にして初期画面を表示する(4.8) |
| CLEAR | 強制終了 | 印刷装置を解放し、終了画面(ELEPHAN)を表示して終了 |
| 上記以外 | 再表示 | 画面のデータ部分を再送信し、BU04 で待機 |
3. インターフェース
3.1 通信領域(COMMAREA:256バイト)
| 項目ID | 型 | 本プログラムでの用途 |
|---|---|---|
| CRT_BACK_KOSU/CRT_BACK_DATA(5) | 戻り先画面のスタック。照会OK時に本画面(MPBU040/BU04)を積む。PF3・PF4 で使う | |
| TSQ_LENGTH・TSQ_ID | TSキューの長さ・名前 | |
| COMM_TRM_CODE | 文字(4) | 端末ID。センター照会・印刷に使う |
| COMM_TEN_CODE・COMM_TEN_NAME | 数字(4)・文字(14) | 端末の店所。初期画面の発店に表示 |
| COMM_RPOC_YMD | 数字(6) | 処理日付(YYMMDD)。初期画面の発送日(月日)、日付チェック、印刷に使う |
| COMM_PRINTER_ID | 文字(4) | 印刷装置の端末ID |
| COMM_RETURN_CD | 文字(1) | SL11100P(印刷装置チェック)の戻り値 |
| COMM_INQ_KBN | 文字(2) | 照会区分。'10':傭車、それ以外:自社増便(呼出し元がセット) |
| COMM_START_YMD | 文字(6) | 出発年月日。PF10 の新規は処理日付、既存の指令書は出発年月日、それ以外は 000000 |
| COMM_END_YY/MM/DD | 文字(2)×3 | 最終卸の年月日。既存の指令書のときだけセット、それ以外は 00 |
| COMM_PRI_FLG | 文字(1) | 印刷装置のチェック結果('0':指定なし、'2':OK、'1'・'3'~'7':エラー、4.4) |
| COMM_YOS_FLG | 文字(1) | '1':自社、'2':傭車。照会OK時・PF9 でセット |
| COMM_EDA | 文字(1) | 枝番の印刷('0':なし、'1':あり) |
| COMM_PRTB_FLG・COMM_EDAB_FLG | 文字(1) | 印刷装置・枝番の印刷の項目チェック結果 |
| COMM_YOSRY | 10進(7) | 傭車料。TSキュー初期化時に 0 にする |
| COMM_PF5 | 文字(1) | TSキュー初期化時に空白にする |
3.2 TSキュー:エラーチェック用(CHK_DSP_WORK:44バイト)
キュー名は「端末ID+'BU04'」。エラー時に保存し、次の入力で読んで削除する。
| 項目ID | 型 | 内容 |
|---|---|---|
| LOOP_FLG | 文字(1) | 使用しない |
| OKFLG | 文字(1) | 全体チェック結果('1':エラー、'2':OK) |
| FLG(5) | 文字(1) | 項目ごとのチェック結果('0':未入力、'1':エラー、'2':OK)。1:指令書NO、2:計画便コード、3:発店コード、4:発送日 月、5:発送日 日 |
| BU04031B・BU04032B | 文字(4)・(5) | 指令書NO |
| BU04044B | 文字(6) | 計画便コード |
| BU04091B・BU04092BBB | 文字(4)・(14) | 発店コード・店所名 |
| BU04093B・BU04094B | 文字(2) | 発送日(月・日) |
3.3 TSキュー:照会結果(TS_DATA:724バイト)
照会OK時に、エラーチェック用のキューを削除してから同じ名前(端末ID+'BU04')で書く。次のトランザクション(BV05・BU05)が読む。
| 項目 | 内容 |
|---|---|
| TS_DATA_LOOPFLG・TS_DATA_OKFLG | '0'・'2' |
| BACK_AREA | 画面に表示した名称(便名、傭車会社名、乗務員A名・B名、発店名・最終卸店名・最終着店名)。他(BUSTACD・BUENDCD・次の指令書の情報 NEXT_SHIR(3))は空 |
| REVE_DATA | センターからの受信データ(419バイト、CEDPBU04)。データ区分(UNKDTKB)が 'N' なら指令書NO以降の項目(UNKGRP1)と次の指令書情報(UNKNEXT)を、それ以外は次の指令書情報を空にし、入力年月日(UNKIYMD)に処理日付をセットする |
3.4 センター照会
| 項目 | 内容 |
|---|---|
| 接続先 | SYSID 'CIC1'、プロセス名(トランザクション)'B04U' |
| 送信(35バイト) | トランザクションID(4)+予備(1)+DPCEB04U(30) |
| 受信(419バイト) | トランザクションID(4)+エラーフラグ(1)+エラーコード(4)+CEDPBU04(410) |
送信項目:
| 項目 | 内容 |
|---|---|
| UNQTERM | 端末ID |
| UNQDTID | 空白 |
| UNQSTYM | 出発月日(MMDD)。画面の発送日 月・日 |
| UNQSTTC | 発店コード |
| UNQSHIN | 指令書NO(4桁+5桁)。未入力なら 0 |
| UNQBINC | 計画便コード。未入力なら 0 |
受信項目(CEDPBU04:配車入力照会後、検証後データ(増、傭))のうち本プログラムで使うもの:入力区分(UNKINKB、4.6)、指令書NO(UNKSHNO)、データ区分(UNKDTKB)、2.2 の各表示項目、出発 年(UNKSTYY)、最終卸店到着 年(UNKENYY)。
3.5 参照ファイル
| ファイル | 内容 | キー | 取得項目 |
|---|---|---|---|
| VPTENMS | 店所マスター | 店所コード(4) | 店所略名 VETNSRNM、店所区分 VETNGETA |
| VPJYUGY | 従業員マスター | 従業員コード(6) | 氏名 VEJYJNM1 |
| VPUNKEI | DDP 運賃計算荷主マスター(1)(DDPUNK10) | 傭車会社コード(7)+'00000001' | 顧客略名(漢字) KNTNRGNM |
4. 処理仕様
4.1 処理の流れ
flowchart TD
S([開始]) --> AID{押されたキー}
AID -- CLEAR --> CLR[印刷装置解放・TSキュー削除<br/>終了画面]
AID -- PF2/3/4/9/11/12/その他 --> PF[ファンクションキー処理 4.8・4.9]
AID -- 実行/PF10 --> RCV[MPBU040 を受信<br/>TSキュー読込・なければ初期化]
RCV --> CHK[入力チェック 4.3・4.4]
CHK -- エラー --> ERR[TSキュー保存<br/>エラー表示] --> W04([BU04 で待機])
CHK -- OK --> INQ[センター照会 4.5]
INQ -- 通信エラー --> ERR
INQ -- OK --> DSP[照会結果の表示<br/>入力区分の判定 4.6]
DSP -- 入力不可 --> ERRQ[TSキュー保存<br/>ERR Q 表示] --> W04
DSP -- 入力可 --> OK[照会結果を TSキューへ<br/>スタックに本画面を積む]
OK -- 傭車 --> WV([BV05 で待機])
OK -- 自社増便 --> WU([BU05 で待機])
4.2 開始時の処理
- 例外条件の分岐先を登録する(画面データなし・レコードなし・ファイルの終わり → CLEAR と同じ終了処理)。
- 押下キーの分岐先を登録する(CLEAR → 終了処理、PF10 → 新規の照会、それ以外のPFキー → ファンクションキー処理)。
- 画面 MPBU040 を受信する。実行キーのときは PF10 フラグを '0'(既存の照会)、PF10 のときは '1'(新規の照会)にする。
- TSキュー(端末ID+'BU04'、44バイト)を読む。
- 読めた場合:キューを削除する(前回のチェック結果を引き継ぐ)。
- キューがない場合:次のように初期化する。
| 項目 | 初期値 |
|---|---|
| LOOP_FLG・OKFLG・FLG(1~5) | '1'・'0'・'0' |
| COMM_PRI_FLG | '0'~'9' 以外なら '0' |
| COMM_YOS_FLG | '1'・'2' 以外なら '0' |
| COMM_EDA | '0'・'1' 以外なら '0' |
| COMM_PRTB_FLG・COMM_EDAB_FLG | '0'~'3' 以外なら '0' |
| 指令書NO・計画便コード | LOW-VALUE |
| 発店コード・発送日 月・日 | 空白 |
| COMM_YOSRY・COMM_PF5 | 0・空白 |
4.3 照会キーのチェック(CHECK_SUB_RTN_LVL1)
すでにOK(FLG = '2')の項目はチェックしない。
| No | 項目 | 未入力 | チェック内容(満たさなければエラー) |
|---|---|---|---|
| 1 | 指令書NO(4+5桁) | 未入力('0')。どちらかが入力されていればチェックする | 9桁とも数字。チェックデジット(LSO0020、区分 '07'、タイプ 'C')が正しい。1桁目が 0・6・9 のいずれか、8桁目が 1 |
| 2 | 計画便コード(6桁) | 未入力('0') | 数字。1桁目が 6・9 のいずれか、6桁目が 1 |
| 3 | 発店(4桁) | エラー | 数字。店所マスターにある(店所名を取得、なければ「??????」)。店所区分(VETNGETA)が 0・1、または 区分 4 かつ店所 0641 |
| 4 | 発送日 月 | エラー | 数字、01~12 |
| 5 | 発送日 日 | エラー | 数字、01~31 |
| 6 | 発送日(月日)(関連) | ― | 発送日(月・日)がともにOKのとき、処理日付との差が ±30日以内(LSO0130)。年は処理日付の年とし、処理月が12月で発送日の月が1月なら翌年、処理月が1月で発送日の月が12月なら前年とする。範囲外なら発送日(月・日)ともエラー |
照会の種類による判定:
| 場合 | 判定 |
|---|---|
| PF10(新規) | 指令書NO・計画便コードがともに未入力ならOK。どちらかが入力されていて、発店・発送日(月・日)がOKなら、入力された方をエラー、未入力の方をOKとし、「増便の場合は、入力せずにPF10を押してください」を表示 |
| 実行・傭車 | 指令書NO と計画便コードのどちらか一方だけを入力する。両方未入力、または両方OKなら、両方エラー |
| 実行・自社増便 | 常にエラー。「増便の場合は、入力せずにPF10を押してください」 |
FLG(1)~FLG(4) のどれかがエラーなら全体エラー(OKFLG = '1')。また、印刷装置のチェック結果(4.4)が '0'・'2' 以外の場合も全体エラーにする。
4.4 印刷装置・枝番の印刷のチェック
COMM_PRI_FLG が '2'(チェック済みOK)なら行わない。
| 項目 | 未入力 | チェック内容 |
|---|---|---|
| 印刷装置番号 | '0'(指定なし) | 4桁で入力されていれば SL11100P を LINK して印刷装置かを確認する。4桁でなければエラー('1') |
| 枝番の印刷 | '0'(なし) | '1' ならOK('2')、それ以外はエラー('1') |
SL11100P の戻り値と結果:
| 戻り値 | 結果(COMM_PRTB_FLG) | メッセージ |
|---|---|---|
| 'O' | '2':OK | ― |
| 'R' | '3' | 印刷装置 使用不可能です。!! |
| 'C' | '4' | このIDは、印刷装置ではありません。 |
| 'N' | '5' | このIDは、存在しません。!! |
| 'P' | '6' | プリンターを確認し、30秒後に実行キーを押して下さい。 |
| 'U' | '7' | プリンターは現在使用中です。しばらくお待ち下さい。 |
| その他 | '1' | エラー項目あり,再入力して下さい |
印刷のチェック結果(COMM_PRI_FLG):
| 印刷装置・枝番の印刷 | COMM_PRI_FLG |
|---|---|
| OK・OK、指定なし・なし、OK・なし | 印刷装置の結果('2' または '0') |
| 上記以外で、印刷装置の結果が '4' 以上 | 印刷装置の結果 |
| 上記以外 | '1'。印刷装置が指定なしで枝番の印刷が入力されている場合は、両方エラー('1') |
4.5 センター照会(INQUIRE_SUB_RTN)
- 送信データ(3.4)を組み立てる。
- CIC1 とのセッションを確保(ALLOCATE)し、B04U に接続(CONNECT PROCESS)して、送信・応答待ち(SEND INVITE)、受信(RECEIVE)する。
- 受信できたら、終了を送信(SEND LAST)してセッションを解放する。
- エラーの場合は次のとおり。エラーなら全体エラーにして、4.7 の表示に戻る。
| 発生箇所 | 条件 | エラーコード | エラーフラグ | メッセージ |
|---|---|---|---|---|
| ALLOCATE | 回線混雑(SYSBUSY) | ASYSB | ― | 回線が混雑しています!! 実行キーをもう一度押して下さい(画面を送信し、次の入力を受信して照会をやり直す) |
| ALLOCATE | SYSIDERR | ASYSI | 7 | 照会不可能!!回線不通の可能性あり センターに連絡して下さい |
| ALLOCATE | その他 | A9999 | 8 | 照会不可能!!サポート外ERROR センターに連絡して下さい |
| CONNECT | TERMERR/その他 | CTERM/C9999 | 7/8 | 同上(7・8 のメッセージ) |
| SEND | TERMERR/その他 | STERM/S9999 | 7/8 | 同上 |
| RECEIVE | TERMERR/LENGERR/その他 | RTERM/RLENG/R9999 | 7/9/8 | 9:照会不可能!!LENGERR |
4.6 照会結果の表示と入力区分の判定
名称の表示欄(便名・傭車会社名・乗務員A名・B名・発店名・最終卸店名・最終着店名)をクリアしてから、次のように表示する。
PF10(新規)の場合
| 照会区分 | 表示 |
|---|---|
| 傭車 | 発行枚数 1、運行形態 0、運行車区分 2「ヨウシヤ」「フツウ」 |
| 自社増便 | 発行枚数 2、傭車形態名を空白 |
センターが採番した指令書NO を表示する。入力区分が 0 以外ならエラー(9:「チェックデジット生成モジュール エラー」、7:「運行指令NO管理マスター I/Oエラー」、その他:「??????????」)。
実行(既存の指令書、傭車)の場合
2.2 のとおり照会結果を表示する(0 の項目は表示しない)。名称はマスターから取得し、ない場合は「?????」等を表示する。続けて入力区分で判定する。
| 入力区分 | 意味 | メッセージ |
|---|---|---|
| 0 | 入力可。ただし指令書NO で照会した場合(計画便コード未入力)は、次の2つを確認する ・出発日(UNKSTYY・MM・DD)が処理日付の ±30日以内でなければ区分 4 ・出発店所(UNKSTTC)が画面の発店と違えば区分 8 |
4:出発日付エラー!! 取消してから入力してください。 8:出発店所エラー!! 取消してから入力してください。 |
| 1 | 入力済み | 入力済みです!! 取消してから入力してください。 |
| 3 | 自社定便 | 自社定便の画面で入力!! 取消してから入力してください。 |
| 5 | 指令書マスター重複 | 指令書マスター重複!! 取消して指令NOで入力してください。 |
| 6 | 指令書マスターになし | 指令書マスターに無し |
| 7 | I/O エラー | I/Oエラー |
| 9 | 減便入力済み | 減便入力済みです。 |
| その他 | ?????????? |
指令書NO(UNKSHNO)が 0 でなければ指令書NO 欄に表示する。COMM_START_YMD・COMM_END_YMD を 0 にする。
入力区分が 0 の場合(入力可)
| 場合 | 通信領域 | 画面の属性 |
|---|---|---|
| PF10・傭車 | 出発年月日 = 処理日付 | 指令書№・発店コード・発行枚数・運行形態・運行車区分・計画便コードは入力不可。発送日 月・日・傭車会社コード・標屯(整数・少数)・傭車形態・一車保険料・定額傭車料・積載車番・トレーラー・乗務員Aコード・Bコード・発送日 時・分・最終卸店コード・最終卸店着日 月・日・時・分・直配区分・直配着地コードは入力可(数字)、連絡事項は入力可。カーソルは傭車会社コード |
| PF10・自社増便 | 出発年月日 = 処理日付 | 指令書№・発店コードは入力不可。発送日 月・日・発行枚数・運行形態・運行車区分・積載車番・トレーラー・乗務員Aコード・Bコード・発送日 時・分・最終卸店コード・最終卸店着日 月・日・時・分・最終着店コード・直配区分・直配着地コード・フェリー会社・鮮魚保険・次の指令書の情報(2-~4-、2.2 参照)は入力可(数字)、連絡事項は入力可。2-~4-運行形態は '0' を表示して入力不可。カーソルは運行形態 |
| 実行(既存の指令書) | 出発年月日 = 出発 年・月・日(UNKSTYY・MM・DD)、最終卸年月日 = 最終卸店到着 年・月・日(UNKENYY・MM・DD) | 発店コード・発行枚数・運行形態・運行車区分・計画便コードは入力不可。指令書№・傭車会社コード・傭車形態・一車保険料・定額傭車料・発送日 月・日・最終卸店コード・最終卸店着日 月・日・積載車番・トレーラー・乗務員Aコード・Bコード・標屯(整数・少数)・発送日 時・分・最終卸店着日 時・分・直配区分・直配着地コードは入力可(数字)、連絡事項は入力可。カーソルは指令書№(頭4桁) |
その後、次の処理を行う。
- エラーチェック用の TSキューを削除し、照会結果を TSキューに書く(3.3)。
- COMM_YOS_FLG を自社 '1'、傭車 '2' にする。
- 戻り先画面のスタックの最上位が「MPBU040/BU04」でなければ、件数を1増やして積む(最大5件。超える場合は5件目を上書き)。
- システム日付・時刻をセットして画面のデータ部分を送信し(入力項目を消去、カーソル指定)、傭車は BV05、自社増便は BU05 で待機する。
入力区分が 0 以外の場合(入力不可)
| 条件 | 処理 |
|---|---|
| 入力区分 1~5・8、または PF10 | 指令書NO・計画便コード・発店・発送日(月日)を入力不可にする(取消して入力し直す) |
| 上記以外(6・7・9 等、既存の照会) | 全項目のチェック結果をエラーにし、指令書NO・計画便コード・発送日(月日)を入力可・高輝度にする(発店は入力不可)。カーソルは指令書NO(未採番なら計画便コード) |
エラーコードに「ERR Q」をセットし、TSキュー(44バイト)を保存して、画面のデータ部分を送信し、BU04 で待機する。
4.7 チェック結果の表示(DISPLAY_SUB_RTN_LVL1)
- 印刷装置・枝番の印刷:OK・指定なしなら入力不可、エラーなら入力可・高輝度でカーソルを置く。
- 発送日 日・月:OK・未入力なら入力不可、エラーなら入力可・高輝度でカーソルを置く。
- 発店:OK・未入力なら入力不可、エラーなら入力不可・高輝度(属性 '9')。
- 計画便コード・指令書NO:OKなら値を表示して入力不可、未入力なら入力不可、エラーなら入力可・高輝度でカーソルを置く。
- メッセージ・エラーコード:
| 状態 | エラーコード | メッセージ |
|---|---|---|
| 通信エラー | 4.5 のコード | 4.5 のメッセージ |
| 増便なのに照会キーを入力 | ERR 1 | 増便の場合は、入力せずにPF10を押してください |
| 項目エラー | ERR 1 | 印刷のチェック結果(4.4)に応じたメッセージ。'0'~'2' は「エラー項目あり,再入力して下さい」 |
| OK | OK 2 | 各項目を入力して実行キーを押して下さい |
エラーの場合は、TSキュー(44バイト)を保存し、システム日付・時刻をセットして画面のデータ部分を送信し(入力項目を消去、カーソル指定)、BU04 で待機する。
4.8 ファンクションキーの処理(画面の切替え)
| キー | 処理 |
|---|---|
| PF2:取消 | 初期画面(下表)を表示し、BU04 で待機 |
| PF12:発店変更 | PF2 と同じ初期画面を、発店を入力可(数字)にして表示する |
| PF3:終了 | 印刷装置がOK(COMM_PRTB_FLG = '2')なら印刷装置を解放する。TSキューを削除し、戻り先画面のスタックから一つ前の画面を決め、共通ヘッダ画面(MPDM010)に日時をセットして送信し、戻り先の画面をデータなしで送信して、そのトランザクションで待機 |
| PF4:戻り | PF3 と同じく印刷装置を解放し、スタックの1件目(メインメニュー)に戻る |
| その他 | 画面のデータ部分を再送信し、BU04 で待機 |
初期画面(PF2・PF12):
| 項目 | 傭車 | 自社増便 |
|---|---|---|
| 見出し | 傭 車 配 車 入 力(定・増) | 自 社 増 便 配 車 入 力 |
| 発店 | 端末の店所コード・店所名。入力不可(PF12 は入力可) | 同左 |
| 発送日(月日) | 処理日付の月・日。入力可(数字) | 処理日付の月・日。入力不可 |
| 指令書NO・計画便コード | 入力可。カーソルは計画便コード | 入力不可 |
| メッセージ(反転表示) | 定便=>便コード・発送日(月日)、又は指令NO 増便=>PF10 | PF10を押して、指令書NOを表示してください。 |
| 印刷装置・枝番の印刷 | 前回の値(通信領域)を表示。入力不可 | 同左 |
| その他の項目 | 入力不可 | 同左 |
画面を消去して送信し(カーソル指定)、TSキューを削除する。
PF3 の戻り先:
| 条件 | 戻り先 |
|---|---|
| スタックが空 | なし(終了画面を表示して終了) |
| 最上位が MPBU040 以外 | 最上位の画面(1件取り除く) |
| 最上位が MPBU040 で、その下がない | なし(終了画面を表示して終了) |
| 最上位が MPBU040 で、その下がある | その下の画面(2件取り除く) |
PF4 の戻り先:スタックが空、または1件目が MPBU040 なら終了画面、それ以外は1件目の画面(スタックを全件消去)。
4.9 印刷関係の処理
PF9:テスト印刷
- COMM_YOS_FLG を自社 '1'、傭車 '2' にする。
- 印刷装置・枝番の印刷を 4.4 と同じくチェックし、属性・メッセージを表示する(印刷装置の結果が '3' 以上ならその結果、それ以外のエラーは '1')。
- 印刷のチェック結果が OK('2')なら、印刷情報(店所コード、端末ID、印刷装置ID、処理日付、TSキュー名=端末ID+'MMSS')と印刷データ(端末ID、データ件数 1)を作り、TSキューに書いて印刷を起動する。
| 照会区分 | TSキュー名 | 長さ | 起動トランザクション |
|---|---|---|---|
| 自社増便 | 端末ID+'SHTS' | 318 | BV13(印刷区分 '4') |
| 傭車 | 端末ID+'SHYT' | 144 | BV14 |
- 画面のデータ部分を送信し、BU04 で待機する。
PF11:印刷装置リセット
印刷のチェック結果が OK('2')なら、印刷装置の端末を強制解除(PURGE)し、正常なら再接続(ACQUIRE、INSERV)する。画面のデータ部分を送信し、BU04 で待機する。
印刷装置の解放(PRINTER_FREE)
PF3・PF4・CLEAR で印刷装置がOKの場合に行う。2回繰り返して、終了データ(データ件数 0、終了フラグ 'E'、14バイト)を TSキュー(端末ID+現在の分を変えた時刻 MMSS)に書き、BV13 を印刷装置で起動する。印刷のチェック結果を空白にする。
4.10 システム日付・時刻の設定(TIMESET_SUB_RTN)
現在の日時を YY/MM/DD・HH:MM:SS に編集して日付・時刻欄にセットする(入力不可・変更フラグオン)。
4.11 共通の編集処理
| 処理 | 内容 |
|---|---|
| NUM_SHIFT_RTN | 数字の前ゼロを除いて左詰めにし、後ろを LOW-VALUE にする(すべて 0 なら '0') |
| SOSI_EDIT_RTN | 項目の末尾でシフトアウト(漢字開始)が閉じていない場合に、シフトイン(漢字終了)の位置を補正する |
4.12 例外処理
| 発生条件 | 処理 |
|---|---|
| CLEAR キー | 印刷装置がOKなら解放し、TSキューを削除して、終了画面(ELEPHAN)を表示して終了 |
| 画面データなし(MAPFAIL)・レコードなし(NOTFND)・ファイルの終わり(ENDFILE) | CLEAR キーと同じ |
5. メッセージ一覧
| No | エラーコード | メッセージ | 表示するとき |
|---|---|---|---|
| 1 | ― | 定便=>便コード・発送日(月日)、又は指令NO 増便=>PF10 | 初期画面(傭車) |
| 2 | ― | PF10を押して、指令書NOを表示してください。 | 初期画面(自社増便) |
| 3 | OK 2 | 各項目を入力して実行キーを押して下さい | チェックOK(照会前の表示) |
| 4 | ERR 1 | エラー項目あり,再入力して下さい | 照会キー・印刷項目のエラー |
| 5 | ERR 1 | 増便の場合は、入力せずにPF10を押してください | 自社増便で実行キー、PF10 で照会キーを入力 |
| 6 | ERR 1 | 印刷装置 使用不可能です。!! | 印刷装置チェック 'R' |
| 7 | ERR 1 | このIDは、印刷装置ではありません。 | 印刷装置チェック 'C' |
| 8 | ERR 1 | このIDは、存在しません。!! | 印刷装置チェック 'N' |
| 9 | ERR 1 | プリンターを確認し、30秒後に実行キーを押して下さい。 | 印刷装置チェック 'P' |
| 10 | ERR 1 | プリンターは現在使用中です。しばらくお待ち下さい。 | 印刷装置チェック 'U' |
| 11 | ASYSB | 回線が混雑しています!! 実行キーをもう一度押して下さい | センターが混雑 |
| 12 | ASYSI・A9999・CTERM・C9999・STERM・S9999・RTERM・R9999 | 照会不可能!!回線不通の可能性あり センターに連絡して下さい/照会不可能!!サポート外ERROR センターに連絡して下さい | センター通信エラー(4.5) |
| 13 | RLENG | 照会不可能!!LENGERR | 受信長エラー |
| 14 | ERR Q | 出発日付エラー!! 取消してから入力してください。 | 指令書NO の照会で出発日が ±30日を超える |
| 15 | ERR Q | 出発店所エラー!! 取消してから入力してください。 | 指令書NO の照会で出発店所が画面の発店と違う |
| 16 | ERR Q | 入力済みです!! 取消してから入力してください。 | 入力区分 1 |
| 17 | ERR Q | 自社定便の画面で入力!! 取消してから入力してください。 | 入力区分 3 |
| 18 | ERR Q | 指令書マスター重複!! 取消して指令NOで入力してください。 | 入力区分 5 |
| 19 | ERR Q | 指令書マスターに無し | 入力区分 6 |
| 20 | ERR Q | I/Oエラー | 入力区分 7(既存の照会) |
| 21 | ERR Q | 減便入力済みです。 | 入力区分 9(既存の照会) |
| 22 | ERR Q | チェックデジット生成モジュール エラー | 入力区分 9(PF10) |
| 23 | ERR Q | 運行指令NO管理マスター I/Oエラー | 入力区分 7(PF10) |
| 24 | ERR Q | ?????????? | 上記以外の入力区分 |
6. 画面遷移
flowchart LR
MENU[メニュー等] --> BU04[BU04<br/>本プログラム]
BU04 -- 実行/PF10(エラー) --> BU04
BU04 -- 照会OK・傭車 --> BV05[BV05 傭車配車入力]
BU04 -- 照会OK・自社増便 --> BU05[BU05 自社増便配車入力]
BU04 -- PF2/PF9/PF11/PF12 --> BU04
BU04 -- PF3 --> PREV[一つ前の画面]
BU04 -- PF4 --> MAIN[メインメニュー]
BU04 -- CLEAR --> END[ELEPHAN 終了]
7. 補足・留意事項
- 出発店所のチェックが「テスト用」のまま:指令書NO で照会したときの出発店所チェックは、端末の店所(COMM_TEN_CODE)との比較がコメントアウトされ、「テスト用」として画面の発店と比較している。発店は PF12 で変更できるため、他店の指令書でも発店を合わせれば入力できる。
- 携帯管理No は表示しない:傭車の場合に特定便コードを携帯管理No に表示する処理と、入力可にする処理がコメントアウトされている。
- 発送日 日だけのエラーが全体エラーにならない:全体エラーの判定は FLG(1)~FLG(4) だけを見ており、FLG(5)(発送日 日)を見ていない。発送日 月が正しく日だけが範囲外(00・32 以上・数字以外)の場合、±30日のチェックも行われず、そのまま照会に進む。照会の発送日(月日)(UNQSTYM)は、このとき前回の値または未設定のまま送られる。
- 自社増便では実行キーが使えない:自社増便は常に PF10(新規)で照会する。実行キーを押すと「増便の場合は、入力せずにPF10を押してください」になる。
- 発店エラーは画面で直せない:発店がエラーのときは、入力不可・高輝度(属性 '9')で表示され、カーソルも置かれない。直すには PF12 で発店を入力可にする必要がある。
- 印刷のチェック結果の判定がPF9 と違う:実行キーでは印刷装置の結果が '4' 以上のときだけその結果を使い、'3'(使用不可)は「エラー項目あり」になる。PF9 では '3' 以上でその結果を使うため、「印刷装置 使用不可能です。!!」が表示される。
- テスト印刷のTSキュー名:印刷情報の TSキュー名は端末ID+固定文字 'MMSS' で、実際に書く TSキュー(端末ID+'SHTS'/'SHYT')とは名前が違う。
- 印刷装置の解放は常に BV13:傭車でも、印刷装置の解放は BV13 を起動している。
- 運行形態「?????」:運行形態が 0 で入力区分が 6(指令書マスターに無し)のときは、運行形態名に「?????」を表示する。
- 回線混雑時の再照会:回線混雑(SYSBUSY)では、メッセージを送信した後に画面を受信して照会をやり直すため、疑似会話でなく会話型の待ちになる。
- 照会結果の TSキュー:照会OK時は、エラーチェック用(44バイト)と同じキュー名に照会結果(724バイト)を書き、次のトランザクション(BV05・BU05)に引き継ぐ。
- 使っていない領域:HELP画面コントロールエリア、LOOP_FLG、BUSTACD・BUENDCD・NEXT_SHIR(本プログラムでは空のまま)、TANERR、KBIDWK、COMM_SPAC 等は使っていない。