プロジェクト

全般

プロフィール

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

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

 

プログラム仕様書 BU10900P(配車修正入力 確認)

項目 内容
システムID BU
参考資料 ・現行ソース BU10900P.pl1(センター側の動きは BU20900P.pl1 で確認)
・画面イメージ MPBU070.jpg(配車修正入力)
・現行の解析資料 BU0070_配車修正入力.xlsx(シート「資産一覧」「MPBU070」「レコードフォーマット」「SRC_BU10900P」)
・前の画面の仕様書 BU10800P_仕様書.md、BV10800P_仕様書.md
項目名の出典 画面項目は解析資料のシート「MPBU070」の日本語名、センターとの受渡し項目(CEDPBU07・CEDPBU09)はシート「レコードフォーマット」の日本語名称

1. 概要

項目 内容
プログラムID BU10900P(手続き名:BU10900)
プログラム名称 配車修正入力 確認
言語 PL/I(CICS コマンドレベル)
処理形態 オンライン(CICS 疑似会話型)
動作環境 SV(DDP 側)
トランザクションID BU09
パターンID PPOD255P(1987/05/01)、業務 BUSHRE30、部品 PBOD020P
使用画面(マップ) MPBU070(配車修正入力)、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面)
前の処理 BU08(BU10800P:自社便の検証)、BV08(BV10800P:傭車便の検証)のチェックOK 後
次の処理 実行キー:センターに更新を依頼して結果を表示(BU09 で待機)。PF5:BU08/BV08 に戻って修正
センターへの更新依頼 SYSID 'CIC1'、プロセス 'B09U'(BU20900P)と APPC 会話
参照ファイル なし(DDP のマスターは読まない)
起動するトランザクション BV13(自社便の指令書印刷)、BV14(傭車便の指令書印刷)
一時記憶 TSキュー(通信領域のキュー名。BU10700P が書いた「端末ID+'BU07'」、長さ 520)。印刷データの TSキュー(端末ID+時刻)

1.1 機能概要

検証済みの修正内容でセンターの運行指令マスターを更新する画面。BU10800P・BV10800P の「確認OKなら実行キーを押して下さい。修正なら、PF5」の画面で待機する。

  1. 実行キー:TSキューの検証後データをセンター(B09U:BU20900P)に送って更新を依頼し、結果のメッセージを表示する。印刷装置が使用可で更新が成功したら、指令書を印刷する。
  2. PF5:入力可の項目を戻して BU08(自社便)/BV08(傭車便)に戻り、修正をやり直す。
flowchart LR
    BU08[BU08/BV08<br/>検証OK] --> BU09[BU09<br/>本プログラム<br/>MPBU070]
    BU09 <-- APPC B09U --> CIC1[(センター CIC1<br/>BU20900P<br/>VKUNKSH 更新)]
    BU09 -- 印刷 --> PRT[BV13/BV14<br/>指令書印刷]
    BU09 -- PF5 --> BU08
    BU09 -- 更新後の実行 --> BU07[BU07<br/>初期画面]

2. 画面仕様

画面レイアウト・項目は BU10700P と同じ(BU10700P_仕様書.md の 2章)。本プログラムは画面の値をチェックせず、メッセージ・エラーコードと、PF5 のときの属性だけを変える。

2.1 ファンクションキー

キー 機能 処理概要
実行(Enter) 更新 センターに更新を依頼する(4.2)
PF2 取消 TSキューを削除し、BU10700P の初期画面を表示して BU07 で待機する
PF3 終了 印刷終了の処理をして、一つ前の画面に戻る
PF4 戻り 印刷終了の処理をして、メインメニューに戻る
PF5 修正 入力可の項目を戻して BU08/BV08 で待機する(4.3)
PF8・PF9 テストプリント 印刷装置が使用可の場合だけ、テスト印刷を起動する(BU10800P と同じ)
PF11 印刷装置の再接続 印刷装置を強制解放し、再び接続する
CLEAR 強制終了 印刷終了の処理をして、終了画面(ELEPHAN)を表示して終了
上記以外 再表示 画面のデータ部分を再送信し、BU09 で待機

