プロジェクト

全般

プロフィール

レビュー指摘 #12452 » BU10700P_仕様書.md

幸塚 和久, 2026-10-29 04:59 午後

 

プログラム仕様書 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 で待機する。

  1. 指令書NO・入力店所・印刷装置をチェックする。
  2. センター(B07U:BU20700P)に指令書NO を送り、運行指令マスターの内容を受け取る。
  3. 受け取った内容と、店所名・乗務員名・傭車会社名(DDP のマスターから取得)を表示する。
  4. 入力区分(配車の状態)と発店を確認する。修正できる状態なら、運行車区分・増便/定便・送付書の枚数に応じて入力可の項目を決め、照会結果を 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)

  1. 画面を受信し、TSキュー(端末ID+'BU07')を読む。なければ初期化する(LOOP_FLG '1'、OKFLG・FLG '0'、印刷装置の状態が '0'~'9' 以外なら '0'、自社傭車フラグが '1'・'2' 以外なら '0'、入力店所に端末の店所コード、指令書NO の保存域を LOW-VALUE)。あれば削除する。
  2. チェック結果が '2'(OK済み)の項目はチェックしない。
FLG 項目 チェック内容(満たさなければエラー)
1 指令書NO(頭4桁+後5桁) 入力されている(両方とも未入力ならエラー)。9桁が数字で、チェックデジットが正しく(LSO0020、区分 '07'、タイプ 'C')、8桁目が 1~4
2 入力店所コード 入力がなく、値が端末の店所コードと違えばエラー(店所名を空白にする)。それ以外は数字で、店所マスター(VPTENMS)にあること。あれば入力店所名に店所略名(漢字)、なければ「??????」を表示
  1. 印刷装置をチェックする(印刷装置の状態が '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'(エラー)
  1. FLG(1)・FLG(2) のどちらかが '1'、または印刷装置の状態が '0'・'2' 以外なら全体エラー(OKFLG '1')。

4.3 表示の編集とセンター照会(DISPLAY_SUB_RTN_LVL1、INQUIRE_SUB_RTN)

  1. 表示の編集
    • 印刷装置:状態が '0'・'2' なら入力不可。それ以外は入力可(輝度)でカーソルを置く。
    • 入力店所:OK・未チェックなら入力不可。エラーなら入力可(輝度)でカーソルを置く。
    • 指令書NO:OK なら入力不可。それ以外は入力可(輝度)で頭4桁にカーソルを置く。
    • エラーなら、印刷装置の状態に応じたメッセージ(5章)とエラーコード 'ERR 1' をセットし、TSキューを書いて画面のデータ部分を送信し(カーソル指定)、BU07 で待機する。通信エラーのとき(エラーフラグ '7'~'9')は通信エラーのメッセージ(下表)と通信エラーのエラーコードを表示する。
    • OK なら、エラーコード 'OK 2' とメッセージ「各項目を入力して実行キーを押して下さい」をセットし、センター照会に進む。
  2. センター照会:センター(CIC1 の B07U)に接続し、指令書NO を送信して結果を受信する(3.2)。終了データを送って会話を終える。
  3. 通信エラーは次のとおり。回線混雑(ASYSB)は、メッセージを表示して画面を受信し、接続からやり直す。それ以外はエラーフラグをセットして全体エラーにし、1 の表示の編集に戻る。
エラーコード 発生箇所 エラーフラグ メッセージ
ASYSB 接続先の割当て(混雑) - 回線が混雑しています!! 実行キーをもう一度押して下さい
ASYSI・CTERM・STERM・RTERM 割当て(SYSID エラー)・接続・送信・受信(回線切断) 7 照会不可能!!回線不通の可能性あり センターに連絡して下さい
A9999・C9999・S9999・R9999 割当て・接続・送信・受信(その他) 8 照会不可能!!サポート外ERROR センターに連絡して下さい
RLENG 受信(長さエラー) 9 照会不可能!!LENGERR
  1. センターから受信したエラーフラグが '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)

  1. TSキュー(端末ID+'BU07')を削除する。
  2. 自社傭車フラグ(COMM_YOS_FLG)を、運行車区分が 02 以外なら '1'(自社)、02 なら '2'(傭車)にする。
  3. 受信データの入力年月日を処理日付に置き換え、照会結果(520バイト)を TSキューに書く。
  4. 戻り先画面のスタックの最上位が「MPBU070/BU07」でなければ積む(最大5件)。
  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. 補足・留意事項

  1. 入力店所による代行修正:PF12 で入力店所を入力可にし、ほかの店所コードを入れると、その店所を発店とする指令書を修正できる(発店と入力店所の一致で判定するため)。
  2. PF12 の後の入力店所:PF12 では入力店所に端末の店所コードを表示するが、変更フラグをオンにしていない。そのまま実行キーを押すと入力店所は「未入力」で、値が端末の店所コードと一致しないためエラーになる(ソース上の動き)。入力店所を入れ直す必要がある。
  3. ERR Q の後の指令書NO:ERR Q のときは指令書NO を入力不可(変更フラグオン)にするため、指令書NO を変えられない。そのまま実行キーを押すと同じ指令書を照会して同じエラーになる。別の指令書は PF2/PF12 で取り消してから入力する。
  4. 印刷区分なし:画面に印刷区分はなく、印刷装置を入れた場合だけ印刷装置の状態を管理する。指令書の印刷そのものは後続(BU10900P など)で行い、本プログラムではテストプリントと印刷終了レコードだけを起動する。
  5. センターのエラーは入力区分で返る:センターは指令書がない場合に入力区分 6、読込みエラーに入力区分 7 を返し、エラーフラグは '0' のまま。そのため照会結果を一度表示してから ERR Q になる。読込みエラーの内容(センターのエラーコード)は表示しない。
  6. 金額の桁:一車保険料(傭車の場合、5桁)は4桁、定額傭車料(7桁)は6桁、鮮魚保険料(5桁)は4桁の編集域を通して表示するため、上位の桁は表示されない。
  7. 連絡事項:センターの連絡事項は26桁だが、画面には先頭24桁だけを表示する。
  8. 乗継員の属性:乗継員1A~2Bは照会OK 時に属性をセットしない。属性は画面の直前の状態(PF2 の初期画面では入力不可)のままになる。
  9. 店所区分のチェックは無効:入力店所の店所区分(0・1、または店所 0641 で区分 4)を確認する処理があるが、エラーにする行がコメントになっており判定していない。
  10. エラーコード 'OK 2':OK 時のエラーコードは 'OK' と '2' の間に空白が2つある(解析資料では 'OK 2')。
  11. 照会結果の TSキュー名:照会結果は本プログラムのトランザクションID(BU07)を付けたキュー名で書く。後続の BU10800P/BV10800P はこのキューを読む。
(6-6/6)