정답: A,B
설명
@Environment.systemField: #LANGUAGE 주석은 ABAP 시스템 필드 sy-langu를 CDS 뷰 또는 CDS 테이블 함수의 입력 매개변수에 지정하는 데 사용됩니다. 이를 통해 Open SQL에서 암묵적 매개변수 전달이 가능해지므로 sy-langu의 값이 WHERE 절에서 명시적으로 지정하지 않고도 자동으로 CDS 뷰에 전달됩니다. 이는 주석이 달린 CDS 뷰를 데이터 소스로 사용하는 CDS 뷰에도 적용되므로 sy-langu의 값이 중첩된 CDS 뷰(view on view)12에 전파됩니다. 예를 들어:
다음 코드 조각은 @Environment.systemField: #LANGUAGE로 주석이 달린 입력 매개변수 p_langu를 사용하여 CDS 뷰 ZI_FLIGHT_TEXTS를 정의합니다.
매개변수 p_langu : syst_langu @<Environment.systemField:> 를 사용하여 ZI_FLIGHT_TEXTS 뷰를 정의합니다.
#LANGUAGE as select from sflight left outer join scarr on sflight.carrid = scarr.carrid left outer join stext on scarr.carrid = stext.carrid { sflight.carrid, sflight.connid, sflight.fldate, scarr.carrname, stext.text as carrtext } where stext.langu = :p_langu 다음 코드 조각은 WHERE 절에서 p_langu의 값을 지정하지 않고 ABAP에서 CDS 뷰 ZI_FLIGHT_TEXTS를 사용하는 방법을 보여줍니다. sy-langu의 값은 자동으로 CDS 뷰에 전달됩니다.
zi_flight_texts에서 carrid, connid, fldate, carrname, carrtext를 선택하여 TABLE @DATA(lt_flights)로 보냅니다.
다음 코드 조각은 다른 CDS 뷰 ZI_FLIGHT_REPORT에서 CDS 뷰 ZI_FLIGHT_TEXTS를 사용하는 방법을 보여줍니다. sy-langu의 값은 자동으로 중첩된 CDS 뷰 ZI_FLIGHT_TEXTS에 전달됩니다.
매개변수 p_langu : syst_langu @<Environment.systemField:> 를 사용하여 ZI_FLIGHT_REPORT 뷰를 정의합니다.
#LANGUAGE as select from zi_flight_texts(p_langu) { carrid, connid, fldate, carrname, carrtext, count(*) as flight_count } group by carrid, connid, fldate, carrname, carrtext 주석 @Environment.systemField: #LANGUAGE는 기본값을 사용자 고유 값으로 재정의하는 것을 방지하지 않습니다. ABAP 또는 다른 CDS 뷰에서 WHERE 절의 입력 매개변수 p_langu에 대해 다른 값을 지정할 수 있습니다. 이렇게 하면 sy-langu의 값이 재정의되고 지정된 값이 CDS 뷰12에 전달됩니다. 예를 들어:
다음 코드 조각은 WHERE 절에 p_langu의 지정된 값을 사용하여 ABAP에서 CDS 뷰 ZI_FLIGHT_TEXTS를 사용하는 방법을 보여줍니다. 값 'E'는 sy-langu의 값 대신 CDS 뷰에 전달됩니다.
SELECT carrid, connid, fldate, carrname, carrtext FROM zi_flight_texts WHERE p_langu = 'E' INTO TABLE @DATA(lt_flights).
다음 코드 조각은 WHERE 절에 p_langu의 지정된 값을 사용하여 다른 CDS 뷰 ZI_FLIGHT_REPORT에서 CDS 뷰 ZI_FLIGHT_TEXTS를 사용하는 방법을 보여줍니다. 값 'E'는 sy-langu의 값 대신 중첩된 CDS 뷰 ZI_FLIGHT_TEXTS에 전달됩니다.
매개변수 p_langu : syst_langu @<Environment.systemField:> 를 사용하여 ZI_FLIGHT_REPORT 뷰를 정의합니다.
#LANGUAGE as select from zi_flight_texts(p_langu) { carrid, connid, fldate, carrname, carrtext, count(*) as flight_count } where p_langu = 'E' carrid, connid, fldate, carrname, carrtext로 그룹화 참조: 1: ABAP CDS - parameters_annot - ABAP 키워드 문서 - SAP 온라인 도움말 2: ABAP CDS - session_variable - ABAP 키워드 문서 - SAP 온라인 도움말