レビュー指摘 #12454 » BV28300P_仕様書.md
プログラム仕様書 BV28300P(他社直卸し中継渡し入力(委託票) 送り状NO のセンター照会)
| 項目 | 内容 |
|---|---|
| システムID | BV |
| 参考資料 | ・現行ソース BV28300P.pl1 ・現行の解析資料 BV0190_到着入力(他社直卸中継渡し).xlsx(シート「資産一覧」「レコードフォーマット」「SRC_BV28300P」) |
| 項目名の出典 | マスターの項目は解析資料のシート「レコードフォーマット」の日本語名称 |
1. 概要
| 項目 | 内容 |
|---|---|
| プログラムID | BV28300P(手続き名:BV28300) |
| プログラム名称 | 他社直卸し中継渡し入力(委託票)送り状NO のセンター照会(ソースの冒頭コメントは空欄。処理内容から命名) |
| 言語 | PL/I(CICS コマンドレベル) |
| 処理形態 | オンライン(APPC 会話の相手側。画面なし) |
| 動作環境 | CIC1(センター側) |
| トランザクションID | B83V(DDP の BV18300P から CONNECT PROCESS で起動される) |
| パターンID | PPOC010P(1987/04/30) |
| 呼出し元 | BV18300P(BV82 から XCTL) |
| 参照ファイル | VKSFSNO(送付書送り状NOマスター)参照のみ |
1.1 機能概要
DDP から受け取った送付書NO で送付書送り状NOマスターを読み、送付書に含まれる送り状NO の一覧を、削除分を除き昇順に並べて DDP に返す。
flowchart LR
DDP[DDP BV18300P] -- 送付書NO 12バイト --> B83V[B83V<br/>本プログラム]
B83V -- 送付書送り状NOマスター 7068バイト --> DDP
B83V --> SFS[(VKSFSNO<br/>送付書送り状NOマスター)]
2. インターフェース
2.1 受信データ(12バイト)
| 項目ID | 項目名 | 桁 | 用途 |
|---|---|---|---|
| SESS_TRID | トランザクションID | 4 | 'B83V' |
| B83VSFNO | 送付書NO | 8 | 送付書送り状NOマスターのキー |
2.2 送信データ(7068バイト)
| 項目ID | 内容 |
|---|---|
| SESS_ERR_FLG | エラーフラグ。'0':正常、'1':送付書送り状NOマスターが読めない |
| SESS_ERR_CODE | エラーコード。常に空白 |
| BV83AREA(7063バイト) | 送付書送り状NOマスター(SOHFUSNO)のレコード。送り状NO の一覧を 3.2 のとおり編集したもの。読めない場合は空白 |
レコードのうち DDP(BV18300P)が使うのは、送り状枚数(送り状データ件数)(VSHSOKCN)と発送送り状NO(VSHSOKNO(n))。
3. 処理仕様
3.1 処理の流れ
flowchart TD
S([開始]) --> RCV[送付書NO を受信]
RCV --> RD[送付書送り状NOマスターを読む]
RD -- 読めない --> E1[エラーフラグ 1]
RD -- 読めた --> C{送り状枚数 > 1}
C -- はい --> ED[削除分を除き<br/>昇順に並べる 3.2]
C -- いいえ --> SET
ED --> SET[レコードを送信データにセット]
E1 --> SND
SET --> SND[結果を送信して終了]
3.2 送り状NO の一覧の編集
送り状枚数が 2 以上の場合だけ行う。
- 送り状の一覧(送り状枚数分)のうち、削除区分(VSHSKRKB)が 9 の送り状NO を 99999999999 にし、その件数を数える。
- 一覧を送り状NO の昇順に並べ替える(削除区分も一緒に入れ替える)。削除分(99999999999)は末尾に集まる。
- 送り状枚数から削除分の件数を引き、末尾の削除分の欄の送り状NO・削除区分を 0 にする。
3.3 送信・エラー処理
- 結果(7068バイト)を送信して会話を終える(SEND LAST)。
- CICS のエラー(HANDLE CONDITION ERROR)が発生した場合は、そのまま送信する(エラーフラグは変えない)。
4. 補足・留意事項
- 削除件数の初期値:削除分の件数を数える作業域(ZCNT)に初期値を設定していないため、件数が正しく数えられない可能性がある。
- 送り状枚数が1件の場合:送り状枚数が 1 以下の場合は編集をしないため、1件の送り状が削除済みでもそのまま返る。
- CICS のエラー時:エラーフラグを '2' などにせず送信するため、DDP では正常として扱われる場合がある。
- エラーコードを返さない:読めない場合もエラーコードは空白。DDP の BV18300P はセンターのエラーを画面に表示しない(BV18300P_仕様書.md 7章 2)。
- 並べ替え:単純な比較・入れ替えによる並べ替えで、送り状枚数が多いと比較回数が多くなる。