본문 바로가기
카테고리 없음

RAP 02 - SIMPLE REPORT

by SAPortal 2026. 5. 22.
반응형

목차

    자 드디어 RAP 실습 첫 시간입니다.

    첫시간이기 때문에 가볍게 /DMO/FLIGHT 테이블의 정보를 조회할 수 있는 간단한 Fiori App을 빠르게 만들어 보겠습니다.

    /DMO/FLIGHT 테이블은 우리가 ABAP실습에서 자주 사용했던 SFLIGHT 테이블 이라고 생각하시면 됩니다.

     

    1. INTERFACE VIEW 생성

    RAP의 시작은 모델링이라고 생각하시면 됩니다. CDS VIEW를 아래와 같이 생성해 보겠습니다.

    먼저 이번 실습을 위한 PACKAGE를 Eclipse에서 생성하겠습니다.

     

     

    Favorite Packages에 마우스 우클릭을 하고 Add Package.. 를 선택합니다.

     

     

    ZLOCAL을 검색한 후 선택합니다.

    ZLOCAL Package는 BTP Trial 서버에 기본적으로 존재하는 Package입니다.

    우리는 ZLOCAL Package에 하위 Package를 만들어서 실습을 할 것입니다. 이제 하위 Package를 만들어 보겠습니다.

     

     

    ZLOCAL Package에 마우스 우클릭을 하고 New -> ABAP Package를 선택합니다.

     

     

     

    Package Name과 Description을 입력합니다. Add to favorite packages를 체크해주고 Next 버튼을 클릭합니다.

    이후에는 계속 Next 또는 Finish를 클릭하면 됩니다.

     

     

    새로 생성한 Package에 CDS View를 만들어 보겠습니다. New -> Other ABAP Repository Object를 클릭합니다.

     

     

    CORE로 검색한 후 Data Definition을 선택합니다.

     

     

    CDE View의 Name과 Description을 입력하고 Next 버튼을 클릭합니다.

     

     

    defineViewEntity를 선택하고 Finish 버튼을 클릭합니다.

     

     

    Note
    일반적으로 사용하던 CDS View 타입은 ABAP 7.57버전부터 더이상 사용할 수 없게 됩니다. 그러므로 앞으로 개발할때는
    CDS View 타입이 아닌 CDS View Entity 타입을 사용해야 합니다.

     

     

     

    CDS View가 생성되었습니다. from절에 테이블 명을 입력해 줍니다.

    CDS View상단을 보면 기존에 있던 @AbapCatalog.sqlViewName을 입력하는 부분이 없습니다. View Entity버전에서는 더이상 ABAP Dictionary SQL View를 관리 하지 않고 CDS Entity 하나만 관리합니다.

    다음으로 필드를 입력해 줍니다. 아래 보이는 빈 공간에 마우스 커서를 위치시키고 Ctrl + Space를 누릅니다. 

     

     

    Ctrl + Space를 누르면 선택할수 있는 필드들이 팝업으로 뜨는데 그 상태에서 Shift + Enter를 누르면 테이블의 모든 필드를 아래와 같이 자동으로 채워줍니다.

    price필드에 에러가 존재합니다. CDS View에서도 금액필드는 통화키를 참조해 줘야 합니다. 추가해 보겠습니다.

     

     

    @Semantics.amount.currencyCode 어노테이션을 아래와 같이 추가해 주고 CDS View를 활성화(Ctrl + F3) 시킵니다.

     

     

    Note
    어노테이션은 소스코드에 붙이는 주석형태의 메타데이터 입니다. 쉽게말해서 시스템에게 이 코드는 어떤 성격이고 어떻게 처리해야 하는지 알려주는 특별한 지시서라고 생각하면 됩니다. RAP에서는 어노테이션을 활용하여 Fiori화면에 Control 하게 됩니다. 어노테이션은 일반 주석과 달리 @로 시작을 합니다.

     

     

     

    2. SERVICE DEFINITION 생성

    모델이 완성되었으니 해당 모델을 화면에 적용할 서비스를 생성해 보겠습니다.

     

     

    생성한 CDS View에 마우스 우클릭을 하고 New Service Definition을 선택합니다.

     

     

    Service Name과 Description을 입력하고 Next 버튼을 클릭합니다.

     

     

    아래와 같이 Service가 생성되었습니다. 활성화(Ctrl + F3) 시킵니다.

     

     

    Note
    Service Definition은 RAP 모델에서 내가만든 CDS View중에서 외부에 노출할 View를 등록하는 곳 이라고 생각하시면 됩니다. 우리는 FLIGHT 정보를 보여주는 APP을 만드는 중이기 때문에 FLIGHT 관련 View인 ZEVER_FLIGHT_I 를 expose 했습니다.

     

     

     

    3. SERVICE BINDING 생성

    Service Definition을 참조하여 Service Binding을 생성합니다. 두개는 항상 세트로 움직입니다.

     

    Note
    Service Binding은 Service Definition에서 정의한 Entity를 어떤 통신방식과 어떤 용도로 외부에 제공할지 결정합니다.
    1. OData V4 - UI (권장) : 최신 Fiori Elements App을 개발할때 사용하며 성능이 가장 좋습니다.
    2. OData V2 - UI : 과거 버전의 Fiori App이나 구형 프레임워크와 호환이 필요할 때 사용합니다.
    3. Web API : 화면(UI)을 만들지 않고 외부의 다른 시스템 또는 프로그램이 호출해서 사용할 수 있도록 문을 열어주는 창구
                          라고 생각하면 됩니다.

     

     

    생성한 Service Definition에 마우스 우클릭 후 New Service Binding을 선택합니다.

     

     

    Service Binding Name과 Description을 입력합니다. Binding Type은 OData V4 - UI를 선택하고 Next 를 클릭합니다.

     

     

    아래와 같이 Service Binding이 생성되면 먼저 활성화(Ctrl + F3)을 먼저 해줍니다. 그리고 난 후 Publish 버튼을 클릭합니다.

     

     

    조금 시간이 지나면 아래와 같이 Entity정보가 보입니다. 해당 Entity를 선택하고 Preview 버튼을 클릭합니다.

     

     

    드디어 APP이 만들어 졌습니다. 지금은 어노테이션 적용 전이라 화면에 필드가 모두 숨겨져 있습니다.

    필드를 화면으로 빼내 보겠습니다. 우측에 톱니바퀴 아이콘을 클릭합니다.

     

     

    모든 필드를 선택한 후 OK 버튼을 클릭합니다.

     

     

    화면에 선택할 필드들이 노출된걸 확인할 수 있습니다. 이 상태에서 GO 버튼을 누르면 아래와 같이 Flight 정보가 화면에 Display 됩니다. 

     

     

     

    어떠신가요? 화면 UI를 위한 어떠한 코딩도 없이 Flight정보를 조회 할 수 있는 APP이 만들어 졌습니다.

    RAP에 대한 느낌이 조금 오시나요?

    다음시간에는 다양한 어노테이션을 적용해서 APP을 좀 더 풍성하게 발전시켜 보겠습니다.

    반응형