プロジェクト

全般

プロフィール

レビュー指摘 #12432 » BV23500P_仕様書.md

幸塚 和久, 2026-10-28 05:17 午後

 

プログラム仕様書 BV23500P(他社直卸分発送伝票送付書(傭車便) センター照会)

項目 内容
システムID BV
参考資料 ・現行ソース BV23500P.pl1
・現行の解析資料 BV0180_他社直卸出発入力(傭車.xlsx(シート「資産一覧」「レコードフォーマット」「SRC_BV23500P」)
項目名の出典 送受信データ・マスター・テーブルの項目は解析資料のシート「レコードフォーマット」の日本語名称

1. 概要

項目 内容
プログラムID BV23500P(手続き名:BU23500)
プログラム名称 他社直卸分発送伝票送付書(傭車便)センター照会(ソースの冒頭コメントは「DB・READ・ONLY センター CICS」。処理内容から命名)
言語 PL/I(CICS コマンドレベル、DB2 埋込み SQL)
処理形態 オンライン(APPC 会話の相手側。画面なし)
動作環境 CIC1(センター側)
トランザクションID B35V(DDP の BV13500P から CONNECT PROCESS で起動される)
パターンID PPOC020P(1987/04/30)、業務 BXHEAD30
呼出し元 BV13500P(BV35)
参照ファイル・テーブル VKUNKSH(運行指令マスター)、RDSFIS(送付書照会DB2)、RDRUNK(運行DB2)。いずれも参照のみ

1.1 機能概要

DDP から受け取った指令書NO・送付書NO で、指令書の状態と送付書の有無を調べ、送付書(またはその元になる指令書)の内容を DDP に返す。自社便版(BV23100P)と同じ処理に、利用運送(差額)の指令書のチェックと、差額区分の返却を加えたもの。

結果 エラーフラグ 返す内容
送付書照会DB2に送付書があり、運行DB2に指令書がある '0' 送付書の内容(発送日時・発店・着店・車番・傭車情報など)
送付書はなく、指令書はある(新規の送付書) '3' 運行指令マスターの内容(指令日・出発時分・発店・着店・車番・傭車情報など)
指令書が配車未入力・減便、または運行指令マスターにない '1'(エラーコード 'BU03') なし
指令書が自動車利用運送で、選択NO が 55 でない '4'(エラーコード空白) なし
その他のエラー '2' なし
flowchart LR
    DDP[DDP BV13500P<br/>BV35] -- 照会データ 23バイト --> B35V[B35V<br/>本プログラム]
    B35V -- 照会結果 150バイト --> DDP
    B35V --> UNK[(VKUNKSH<br/>運行指令マスター)]
    B35V --> SF[(RDSFIS<br/>送付書照会DB2)]
    B35V --> RU[(RDRUNK<br/>運行DB2)]

2. インターフェース

2.1 受信データ(23バイト)

トランザクションID(4)+ DPCEB35V。

項目ID 項目名 桁 用途
B35VSRNO 指令書NO 9 運行指令マスター・運行DB2のキー
B35VSFNO 送付書NO 8 送付書照会DB2のキー
B35VSELN 選択NO 2 作業選択番号。55 なら利用運送のチェックをしない

2.2 送信データ(150バイト)

エラーフラグ(1)+エラーコード(4)+ CEDPBV35(他社直卸分発送伝票送付書(傭)[CD])。送信前に全体を空にする。

項目ID 項目名 送付書あり('0')の編集元:送付書照会DB2 新規('3')の編集元:運行指令マスター
BV35SRNO・BV35SOFN 指令書NO・送付書NO 受信した値 受信した値
BV35SYMD 年月日 発送年月日(RSFQYMD1)の下6桁 指令年月日(VBKBSRDD)
BV35DHMM 時分 発送時分(RSFQHHM1) 始発の予定年月日時分(VBKYATIM)の7~10桁目(時分)
BV35STNC 指令店所 発店コート゛(RSFQHTCD) 実績の発店コート゛(VBKGJHCD)
BV35SRCT 指令着店 着店コート゛(RSFQCTCD) 実績の着店コード(最終卸店)(VBKGJCCD)
BV35BNKB 運行車区分 便区分(RSFQBNKB) 運行車区分(VBKBYKKN)
BV35SYAB・BV35SEMI 積載社番・セミトレ社番 積載社番(RSFQSHAA)・セミトレ社番(RSFQSHAB) 始発の積載 車番(VBKGSBN1)・セミ頭・フル子・回送 車番(VBKGSBN2)
BV35SYB1・BV35SEM1 積載社番1・セミトレ1 (セットしない) リンク・代替・着回送の 積載 車番(VBKGSBN3)・セミ頭・フル子・回送 車番(VBKGSBN4)
BV35SHAT・BV35SHCH 送付書発店・送付書発地 発店コート゛(RSFQHTCD)・発地コート゛(RSFQHCCD) (セットしない)
BV35SCAT・BV35SCKT 送付書着店・送付書着地 着店コート゛(RSFQCTCD)・着地コート゛(RSFQCCCD) (セットしない)
BV35HYTN 標屯 標屯(RSFQHYTO) 始発の積載 標屯(VBKGFYT1)
BV35OWKB OW区分 ow区分(RSFQOWKB) 始発の乗務員A・Bがともにあれば 2、それ以外は 1
BV35YSCD・BV35KETA・BV35YSRY・BV35HKRY 傭車コード・傭車形態・傭車料・一車保険料 運行DB2の運行車区分(RUNKYKKN)が '02' のとき、傭車コード(RSFQYOCD)・形態(RSFQKKTI)・傭車料(RSFQKYSR)・一車保険料(RSFQQHKN) 運行車区分が 02 のとき、フェリー会社・傭車コード(VBKGFYCD)・使用形態(VBKGKITI)・定額傭車料(VBKGTGKU)・一車保険料(傭車)(VBKGYOHO)
BV35KUIK 区域区分 運行車区分が '02' のとき、区域区分(RSFQKUIK) (セットしない)
BV35SAGK 差額区分 運行車区分が '02' のとき、差額区分(RSFQSAGK) 運行車区分が 02 のとき、自動車利用運送区分(VBKKSAGK)
BV35BINM 運行便名 運行DB2の便名(漢字)(RUNKKANG) 便名(漢字)(VBKBKANG)
BV35TCYD 到着予定年月日 到着予定年月日(RSFQTOYO)の下6桁 最終卸店の予定年月日時分(VBKYBTIM)÷10000(年月日)
BV35TMKB 積区分 積区分(RSFQQEKI) 1
BV35JONC 直卸他社コード 直卸他社コード(RSFQJONC)。空白なら 0 (セットしない)

変更2社番(BV35SYB2・BV35SEM2)・マスター区分(BV35MKBN)はセットしない。


3. 処理仕様

3.1 処理の流れ

flowchart TD
    S([開始]) --> RCV[照会データを受信]
    RCV --> R1[運行指令マスターを指令書NOで読む]
    R1 -- なし --> E1[エラーフラグ 1・BU03]
    R1 -- 読込みエラー --> E2[エラーフラグ 2]
    R1 -- あり --> NU{入力区分}
    NU -- 0 または 9 --> E1
    NU -- それ以外 --> SG{自動車利用運送区分 1<br/>かつ 選択NO ≠ 55}
    SG -- はい --> E4[エラーフラグ 4]
    SG -- いいえ --> DB[送付書照会DB2・運行DB2を読む]
    DB -- 送付書あり・運行あり --> F0[送付書の内容を編集<br/>エラーフラグ 0]
    DB -- 送付書なし --> F3[運行指令マスターの内容を編集<br/>エラーフラグ 3]
    DB -- その他 --> E2
    E1 --> SND
    E2 --> SND
    E4 --> SND
    F0 --> SND
    F3 --> SND[結果を送信<br/>終了データを受信して終了]

3.2 指令書のチェック

  1. 指令書NO で運行指令マスター(VKUNKSH)を読む。
  2. 結果を判定する。
結果 処理
あり、入力区分(VBKBNURK)が 0(配車未入力)または 9(減便) エラーフラグ '1'、エラーコード 'BU03'
あり、自動車利用運送区分(VBKKSAGK)が '1' で、選択NO が 55 でない エラーフラグ '4'、エラーコード空白(DDP では「この依頼書№は利用運送です。直集入力して下さい。」)
あり、上記以外 3.3 へ
なし エラーフラグ '1'、エラーコード 'BU03'
読込みエラー エラーフラグ '2'

3.3 送付書の照会

  1. 送付書照会DB2(RDSFIS)を「送付書NO(RSFQSONO)= 受信した送付書NO」で読む。
  2. 運行DB2(RDRUNK)を「指令書NO(RUNKSRSH)= 受信した指令書NO」で読む。
  3. 結果を判定し、2.2 のとおり送信データを編集する。
送付書照会DB2 運行DB2 処理
あり あり 送付書の内容を編集し、エラーフラグ '0'
なし あり・なし 運行指令マスターの内容を編集し、エラーフラグ '3'(新規の送付書)
上記以外(送付書はあるが運行がない、SQL エラーなど) エラーフラグ '2'

3.4 送受信・エラー処理

  1. 結果(150バイト)を送信して応答を待ち(SEND INVITE WAIT)、DDP からの終了データを受信して終了する。
  2. CICS のエラー(HANDLE CONDITION ERROR)が発生した場合は、エラーフラグ '2' にして送信する。

4. 補足・留意事項

  1. 送付書と指令書の対応を確認しない:送付書照会DB2の送付書の指令書NO が受信した指令書NO と同じかは確認していない。別の指令書の送付書NO を入力しても、その送付書の内容が返る。
  2. 選択NO 55:選択NO(作業選択番号)が 55 の場合だけ、利用運送の指令書でも照会を続ける。55 がどのメニューの番号かは、本プログラムからは分からない。
  3. 差額区分が返るのは傭車便だけ:差額区分は運行車区分が 02 のときだけセットする。運行車区分が 02 以外の場合は空白で返る(DDP の BV13500P は、運行車区分が自社便(01・03・04・05)ならエラーにする)。
  4. 運行車区分の判定元の違い:送付書ありの場合、傭車情報をセットするかは送付書の便区分ではなく、運行DB2の運行車区分(RUNKYKKN)で判定している。DDP に返す運行車区分は送付書の便区分(RSFQBNKB)である。
  5. 送付書発店・発地の新規時:新規(エラーフラグ '3')の場合、送付書発店・発地・着店・着地はセットしない(DDP の BV13500P が端末の店所を発店にする)。
  6. エラーフラグ '2' のエラーコード:エラーフラグ '2' の場合はエラーコードを空白のまま返すため、DDP ではメッセージ「エラー項目あり」などの固定メッセージは出ず、照会前のメッセージ欄の内容になる(BV13500P_仕様書.md 4.5)。
  7. 時分の編集:新規の場合の時分は、始発の予定年月日時分(11桁)を10桁の作業域に入れてから7~10桁目を取り出している。
(5-5/6)