4.7 から ECC6 にアップグレードして以来、ABAP コンパイラは、OO コンテキストでの特定のステートメントの使用に関してより厳密になりました。
たとえば、ステートメント LIKE を使用することは許可されていませんが、代わりに TYPE を使用する必要があり、内部テーブルには暗黙的なヘッダー行がありません。
これらの制限については、こちらで詳しく説明しています
MY QUESTION:この制限は既存のコードベースにどの程度影響しますか?
1998 年以降、OO が当時利用可能であった限り、1000 を超える「クラス」が OO で作成されました。ほとんどの場合、各クラスは SE38 の独自のインクルードであり、クラスの定義と実装がこのインクルードにまとめられています。
これまでは、メイン プログラムが 4.7 で既存のものである限り、これらのクラスを正常に変更して有効にすることができました。現在、回帰テストの目的で新しいメイン プログラムでこれらの古いクラスの 1 つを使用しようとしていますが、次のエラーが発生しています。
「クラスとインターフェース内では、"TYPE" のみを使用して ABAP ディクショナリ タイプを参照できます ("LIKE" または "STRUCTURE" ではありません)。」
このエラーは、SAP 言語の現在の定義に従って有効です。
SAP インタープリターが廃止されたステートメントを含む古いコードを意図的に実行し続けるかどうか、または将来のパッチでこの「機能」が修正され、これらのクラスのコンパイルが停止する可能性があるかどうかを知りたいです。