プログラム仕様書 BS23300P(中継委託明細用 委託料計算・中継確定データ登録)
| 項目 |
内容 |
| システムID |
BS |
| 参考資料 |
・現行ソース BS23300P.pl1 ・現行の解析資料 BV0190_到着入力(他社直卸中継渡し).xlsx(シート「資産一覧」「Link XCTL 一覧」「BS23300P」「レコードフォーマット」) |
| 項目名の出典 |
送受信データ・マスターの項目は解析資料のシート「レコードフォーマット」の日本語名称と、ソースのコメント |
1. 概要
| 項目 |
内容 |
| プログラムID |
BS23300P(手続き名:BS23300) |
| プログラム名称 |
中継委託明細用 委託料計算・中継確定データ登録(ソースの冒頭コメントは「中継委託明細用 CiC1(委託料計算)」。1989/06/16 DDP より発荷主コードを受ける。西濃運輸OPP対応で RDITSE 書込みを追加) |
| 言語 |
PL/I(CICS コマンドレベル、DB2 埋込み SQL) |
| 処理形態 |
オンライン(APPC 会話の相手側。画面なし) |
| 動作環境 |
CIC1(センター側) |
| トランザクションID |
B33S(DDP から CONNECT PROCESS で起動される) |
| パターンID |
PPOC010P(1987/04/30)、業務 BXOKRJ00 |
| 呼出し元 |
BV18400P(BV84)、BS13300P(BS33) |
| 参照・更新ファイル |
VKOMST2・VKOMST1(送り状マスター NO1)参照、VKDXHCG(配信荷主変換マスター)参照、VKTYUKA(中継確定データマスター)・VKTYUUN(中継確定データマスター(受付未入力))追加・更新、RDITSE(DB2)追加 |
| 一時記憶 |
TSキュー(端末CD+タスク番号、2411バイト:他社委託CiCs間データTS(センター)TSITAK00)。運賃計算との受渡し |
| 呼出しモジュール |
UC20140P(運賃計算、LINK)、LSO0020(チェックデジットのチェック・生成) |
1.1 機能概要
DDP から委託する送り状(最大40件)の情報を受け取り、送り状ごとに委託料(到着経費・委託消費税など)を計算して返す。返した後に、委託会社が中継確定データの対象なら、中継確定データマスター(または西濃OPP用の DB2 テーブル)に登録する。
- 送り状ごとに、送り状マスター(センター)の内容、または DDP から受け取った内容で、運賃計算用のデータを作る。
- 15件ごと(または最後)に運賃計算(UC20140P)を呼び、到着経費・他社委託粁程・委託消費税などを受け取る。
- 結果を DDP に返す(ここで DDP との会話は終わる)。
- 委託会社が中継確定データの対象なら、中継確定データマスター・受付未入力マスターに送り状ごとのデータを書く。西濃OPPの対象なら RDITSE に書く。
flowchart LR
DDP[DDP BV18400P・BS13300P] -- 委託送り状 4063バイト --> B33S[B33S<br/>本プログラム]
B33S -- 委託料の計算結果 4647バイト --> DDP
B33S --> OKR[(VKOMST2・VKOMST1<br/>送り状マスター)]
B33S -- LINK --> UC[UC20140P<br/>運賃計算]
B33S --> DX[(VKDXHCG<br/>配信荷主変換マスター)]
B33S --> TY[(VKTYUKA・VKTYUUN<br/>中継確定データマスター)]
B33S --> IT[(RDITSE<br/>西濃OPP)]
2. インターフェース
2.1 受信データ(4063バイト)
トランザクションID(4)+ DPCEB33S(他社委託CICS間データ(DDP~センター))。項目は BV18400P_仕様書.md 3.3 を参照。
| 区分 |
主な項目 |
| 共通部 |
データ件数(TITKDTKS)、端末CD(TITKTMCD)、委託会社CD(TITKITKC)、委託日付(TITKKDYM) |
| 送り状ごと |
マスター区分(TITDMSKB)、送り状NO(TITDOKNO)、発地・着地・個数・重量・割増率・受付店所・受付扱方・配達店所・運賃・料金・立替金・代引(形態・金・ローン・手数料)・到着経費区分(TITDKKBN)・到着経費料金(TITDKRYO)・通し・受付日・発荷主(コード・名)・着荷主名、データカウント |
2.2 送信データ(4647バイト)
エラーフラグ(1)+エラーコード(4)+ 航空・小口の区分(SENTKOKU:40件)+ CEDPB33S(他社委託CICS間データ(センター~DDP))。
| 項目 |
内容 |
| エラーフラグ |
'0':正常、'1':CICS のエラー |
| データ件数(SENTDTKN) |
受信したデータ件数 |
| 送り状ごと |
航空・小口の区分('1':航空・小口)、状況区分(SENTOKFG:1 送り状マスターなし、2 配達済、3 読込みエラー)、元着区分、送り状NO、発地・発荷主(コード・名)、着地・着荷主名・電話番号、個数、重量、運賃、料金、保険料、立替金、代引(形態・金・ローン・手数料総額・手数料経費)、到着経費区分(SENTTTAI)・到着経費料金(SENTTTAR)、他社委託粁程(SENTITAK)、消費税含区分(SENTITXX)、委託消費税(SENTITAX)、委託支払税率(SENTIZEI)、マスター区分、データカウント |
2.3 運賃計算(UC20140P)との受渡し
| 項目 |
内容 |
| 通信領域(COMMAREA_UNK) |
TSキュー名(端末CD+タスク番号)、TSキューの長さ(2411)、委託年月日(委託日付)。運賃計算から計算済み区分・委託支払税率(COMM_ZEIPRT)が返る |
| TSキュー(TSITAK00) |
端末ID・TRID・データ件数・委託会社CDと、送り状ごと(最大15件)の送り状NO・発地・着地・個数・重量・割増率・受付店所・受付扱い方・配達店所・運賃・料金計(料金+保険料)・到着経費区分・発着経費料金・他社委託粁程・発荷主・計算結果区分。計算後に、到着経費区分・発着経費料金・他社委託粁程・消費税含区分・委託消費税・特約80区分などが返る |
3. 処理仕様
3.1 処理の流れ
flowchart TD
S([開始]) --> RCV[委託送り状を受信]
RCV --> LP[送り状ごとに運賃計算用データを作る 3.2]
LP --> C{15件たまった<br/>または最後}
C -- はい --> UC[運賃計算 UC20140P 3.3]
UC --> LP
C -- いいえ --> LP
LP -- 全件終了 --> SND[結果を送信して会話終了<br/>SYNCPOINT]
SND --> DX{配信荷主変換マスター 3.4}
DX -- 中継確定の対象 --> TY[中継確定データマスターに登録 3.5]
DX -- 西濃OPP --> IT[RDITSE に登録]
DX -- 対象外 --> E([終了])
TY --> E
IT --> E
3.2 送り状ごとの運賃計算用データの作成
マスター区分(TITDMSKB)で分ける。
| マスター区分 |
処理 |
| 0(DDP に送り状マスターがない、またはレコードタイプ 7) |
送り状NO(7DR に変換)で送り状マスター(VKOMST2、なければ VKOMST1)を読み、その内容で運賃計算用データと返信データを作る(下表) |
| 0 以外(DDP の送り状マスターの内容がある) |
DDP から受け取った内容で運賃計算用データと返信データを作る。元着区分は送り状NO の先頭3桁で決める(下表)。さらに送り状マスターを読み、あれば電話番号・代引手数料経費・航空・小口の区分・状況区分・到着経費をセンターの値で補う |
送り状マスター(センター)を読んだ場合の主な編集:
| 項目 |
内容 |
| 航空・小口の区分 |
送り状種類(KOKRTYPE)が 3・4、またはレコードタイプ 4 で商品コードが 910(航空)・920(小口)なら '1' |
| 状況区分 |
状況(KOKRJOKY)が 8 なら 2(配達済) |
| 到着経費 |
レコードタイプが 1 以外なら、到着経費区分・発着経費料金・他社委託粁程を送り状マスターから取る。経費料金・区分のどちらかが 0 でなければ、到着経費区分を 9 にし、計算結果区分を 1(計算済みの経費を使う)にする |
| 発地・着地・個数・重量・運賃・料金・保険料・立替金・代引・発荷主・着荷主 |
送り状マスターの値 |
送り状マスターがない場合(マスター区分 0)は、状況区分を 1(読込みエラーは 3)にし、発地・着地を '00000' にして、元着区分を送り状NO で決める。
| 送り状NO の先頭3桁 |
元着区分 |
| 000~007・010~859 |
1(元払い) |
| 008~009・860~979 |
2(着払い) |
3.3 運賃計算と結果の編集
- 15件ごと(またはデータの最後)に、運賃計算用データを TSキュー(端末CD+タスク番号)に書き、運賃計算(UC20140P)を LINK し、計算結果を読み戻して TSキューを削除する。
- 計算結果区分ごとに返信データにセットする。
| 計算結果区分 |
セットする項目 |
| 0・2 |
他社委託粁程、到着経費区分、発着経費料金、消費税含区分、委託消費税、委託支払税率 |
| 1 |
上記に加えて、発地・着地・個数・重量・運賃 |
- 特約80区分が 'T' の送り状は、着荷主名の14バイト目に印(HIGH)を入れる。
- 仮伝(送り状NO の先頭3桁が 980~989)は、発着経費料金・委託消費税を 0 にする。
3.4 結果の送信と中継確定データの対象判定
- 結果(4647バイト)を送信して会話を終え(SEND LAST)、SYNCPOINT を取る。以降の処理結果は DDP には返らない。
- 配信荷主変換マスター(VKDXHCG)を「委託会社CD+'A'」で読む。
| 結果 |
処理 |
| あり、配信先コード(DXHICODE)が '0259706' で、委託会社CDが下表のどれか |
中継確定データマスターに登録する(3.5) |
| あり、上記以外 |
終了 |
| なし |
「委託会社CD+'E'」で読み直す。あり、配信先コードが 2265412(西濃OPP)なら、送り状ごとに RDITSE に追加して終了(配信処理区分 '0':未配信、データ交換コード・配信先コード・委託会社・委託日付・送り状NO・TRID・端末CD・入力日時)。それ以外・なしは終了。読込みエラーはコンソールに出して終了 |
| 読込みエラー |
コンソールにエラーを出して終了 |
中継確定データの対象の委託会社CD(ソースに直接記述):0335811、0497546、0370990、0372475、1265471、1292432、1740762・1740770・1740788(2004/05/12 追加:トナミ XEBIO)、1820895・1820944・1820952・1821041・1821009・1821033・1820960・1820986・1820994(2006/09/28 追加:トナミ 委託変更)、1983320・1983338(2011/10/03 追加:トナミ福井卸開始)。
3.5 中継確定データマスターへの登録
送り状NO が 0 より大きい送り状ごとに、中継確定データ(TYUKAKUT)を作る。
| 項目 |
内容 |
| 委託先コード・送り状NO(キー) |
配信先コード・送り状NO |
| 委託会社・委託年月日・委託店 |
委託会社CD・処理日(システム日付)・配達店所 |
| データ区分・配信区分 |
'1'・0(未配信) |
| 元着区分・受付店・受付年月日 |
元着区分・受付店所・900000+受付日下5桁(0 なら 0) |
| 発地・発荷主コード・発荷主名、着地・着荷主名・電話番号 |
返信データの値 |
| 個数・重量・割増率・運賃 |
返信データの値 |
| 料金 |
料金+代引手数料総額 |
| 保険料等 |
保険料+立替金 |
| ローン・代引金・経費料金 |
代引ローン・代引金・発着経費料金 |
| 代引手数料経費 |
代引手数料総額÷2(四捨五入) |
| 消費税 |
委託消費税+代引手数料経費×委託支払税率÷100(四捨五入) |
| 委託年月日(TUKKDYMD) |
委託日付 |
| 条件 |
登録先 |
| 状況区分が 0・2 で、マスター区分が 0・1 |
中継確定データマスター(VKTYUKA、マスター区分 1)。すでにある場合は、配信区分が 0(未配信)なら書き換え、配信済みなら書き換えない |
| 上記以外 |
中継確定データマスター(受付未入力)(VKTYUUN、マスター区分 0)。すでにある場合は何もしない |
送り状ごとに SYNCPOINT を取る。書込みエラーはコンソールに出して続ける。
4. 補足・留意事項
-
DDP に返してから登録する:中継確定データの登録は DDP に結果を返した後に行うため、登録のエラーは DDP に伝わらない(コンソールに出すだけ)。
-
CICS のエラー時:CICS のエラーでは、エラーフラグ '1' にしてその時点の内容を返す。
-
固定値の判定:中継確定データの対象の配信先コード('0259706')・委託会社CD(18件)、西濃OPPの配信先コード(2265412)、元着区分・仮伝の送り状NO の範囲がソースに直接書かれている。
-
受付年月日の編集:受付日の下5桁(年1桁+月日)に 900000 を足して受付年月日にしている(年の上位桁を 9 とみなす編集)。
-
委託年月日の2種類:中継確定データの委託年月日(TUKITYMD)は処理日(システム日付)、TUKKDYMD は DDP から受け取った委託日付をセットしている。
-
結果の編集位置:計算結果を返信データに入れる位置(VCNT)は、計算結果区分が 0・1・2 の送り状だけ進める。ほかの区分があると、以降の送り状とずれる。仮伝の判定はその位置の送り状NO で行う。
-
航空・小口の区分:航空・小口の区分を返すが、DDP の BV18400P・BS13300P ではこのエラーがコメントアウトされている。