プロジェクト

全般

プロフィール

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

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

 

プログラム仕様書 BV18300P(他社直卸し中継渡し入力(委託票) 他社委託伝票入力の初期表示)

項目 内容
システムID BV
参考資料 ・現行ソース BV18300P.pl1
・現行の解析資料 BV0190_到着入力(他社直卸中継渡し).xlsx(シート「資産一覧」「Link XCTL 一覧」「MPBS330」「レコードフォーマット」「SRC_BV18300P」)
項目名の出典 画面項目は解析資料のシート「MPBS330」の日本語名、マスター・TSキューの項目はシート「レコードフォーマット」の日本語名称とソースのコメント

1. 概要

項目 内容
プログラムID BV18300P(手続き名:BV18300)
プログラム名称 他社直卸し中継渡し入力(委託票)他社委託伝票入力の初期表示(ソースの冒頭コメントは「他社委託伝票の入力画面を選択し、制御をそれぞれの入力画面プログラムに渡す。」)
言語 PL/I(CICS コマンドレベル)
処理形態 オンライン(CICS。BV18200P から XCTL で起動される)
動作環境 SV(DDP 側)
トランザクションID BV82 のまま(XCTL のため、トランザクションは変わらない)
パターンID PPOD450P、業務 BXOKRJ00
使用画面(マップ) MPBS330(他社委託伝票入力)、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面)
前の処理 BV18200P(BV82)から XCTL
次の処理 委託票NO が集配票マスターにある → MPBS330 を表示し BV84(BV18400P:他社委託伝票の入力)で待機。ない → 一つ前の画面
センター照会 SYSID 'CIC1'、プロセス 'B83V'(BV28300P:送付書の送り状NO の照会)
参照ファイル VPSHUHA(DDP 集配票マスター)、VPTENMS(DDP 店所マスター)、VPUNKEI(DDP 運賃計算荷主マスター(1))。いずれも参照のみ
一時記憶 TSキュー「端末ID+'BV83'」(送り状NO の一覧)を書く。委託票NO がない場合は「端末ID+'PR02'」(他社委託明細印刷ログ TSBSPRLG)に印刷終了レコードを書く

1.1 機能概要

委託票の登録(BV18100P)と委託明細の作成依頼(BV18200P)の後、他社委託伝票の入力画面(MPBS330)を表示する。

  1. 委託票NO で集配票マスターを読み、委託年月日・委託会社などを取得する。
  2. センター(B83V)に送付書NO を送り、送付書に含まれる送り状NO の一覧を受け取って TSキューに保存する。
  3. MPBS330 に委託票の内容と、送り状NO(最初の40件)を表示し、BV84 で待機する。
flowchart LR
    BV82[BV18200P<br/>BV82] -- XCTL --> P[本プログラム]
    P --> SHU[(VPSHUHA<br/>集配票マスター)]
    P <-- APPC B83V --> C83[(センター<br/>BV28300P)]
    P --> TS[(TSキュー<br/>端末ID+BV83)]
    P -- MPBS330 表示 --> BV84[BV84<br/>BV18400P 他社委託伝票入力]

2. 画面仕様(MPBS330:他社委託伝票入力)

画面レイアウトは BV18400P_仕様書.md の 2.0 を参照(画面イメージより)。

2.1 本プログラムでセットする項目

項目ID 項目名 属性・桁 セットする値 属性
BS33011・BS33021 システム日付・システム時刻 文字 8・8 共通ヘッダ画面の日時(4.4)
BS33031 委託票NO 8 委託票NO 入力不可・変更フラグオン
BS33032~BS33034 委託年月日 年・月・日 2×3 集配票マスターの稼動年月日 同上
BS33041 委託先コード 7 集配票マスターの傭車会社コード(委託会社) 同上
BS33042 委託店所コード 4 端末の店所コード 同上
BS33043 委託店所名 20 端末の店所コードの店所略名(漢字) 同上
BS33051 委託先名 20 運賃計算荷主マスター(1)の略名(KNTNRGNM) 同上
F007003~F014069 送り状№(頭5)・送り状№(後6)(8行×5列) 数字 5・6 TSキューの送り状NO(11桁)の頭5桁・後6桁。0 の欄は何もセットしない 送り状NO がある欄は入力可(数字)・黄色

