2013-07-02 1 views
0

동일한 쿼리를 만드는 함수 모듈을 만들고 싶습니다. 예를 들면 다음과 같습니다.동적으로 모든 테이블에서 검색

column_name을 column_name = name_value로 선택하십시오.

table_name, column name 및 name_value를 전달하고 싶습니다. 따라서 어떤 테이블인지에 관계없이 제공된 ID의 ID를 얻을 수 있습니다. 함수 모듈을 사용하여 abap에서이를 수행하는 방법을 안내해 주시겠습니까?

+2

왜이 작업을 수행 하시겠습니까? 'RFC_READ_TABLE'을 사용하지 않을 이유가 있습니까? – vwegert

답변

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). 

호출 프로그램에 일반적인 형식의 참조를 패스 백합니다.