プロジェクト

全般

プロフィール

レビュー指摘 #12076 » BK21500P_仕様書.md

幸塚 和久, 2026-10-26 10:28 午前

 

プログラム仕様書 BK10030 回送到着入力 - BK21500P(① センター照会)

項目 内容
機能ID・機能名 BK10030 回送到着入力(機能仕様書:BK10030_回送到着入力_仕様書.md)
システムID BK
サブシステムID BK0070
サブシステム名 回送・域内便到着入力
参考資料 ・現行ソース BK21500P.pl1
・画面設計書「BK0070_回送・域内便到着入力.xlsx」(Ver.1.2023.1016.3):資産一覧、レコードフォーマット
関連仕様書 BK11500P_仕様書.md(呼出し元:回送到着入力(照会))

1. 概要

項目 内容
プログラムID BK21500P(手続き名:BK21500)
プログラム名称 回送到着入力(センター照会)
言語 PL/I(CICS コマンドレベル)
処理形態 オンライン(APPC 会話の相手側プログラム。画面なし)
動作環境 CIC1(センター側 CICS)
トランザクションID B15K
パターンID PPOC020P(1987/04/30)、業務 BXHEAD30。DB は読込みのみ
呼出し元 BK11500P(DDP 側、トランザクション BK15)。CONNECT PROCESS で B15K を起動する
参照ファイル VKKAISO(センターの回送マスター、KAISOHBN)
更新ファイル なし
通信領域 なし(会話でデータを受け渡す)

1.1 機能概要

DDP 側の回送到着入力(BK11500P)で、DDP の回送マスターに回送票が見つからなかったときに呼ばれる。

  1. DDP から回送入力票NOを受け取る。
  2. センターの回送マスター(VKKAISO)を読む。
  3. 取消済みかどうか、入力区分が対象(店所間回送・域内)かどうかを判定する。
  4. 回送マスターの内容とエラーコードを編集して DDP に返す。
sequenceDiagram
    participant DDP as BK11500P(DDP・BK15)
    participant CEN as BK21500P(センター・B15K)
    participant VK as VKKAISO(センター回送マスター)
    DDP->>CEN: ALLOCATE / CONNECT PROCESS(B15K)
    DDP->>CEN: SEND 49バイト(回送入力票NO)INVITE WAIT
    CEN->>CEN: RECEIVE 49バイト
    CEN->>VK: READ(キー:回送入力票NO)
    VK-->>CEN: 回送マスター
    CEN->>DDP: SEND 89バイト(エラーコード+回送内容)INVITE WAIT
    DDP->>CEN: SEND 1バイト LAST WAIT
    CEN->>CEN: RECEIVE(終了の確認)
    CEN->>CEN: RETURN
    DDP->>DDP: FREE

2. インターフェース

2.1 受信データ(IN_DATA:49バイト)

項目ID 型 項目名 本プログラムでの扱い
SESS_TRID 文字(4) トランザクションID('B15K') 使わない
WBK2KSNO 数字(8) 回送入力票NO 回送マスターのキー
WBK2NYKB 数字(1) 入力区分 使わない(DDP 側は 0 をセット)
WBK2ORN1・WBK2ORN2 数字 指令書NO 行き分 no1・no2 使わない
WBK2FKN1・WBK2FKN2 数字 指令書NO 帰り分 no1・no2 使わない

レイアウトは DPCEB02K(回送・航空・域内入力(DDP~センター))。

2.2 送信データ(OUT_DATA:89バイト)

項目ID 型 項目名 設定値
SESS_ERR_FLG 文字(1) エラーフラグ '0':通常(正常・業務エラーとも)、'2':CICS エラー
SESS_ERR_CODE 文字(4) エラーコード 3.3 参照
UB02KSNO 数字(8) 回送入力票NO VSKJKINO
UB02INKB 数字(1) 入力区分 VSKJNYUK
UB02HTCD 数字(4) 発店 VSKJHTCD(回送発送店所コード)
UB02SYMD 数字(6) 発送 年月日 VSKJYMDH
UB02DHMM 数字(4) 発送 時分 VSKJHHMM
UB02TOCD 数字(4) 到着店 VSKJCHCD
UB02CYMD 数字(6) 到着 年月日 VSKJTYMD
UB02CHMM 数字(4) 到着 時分 VSKJHMHM
UB02ARCO 数字(1) 航空会社区分 VSKJKOKU
UB02SYAB 数字(5) 社番 VSKJKSBN(回送社番)
UB02JYCA・UB02JYCB 数字(6) 乗務員コードA・B VSKJCDAA・VSKJCDBB
UB02STKM 数値(7) 指示粁 出発時 VSKJSPTK
UB02TCKM 数値(7) 指示粁 到着時 VSKJTCHG
UB02SKOM 数値(3) 走行粁 3.2 参照
UB02SRNO 文字(16) スペース 設定しない(空)
UB02TOKB 数字(1) 積卸区分 VSKJSKKB
UB02UNKB 数字(2) 運行車区分 13