カーソルは送り状№(頭5)1-1 に置く。

2.2 ファンクションキー

本プログラムは XCTL で起動され、画面を受信しない。キーの処理は次の BV18400P が行う。


3. インターフェース

3.1 通信領域(COMMAREA:256バイト)

ユーザー受渡しエリアを次のように定義している(BV18200P がセットした値)。

項目ID 型 内容(BV18200P での名前) 本プログラムでの用途
CMUSER_SYUNO1 数字(8) 送付書NO(COMM_ITEM_S1) センター照会のキー
CMUSER_SYUNO2 数字(8) 送付書NO(COMM_ITEM_S2) 印刷終了レコードの集配票NO
CMUSER_DATAID 数字(2) データID 80・90(COMM_ITEM_S3) 使用しない
CMUSER_PRNTKB・CMUSER_PRUNIT 数字(1)・文字(4) 0・空白(COMM_ITEM_S4・S5) 使用しない
CMUSER_SHUNO1 数字(8) 委託票NO(COMM_ITEM_I1) 集配票マスターのキー
CMUSER_SHUNO2 数字(8) 送付書NO(COMM_ITEM_I2) 使用しない
CMUSER_PRINKB 数字(1) 印刷区分 1(COMM_ITEM_I3) 1 なら委託票NO がないときに印刷終了レコードを書く
CMUSER_PPUNIT 文字(4) 印刷装置(COMM_ITEM_I4) 使用しない
CMUSER_KDDATE 数字(6) 稼働年月日(COMM_ITEM_I5) 集配票マスターの稼動年月日で上書き
CMUSER_KDTENC 数字(4) 端末の店所コード(COMM_ITEM_I6) 集配票マスターの稼働店所コードで上書き
COMM_TEN_CODE 数字(4) 端末の店所コード 委託店所コード、印刷終了レコードの店所コード
COMM_ITEM_NO 2進(15) 1 をセット
CRT_BACK_KOSU/CRT_BACK_DATA(5) 戻り先画面のスタック 委託票NO がない場合の戻り先

3.2 センター照会(B83V:BV28300P)

項目 内容
送信(12バイト) トランザクションID 'B83V'(4)+ 送付書NO(B83VSFNO、8)
受信(7068バイト) エラーフラグ(1)+エラーコード(4)+ 送付書送り状NOマスター(SOHFUSNO)のレコード
使う項目 送り状NO(VSHSOKNO(n))、送り状件数(VSHSOKCN)

3.3 TSキュー「端末ID+'BV83'」

送り状NO(11桁)を8行×5列=40件ずつ1アイテムにして書く(TS_KEY_AREA)。送り状件数が40件を超える場合は複数アイテムになる。BV18400P が画面の改ページなどに使う。

3.4 印刷終了レコード(TSキュー「端末ID+'PR02'」:他社委託明細印刷ログ TSBSPRLG)

委託票NO が集配票マスターにない場合で、印刷区分が 1 のときに書く。

項目ID 内容(ソースのコメント) セットする値
TSBSITNO 委託票NO 委託票NO
TSBSSFNO 集配票NO 送付書NO(CMUSER_SYUNO2)
TSBSTNCD 店所コード 端末の店所コード
TSBSKYMD 年月日 集配票マスターの稼動年月日(7章 3)
TSBSPRKB 明細区分 2(委託)
TSBSSYGO 車号 集配票マスターの社番・車号の下4桁(7章 3)
TSSBOKKN 送り状件数 1
TSBSOKNO(1) 送り状NO 99999999999

4. 処理仕様

4.1 処理の流れ

flowchart TD
    S([開始 XCTL]) --> R1[集配票マスターを<br/>委託票NOで読む]
    R1 -- ない --> PRT{印刷区分 = 1}
    PRT -- はい --> PL[印刷終了レコードを<br/>PR02 に書く]
    PRT -- いいえ --> BACK
    PL --> BACK[一つ前の画面を表示]
    R1 -- ある --> M[店所名・委託先名を取得]
    M --> INQ[センター照会 B83V 4.3]
    INQ --> DSP[MPBS330 を表示 4.4]
    DSP --> W84([BV84 で待機])

