レビュー指摘 #12454 » BV18200P_仕様書.md
プログラム仕様書 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 に制御を渡す。
- TSキューを読み、送付書マスターを読む。
- 通信領域に送付書NO・委託票NO・印刷装置などの受渡し項目と、委託明細票の印刷情報をセットする。
- 前回の明細作成が終わっているかを確認し、終わっていればトランザクション BS27 を START する。
- 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)
- 画面を受信し、TSキューを読む。キューがなければ終了処理(TSキュー削除・終了画面)へ。あれば削除する。
- 送付書マスター(VPSOHFU)を送付書NO で読む。
- 通信領域の受渡し項目(S1~S5・I1~I6)を 3.1 のとおりセットする(送付書マスターが読めなくてもセットする)。
- 送付書マスターが読めなかった場合は、印刷情報のセットと BS27 の START をせずに 4.4 へ。
- 読めた場合は、印刷装置(PRINTER_ID)と委託明細票の印刷情報(COMM_PRTON_~)をセットする。
4.3 前回の明細作成の確認
- TSキュー「端末ID+'CHKP'」の1件目を読む。読めたら、エラーメッセージ欄に「前回明細作成処理未完了!! しばらくして実行キーを押して下さい」をセットして画面のデータ部分を送信し、画面を受信して(実行キーを待って)もう一度確認する。
- TSキュー「端末ID+'PR02'」の1件目を読む。読めたら 1 と同じく待って確認し直す。
- どちらもなければ、「端末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. 補足・留意事項
- 前回処理の確認中は画面を待ち続ける:CHKP・PR02 のキューが残っている間は、実行キーを押すたびに確認を繰り返す。このとき押したキーの種類は判定しない(RECEIVE MAP で受信するだけ)。
- 印刷の実行処理は無効:印刷装置の確認(SL11100P の LINK)と、その結果による OK フラグの設定はコメントアウトされており、OK フラグは常に '0'(2014/07/14 変更)。PF3・PF4 の SL11200P の LINK もコメントアウトされている。
- 本機能の TSキューを書き戻さない:TSキュー(端末ID+'BV80')は削除したまま BV18300P に制御を渡す。BV18300P は通信領域の受渡し項目を使う。
- 送付書マスターが読めない場合:通信領域の受渡し項目はセットするが、委託明細の作成(BS27)は依頼せずに BV18300P に進む。メッセージは出さない。
- PF キーの割当て:PF3 は初期画面(BV80)に戻る「取消」の動き(ソースのコメントは「終了」)で、PF2 は処理がなく再表示になる。PF3 で一つ前の画面に戻る動きはない。
- COMM_ITEM_I6 の値:コメントは「扱い店所」だが、セットするのは端末の店所コード。扱い店所コードは印刷情報の識別(COMM_PRTON_IDENT)の先頭に入る。