PF2・PF3・PF4・PF8・PF9・PF11・CLEAR の処理は BU10800P と同じ(BU10800P_仕様書.md の 4.7。待機するトランザクションは BU09)。


3. インターフェース

3.1 通信領域(COMMAREA:256バイト)

BU10800P と同じ項目を使う。COMM_PRI_FLG(印刷装置の状態)が '2' なら更新後に指令書を印刷し、COMM_YOS_FLG('1':自社)で自社用・傭車用の印刷を選ぶ。

3.2 TSキュー(520バイト)

BU10800P と同じ領域。本プログラムでは検証後データの部分を、センターへの送信データ(CEDPBU07 の配置。項目名は UNK で始まる)として使う。

3.3 センターへの更新依頼(B09U:BU20900P)

項目 内容
接続先 SYSID 'CIC1'、プロセス名 'B09U'
送信(250バイト) TSキューの検証後データ(トランザクションID・エラーフラグ・エラーコード+CEDPBU07 の 241バイト)。入力結果(UNKNYUK)に画面の入力区分(1・2・5・9・D・R など)をセットして送る
受信(169バイト) トランザクションID(4)+エラーフラグ(1)+エラーコード(4)+配車修正入力更新後データ(CEDPBU09、下表)
項目ID 項目名 本プログラムでの用途
DNKNYUK 入力結果 更新の結果(4.2 の表)
DNKSHNO 指令書NO
UNQENTC 最終到着店 自社便の印刷で、次運行発店が 0 のときに使う
UNQCARS・UNQCART 積載社番(1)(2)・トレーラ頭等(1)(2) 自社便の印刷
UNQSZTC 所属店 印刷
UNQNTC1・UNQNTC2 乗継店1・2 自社便の印刷
UNQDTIM・UNQDONO・UNQDIN1~3 道路情報(日時・道路No・コード) 自社便の印刷
UNQJIKB・UNQJITN・UNQITKB・UNQITTN 空車区間(店所区分・店所コード・着地コード) 自社便の印刷
UNQSYUS・UNQTAIS 出社時間・退社時間 自社便の印刷
UNQARIV・UNQTIME 休憩場所・休憩時間 自社便の印刷
UNQHYOG・UNQDRTM・UNQYUYO 標準拘束時間・運転時間・有余時間 自社便の印刷
UNQTYAK 到着時分 自社便の印刷(最終卸店と次運行発店が違う場合の到着時分)

4. 処理仕様

4.1 処理の流れ

flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[印刷終了の処理<br/>終了画面]
    AID -- PF5 --> PF5[修正に戻る 4.3]
    AID -- その他のPFキー --> PF[ファンクションキー処理]
    AID -- 実行 --> RCV[MPBU070 を受信<br/>TSキューを読む]
    RCV -- なし --> INI[初期画面<br/>エラーコード Q_ERR] --> W07([BU07 で待機])
    RCV -- あり --> DEL[TSキュー削除]
    DEL --> UPD[センターに更新依頼 4.2]
    UPD -- 通信エラー・更新エラー --> ERR[TSキュー保存<br/>エラー表示] --> W09([BU09 で待機])
    UPD -- 更新OK --> PRT{印刷装置 使用可<br/>入力結果 1・5}
    PRT -- はい --> P[指令書を印刷 4.4]
    PRT -- いいえ --> MSG
    P --> MSG[結果のメッセージ表示] --> W09B([BU09 で待機])

