一般的に、私は自分の質問を再現できるようにしています。この場合、私は方法を見つけることができませんでした。詳細を取得する方法を教えてください。添付します。
場合によっては、プログラムで ABAP コール スタックを使用して追加情報を取得します。IE: ユーザー呼び出しをログに記録し、他の適切な方法で取得する方法がない場合の最後の手段として、スタック内の下位呼び出しから変数にアクセスします。
HR
モジュール 'MP9XXX00' (Module-Pool
顧客固有の生成されたプログラム)の中央プログラムのコール スタックに、奇妙な文字がプレフィックスとして追加されるケースが発生しましたPA
infotypes
。奇妙な文字は/A\
. プログラムを呼び出すための完全な文字列は/A\MP9XXX00
.
コール スタック全体を取得するために使用されるコード:
lt_call = cl_abap_get_call_stack=>format_call_stack_with_struct( cl_abap_get_call_stack=>get_call_stack( ) ).
にはそのようなプログラムはありませ/A\MP9XXX00
んSE80
。
また、前述のように呼び出しプログラムから変数を取得しようとすると、次のように:
ASSIGN |( { ls_call-prog })PSYST| it failes
、ダンプが発生しました。そして、スタックを調べたところST22
、何も含まれていませんでしたが、 (含まれて/A\MP9XXX00
いました) だけでした。MP9XXX00
ls_call-prog
/A\MP9XXX00
前述のとおり、再現およびデバッグを行うことができませんでした。結果を見ただけ。
それらの文字はどこから来たのでしょうか?
私たちが考えたこと
- 顧客の名前空間が で始まるという事実に関連している可能性があると考えました
/A
が、それでも表示されるのはなぜですか? なぜ数回だけ?なぜ最初の2文字だけ?もう一方\
はどこから来たのですか? - プレフィックス
/A\
は、関連するトランスポート要求をインポートしている間など、(それらの) プログラム名に一時的に追加される可能性があると考えました。そして、それは多分A
ですActive/Activating
。私たちがそう考えたのは、それがQA
本番環境よりも多く発生しているからです。