CDS View 에 @AbapCatalog.sqlViewName 의 Annotation 에 의해 ABAP Dictionary 객체를 만들어 주는 부분은 ABAP 개발자한테 매우 유용합니다.
보통 ALV Report 개발할때, Display Structure 만들어 Fieldcatalog 를 지정하고, 모델링한 쿼리문으로 데이터를 가져와서 화면에 출력을 하게 되는데요. CDS View 하나 잘 만들면 Display Structure 까지 한번에 만들어서 진행할 수 있습니다.
더불어, HANA ALV ( ALV with IDA ) 방식의 레포트를 만드는경우에는 이런 작업이 필수라고 생각됩니다. |
안녕하세요.
공사중 입니다.
SAP CDS View 만드실때 종종 격는 세번째 실수편.
( 3 ) Null 값을 고려해서 CDS View 를 만들어야 합니다.
정확한 예시일지는 모르지만, 참고만 해보세요~~^^;;
define view YTEST_CDS_DEV01_002
as select from vbak as _Header
inner join vbap as _Item on _Header.vbeln = _Item.vbeln
left outer join I_SalesDocumentRjcnReasonText as _TVAG on _Item.abgru = _TVAG.SalesDocumentRjcnReason
and _TVAG.Language = $session.system_language
{
key _Header.vbeln,
key _Item.posnr,
_Item.abgru,
_TVAG.SalesDocumentRjcnReasonName
}
Sales Order 의 거부사유(ABGRU) 의 Text 를 보여주는 코드 입니다.
이렇게 보면 아무 문제가 없어보이지만,
SAP 특성상 SE16 혹은 해당 필드를 참조해서 만든 Selection Screen 에서는 Null 검색이 지원되지 않습니다.
혹시나 위와 같은 방법으로 검색시,
당연하게도 Null 과 Space 는 다르기 때문에, 검색이 되지 않습니다.
그러다보니 CDS View 를 만들때 Left Outer Join 혹은 그에 준하는 Association 된 필드를 노출하신다면,
Null 을 Space 로 전환하는 Function 처리를 하시는게 좋습니다.
define view YTEST_CDS_DEV01_002
as select from vbak as _Header
inner join vbap as _Item on _Header.vbeln = _Item.vbeln
left outer join I_SalesDocumentRjcnReasonText as _TVAG on _Item.abgru = _TVAG.SalesDocumentRjcnReason
and _TVAG.Language = $session.system_language
{
key _Header.vbeln,
key _Item.posnr,
_Item.abgru,
cast( coalesce( _TVAG.SalesDocumentRjcnReasonName, '' ) as bezei40 ) as SalesDocumentRjcnReasonName
}
Coalesce( Arg1, Arg2 ) 펑션 입니다. ( Arg1 이 null 이면, Arg2 의 값으로 지정함 ).
※ 참조 URL : help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abencds_f1_coalesce_expression.htm
다시 .. 결과를 보면.
= Space 조건으로 정상 조회가 되는것을 확인하실수 있습니다.
이제.. 해당 CDS View 를 사용하는 Report 에 해당 필드를 Selection Screen 에 넣어도 오류가 발생하지 않습니다.
끝.
[ABAP] - SAP CDS View 에 대한 초보적인 실수 (1) - Key Field Setting
[ABAP] - SAP CDS View 에 대한 초보적인 실수 (2) - 수량/금액 필드
'ABAP' 카테고리의 다른 글
SAP CDS View 에 대한 초보적인 실수 (2) - 수량/금액 필드 (0) | 2021.04.26 |
---|---|
SAP CDS View 에 대한 초보적인 실수 (1) - Key Field Setting (1) | 2021.04.22 |
SAP HANA 에서는 Select (*) 를 써도 됩니다.!! (0) | 2021.04.21 |
SAP CBO 에서 Standard Change Log 사용하기. (2) | 2021.04.14 |
SAP SMARTFORMS 에서 Legacy Editor 사용하기. (6) | 2021.04.14 |