プロジェクト

全般

プロフィール

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

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

 

プログラム仕様書 BU10600P(配車入力(自社増便・傭車増/定便)確認・更新)

項目 内容
システムID BU
参考資料 ・現行ソース BU10600P.pl1
・画面イメージ MPBU040.jpg(配車入力(増便・傭車))
・現行の解析資料 BU0040_配車入力(自社増).xlsx(シート「MPBU040」「資産一覧」「レコードフォーマット」「SRC_BU10600P」)
項目名の出典 画面項目は解析資料のシート「MPBU040」、送受信データの項目はシート「レコードフォーマット」の日本語名称

1. 概要

項目 内容
プログラムID BU10600P(手続き名:BU10600)
プログラム名称 配車入力(傭車 増、定便)確認(ソースの冒頭コメント。自社増便でも使う)
言語 PL/I(CICS コマンドレベル)
処理形態 オンライン(CICS 疑似会話型)
動作環境 SV(DDP 側)
トランザクションID BU06
パターンID PPOD255P(1987/05/01)、業務 BUSHRE30、部品 PBOD020P
使用画面(マップ) MPBU040(配車入力(増便・傭車))、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面)
前の処理 BU05(BU10500P:自社増便の検証)、BV05(傭車の検証)。確認メッセージを表示して BU06 で待機している
次の処理 更新後は BU06 で待機し、次の実行キーで初期画面(BU04)に戻る。PF5(修正)は BU05/BV05
センター照会 あり。APPC で CIC1 のトランザクション B06U に更新を依頼(BU20600P)
参照・更新ファイル なし(更新はセンター側)
起動する印刷 BV13(BV11300P:自社の指令書)、BV14(BV11400P:傭車の指令書)
一時記憶 TSキュー(通信領域の TSQ_ID・TSQ_LENGTH。「端末ID+'BU04'」、724バイト)。印刷用 TSキュー(端末ID+現在の分秒)

1.1 機能概要

検証が終わった配車内容を、実行キーでセンターに送って更新し、指令書を印刷する。

  1. TSキューから検証済みのデータを読み、センター(B06U)に送信して更新結果を受け取る。
  2. 更新結果(入力結果)をメッセージで表示する。
  3. 印刷装置が指定されていれば、更新できた指令書を印刷する(自社は枝番の印刷を指定すると 2~4枚目も)。
  4. PF5 で修正に戻れる(検証画面 BU05・BV05)。
flowchart LR
    BU05[BU05/BV05<br/>検証] -- OK --> BU06[BU06<br/>本プログラム]
    BU06 <-- APPC B06U --> CIC1[(センター CIC1<br/>BU20600P)]
    BU06 -- 印刷 --> PRT[BV13/BV14<br/>指令書印刷]
    BU06 -- PF5 --> BU05
    BU06 -- 更新後の実行 --> BU04[BU04 初期画面]

2. 画面仕様(MPBU040)

画面レイアウト・項目は BU10400P_仕様書.md の 2.1・2.2 と同じ。本プログラムでは画面の入力値は使わず、メッセージ欄(BU04241:エラーメッセージ)とエラーコード欄(BU04242)だけを書き換える。

2.1 ファンクションキー

キー 機能 処理概要
実行(Enter) 更新 センターに更新を依頼する(4.2)
PF2 取消 TSキューを削除し、BU10400P と同じ初期画面を表示して BU04 に戻る
PF3 終了 印刷装置を解放し(COMM_PRI_FLG = '2' のとき)、一つ前の画面に戻る
PF4 戻り 印刷装置を解放し、メインメニューに戻る
PF5 修正 入力項目を入力可にして検証画面に戻る(4.4)
PF9 テスト印刷 印刷装置がOKならテスト印刷を出す(BU10500P と同じ)。BU06 で待機
PF11 印刷装置リセット BU10400P と同じ。BU06 で待機
CLEAR 強制終了 印刷装置を解放し、TSキューを削除して終了画面を表示
上記以外 再表示 画面のデータ部分を再送信し、BU06 で待機

3. インターフェース

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

