Re: CALL TRANSACTION のリターンコード
ojojojojojoj
投稿数: 1
時間が経っているので、もう解決しているかもしれませんが・・・
ロジックを見ていないので、文面から憶測で気になったことを返信します。
通常、伝票登録のバッチインプットPGでは、オプションのmessage intoを使用して、
バッチインプットメッセージを内部テーブルに格納し、
その中から伝票登録時のメッセージID,NOが存在するかをチェックして、判断します。
メッセージ変数も、内部テーブルから取得します。
システム変数直接だと、途中で何かメッセージが出力されれば、
その値で書き換わってしまうので、処理としては良くないですね。
SY-SUBRCですが、モードNで実行した場合、エラーがあると必ず0以外が設定されるので、
SY-SUBRC=0でエラーが発生しているのはあり得ないと思います。
可能性は薄いですが、バッチインプット時のプログラムは、
COMMITが発行された時点でプログラムの処理が終了します。
オプションRACOMMITをONにすると、COMMIT後も続行されます。
COMMIT後に何かメッセージが出力されるロジックがあって、
偶然そのパターンになってSY-MSGVが書き換わったのかもしれません。
(何もしなければデフォルトでOFFなので、あり得ないと思いますが念のため)
message intoを使用したロジックになっているのであれば、
ちょっと厳しいかもしれませんね。。。
<CALL TRANSACTION が正常終了したかどうかの確認>
に書いている内容ですが、モードA,またはEで実行した場合、
エラーが発生しても、手動で画面を戻ったりして終了させた場合、subrcに0が設定されると言う説明です。
ロジックを見ていないので、文面から憶測で気になったことを返信します。
通常、伝票登録のバッチインプットPGでは、オプションのmessage intoを使用して、
バッチインプットメッセージを内部テーブルに格納し、
その中から伝票登録時のメッセージID,NOが存在するかをチェックして、判断します。
メッセージ変数も、内部テーブルから取得します。
システム変数直接だと、途中で何かメッセージが出力されれば、
その値で書き換わってしまうので、処理としては良くないですね。
SY-SUBRCですが、モードNで実行した場合、エラーがあると必ず0以外が設定されるので、
SY-SUBRC=0でエラーが発生しているのはあり得ないと思います。
可能性は薄いですが、バッチインプット時のプログラムは、
COMMITが発行された時点でプログラムの処理が終了します。
オプションRACOMMITをONにすると、COMMIT後も続行されます。
COMMIT後に何かメッセージが出力されるロジックがあって、
偶然そのパターンになってSY-MSGVが書き換わったのかもしれません。
(何もしなければデフォルトでOFFなので、あり得ないと思いますが念のため)
message intoを使用したロジックになっているのであれば、
ちょっと厳しいかもしれませんね。。。
<CALL TRANSACTION が正常終了したかどうかの確認>
に書いている内容ですが、モードA,またはEで実行した場合、
エラーが発生しても、手動で画面を戻ったりして終了させた場合、subrcに0が設定されると言う説明です。
投票数:206
平均点:4.47
投稿ツリー
-
CALL TRANSACTION のリターンコード
(ishikawa, 2013-7-14 0:54)
-
Re: CALL TRANSACTION のリターンコード
(ojojojojojoj, 2014-4-30 1:24)
- Re: CALL TRANSACTION のリターンコード (ishikawa, 2014-6-12 17:48)
-
Re: CALL TRANSACTION のリターンコード
(ojojojojojoj, 2014-4-30 1:24)