ループ内のソートされた内部テーブルに新しいエントリを追加しています。私がいるループには、ソートされたテーブルのソート順とは異なるソート順があるため、INSERT INTO
ステートメントの代わりにステートメントを使用する必要がAPPEND TO
あります。後者はソート順に違反してダンプが発生するリスクがあるためです。
ただし、そのコードを追加すると、内部メッセージ コード " MESSAGE GJK
" で構文チェックの警告が表示されます。EPC では次のように表示されます。
Program: ZCL_CLASS Method METHOD_NAME Row: 301
Syntax check warning.
In the table "LT_TABLE_NAME" a row was to be changed,
deleted or inserted. It is not possible
to determine statically if a LOOP is active over "LT_TABLE_NAME"
Internal message code: MESSAGE GJK
Cannot be hidden using a pragma.
しかし、「プラグマを使用して非表示にすることはできません」はうまくいきません。警告の理由は理解していますが、ビルド時に、新しいレコードを挿入する内部テーブルでループがアクティブにならないことを 100% 確実に知っています。それでも、この警告を隠すことはできません。開発中に役に立たない警告が表示されることは別として、一部の環境では、構文チェックの警告が含まれるコードを転送することができません。
この抑制できない警告を抑制する方法はありますか?
それができない場合、それを回避する方法はありますか?おそらく、ソートされていない一時テーブルを中間テーブルとして使用し、ソートされたテーブルに行を追加することでこれを行うことができますが、明らかな見落としと思われるものを回避するためだけに、役に立たない (100 万行の) 内部テーブルを作成することに躊躇しています。