項目ID 本プログラムでの用途
TSQ_ID・TSQ_LENGTH 検証済みデータの TSキュー名・長さ
COMM_TRM_CODE・COMM_TEN_CODE・COMM_TEN_NAME・COMM_RPOC_YMD 端末ID・店所・処理日付(初期画面・印刷)
COMM_INQ_KBN 照会区分。'10':傭車、それ以外:自社増便
COMM_PRI_FLG・COMM_PRINTER_ID 印刷装置のチェック結果('2':OK)・印刷装置ID
COMM_EDA 枝番の印刷('1':あり)
COMM_PF5 PF5(修正)を押したら '1'
CRT_BACK_KOSU/CRT_BACK_DATA(5) 戻り先画面のスタック(PF3・PF4)

3.2 TSキュー(CHK_DSP_WORK:724バイト)

BU10500P と同じ形式。後半 419バイト(SEND_DATA)を CEDPBU04(配車入力照会後、検証後データ(増、傭))としてそのままセンターに送る。

3.3 センター送受信

項目 内容
接続先 SYSID 'CIC1'、プロセス名 'B06U'
送信(419バイト) TSキューの SEND_DATA(トランザクションID・エラーフラグ・エラーコード+CEDPBU04)
受信(54バイト) トランザクションID(4)+エラーフラグ(1)+エラーコード(4)+トン単価(10進5桁)+CEDPBU06(配車入力(傭・増)更新後データ セ=>D)

受信データ(CEDPBU06)のうち本プログラムで使うもの:

項目ID 項目名 用途
DNKNYUK 入力結果 更新結果のメッセージ(4.2)
UNQSZTC 所属店 傭車の指令書印刷の所属店
UNQDTIM 道路情報 日時(XX日XX時) 自社の指令書印刷
UNQDONO・UNQDIN1~3 道路 No・道路情報コード1~3 自社の指令書印刷
SESS_TONTAN トン単価 傭車形態 2(トン当たり)の傭車料として印刷

4. 処理仕様

4.1 処理の流れ

flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[印刷装置解放・TSキュー削除<br/>終了画面]
    AID -- PFキー --> PF[ファンクションキー処理 2.1・4.4]
    AID -- 実行 --> RCV[MPBU040 を受信<br/>TSキューを読む]
    RCV -- TSキューなし --> INI[初期画面を表示<br/>Q ERR] --> W04([BU04 で待機])
    RCV -- あり --> DEL[TSキューを削除]
    DEL --> SND[センターに更新を依頼 4.2]
    SND -- 通信エラー・更新エラー --> ERR[TSキューを書き戻し<br/>エラー表示] --> W06([BU06 で待機])
    SND -- OK --> PRT[指令書の印刷 4.3]
    PRT --> MSG[結果メッセージ表示] --> W06

4.2 更新(実行キー)

  1. 画面を受信し、TSキューを読む。
    • 読めない場合(更新が終わった後の実行キーなど):BU10400P の PF2 と同じ初期画面(照会区分に応じた見出し・メッセージ、印刷装置・枝番の印刷は前回の値)を表示し、エラーコードに「Q ERR」をセットして BU04 で待機する。
    • 読めた場合:TSキューを削除する。
  2. センター(CIC1 の B06U)に接続し、TSキューの SEND_DATA(419バイト)を送信して、結果(54バイト)を受信する。受信後に終了を送信してセッションを解放する。
  3. 通信エラーの場合は、BU10400P の 4.5 と同じエラーコード(ASYSB・ASYSI・A9999・CTERM・C9999・STERM・S9999・RTERM・RLENG・R9999)をセットし、メッセージを「セッションエラー」+次の文言にする。回線混雑(ASYSB)は、メッセージを表示して画面を受信し、送信をやり直す。
エラーフラグ メッセージ(後半)
7 回線不通の可能性あり センターに連絡 !!
8 サポート外ERROR センターに連絡 !!
9 LENGERR
  1. 正常に受信した場合は、入力結果(DNKNYUK)でメッセージを決める。'2'~'8' はエラー。
