Opne SQL 로 Data 를 떙겨 오듯이, Native SQL 이 담긴 AMDP Class 를 호출해서 HANA DB 에서 직접 Data 를 가져
1. Interface 란에 'IF_AMDP_MARKER_HDB' 추가 ( ATP 에서만 가능 )
2. Method 를 생성해서 Input & Output 파라미터 설정
3. SQL 로 Select 할 Column 들과 리턴에 사용 될 DATA Set 의 Type 을 동일하게 설정
4. Method 호출에 실패 하거나, 여타 SQL 의 문제는 Try ~ Endty 를 사용해서 Exception 처리
METHOD get_data BY DATABASE PROCEDURE FOR HDB
LANGUAGE SQLSCRIPT
OPTIONS READ-ONLY
USING sflight.
*** Variables ***
DECLARE L_CARRID "SABAP.TYPE( S_CARR_ID
DECLARE L_CONNID "SABAP.TYPE( S_CONN_ID )";
DECLARE L_FLDATE "SABAP.TYPE( S_DATE )";
LCARRID =I CARRID;
LCONNID = LCONNID;
LFLDATE = L_FLDATE,
*** SQL ***
LT_DATA1 =
SELECT
FROM SFLIGHT
WHERE MANDT = SESSION_CONTEXT( 'CLIENT' )
AND CARRID = :L_CARRID
AND CONNID = :L_CONNID
AND FLDATE = :L_FLDATE
*** IF Condition ***
IF CARRID = 'AA' THEN
L_CARRID ='AZ;
L_CONNID = '0555'
END IF:
LT_DATA2 =
SELECT
FROM SFLIGHT
WHERE MANDT = SESSION_CONTEXT( 'CLIENT' )
AND CARRID = :L_CARRID
AND CONNID = :L_CONNID
AND FLDATE = :L_FLDATE
*** Union ***
IF RECORD_COUNT(LT_DATA2) > 0 THEN
ET_DATA =
SELECT * FROM :LT_DATA1
UNION ALL
SELECT * FROM :LT_DATA2;
ELSE
ET_DATA = SELECT * FROM :LT_DATA1;
END IF ;
ENDMETHOD
'ABAP' 카테고리의 다른 글
SAP ABAP | Text 를 50 자리로 나눠 담아 출력 (0) | 2024.10.17 |
---|---|
SAP ABAP | Corresponding #( Lookup Table ... Using ... ) (0) | 2024.10.07 |
ABAP | Value #( ) 에서 Base Corresponding #( ) 활용 (0) | 2024.10.04 |
ABAP | 날짜 관련 테이블 ( SCAL ) (0) | 2024.10.04 |
SAP ABAP | Droplist (0) | 2024.06.23 |