プロジェクト

全般

プロフィール

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

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

 

プログラム仕様書 BV18200P(他社直卸し中継渡し入力(委託票) 委託明細の作成依頼)

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

1. 概要

項目 内容
プログラムID BV18200P(手続き名:BV18200)
プログラム名称 他社直卸し中継渡し入力(委託票)委託明細の作成依頼(ソースの冒頭コメントは空欄。処理内容から命名)
言語 PL/I(CICS コマンドレベル)
処理形態 オンライン(CICS 疑似会話型)
動作環境 SV(DDP 側)
トランザクションID BV82
パターンID PPOD426P(1987/05/01。コメントでは PPOD156P)、業務 BXOKRJ00
使用画面(マップ) MPBV800(他社直卸し中継渡し入力(委託票))、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面)
前の処理 BV81(BV18100P)。登録OK で「登録OK、ENTERを押せ。」を表示し、BV82 で待機している
次の処理 実行キー → BV18300P に XCTL(制御を渡す)。あわせてトランザクション BS27 を START(委託明細の作成。解析資料の Link XCTL 一覧では BS12700P)
参照ファイル VPSOHFU(DDP 送付書マスター)参照のみ
一時記憶 TSキュー:本機能のキュー(「端末ID+'BV80'」)を読んで削除。「端末ID+'CHKP'」「端末ID+'PR02'」を確認(PR02 は削除)

1.1 機能概要

BV18100P で委託票を登録した後の実行キーを受け、委託明細の作成(印刷情報)を別トランザクション(BS27)に依頼してから、次のプログラム BV18300P に制御を渡す。

  1. TSキューを読み、送付書マスターを読む。
  2. 通信領域に送付書NO・委託票NO・印刷装置などの受渡し項目と、委託明細票の印刷情報をセットする。
  3. 前回の明細作成が終わっているかを確認し、終わっていればトランザクション BS27 を START する。
  4. BV18300P に XCTL する。
flowchart LR
    BV81[BV81<br/>BV18100P 登録] -- 登録OK --> BV82[BV82<br/>本プログラム]
    BV82 -- START --> BS27[[BS27<br/>委託明細の作成]]
    BV82 -- XCTL --> BV18300P[BV18300P]
    BV82 -- PF3 --> BV80[BV80 初期画面]

2. 画面仕様

2.1 受信する画面(MPBV800)

画面レイアウト・項目は BV18000P_仕様書.md の 2.1・2.2 と同じ。本プログラムでは画面の入力値は使わない(TSキューに保存した値を使う)。前回の明細作成が未完了の場合だけ、エラーメッセージ欄にメッセージを表示する(4.3)。

2.2 ファンクションキー

キー 機能 処理概要
実行(Enter) 継続 委託明細の作成を依頼し、BV18300P に制御を渡す(4.2)
PF3 取消(初期画面) TSキューを削除し、共通ヘッダ画面(MPDM010)に日時をセットして送信し、空の MPBV800 を表示する。BV80(照会)で待機
PF4 戻り TSキューを削除し、スタックの1件目が MPBV800 以外ならその画面(スタックを全件消去)、それ以外(スタックが空を含む)は終了画面
CLEAR 強制終了 TSキューを削除し、終了画面(ELEPHAN)を表示して終了
上記以外(PF2 を含む) 再表示 画面のデータ部分を再送信し、BV82 で待機

3. インターフェース

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

本プログラムでは、通信領域を次のように定義している(BV18000P・BV18100P とはユーザー受渡しエリアの定義が違う)。

項目ID 型 本プログラムでの用途
TSQ_ID・TSQ_LENGTH 本機能の TSキューの名前・長さ
COMM_TEN_CODE 数字(4) 端末の店所コード
COMM_PRTON_TERFID 文字(4) 委託明細票の印刷情報:端末ID(EIBTRMID)
COMM_PRTON_TERTID 文字(4) 同:印刷先の端末ID(印刷装置)
COMM_PRTON_OKFLG 文字(1) 同:OK フラグ。常に '0'(2014/07/14 変更)
COMM_PRTON_DATE 文字(6) 同:年月日。送付書マスターの到着年月日(KSHSTYMD)
COMM_PRTON_IDENT 文字(20) 同:識別。扱い店所コード+委託票NO+'ITAKU001'
COMM_PRTON_NUMB 文字(6) 同:番号。'000000'
PRINTER_ID 文字(4) 印刷装置
COMM_ITEM_S1・COMM_ITEM_S2 数字(8) 送付書NO
COMM_ITEM_S3 数字(2) 画面区分(BV80GKBN)が '14' なら 80、それ以外は 90
COMM_ITEM_S4・COMM_ITEM_S5 数字(1)・文字(4) 0・空白
COMM_ITEM_I1 数字(8) 委託票NO
COMM_ITEM_I2 数字(8) 送付書NO
COMM_ITEM_I3 数字(1) 印刷区分:1
COMM_ITEM_I4 文字(4) 印刷装置
COMM_ITEM_I5 数字(6) 稼働年月日:到着予定年・月・日
COMM_ITEM_I6 数字(4) 端末の店所コード(ソースのコメントは「扱い店所」)
CRT_BACK_KOSU/CRT_BACK_DATA(5) 戻り先画面のスタック(PF4)

