プログラム仕様書 BV18400P(他社直卸し中継渡し入力(委託票) 委託送り状NO群の入力・登録)
| 項目 |
内容 |
| システムID |
BV |
| 参考資料 |
・現行ソース BV18400P.pl1 ・現行の解析資料 BV0190_到着入力(他社直卸中継渡し).xlsx(シート「資産一覧」「MPBS330」「レコードフォーマット」「SRC_BV18400P」「BS23300P」) |
| 項目名の出典 |
画面項目は解析資料のシート「MPBS330」の日本語名。マスター・送受信データ・集信ログの項目はシート「レコードフォーマット」の日本語名称と、ソースのコメント |
1. 概要
| 項目 |
内容 |
| プログラムID |
BV18400P(手続き名:BV18400) |
| プログラム名称 |
他社直卸し中継渡し入力(委託票)委託送り状NO群の入力・登録(ソースの冒頭コメントは「委託 送り状NO群(大曲小型等用) 他社直卸し到着・委託入力」) |
| 言語 |
PL/I(CICS コマンドレベル) |
| 処理形態 |
オンライン(CICS 疑似会話型) |
| 動作環境 |
SV(DDP 側) |
| トランザクションID |
BV84 |
| パターンID |
PPOD310P(1987/05/01)、業務 BXOKRJ00 |
| 使用画面(マップ) |
MPBS330(他社委託伝票入力)、MPBV800(他社直卸し中継渡し入力(委託票):PF3 で表示)、MPDM010(共通ヘッダ画面)、ELEPHAN(終了画面) |
| 前の処理 |
BV18300P(BV82 から XCTL)が MPBS330 を表示し、BV84 で待機している |
| 次の処理 |
登録後は同じ画面(次の送り状NO 40件)を表示して BV84 で待機。PF3 で BV80(委託票の照会)に戻る |
| センターとの通信 |
SYSID 'CIC1'、プロセス 'B33S'(BS23300P:他社委託の送り状の照会・中継確定データの登録) |
| 参照・更新ファイル |
VPSHUHA(DDP 集配票マスター)参照、VPOKRMS(DDP 送り状マスター)参照・更新・追加、VPITAKU(DDP 他社委託NOマスター)参照・更新・追加 |
| 出力 |
TD キュー 'SYUS':集信R2 集配鑑データ(SSS22:他社委託 鑑データ)、集信R1 他社委託送り状NOテ゛ータ(SSS16)。TSキュー「端末ID+'PR02'」:他社委託明細印刷ログ(TSBSPRLG) |
| 呼出しモジュール |
LSO0020(チェックデジットのチェック・生成) |
| 一時記憶 |
本プログラムの TSキュー「端末ID+'BV84'」(長さ 1000)、BV18300P が作った送り状NO の一覧「端末ID+'BV83'」 |
1.1 機能概要
他社に委託する(中継で渡す)送り状NO を、委託票ごとに最大40件ずつ入力して登録する。
- 画面の送り状NO(8行×5列)をチェックする。送り状NO の形式・チェックデジット、送り状マスターの有無、画面内の重複を確認する。
- センター(B33S)に送り状の情報を送り、運賃・料金などの委託の情報を受け取る。
- 他社委託NOマスターに送り状NO を追加し、送り状マスターに配達(委託)の情報を書く。集信ログと委託明細の印刷ログを出力する。
- 次の送り状NO 40件(BV18300P がセンターから取った一覧の次のページ)を表示して、続けて入力できるようにする。
flowchart LR
BV83[BV18300P] -- MPBS330 表示 --> BV84[BV84<br/>本プログラム]
BV84 -- エラー・次の40件 --> BV84
BV84 <-- APPC B33S --> C33[(センター<br/>BS23300P)]
BV84 <--> OKR[(VPOKRMS<br/>送り状マスター)]
BV84 <--> ITA[(VPITAKU<br/>他社委託NOマスター)]
BV84 --> SYUS[[TD SYUS<br/>SSS22・SSS16]]
BV84 --> PR02[(TS PR02<br/>委託明細印刷ログ)]
BV84 -- PF3 --> BV80[BV80 委託票照会]
2. 画面仕様(MPBS330:他社委託伝票入力)
2.0 画面レイアウト(画面イメージより)
MPBS330 他 社 委 託 伝 票 入 力 YY/MM/DD
HH:MM:SS
委託票NO ________ 委託年月日 __ 年 __ 月 __ 日
委託先名 _______ 委託店所 ____ 委託店所名(20)
委託先名(20)
送り状NO 送り状NO 送り状NO 送り状NO 送り状NO
_____ ______ _____ ______ _____ ______ _____ ______ _____ ______ 05
_____ ______ _____ ______ _____ ______ _____ ______ _____ ______ 10
(8行×5列。右端の 05~40 は行末までの件数) ~40
実行:継続 2:取消 3:終了 4:戻り
エラーメッセージ(70) エラーコード(5)
同じ画面を BS13300P(BS33:他社委託伝票入力)も使う(BS13300P_仕様書.md)。
2.1 画面項目
| 項目ID |
項目名 |
属性・桁 |
I/O |
内容 |
| BS33011・BS33021 |
システム日付・システム時刻 |
文字 8・8 |
O |
現在の日時 |
| BS33031 |
委託票NO |
8 |
O |
BV18300P が表示した値をそのまま引き継ぐ(入力不可・変更フラグオン) |
| BS33032~BS33034 |
委託年月日 年・月・日 |
2×3 |
O |
同上 |
| BS33041 |
委託先コード |
7 |
O |
同上 |
| BS33042・BS33043 |
委託店所コード・委託店所名 |
4・20 |
O |
同上 |
| BS33051 |
委託先名 |
20 |
O |
同上 |
| F007003~F014069 |
送り状№(頭5)・送り状№(後6)(8行×5列、40件) |
数字 5・6 |
I |
送り状NO(11桁)を頭5桁・後6桁に分けて入力。BV83 の一覧の送り状NO が表示される |
| BS33241 |
エラーメッセージ |
文字 70 |
O |
5章のメッセージ |
| BS33242 |
エラーコード |
文字 5 |
O |
5章のエラーコード |
2.2 ファンクションキー
| キー |
機能 |
処理概要 |
| 実行(Enter) |
継続 |
送り状NO をチェックし、登録する |
| PF2 |
取消 |
本プログラムの TSキューを削除し、ヘッダ項目はそのままで、今のページの送り状NO(BV83 の一覧)を表示し直す。BV84 で待機 |
| PF3・CLEAR |
終了(委託票の照会へ) |
印刷区分が 1 なら印刷終了レコードを書く。TSキュー(BV84・BV83)を削除し、空の MPBV800 を画面を消去して表示する。BV80 で待機 |
| PF4 |
戻り |
印刷区分が 1 なら印刷終了レコードを書く。TSキュー(BV84・BV83)を削除し、戻り先画面のスタックから一つ前の画面に戻る(最上位が MPBS330 以外ならその画面、MPBS330 ならその一つ下。スタックが空、または下がなければ終了画面) |
| 上記以外 |
再表示 |
画面のデータ部分を再送信し、BV84 で待機 |
3. インターフェース
3.1 通信領域(COMMAREA:256バイト)
| 項目ID |
内容(BV18200P がセット) |
本プログラムでの用途 |
| COMM_ITEM_NO |
ページ番号(BV18300P が 1 をセット) |
BV83 の一覧の何アイテム目(40件単位)を表示するか。登録ごとに 1 増やす |
| COMM_TRM_CODE |
端末コード |
センターへの送信データ |
| COMM_TEN_CODE |
端末の店所コード |
集信ログの入力店所、印刷ログの店所コード |
| COMM_RPOC_YMD |
処理日付 |
送り状マスターの配達EDP年月日 |
| COMM_ITEM_S3 |
データID 80・90 |
他社委託送り状NOテ゛ータ(SSS16)のレコードID(80・90 なら 156、それ以外は 152) |
| COMM_ITEM_I1 |
委託票NO |
集配票マスター・他社委託NOマスターのキー |
| COMM_ITEM_I2 |
送付書NO(代表集配票) |
集信ログ・印刷ログ |
| COMM_ITEM_I3 |
印刷区分(1) |
1 なら委託明細の印刷ログを書く |
| COMM_ITEM_I5 |
稼働年月日 |
センターへの送信データ(委託日付) |
| COMM_ITEM_I6 |
稼働店所 |
センターへの送信データ(配達店所) |
| COMM_ITEM_PRFLG |
印刷フラグ |
印刷ログを書いたら '2'('1' なら '3')にする |
| CRT_BACK_KOSU/CRT_BACK_DATA(5) |
戻り先画面のスタック |
PF4 |
3.2 TSキュー
| キュー名 |
内容 |
| 端末ID+'BV84'(長さ 1000) |
チェック結果(FLG・FLGX:8行×5列)、送り状NO(11桁×40件)、送り状マスターの有無('O':あり、'N':なし、'0':入力なし)、ヘッダ項目の保存域 |
| 端末ID+'BV83' |
BV18300P がセンターから取った送り状NO の一覧(40件ずつ1アイテム)。読むだけ |
| 端末ID+'PR02' |
他社委託明細印刷ログ(4.6) |
3.3 センターとの通信(B33S:BS23300P)
センター側の処理(送り状マスターの参照・運賃計算による委託料の計算・中継確定データの登録)は BS23300P_仕様書.md を参照。
| 項目 |
内容 |
| 送信(4063バイト) |
トランザクションID 'B33S'(4)+ DPCEB33S(他社委託CICS間データ(DDP~センター)) |
| 受信(4647バイト) |
エラーフラグ(1)+エラーコード(4)+ 送り状ごとの区分(40件)+ CEDPB33S(他社委託CICS間データ(センター~DDP)) |
送信データ(ソースのコメントによる):
| 区分 |
項目 |
| 共通部 |
データ件数(TITKDTKS:40)、端末CD(TITKTMCD)、委託会社CD(TITKITKC:集配票マスターの傭車会社コード)、委託日付(TITKKDYM:稼働年月日) |
| 送り状ごと(送り状マスターあり 'O') |
マスター区分(レコードタイプ 7 なら 0、それ以外 1)、送り状NO、代引手数料、発地CD、着地CD、個数、重量、割増率、受付店所、受付扱方、配達店所(稼働店所)、運賃、料金、立替金、代引形態・代引金・代引ローン、到着経費・到着料金、通し、受付日下5桁、発荷主コード・発荷主名、着荷主名、データカウント |
| 送り状ごと(送り状マスターなし 'N') |
マスター区分 0、送り状NO、配達店所、データカウント、到着経費 0 |
受信データで使う項目(送り状ごと。ソースのコメントによる):状況区分(SENTOKFG)、データカウント(SENTDCNT)、元着区分、発地コード・発荷主CD・発荷主名、着地コード・着荷主名・電話番号、個数、重量、運賃、料金、代引形態・代引金・代引ローン・代引総額・代引経費、到着経費・到着料金、保険料、他社委託KM、立替金、消費税含区分・消費税、委託支払税率。
4. 処理仕様
4.1 処理の流れ
flowchart TD
S([開始]) --> AID{押されたキー}
AID -- PFキー・CLEAR --> PF[ファンクションキー処理 2.2]
AID -- 実行 --> RCV[MPBS330 を受信<br/>TSキューを読む]
RCV -- 画面データなし --> RD[今のページを再表示]
RCV --> CHK[送り状NO のチェック 4.2<br/>重複チェック 4.3]
CHK -- エラー --> ERR[TSキュー保存<br/>エラー表示] --> W84([BV84 で待機])
CHK -- OK --> INQ[センター照会 B33S 4.4]
INQ -- エラー --> ERR
INQ -- OK --> REG[他社委託NOマスター・送り状マスター登録<br/>集信ログ・印刷ログ 4.5]
REG -- 送り状マスターエラー --> RD
REG --> NXT[次のページの40件を表示<br/>次の送り状を入力して下さい。]
NXT --> W84
4.2 送り状NO のチェック(CHECK_SUB_RTN_LVL1)
- 画面を受信し、ヘッダ項目を作業域に保存する。TSキュー「端末ID+'BV84'」を読む。なければ初期化する(FLG はすべて '1'、必須なし)。あれば削除する。
- 8行×5列の送り状NO を1件ずつチェックする。チェック結果が '2' の欄はチェックしない。頭5桁・後6桁のどちらも入力されていなければ未入力('0')。
| チェック |
内容 |
エラーのとき |
| 桁数 |
頭5桁は5桁。後6桁は6桁、または4桁(4桁の場合は「'00'+頭5桁+後4桁」の11桁として扱い、頭5桁・後6桁に分け直す) |
エラー |
| 形式 |
11桁が数字 |
エラー |
| 0 |
0 なら入力なしとして扱う(エラーにしない) |
|
| チェックデジット |
7DR チェック(LSO0020、区分 '07'、タイプ 'C')。NG の場合、先頭2桁が '00' なら区分 '10' でチェックし、OK ならよい |
「配達NO.エラー」 |
| 送り状マスター |
7DR のチェックデジットに変換した送り状NO(4.7)で送り状マスター(VPOKRMS)を読む。あれば 'O'、なければ 'N'。読込みエラーはエラー |
「配達NO.エラー」 |
- エラー('1')が1件でもあれば全体エラーにする。
4.3 重複チェック(関連チェック)
40件の送り状NO のうち、先頭10桁が同じものが2件以上あれば、両方を関連エラー('3')にし、「送り状NOダブリエラー」にする。
4.4 表示の編集とセンター照会
- 各欄:OK・未入力は入力不可(自動スキップ)、エラー・関連エラーは入力可でカーソルを置く。
- メッセージ:エラーなら「ERR 1」「エラー項目あり,再入力して下さい」(チェックの種類に応じて「配達NO.エラー」「送り状NOダブリエラー」に置き換え)、OK なら「OK 2」「確認OKなら実行キーを押して下さい」。
- エラーの場合は TSキューを書き、メッセージ・エラーコードを赤にして画面のデータ部分を送信し(カーソル指定)、BV84 で待機する。
- OK の場合は、そのままセンター(CIC1 の B33S)に送り状の情報を送る(3.3)。集配票マスターを委託票NO で読み、委託会社コードを送信データにセットする。
- 通信エラーは他のプログラムと同じエラーコード(ASYSB・ASYSI・A9999・CTERM・C9999・STERM・S9999・RTERM・RLENG・R9999)。回線混雑(ASYSB)は画面を受信して送信をやり直す。
- 通信エラー・センターのエラーフラグが '0' 以外の場合は、TSキューを書き、作業域のメッセージ・エラーコードを赤で表示して BV84 で待機する(7章 2)。
4.5 登録処理(OK_DATA_PROCESS_SUB_RTN)
- 集配票マスター(VPSHUHA)を委託票NO で読む。なければ全体エラーにして表示をやり直す(「エラー項目あり,再入力して下さい」)。
- 他社委託NOマスター(VPITAKU)を委託票NO で更新モードで読む。
- ある場合:入力した送り状NO のうち、センターの状況区分が '2' でないものを、送り状の一覧に追加する(送り状総数を 1 増やし、削除区分 0、仮伝区分(送り状NO の先頭2桁が '98' なら 1、それ以外 0)、送り状NO(7DR に変換))。レコード長「8×送り状総数+60」で書き換える(結果は判定しない)。
- ない場合:集配票マスターから専門集配票NO・代表集配票NO・データID・傭車会社コード・稼動年月日・稼働店所コード・社番をセットし、同じように送り状の一覧を作って追加する。追加できたら、集信ログ(SSS22:他社委託 鑑データ、レコードID 210、長さ 384)に集配票マスターの内容(委託票NO・代表集配票・画面区分・稼働店所・稼働年月日・作業区分・社番・O・W区分・乗務員A・B・出発時/到着時の粁・軒数・枚数・現収軒数・ユニック使用・手当反映・出発時/到着時の時刻・コース区分・傭車会社・標示屯数・委託形態・傭車料・走行粁)を入れて TD キュー 'SYUS' に書く。
- 入力した送り状NO ごとに、送り状マスター(VPOKRMS)を更新・追加する(4.5.1)。あわせて、印刷ログ(4.6)と他社委託送り状NOテ゛ータの集信ログ(4.6)を書く。
- 画面をクリアし、ヘッダ項目を元に戻して入力不可・変更フラグオンにする。メッセージ「次の送り状を入力して下さい。」をセットし、TSキューを初期化して、ページ番号(COMM_ITEM_NO)を 1 増やす。
- BV83 の一覧の次のアイテム(次の40件)を読み、0 でない送り状NO を表示して入力可(数字)・黄色にする(なければ空欄)。メッセージ・エラーコードをターコイズにして画面を消去して送信し、BV84 で待機する。
4.5.1 送り状マスターの更新・追加
| 送り状マスター |
処理 |
| あり('O') |
更新モードで読み、レコードタイプ(VOKRRECT)で分けて書き換える(下表)。読込み・書換えでエラーなら「送り状マスター出力 INV LOGIG」(なし)または「送り状マスターが異常です」+送り状NO を表示し、キー入力を待って今のページを再表示する |
| なし('N') |
新しいレコードを作って追加する(下表)。追加エラーなら「送り状マスター更新 INV LOGIG」(重複)または「送り状マスターが異常です」+送り状NO を表示し、キー入力を待って今のページを再表示する |
| 入力なし('0') |
何もしない |
送り状マスターありの場合の更新内容:
| レコードタイプ |
更新内容 |
| 6 |
レコードタイプを 8 にする。配達の情報(配達店所CD:稼働店所、代表NO・子NO:代表集配票NO・専門集配票NO、従業員CD:乗務員A、社番、コース区分、配達年月日時分:稼動年月日×10000+出発時刻、配達EDP年月日:処理日付)と、センターの運賃・料金・代引(形態・金・ローン)・到着経費・到着料金・消費税含区分・消費税・立替金・委託支払税率・着荷主名をセットする。配達扱方はデータIDで決める(下表) |
| 7 |
センターの発地コード・発荷主CD・発荷主名・着地コード・着荷主名・電話番号・個数・重量・代引総額・代引経費・保険料・他社委託KM・立替金・運賃・料金・代引(形態・金・ローン)をセットする。到着経費・到着料金がともに 0 なら、センターの到着経費・到着料金・消費税含区分・消費税をセットする。委託支払税率をセットする |
| 上記以外 |
到着経費・到着料金がともに 0 なら、センターの到着経費・到着料金・消費税含区分・消費税・着荷主名をセットする。委託支払税率をセットする |
送り状マスターなしの場合の追加内容:送り状NO(7DR)、送り状区分(先頭3桁が 850~859・960~969 なら 1、980~989 なら 3、それ以外 0)、レコードタイプ 7、元着区分、運賃計算 0、入力画面区分 30、センターの発地・発荷主・着地・着荷主・電話番号・個数・重量・運賃・料金・代引・到着経費・保険料・他社委託KM・立替金・消費税・委託支払税率、配達扱方、配達店所CD・代表NO・子NO・従業員CD・社番・コース区分、状況区分 8、配達年月日時分、配達EDP年月日。
配達扱方(VOKRHATU):
| データID(集配票マスター) |
配達扱方 |
| 02・22 |
32 |
| 12・23 |
42 |
| 24・27 |
12 |
| 25・28 |
22 |
| 21・41・その他 |
52 |
本機能(BV18100P が作る集配票)のデータIDは 27(自社便)または 28(傭車便)のため、配達扱方は 12 または 22 になる。
4.6 印刷ログ・集信ログ(送り状ごと)
| 出力 |
条件 |
内容 |
| 他社委託明細印刷ログ(TS「端末ID+'PR02'」:TSBSPRLG) |
印刷区分が 1 で、送り状NO が 0 でない |
委託票NO、集配票NO(送付書NO)、データID、店所コード(端末)、年月日(稼動年月日)、傭車会社コード、明細区分 2(委託)、車号(社番の下4桁)、送り状件数 1、送り状NO、状況区分(センターの状況区分)、センター照会区分(送り状マスターありなら 0、なしなら 1)。印刷フラグを '2'('1' なら '3')にする |
| 他社委託送り状NOテ゛ータ(TD 'SYUS':SSS16) |
送り状NO が 0 でない |
レコードID(データID 80・90 なら 156、それ以外 152)、長さ 384、入力店所、委託票NO、代表集配票、鑑画面区分(データID)、委託店所、委託年月日・時分、コース区分、委託会社、社番、入力日時、送り状枚数 1、送り状NO(7DR)、取扱手数料 0、委託区分・委託金額(センターの到着経費・到着料金)、代引手数料、委託粁程、消費税。書込みエラーはコンソールにエラー内容を出す |
PF3・PF4・CLEAR で終了するとき、印刷区分が 1 なら印刷終了レコード(送り状件数 1、送り状NO 99999999999、明細区分 2、委託票NO・集配票NO・店所・年月日・車号)を「端末ID+'PR02'」に書く。
4.7 送り状NO の 7DR 変換(OKR_CNV_RTN)
送り状NO(11桁)を 7DR でチェックし(LSO0020、区分 '07'、タイプ 'C')、NG なら先頭10桁から 7DR のチェックデジットを生成して(タイプ 'G')11桁にする。区分 '10' のチェックデジットで入力された送り状NO を、送り状マスターのキー(7DR)に合わせるために使う。
5. メッセージ一覧
| No |
エラーコード |
メッセージ |
表示するとき |
| 1 |
ERR 1 |
エラー項目あり,再入力して下さい |
送り状NO のエラー、集配票マスターがない |
| 2 |
ERR 1 |
配達NO.エラー |
チェックデジットのエラー、送り状マスターの読込みエラー |
| 3 |
ERR 1 |
送り状NOダブリエラー |
画面内の重複 |
| 4 |
OK 2 |
確認OKなら実行キーを押して下さい |
チェックOK(そのまま登録に進む) |
| 5 |
OK 2 |
次の送り状を入力して下さい。 |
登録OK |
| 6 |
― |
送り状マスター出力 INV LOGIG+送り状NO |
更新しようとした送り状マスターがない |
| 7 |
― |
送り状マスター更新 INV LOGIG+送り状NO |
追加しようとした送り状マスターがすでにある |
| 8 |
― |
送り状マスターが異常です+送り状NO |
送り状マスターの読込み・書換え・追加のエラー |
| 9 |
ASYSB ほか |
他のプログラムと同じ通信エラーのメッセージ |
センター照会の通信エラー |
| 10 |
― |
配達状況が未配達、配達中以外です/送り状マスターエラー/荷主コードエラー/雑荷主の時必須入力です/航空・小口送り状は入力不可です |
(セットする処理がないか、コメントアウトされているため表示されない) |
6. 画面遷移
flowchart LR
BV18300P[BV18300P] --> BV84[BV84<br/>本プログラム]
BV84 -- 実行(エラー・登録OK・送り状マスターエラー) --> BV84
BV84 -- PF2・画面データなし --> BV84
BV84 -- PF3・CLEAR --> BV80[BV80<br/>MPBV800 委託票照会]
BV84 -- PF4 --> PREV[一つ前の画面]
7. 補足・留意事項
-
確認画面がない:チェックOK で「確認OKなら実行キーを押して下さい」を編集するが、同じ実行キーでそのまま登録まで進む。
-
センターのエラー時のメッセージ:センターのエラーフラグが '0' 以外(通信エラーでない)の場合、作業域のメッセージは表示の編集でセットした「確認OKなら実行キーを押して下さい」「OK 2」のままで、それが赤で表示される。
-
登録途中のエラー:送り状マスターの更新でエラーになった場合、それまでに更新した他社委託NOマスター・送り状マスター・集信ログはそのまま残り、今のページを再表示する。
-
他社委託NOマスターの状況区分の参照:他社委託NOマスターがない場合は、センターの状況区分をデータカウント(SENTDCNT)経由で参照し、ある場合は送り状の位置で直接参照している(参照の仕方が違う)。
-
CLEAR キー:CLEAR キーは終了画面ではなく PF3 と同じ処理(委託票の照会画面に戻る)になる。画面データなし(MAPFAIL)は今のページの再表示になる。
-
使われていないチェック:航空・小口送り状(車種 910・920、送り状区分 3・4)のエラーはコメントアウトされている。「配達状況が未配達、配達中以外です」などのメッセージは、セットする処理がない。
-
ページの扱い:登録OK のたびにページ番号を 1 増やして、BV83 の一覧の次の40件を表示する。最後のページの後は空の画面になる。
-
後6桁を4桁で入力:後6桁の欄に4桁だけ入力した場合は、9桁の送り状NO('00'+頭5桁+4桁)として扱う。
-
集信ログの書込みエラー:他社委託送り状NOテ゛ータ(SSS16)の書込みエラーはコンソールに出すだけで、処理は続ける。他社委託鑑データ(SSS22)は他社委託NOマスターを新しく追加したときだけ書く。