300x250
728x90
# SAP SELECT(SQL) 동적 시작하기 전
# SQL에서 사용을 할 때 동적으로 조건을 설정해주어야 할 때가 있다.
# 조건을 설정하기 위해서는 동적 조건을 받을 변수와 동적으로 변경되는 값을 설정해야 한다.
시작해 보자.
시나리오.
X 체크박스 클릭 시, 항공사 ID와 항공사 CONNID 조건 넣기
클릭 없을 시, 항공사 ID만 조건 넣기
# 01. 동적 조건 설정 AND 동적으로 변경되는 값
# 조건을 동적으로 하기 위해서는 Internal Table로 받아야 한다.
" 동적 조건 설정 "
DATA: GS_WHERE(20),
GT_WHERE LIKE TABLE OF GS_WHERE.
" 입력 값 받기 "
PARAMETERS:
PA_CAID TYPE SFLIGHT-CARRID,
PA_COID TYPE SFLIGHT-CONNID.
" 체크에 따른 조건 변경 "
PARAMETERS:
PA_CK AS CHECKBOX.
# 물론 체크에 따라서 Parameter을 보이게 안 보이게 할 순 있지만, 여기서는 동적 조건을 보여주기 위해서 다음과 같이 설정했다.
#02. Where 동적 조건 만들기
#01. 조건을 만들기 위해서는 Concatenate을 설정해야 한다.
# 우선 CARRID부터 동적 변수 값에 설정해 보자.
Old Syntax으로 설정하면 다음과 같이
CONCATENATE 'CARRID = '''PA_CAID'''' INTO GS_WHERE. " Old Syntax
예를 들어
PA_CAID에 값을 AA로 넘었다고 하면 다음과 같이 나올 것이다.
# CONCATENATE을 이런 식으로 설정한 이유는
Concatenate안에 변수를 넣으려면
'변수' -> 이런 식으로 넣어야 한다
( # 따옴표 ' ' 두 개를 사용해서 안에 변수를 넣어주는 방식. )
# 빨간 상자를 지워보자.
남은 건 'CARRID =' ' ' 이다.
더욱 쉽게 보면 'CARRID ='AA' ' 인 것이다.
CONCATENATE를 사용하면서 변수가 아닌 문자를 써주려면 따옴표가 감싸줘야 하기 때문에 처음 시작부터 사용을 하였다.
마지막으로 보면 결과 값은
CARRID ='AA'이다.
이렇게 되면 완성인 것이다.
New Syntax으로 설정하면 다음과 같이
GS_WHERE = |CARRID = '{ PA_CAID }' |.
#03. Where 동적 조건 만들기
# AND 조건으로 만들어보겠다.
디버깅을 돌려보면
다음과 같이 들어가 있는 걸 볼 수 있다.
# 실행
# 다음과 같이 동적 조건을 사용했을 때에는 ( ) 괄호 이런 식으로 사용해야 한다.
도움이 되셨으면 하단에 있는 광고 한 번씩 눌러주세요!!
" 동적 조건 설정 "
DATA: GS_WHERE(20),
GT_WHERE LIKE TABLE OF GS_WHERE.
" 입력 값 받기 "
PARAMETERS:
PA_CAID TYPE SFLIGHT-CARRID,
PA_COID TYPE SFLIGHT-CONNID.
" 체크에 따른 조건 변경 "
PARAMETERS:
PA_CK AS CHECKBOX.
" CARRID 동적 조건 "
CONCATENATE 'CARRID = '''PA_CAID'''' INTO GS_WHERE. " Old Syntax "
***GS_WHERE = |CARRID = '{ PA_CAID }' |. " New Syntax "
APPEND GS_WHERE TO GT_WHERE.
IF PA_CK EQ 'X'.
GS_WHERE = 'AND'.
APPEND GS_WHERE TO GT_WHERE.
GS_WHERE = |CONNID = '{ PA_COID }'|.
APPEND GS_WHERE TO GT_WHERE.
ENDIF.
SELECT *
FROM SFLIGHT
INTO TABLE @DATA(LT_LIST)
WHERE (GT_WHERE).
CL_DEMO_OUTPUT=>DISPLAY( LT_LIST ).
728x90
LIST
'.SAP > ..ABAP' 카테고리의 다른 글
SAP Tabstrip 정리( Screen ) (5) | 2022.04.15 |
---|---|
SAP ALV cell edit 설정( Enabled, Disabled ) (3) | 2022.04.15 |
SAP Query [2] 정리 (0) | 2022.03.26 |
SAP Query [1] 정리 (0) | 2022.03.20 |
SAP MACRO,DEFINE 정리 (0) | 2022.02.16 |