3.2 TSキュー

キュー名 用途
端末ID+'BV80'(TSQ_ID) 本機能の TSキュー(BV18000P と同じ形式)。読んで削除する。書き戻さない
端末ID+'CHKP' 前回の明細作成の処理中を示すキュー。1件目が読めたら未完了とする
端末ID+'PR02' 同上。読めなければ削除してから、REQID として BS27 を START する

4. 処理仕様

4.1 処理の流れ

flowchart TD
    S([開始]) --> AID{押されたキー}
    AID -- CLEAR --> CLR[TSキュー削除<br/>終了画面]
    AID -- PFキー --> PF[ファンクションキー処理 2.2]
    AID -- 実行 --> RCV[MPBV800 を受信<br/>TSキューを読んで削除]
    RCV -- TSキューなし・画面データなし --> CLR
    RCV --> SO[送付書マスターを読む<br/>通信領域を編集]
    SO -- 読めない --> X
    SO -- 読めた --> PR[印刷情報をセット]
    PR --> CK{CHKP・PR02<br/>キューがある}
    CK -- ある --> WAIT[前回明細作成処理未完了<br/>画面を受信して再確認] --> CK
    CK -- ない --> ST[BS27 を START]
    ST --> X[BV18300P に XCTL]

4.2 通信領域の編集と委託明細の作成依頼(OK_DATA_RTN)

  1. 画面を受信し、TSキューを読む。キューがなければ終了処理(TSキュー削除・終了画面)へ。あれば削除する。
  2. 送付書マスター(VPSOHFU)を送付書NO で読む。
  3. 通信領域の受渡し項目(S1~S5・I1~I6)を 3.1 のとおりセットする(送付書マスターが読めなくてもセットする)。
  4. 送付書マスターが読めなかった場合は、印刷情報のセットと BS27 の START をせずに 4.4 へ。
  5. 読めた場合は、印刷装置(PRINTER_ID)と委託明細票の印刷情報(COMM_PRTON_~)をセットする。

4.3 前回の明細作成の確認

  1. TSキュー「端末ID+'CHKP'」の1件目を読む。読めたら、エラーメッセージ欄に「前回明細作成処理未完了!! しばらくして実行キーを押して下さい」をセットして画面のデータ部分を送信し、画面を受信して(実行キーを待って)もう一度確認する。
  2. TSキュー「端末ID+'PR02'」の1件目を読む。読めたら 1 と同じく待って確認し直す。
  3. どちらもなければ、「端末ID+'PR02'」を削除し、トランザクション BS27 を START する(REQID は「端末ID+'PR02'」、データは通信領域)。

4.4 次のプログラムへの切替え

BV18300P に XCTL する(通信領域を渡す)。


5. メッセージ一覧

No エラーコード メッセージ 表示するとき
1 ― 前回明細作成処理未完了!! しばらくして実行キーを押して下さい 前回の明細作成のキュー(CHKP・PR02)が残っている

6. 画面遷移

flowchart LR
    BV81[BV81 登録] --> BV82[BV82<br/>本プログラム]
    BV82 -- 実行 --> BV18300P[BV18300P<br/>XCTL]
    BV82 -- PF3 --> BV80[BV80 初期画面]
    BV82 -- PF4 --> MAIN[メインメニュー]
    BV82 -- その他 --> BV82
    BV82 -- CLEAR・TSキューなし --> END[ELEPHAN 終了]

7. 補足・留意事項

  1. 前回処理の確認中は画面を待ち続ける:CHKP・PR02 のキューが残っている間は、実行キーを押すたびに確認を繰り返す。このとき押したキーの種類は判定しない(RECEIVE MAP で受信するだけ)。
  2. 印刷の実行処理は無効:印刷装置の確認(SL11100P の LINK)と、その結果による OK フラグの設定はコメントアウトされており、OK フラグは常に '0'(2014/07/14 変更)。PF3・PF4 の SL11200P の LINK もコメントアウトされている。
  3. 本機能の TSキューを書き戻さない:TSキュー(端末ID+'BV80')は削除したまま BV18300P に制御を渡す。BV18300P は通信領域の受渡し項目を使う。
  4. 送付書マスターが読めない場合:通信領域の受渡し項目はセットするが、委託明細の作成(BS27)は依頼せずに BV18300P に進む。メッセージは出さない。
  5. PF キーの割当て:PF3 は初期画面(BV80)に戻る「取消」の動き(ソースのコメントは「終了」)で、PF2 は処理がなく再表示になる。PF3 で一つ前の画面に戻る動きはない。
  6. COMM_ITEM_I6 の値:コメントは「扱い店所」だが、セットするのは端末の店所コード。扱い店所コードは印刷情報の識別(COMM_PRTON_IDENT)の先頭に入る。
(6-6/10)