4

私のプログラムは、次の 2 つの方法で開始できます。

ローカル クラスの 1 つから関数をSTART OF SELECTION呼び出すイベント。MAIN同じメソッドをZAVGTTA4呼び出すトランザクション。

at PAI、BACK イベントの場合、 を呼び出すLEAVE TO SCREEN '0'.と、プログラムは開始方法に応じて 2 つの方法で動作します。選択画面(1000)に戻りたい。

スタックを照会することを考えました。ここで、プログラムがどのように呼び出されたかを確実に見つけることができます。スタック トレースが異なることがわかりますが、プログラムからスタックにアクセスする方法がわかりません。私を助けることができると思う RTTI について聞いたことがあります。

4

1 に答える 1

6

試してみてくださいSYSTEM_CALLSTACK

DATA:
   abap_callstack_line TYPE abap_callstack_line,
   callstack TYPE  abap_callstack.


  CALL FUNCTION 'SYSTEM_CALLSTACK'
    EXPORTING
      max_level          = 4
    IMPORTING
      callstack          = callstack.

しかし、あなたの場合、追加のパラメーターを希望し、呼び出し元がこのエントリを埋めることができます。パラメータを呼び出すのではなく、またはのcalled_byようなものを呼び出します。behaviourmode

于 2012-07-16T09:07:52.740 に答える