4.2 委託票の読込み(OK_DATA_PROCESS_SUB_RTN)

  1. 集配票マスター(VPSHUHA)を委託票NO で読む。あれば次をセットする。
    • 稼動年月日(VGJSKYMD)、稼働店所コード(VGJSKTCD)、傭車会社コード(VGJSYOCD:委託会社)
    • 稼働店所コードの店所略名(漢字)、委託会社の運賃計算荷主マスター(1)の略名(キー:委託会社コード+'00000001')
  2. ない場合は、印刷区分が 1 なら印刷終了レコードを書き(3.4)、戻り先画面のスタックから一つ前の画面を決めて(最上位が MPBV800 以外ならその画面、MPBV800 ならその一つ下。スタックが空、または下がなければ終了画面)、共通ヘッダ画面と戻り先の画面をデータなしで送信して、そのトランザクションで待機する。メッセージは出さない。
  3. ある場合は、端末の店所コードで店所マスターを、委託会社コード+'00000001' で運賃計算荷主マスター(1)を読み直す(委託店所名・委託先名に使う)。通信領域の稼働年月日・稼働店所に集配票マスターの値をセットする。

4.3 センター照会(INQUIRE_SUB_RTN)

  1. センター(CIC1 の B83V)に送付書NO を送り、送付書送り状NOマスターのレコードを受け取る。
  2. 通信エラー・センターのエラー(エラーフラグ '0' 以外)・CICS のエラーは、エラーフラグを '2' にして会話を解放する。エラーメッセージ・エラーコードは作業域にセットするが表示しない(7章 2)。回線混雑(SBUSY)もやり直さずにエラーとする。
  3. TSキュー「端末ID+'BV83'」を削除する。
  4. 正常なら、送り状NO を1件目から送り状件数まで、40件(8行×5列)ずつ TSキューに書く。TSキューへの書込みエラーは ABEND(コード 'AAAA')。

4.4 画面の表示

  1. 共通ヘッダ画面(MPDM010)に日時をセットして、画面を消去して送信する。
  2. MPBS330 に 2.1 の項目をセットする。TSキュー「端末ID+'BV83'」の1件目(最初の40件)を読み、送り状NO が 0 でない欄に頭5桁・後6桁を表示して入力可(数字)・黄色にする。
  3. MPBS330 を送信し(カーソル指定)、BV84 で待機する。

5. メッセージ一覧

本プログラムで表示するメッセージはない(センター照会の通信エラーのメッセージも表示されない)。


6. 画面遷移

flowchart LR
    BV82[BV18200P] -- XCTL --> P[本プログラム]
    P -- 委託票あり --> BV84[BV84<br/>MPBS330 他社委託伝票入力]
    P -- 委託票なし --> PREV[一つ前の画面]
    P -- 委託票なし・戻り先なし --> END[ELEPHAN 終了]

7. 補足・留意事項

  1. 委託票がない場合:BV18100P で集配票マスターへの追加に失敗した場合などは、メッセージを出さずに一つ前の画面に戻る。
  2. センター照会のエラーを表示しない:通信エラー・センターのエラーでも画面には何も表示されず、送り状NO が空の MPBS330 が表示される(TSキュー「端末ID+'BV83'」は削除されたまま)。回線混雑でもやり直さない。
  3. 印刷終了レコードの値:印刷終了レコードは集配票マスターが読めなかった場合に書くが、年月日・車号は集配票マスターの作業域から取るため、前の値(または空)が入る。
  4. 送り状NO が0件の場合:送り状件数が 0 でも、1件目(0)を含む1アイテムを TSキューに書く。表示では 0 の欄は表示しない。
  5. ABEND:TSキューへの書込みエラーでは ABEND(コード 'AAAA')する。
  6. 委託店所の表示:委託店所コード・委託店所名には、集配票マスターの稼働店所(扱い店所)ではなく、端末の店所を表示する。
(5-5/10)