プロジェクト

全般

プロフィール

レビュー指摘 #12417 » BU10400P_仕様書.md

幸塚 和久, 2026-10-28 03:01 午後

 

プログラム仕様書 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
  1. 指令書NO・計画便コード・発店・発送日(月日)、印刷装置・枝番の印刷をチェックする。
  2. センターに照会する。PF10 のときは新しい指令書NO の採番、それ以外は既存の指令書データの照会になる。
  3. 照会結果(指令書の内容、名称)を画面に表示し、入力区分(UNKINKB)で入力できる指令書かを判定する。
  4. 入力できる場合は、照会結果を TSキューに保存し、入力項目を入力可にして、傭車は BV05、自社増便は BU05 で待機する。
  5. 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 開始時の処理

  1. 例外条件の分岐先を登録する(画面データなし・レコードなし・ファイルの終わり → CLEAR と同じ終了処理)。
  2. 押下キーの分岐先を登録する(CLEAR → 終了処理、PF10 → 新規の照会、それ以外のPFキー → ファンクションキー処理)。
  3. 画面 MPBU040 を受信する。実行キーのときは PF10 フラグを '0'(既存の照会)、PF10 のときは '1'(新規の照会)にする。
  4. 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)

  1. 送信データ(3.4)を組み立てる。
  2. CIC1 とのセッションを確保(ALLOCATE)し、B04U に接続(CONNECT PROCESS)して、送信・応答待ち(SEND INVITE)、受信(RECEIVE)する。
  3. 受信できたら、終了を送信(SEND LAST)してセッションを解放する。
  4. エラーの場合は次のとおり。エラーなら全体エラーにして、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桁)

その後、次の処理を行う。

  1. エラーチェック用の TSキューを削除し、照会結果を TSキューに書く(3.3)。
  2. COMM_YOS_FLG を自社 '1'、傭車 '2' にする。
  3. 戻り先画面のスタックの最上位が「MPBU040/BU04」でなければ、件数を1増やして積む(最大5件。超える場合は5件目を上書き)。
  4. システム日付・時刻をセットして画面のデータ部分を送信し(入力項目を消去、カーソル指定)、傭車は BV05、自社増便は BU05 で待機する。

入力区分が 0 以外の場合(入力不可)

条件 処理
入力区分 1~5・8、または PF10 指令書NO・計画便コード・発店・発送日(月日)を入力不可にする(取消して入力し直す)
上記以外(6・7・9 等、既存の照会) 全項目のチェック結果をエラーにし、指令書NO・計画便コード・発送日(月日)を入力可・高輝度にする(発店は入力不可)。カーソルは指令書NO(未採番なら計画便コード)

エラーコードに「ERR Q」をセットし、TSキュー(44バイト)を保存して、画面のデータ部分を送信し、BU04 で待機する。

4.7 チェック結果の表示(DISPLAY_SUB_RTN_LVL1)

  1. 印刷装置・枝番の印刷:OK・指定なしなら入力不可、エラーなら入力可・高輝度でカーソルを置く。
  2. 発送日 日・月:OK・未入力なら入力不可、エラーなら入力可・高輝度でカーソルを置く。
  3. 発店:OK・未入力なら入力不可、エラーなら入力不可・高輝度(属性 '9')。
  4. 計画便コード・指令書NO:OKなら値を表示して入力不可、未入力なら入力不可、エラーなら入力可・高輝度でカーソルを置く。
  5. メッセージ・エラーコード:
状態 エラーコード メッセージ
通信エラー 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:テスト印刷

  1. COMM_YOS_FLG を自社 '1'、傭車 '2' にする。
  2. 印刷装置・枝番の印刷を 4.4 と同じくチェックし、属性・メッセージを表示する(印刷装置の結果が '3' 以上ならその結果、それ以外のエラーは '1')。
  3. 印刷のチェック結果が OK('2')なら、印刷情報(店所コード、端末ID、印刷装置ID、処理日付、TSキュー名=端末ID+'MMSS')と印刷データ(端末ID、データ件数 1)を作り、TSキューに書いて印刷を起動する。
照会区分 TSキュー名 長さ 起動トランザクション
自社増便 端末ID+'SHTS' 318 BV13(印刷区分 '4')
傭車 端末ID+'SHYT' 144 BV14
  1. 画面のデータ部分を送信し、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. 補足・留意事項

  1. 出発店所のチェックが「テスト用」のまま:指令書NO で照会したときの出発店所チェックは、端末の店所(COMM_TEN_CODE)との比較がコメントアウトされ、「テスト用」として画面の発店と比較している。発店は PF12 で変更できるため、他店の指令書でも発店を合わせれば入力できる。
  2. 携帯管理No は表示しない:傭車の場合に特定便コードを携帯管理No に表示する処理と、入力可にする処理がコメントアウトされている。
  3. 発送日 日だけのエラーが全体エラーにならない:全体エラーの判定は FLG(1)~FLG(4) だけを見ており、FLG(5)(発送日 日)を見ていない。発送日 月が正しく日だけが範囲外(00・32 以上・数字以外)の場合、±30日のチェックも行われず、そのまま照会に進む。照会の発送日(月日)(UNQSTYM)は、このとき前回の値または未設定のまま送られる。
  4. 自社増便では実行キーが使えない:自社増便は常に PF10(新規)で照会する。実行キーを押すと「増便の場合は、入力せずにPF10を押してください」になる。
  5. 発店エラーは画面で直せない:発店がエラーのときは、入力不可・高輝度(属性 '9')で表示され、カーソルも置かれない。直すには PF12 で発店を入力可にする必要がある。
  6. 印刷のチェック結果の判定がPF9 と違う:実行キーでは印刷装置の結果が '4' 以上のときだけその結果を使い、'3'(使用不可)は「エラー項目あり」になる。PF9 では '3' 以上でその結果を使うため、「印刷装置 使用不可能です。!!」が表示される。
  7. テスト印刷のTSキュー名:印刷情報の TSキュー名は端末ID+固定文字 'MMSS' で、実際に書く TSキュー(端末ID+'SHTS'/'SHYT')とは名前が違う。
  8. 印刷装置の解放は常に BV13:傭車でも、印刷装置の解放は BV13 を起動している。
  9. 運行形態「?????」:運行形態が 0 で入力区分が 6(指令書マスターに無し)のときは、運行形態名に「?????」を表示する。
  10. 回線混雑時の再照会:回線混雑(SYSBUSY)では、メッセージを送信した後に画面を受信して照会をやり直すため、疑似会話でなく会話型の待ちになる。
  11. 照会結果の TSキュー:照会OK時は、エラーチェック用(44バイト)と同じキュー名に照会結果(724バイト)を書き、次のトランザクション(BV05・BU05)に引き継ぐ。
  12. 使っていない領域:HELP画面コントロールエリア、LOOP_FLG、BUSTACD・BUENDCD・NEXT_SHIR(本プログラムでは空のまま)、TANERR、KBIDWK、COMM_SPAC 等は使っていない。
(7-7/7)