プロジェクト

全般

プロフィール

レビュー指摘 #12454 » BS23300P_仕様書.md

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

 

プログラム仕様書 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 テーブル)に登録する。

  1. 送り状ごとに、送り状マスター(センター)の内容、または DDP から受け取った内容で、運賃計算用のデータを作る。
  2. 15件ごと(または最後)に運賃計算(UC20140P)を呼び、到着経費・他社委託粁程・委託消費税などを受け取る。
  3. 結果を DDP に返す(ここで DDP との会話は終わる)。
  4. 委託会社が中継確定データの対象なら、中継確定データマスター・受付未入力マスターに送り状ごとのデータを書く。西濃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 運賃計算と結果の編集

  1. 15件ごと(またはデータの最後)に、運賃計算用データを TSキュー(端末CD+タスク番号)に書き、運賃計算(UC20140P)を LINK し、計算結果を読み戻して TSキューを削除する。
  2. 計算結果区分ごとに返信データにセットする。
計算結果区分 セットする項目
0・2 他社委託粁程、到着経費区分、発着経費料金、消費税含区分、委託消費税、委託支払税率
1 上記に加えて、発地・着地・個数・重量・運賃
  1. 特約80区分が 'T' の送り状は、着荷主名の14バイト目に印(HIGH)を入れる。
  2. 仮伝(送り状NO の先頭3桁が 980~989)は、発着経費料金・委託消費税を 0 にする。

3.4 結果の送信と中継確定データの対象判定

  1. 結果(4647バイト)を送信して会話を終え(SEND LAST)、SYNCPOINT を取る。以降の処理結果は DDP には返らない。
  2. 配信荷主変換マスター(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. 補足・留意事項

  1. DDP に返してから登録する:中継確定データの登録は DDP に結果を返した後に行うため、登録のエラーは DDP に伝わらない(コンソールに出すだけ)。
  2. CICS のエラー時:CICS のエラーでは、エラーフラグ '1' にしてその時点の内容を返す。
  3. 固定値の判定:中継確定データの対象の配信先コード('0259706')・委託会社CD(18件)、西濃OPPの配信先コード(2265412)、元着区分・仮伝の送り状NO の範囲がソースに直接書かれている。
  4. 受付年月日の編集:受付日の下5桁(年1桁+月日)に 900000 を足して受付年月日にしている(年の上位桁を 9 とみなす編集)。
  5. 委託年月日の2種類:中継確定データの委託年月日(TUKITYMD)は処理日(システム日付)、TUKKDYMD は DDP から受け取った委託日付をセットしている。
  6. 結果の編集位置:計算結果を返信データに入れる位置(VCNT)は、計算結果区分が 0・1・2 の送り状だけ進める。ほかの区分があると、以降の送り状とずれる。仮伝の判定はその位置の送り状NO で行う。
  7. 航空・小口の区分:航空・小口の区分を返すが、DDP の BV18400P・BS13300P ではこのエラーがコメントアウトされている。
(3-3/10)