2017-11-09 22 views
1

SAPScriptをいくつか変更する必要があります。 RBOSORDER01 フォーム::RBOSORDER02SAPスクリプトでは、どのデータが要素に送信されるかを定義する方法

私は形で示されたデータの一部を変更するために探しています私はプログラムとフォーム名

プログラムを持っています。私は、プログラムをデバッグしていると私は、たとえば、フォームへの書き込みの呼び出しを参照して取得:

CALL FUNCTION 'WRITE_FORM' 
     EXPORTING 
      ELEMENT = 'ITEM_TEXT' 
     EXCEPTIONS 
      ELEMENT = 1 
      WINDOW = 2. 

しかし、プログラムとフォームの間で渡されるデータですか。私はそれぞれをリンクすることはできません。構造やデータ要素が 'ITEM_TEXT'で渡されるのを期待していましたが、このデータはフォームのこの要素 "ITEM_TEXT"に表示されますが、リンクがわかりません。

私はSE71でもフォームを見てきましたが、あなたがこれを定義する場所を見ることができません。リンクはどこにありますか、私は何が欠けていますか?

答えて

2

これは形式になっているので、SE71は必要なものです。この要素(ITEM_TEXT)が表示されているウィンドウを最初に見つけて、その要素を探し、内部に何が表示されているかを確認する必要があります。 SAPSriptフォームは、デフォルトで印刷プログラムのグローバル変数(構造、内部テーブル)を直接使用します(他にもいくつかのオプションがありますが、INCLUDEテキストなどがあります)。たとえば、グローバル変数gv_textが印刷プログラムで宣言され、SAPScriptに表示されている場合は、形式で& GV_TEXT &のように表示されます。

SE71でデバッグを有効にすると、SAPScriptをデバッグすることもできます(フォームが大きい場合は苦しいことがあります)。

1

機能 'WRITE_FORM'は、この場合はELEMENT = 'ITEM_TEXT'でフォームのエントリポイント(SE71/RBOSORDER02)を呼び出します。

ですからでMAIN-ウィンドウになってしまいます:

あなたは「VBDPA-TDNAMEは」現時点では何であるかデバッグした後、あなたが取引「SO10とその値を見つける必要があり、この場合には
/E  ITEM_TEXT 
/:  INCLUDE &VBDPA-TDNAME& OBJECT VBBP ID 0001 PARAGRAPH IT 

"(標準テキスト)

INCLUDEは複雑なテキストで、独自の書式文字列を持つことができます。

以前はJozsefが述べたように、VBDPA-TDNAMEはプリントプログラムではグローバルに定義されています。 (SE38n/RBOSORDER01)

関連する問題