レイアウトは CEDPB15K(回送・航空・域内照会到着(DD~セン))。項目名はレコードフォーマットの名称。

2.3 参照ファイル:VKKAISO(センター回送マスター、KAISOHBN)

項目 内容
キー 回送入力票NO(8桁)
読込み長 170バイト
判定に使う項目 VSKJSJKB(削除区分:0 初期値、9 削除)、VSKJNYUK(入力区分:1 店所間回送、2 航空、3 域内、4 ライナー、5 フェリー)

3. 処理仕様

3.1 処理の流れ

flowchart TD
    S([B15K 起動]) --> H[CICS エラー時の分岐先を登録]
    H --> R1[DDP から 49バイト受信]
    R1 --> CLR[送信エリアをクリア<br/>エラーフラグ '0'・コード '0000']
    CLR --> RD{VKKAISO を読む}
    RD -- 正常 --> DL{削除区分 = 9}
    DL -- はい --> E9[コード '0009']
    DL -- いいえ --> KB{入力区分 = 1 または 3}
    KB -- いいえ --> E3[コード '0003']
    KB -- はい --> OK[コード '0000' のまま]
    E9 --> SET[回送マスターの内容を<br/>送信エリアにセット 3.2]
    E3 --> SET
    OK --> SET
    RD -- 該当なし --> E1[コード '0001']
    RD -- その他エラー --> E2[コード '0002']
    SET --> SND[DDP に 89バイト送信<br/>INVITE WAIT]
    E1 --> SND
    E2 --> SND
    SND --> R2[DDP からの終了を受信]
    R2 --> RET([RETURN])

3.2 処理内容

  1. CICS コマンドがエラーになったときの分岐先(エラー処理 3.4)を登録する。
  2. DDP から受信データ(49バイト)を受け取る。
  3. 送信エリアをクリアし、エラーフラグ = '0'、エラーコード = '0000' にする。
  4. 回送入力票NO(WBK2KSNO)をキーに、センター回送マスター(VKKAISO)を 170バイトで読む。
  5. 読めた場合:
    1. 削除区分(VSKJSJKB)= 9 なら、エラーコード = '0009'(取消済み)。
    2. そうでなければ、入力区分(VSKJNYUK)が 1 または 3 以外なら、エラーコード = '0003'(入力区分エラー)。
    3. エラーコードにかかわらず、回送マスターの内容を送信エリアにセットする(2.2)。
    4. 走行粁は次のとおり計算する。
条件 走行粁(UB02SKOM)
指示粁 出発時 > 到着時(メーターが一巡) (到着時 + 10,000,000) − 出発時
上記以外 到着時 − 出発時
  1. 読めなかった場合:該当なしならエラーコード = '0001'、それ以外のエラーなら '0002'(エラーフラグはどちらも '0')。送信エリアの回送内容は空のまま。
  2. 送信データ(89バイト)を DDP に送信し、応答を待つ(INVITE WAIT)。
  3. DDP からの最後のデータ(会話の終了)を受信する。
  4. 終了する(RETURN)。

3.3 エラーコード一覧

エラーフラグ エラーコード 意味 DDP 側(BK11500P)の表示
'0' 0000 正常(入力区分 1・3、取消されていない) 照会内容を表示し、到着入力へ
'0' 0001 回送マスターに該当なし ERR 3:回送未入力です。
'0' 0002 回送マスターの読込みエラー ERR 3:センターの回送マスターの I/Oエラー
'0' 0003 入力区分が 1・3 以外 ERR 5:この回送票の入力区分がエラーです。再入力して下さい
'0' 0009 取消済み ERR 9:この回送票は取消済みです。  再入力して下さい
'2' BU02 CICS コマンドのエラー(3.4) ERR ?:????????????

3.4 エラー処理(CICS ERROR 条件)

受信・送信などの CICS コマンドでエラーが起きた場合(回送マスターの読込みは RESP で判定するため対象外):

  1. 送信エリアをクリアする。
  2. エラーフラグ = '2'、エラーコード = 'BU02' にする。
  3. 3.2 の手順 7(送信)から処理を続ける。

4. 補足・留意事項

  1. 取消済み・入力区分エラーでも内容を返す:エラーコードが '0009'・'0003' の場合も、回送マスターの内容を送信エリアにセットして返す。DDP 側(BK11500P)はエラーコードだけを見て、内容は使わない。
  2. 走行粁の桁あふれ:走行粁(UB02SKOM)は3桁の数値項目。1,000km 以上になると上位の桁が失われ、正しい値が返らない。
  3. 送信時のエラーでループするおそれ:エラー処理の後は送信(手順 7)に戻る。送信そのものがエラーの場合は、再びエラー処理に入り、送信を繰り返すおそれがある。
  4. 受信データで使うのは回送入力票NOだけ:入力区分・指令書NOは受け取るが使わない。
  5. 航空会社区分・積卸区分:送信データにセットしているが、DDP 側(BK11500P)では使っていない。
  6. 使っていない領域:VKEY2(VKUNKSH 用のキー)、UB02SRNO は使っていない。
(5-5/5)