プログラム仕様書 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 指令書のチェック
- 指令書NO で運行指令マスター(VKUNKSH)を読む。
- 結果を判定する。
| 結果 |
処理 |
| あり、入力区分(VBKBNURK)が 0(配車未入力)または 9(減便) |
エラーフラグ '1'、エラーコード 'BU03' |
| あり、自動車利用運送区分(VBKKSAGK)が '1' で、選択NO が 55 でない |
エラーフラグ '4'、エラーコード空白(DDP では「この依頼書№は利用運送です。直集入力して下さい。」) |
| あり、上記以外 |
3.3 へ |
| なし |
エラーフラグ '1'、エラーコード 'BU03' |
| 読込みエラー |
エラーフラグ '2' |
3.3 送付書の照会
- 送付書照会DB2(RDSFIS)を「送付書NO(RSFQSONO)= 受信した送付書NO」で読む。
- 運行DB2(RDRUNK)を「指令書NO(RUNKSRSH)= 受信した指令書NO」で読む。
- 結果を判定し、2.2 のとおり送信データを編集する。
| 送付書照会DB2 |
運行DB2 |
処理 |
| あり |
あり |
送付書の内容を編集し、エラーフラグ '0' |
| なし |
あり・なし |
運行指令マスターの内容を編集し、エラーフラグ '3'(新規の送付書) |
| 上記以外(送付書はあるが運行がない、SQL エラーなど) |
|
エラーフラグ '2' |
3.4 送受信・エラー処理
- 結果(150バイト)を送信して応答を待ち(SEND INVITE WAIT)、DDP からの終了データを受信して終了する。
- CICS のエラー(HANDLE CONDITION ERROR)が発生した場合は、エラーフラグ '2' にして送信する。
4. 補足・留意事項
-
送付書と指令書の対応を確認しない:送付書照会DB2の送付書の指令書NO が受信した指令書NO と同じかは確認していない。別の指令書の送付書NO を入力しても、その送付書の内容が返る。
-
選択NO 55:選択NO(作業選択番号)が 55 の場合だけ、利用運送の指令書でも照会を続ける。55 がどのメニューの番号かは、本プログラムからは分からない。
-
差額区分が返るのは傭車便だけ:差額区分は運行車区分が 02 のときだけセットする。運行車区分が 02 以外の場合は空白で返る(DDP の BV13500P は、運行車区分が自社便(01・03・04・05)ならエラーにする)。
-
運行車区分の判定元の違い:送付書ありの場合、傭車情報をセットするかは送付書の便区分ではなく、運行DB2の運行車区分(RUNKYKKN)で判定している。DDP に返す運行車区分は送付書の便区分(RSFQBNKB)である。
-
送付書発店・発地の新規時:新規(エラーフラグ '3')の場合、送付書発店・発地・着店・着地はセットしない(DDP の BV13500P が端末の店所を発店にする)。
-
エラーフラグ '2' のエラーコード:エラーフラグ '2' の場合はエラーコードを空白のまま返すため、DDP ではメッセージ「エラー項目あり」などの固定メッセージは出ず、照会前のメッセージ欄の内容になる(BV13500P_仕様書.md 4.5)。
-
時分の編集:新規の場合の時分は、始発の予定年月日時分(11桁)を10桁の作業域に入れてから7~10桁目を取り出している。