0

たとえば、同じクエリを作成する汎用モジュールを作成したいと思います。

column_name = name_value である table_name から column_id を選択します。

table_name、column name、name_value を渡したいので、テーブルが何であれ、指定された名前の ID を取得できます。汎用モジュールを使用して abap でそれを行う方法を教えていただけますか?

4

1 に答える 1

2

次のパラメータを入力として受け取ったとします。

DATA: table_name  TYPE string VALUE 'MARA',
      column_id   TYPE string VALUE 'MATNR',
      column_name TYPE string VALUE 'MTART',
      name_value  TYPE string VALUE 'HALB'.

まず、選択するタイプのテーブルを動的に作成します。

DATA: results TYPE REF TO data,
      tablety TYPE string.
FIELD-SYMBOLS <results> TYPE STANDARD TABLE.

tablety = table_name && '-' && column_id.
CREATE DATA results TYPE TABLE OF (tablety).
ASSIGN results->* TO <results>.

次に、動的クエリを使用してテーブルを埋めます。

DATA: condition TYPE string.
condition = column_name && ` = name_value`.

SELECT (column_id) FROM (table_name)
  INTO TABLE results
  WHERE (condition).

ジェネリック型参照を呼び出し側プログラムに返します。

于 2013-07-02T19:57:48.927 に答える