入力結果 メッセージ 判定
'1' 更新OK!! OK(印刷する)
'9' 減便になりました。 OK
'5' 更新済、次の枝番無し エラー(印刷する)
'4' 料金マスターに無し エラー
'6' 指令書マスターに無し エラー
'7' すでに入力済でした。 エラー
'8' マスターI/Oエラー エラー
'A' 携帯番号無し? OK
'0' (空白) OK
その他 ?????? OK
  1. エラーの場合:TSキューを書き戻し(書けなければ終了処理)、メッセージ・エラーコードをセットして画面のデータ部分を送信し、BU06 で待機する(実行キーで再度更新できる)。
  2. OKの場合:印刷(4.3)をしてから、メッセージを反転表示でセットして画面のデータ部分を送信し、BU06 で待機する。TSキューは削除したままなので、次に実行キーを押すと初期画面に戻る。

4.3 指令書の印刷

印刷装置がOK(COMM_PRI_FLG = '2')で、入力結果が '1' または '5' の場合に行う。印刷情報(店所コード、端末ID、印刷装置ID、処理日付、TSキュー名=端末ID+現在の分秒)を作り、印刷データを TSキューに書いて、印刷トランザクションを印刷装置で起動する。

自社増便(照会区分 '10' 以外):BVPRIN04 形式、1件 375バイト、BV13 を起動(印刷区分 '4')。

印刷データ 1枚目 2~4枚目(枝番の印刷 '1' のとき、発行枚数まで)
指令書NO 指令書NO 次の運行の指令書NO
発行枚数・運行車区分 指令書発行枚数・運行車区分 同左
計画便コード 計画便コード 計画便コードの6桁目を枝番(2~4)にしたもの
便名 便名(漢字) 次の指令書の便名(漢字)
運行形態・入力区分 運行形態区分・入力区分 次の指令書の運行形態区分・0
発店・出発日時 発店・出発 年月日時分 次の指令書の発店・出発 年月日(時分は 0)
最終卸店・次運行発店 最終卸店・次運行発店 1枚目の最終卸店・次の指令書の次運行発店
最終卸店到着日時 年月日。時分は最終卸店と次運行発店が同じときだけ印刷(違えば 0) 次の指令書の最終卸店到着 年月日(時分は 0)
積載車番・トレーラー・乗務員A・B 1枚目の値 1枚目と同じ
直配区分・直配着地コード・連絡事項・特定便区分・特定便NO・一車保険料(鮮魚) 1枚目の値 印刷しない
所属店 発店 1枚目の発店
車種 積載車種 T→1、S→2、G→3、'4'→4、その他→0 同左
道路情報 センターから受け取った道路情報コード・道路No・日時 印刷しない

傭車(照会区分 '10'):BVPRIN02 形式、130バイト、BV14 を起動。

印刷データ 内容
指令書NO・発行枚数・計画便コード・便名・運行車区分・運行形態・入力区分 1枚目の値
発店・出発日時、最終卸店・最終卸店到着日時 年月日時分
次運行発店 最終卸店(次運行発店ではない)
積載車番・トレーラー・乗務員A・B・直配区分・直配着地コード・連絡事項 1枚目の値
傭車会社コード・傭車形態・標屯 傭車会社コード・傭車使用形態・積載車標屯×10
傭車料 傭車形態が 2(トン当たり)ならセンターから受け取ったトン単価、それ以外は定額傭車料
一車保険料 一車保険料(傭車の場合)
所属店 センターから受け取った所属店
車種 自社と同じ
携帯管理№ 特定便区分+特定便NO

4.4 PF5:修正

  1. TSキューを読んで削除する。読めなければエラーコードに「Q ERR」をセットして画面を送信し、検証画面のトランザクションで待機する。
  2. COMM_PF5 を '1' にし、入力可にする項目を次のようにセットする。