4.2 実行キー:センターへの更新依頼(INQUIRE_SUB_RTN)

  1. 画面を受信し、TSキューを読む。
    • 読めなければ、画面をクリアして BU10700P と同じ初期画面(入力店所は入力不可、修正項目はすべて入力不可、メッセージ「指令書№を入力して実行キー」(反転)、エラーコード 'Q_ERR'、指令書NO にカーソル)を画面を消去して送信し、BU07 で待機する。
    • 読めたら削除する。
  2. 入力結果(UNKNYUK)に画面の入力区分(TSキューの BU07053B)をセットし、センター(CIC1 の B09U)に接続して検証後データ(250バイト)を送信し、結果(169バイト)を受信する。終了データを送って会話を終える。
  3. 通信エラーは BU10700P と同じ(回線混雑 ASYSB は画面を受信してやり直し、それ以外はエラーフラグ '7'・'8'・'9')。メッセージは後半48桁に次をセットする。
エラーフラグ メッセージ(後半)
7  回線不通の可能性あり センターに連絡 !!
8  サポート外ERROR センターに連絡 !!
9   LENGERR
  1. 正常に受信したら、入力結果(DNKNYUK)でメッセージの前半22桁をセットする(後半は空白)。
入力結果 メッセージ 判定
1 修正OK!! OK
2 復活しました。 OK
3 削除しました。 OK
9 減便になりました。 OK
0 配車未入力です。!! OK(エラー扱いにしない)
4 枝番前後の指令書無し エラー
5 修正済、次の枝番無し エラー
6 指令書マスターに無し エラー
7 入力済で修正不可能! エラー
8 マスターI/Oエラー エラー
A 携帯№無し F5修正 エラー
それ以外   ?????? OK(エラー扱いにしない)
  1. 印刷装置の状態が '2'(使用可)で、入力結果が 1 か 5 なら、指令書を印刷する(4.4)。
  2. エラー(通信エラー、入力結果 4~8・A)なら、メッセージとエラーコード(通信エラーのコード)をセットし、TSキューを書き戻して(書き込めなければ CLEAR と同じ処理)画面のデータ部分を送信し、BU09 で待機する。PF5 で修正に戻れる。
  3. OK なら、メッセージをセットして画面のデータ部分を送信し(カーソル指定)、BU09 で待機する。TSキューは書き戻さない。

4.3 PF5:修正に戻る

  1. TSキューを読む。なければエラーコード 'Q ERR' をセットして 4 へ。あれば削除する。
  2. 入力区分(画面の値)が 'R'(復活)なら、メッセージ「復活するなら実行キー 復活しないならPF2で取消」(反転)を表示し、TSキューを書き戻して BU09 で待機する(修正には戻らない)。
  3. それ以外は、照会時の入力区分(UNKINKB)によって入力可の項目を決める。
照会時の入力区分 入力可にする項目
1・2 BU10700P の 4.5 とほぼ同じ(運行車区分・増便/定便・送付書枚数による。違いは 7章 3)
9 入力区分だけ(カーソル)
それ以外(5 を含む) 属性を変えない
  1. メッセージ「修正する項目を、入力してください。」(反転)を表示し、OKFLG を '2'(次の検証で全項目をチェックし直す)、入力年月日を処理日付にして TSキューに書く(書き込めなければ CLEAR と同じ処理)。画面のデータ部分を送信し(カーソル指定)、運行車区分が 02 なら BV08、それ以外は BU08 で待機する。

4.4 指令書の印刷

印刷情報(店所・端末ID・印刷装置・処理日付、キュー名「端末ID+現在の分秒」)を作り、印刷データを TSキューに書いて、自社便は BV13、傭車便は BV14 を印刷装置で START する(TSキューの書込みエラーなら START しない)。

区分 印刷データ(1件)
自社便(COMM_YOS_FLG '1'。長さ 375+14) 指令書NO・発行枚数・便コード・便名・運行車区分・形態・入力区分・発店・出発年月日時分・最終卸店・次運行発店(0 なら最終到着店)・到着年月日時分(最終卸店と次運行発店が同じなら最終卸店の到着時分、違えば受信した到着時分)・積載社番(1)(2)・トレーラ頭等(1)(2)・乗務員A・B・直配区分・着地・連絡事項・特定便・鮮魚保険料・所属店・車種(T:1、S:2、G:3、4:4、それ以外 0)・道路情報・乗継店1・2・空車区間・出社・退社時間・休憩場所・時間・拘束時間・運転時間・有余時間
傭車便(長さ 130+14) 指令書NO・発行枚数・便コード・便名・運行車区分・形態・入力区分・発店・出発年月日時分・最終卸店・到着年月日時分・次運行発店(=最終卸店)・積載社番・トレーラー・乗務員A・B・直配区分・着地・連絡事項・傭車会社・傭車形態・傭車標屯(×10)・定額傭車料・一車保険料・所属店・特定便・車種

