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



  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기