照会区分 データ区分 入力可にする項目 カーソル
傭車 'N'(新規) 傭車会社コード・標屯・傭車形態・一車保険料・定額傭車料(数字)、携帯管理№。指令書№は入力不可 傭車会社コード
傭車 'D'(既存) 指令書№ と上と同じ項目 指令書№
自社増便 'N' 発行枚数・運行形態・運行車区分・フェリー会社・鮮魚保険・最終着店コード・次の指令書(2~4-の出発日付・最終卸店・最終卸店到着日・次回運行便出発店所)(数字)。指令書№は入力不可 発行枚数
自社増便 'D' 指令書№ と上と同じ項目 指令書№
共通 発送日 月・日・時・分、積載車番、トレーラー、乗務員A・B、最終卸店コード、最終卸店着日 月・日・時・分、直配区分、直配着地コード(数字)、連絡事項
  1. メッセージ「修正する項目を、入力してください。」を反転表示し、TSキューの全体チェック結果を OK にして入力年月日に処理日付をセットし、TSキューを書く(書けなければ終了処理)。
  2. 画面のデータ部分を送信し、傭車は BV05、自社増便は BU05 で待機する(検証画面は全体チェック結果が OK のため全項目をチェックし直す)。

5. メッセージ一覧

No エラーコード メッセージ 表示するとき
1 ― 更新OK!! 入力結果 '1'
2 ― 減便になりました。 入力結果 '9'
3 ― 更新済、次の枝番無し 入力結果 '5'
4 ― 料金マスターに無し 入力結果 '4'
5 ― 指令書マスターに無し 入力結果 '6'
6 ― すでに入力済でした。 入力結果 '7'
7 ― マスターI/Oエラー 入力結果 '8'
8 ― 携帯番号無し? 入力結果 'A'
9 ASYSB 回線が混雑しています!! 実行キーをもう一度押して下さい センターが混雑
10 ASYSI・CTERM・STERM・RTERM セッションエラー 回線不通の可能性あり センターに連絡 !! 通信エラー(7)
11 A9999・C9999・S9999・R9999 セッションエラー サポート外ERROR センターに連絡 !! 通信エラー(8)
12 RLENG セッションエラー LENGERR 受信長エラー
13 Q ERR 定便=>便コード・出発月日、又は指令NO  増便=>PF10 / PF10を押して、指令書NOを表示してください。 TSキューがない(更新後の実行キーなど)
14 ― 修正する項目を、入力してください。 PF5

6. 画面遷移

flowchart LR
    BU05[BU05/BV05 検証] --> BU06[BU06<br/>本プログラム]
    BU06 -- 実行(更新OK) --> BU06
    BU06 -- 実行(エラー) --> BU06
    BU06 -- 実行(更新済み・TSなし) --> BU04[BU04 初期画面]
    BU06 -- PF2 --> BU04
    BU06 -- PF5 --> BU05
    BU06 -- PF3 --> PREV[一つ前の画面]
    BU06 -- PF4 --> MAIN[メインメニュー]
    BU06 -- CLEAR --> END[ELEPHAN 終了]

7. 補足・留意事項

  1. 更新後の画面:更新OK後も BU06 で待機し、次の実行キーで TSキューがないため初期画面に戻る。このとき「Q ERR」が表示される。
  2. 入力結果 '5' の扱い:「更新済、次の枝番無し」はエラー扱い(TSキューを書き戻す)だが、指令書は印刷する。ただし、センターの BU20600P は '5' を返さないため、現行では発生しない。
  3. 入力結果 'A':「携帯番号無し?」はエラーとして扱われない(文字の大小比較で '2'~'8' に入らない)。センター側の携帯番号チェックはコメントアウトされており、現行では発生しない。
  4. 傭車の次運行発店:傭車の指令書印刷では、次運行発店に最終卸店をセットしている。
  5. 枝番の印刷で印刷しない項目:2~4枚目は直配区分・連絡事項・特定便・鮮魚保険・道路情報を印刷しない。
  6. センターのエラーフラグ:受信データのエラーフラグ・エラーコードは見ていない。センター側の結果は入力結果(DNKNYUK)だけで判断する。
  7. PF5 の携帯管理№:携帯管理№ は傭車では入力可、自社増便では入力不可にしている(いずれも「M.TANAKA」のコメントがある修正)。
(3-3/7)