5. メッセージ一覧

No エラーコード メッセージ 表示するとき
1 (空白) 修正OK!! ほか 4.2 の表 更新の結果
2 ASYSB 回線が混雑しています!! 実行キーをもう一度押して下さい センター接続の回線混雑
3 ASYSI・CTERM・STERM・RTERM 回線不通の可能性あり センターに連絡 !! 通信エラー(回線切断)
4 A9999・C9999・S9999・R9999 サポート外ERROR センターに連絡 !! 通信エラー(その他)
5 RLENG LENGERR 受信の長さエラー
6 Q_ERR 指令書№を入力して実行キー 実行キーで TSキューがない(更新後にもう一度実行キーを押したときなど)
7 Q ERR (変えない) PF5 で TSキューがない
8 (変えない) 復活するなら実行キー 復活しないならPF2で取消 入力区分 R で PF5
9 (変えない) 修正する項目を、入力してください。 PF5 で修正に戻る

6. 画面遷移

flowchart LR
    BU08[BU08/BV08] -- チェックOK --> BU09[BU09<br/>本プログラム]
    BU09 -- 実行(結果表示) --> BU09
    BU09 -- 実行(TSキューなし) --> BU07[BU07<br/>初期画面]
    BU09 -- PF5 自社便 --> BU08B[BU08]
    BU09 -- PF5 傭車便 --> BV08[BV08]
    BU09 -- PF2 --> BU07
    BU09 -- PF3 --> PREV[一つ前の画面]
    BU09 -- PF4 --> MAIN[メインメニュー]
    BU09 -- CLEAR --> END[ELEPHAN 終了]

7. 補足・留意事項

  1. 更新後の実行キー:更新が OK だと TSキューを書き戻さないため、続けて実行キーを押すと TSキューがなく、初期画面にエラーコード 'Q_ERR' が表示される(エラーではなく次の指令書の入力待ち)。
  2. 入力結果に入力区分を入れて送る:BU10800P・BV10800P は入力区分を変えた場合に入力結果を '9' にしているが、本プログラムは送信前に入力結果を画面の入力区分('1'・'2'・'5'・'9'・'D'・'R' など)で上書きする。センター(BU20900P)はこの値で処理を分ける。
  3. PF5 の入力可の項目の違い(BU10700P の照会OK 時との違い)
    • 照会時の入力区分が 5(到着入力済)の場合は属性を変えない(BU10700P は 1・2・5 で入力可にする)。
    • 自社便のフェリー会社は常に入力可(BU10700P は入力年月日 = 処理日付のときだけ)。
    • 増便で運行車区分を入力可にする条件が「指令書NO の8桁目が 1」(BU10700P も同じ)。
  4. 入力結果 0 と不明な値:入力結果 0(配車未入力です。)や表にない値はエラー扱いにしないため、TSキューを書き戻さない。PF5 で修正に戻れない。
  5. 印刷の条件:指令書を印刷するのは入力結果が 1(修正OK)か 5(修正済、次の枝番無し)のときだけ。5 はメッセージ上はエラー扱い(TSキューを書き戻す)だが印刷は行う。
  6. 通信エラーのメッセージ:通信エラーではメッセージの後半48桁だけをセットし、前半22桁は空白のまま。
  7. 'R' は修正に戻れない:入力区分 R(減便からの復活)で確認画面に来た場合、PF5 では修正に戻れず、実行(復活)か PF2(取消)を選ぶ。
(1-1/6)