본문 바로가기
SAP Story/CDS View

(3)_SLT로 복사된 테이블 조회하는 CDS View 생성하기(feat.CAR)

by 돈보따리 2022. 10. 18.
반응형


◆ 3. 클래스생성(AMDP)

생성한 Table Function 코드를 보면 맨 아래에 implemented by method ZCL_PO_BASE_INFO=>GET_ZLFA1; 구문을 확인할 수 있습니다. 

1번째 단계에서 생성한 Calculation View ( or Attribute View )는 ADMP라는 기능을 통해 조회가 가능합니다. 이를 위해 클래스를 생성하고 메서드를 생성해야 합니다. 이제 클래스(Class)를 생성해 보도록 하겠습니다.

Project Explorere 에서 개발클래스를 선택 후 마우스 우클릭 합니다. 이 후 표시되는 메뉴에서 ABAP Class 를 선택합니다. ( 이미 생성된 Calss에 메서드만 추가할 수도 있습니다. )

위 화면으로 전환됩니다. Project 와 Package는 기본입력이 되어있습니다. (개발클래스를 선택 후 마우스 우클릭 하여 실행했기 때문입니다.) 만약 입력되어있지 않다면 오른쪽의 Browse...버튼을 클릭하여 Project 및 Package를 선택합니다.

Name에 Class로 사용할 이름을 입력하고, Description에 Class에 대한 내역을 입력합니다.

Next 버튼을 클릭합니다.

개발 Request를 생성합니다. 
기존에 생성된 Request를 선택할 수 있으며, 필요현 경우 신규 Request를 생성할 수 있습니다. 
이번에는 기존에 있는 Request에 반영하면 되기 때문에 해당 Request를 선택하고 Finish를 선택합니다.

프로젝트 탐색기에서 생성된 클래스를 확인할 수 있습니다. 
해당 항목을 더블 클릭하면 오른쪽 코드와 같은 생성된 클래스에 대한 기본 템플릿 코드를 확인할 수 있습니다.

위와 같이 코딩을 합니다. 

클래스 선언부에 있는 INTERFACES if_amdp_marker_hdb. 구문은 필수로 필요합니다.

메서드 선언부 시작 부분의 by DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY. 구문도 필수 입력되어야 합니다.

위 그림을 참고하여 앞에서 생성했던 Table Function과 Class ==> Method 의 관계를 확인합니다.

※ 참고 : Table Function 활성화 시 지정한 클래스 및 메서드에 대한 유효성 점검은 수행하지 않습니다.

Table Function 마지막 라인에 입력했던 구문을 보겠습니다.

 

implemented by method ZCL_PO_BASE_INFO=>GET_ZLFA1;

위와 같이 코딩을 했습니다. 앞부분의 ZCL_PO_BASE_INFO 는 생성한 Class의 이름입니다. GET_ZLFA1 은 Class에 정의한 Method 의 이름입니다.

클래스 안에 메서드 선언부를 보겠습니다.

class-METHODS : GET_ZLFA1 for table function ZTF_PO_ZLFA1.

메서드 선언부의 for table function ZTF_PO_ZLFA1. 부분에서 ZTF_PO_ZLFA1 값은 앞의 단계에서 생성한 Table Function 이름을 지정합니다.

그리고 이어서 클래스 IMPLEMENTATION 부분에서 METHOD GET_ZLFA1 메서드를 정의합니다.

METHOD GET_ZLFA1
  by DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT
  OPTIONS READ-ONLY.
  RETURN

  SELECT
     MANDT,
     LIFNR,
     LAND1,
     NAME1,
     KTOKK,
     STCD1,
     STCD2
  FROM "_SYS_BIC"."ZPO01/ZPO_LFA1" ;
ENDMETHOD.

위와 같이 코딩을 하였습니다. 코드 부분에서 주요 부분을 살펴보겠습니다.

        by DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT
        OPTIONS READ-ONLY.

위 코드는 Select 구문 앞부분에 입력되어있어야 합니다.( Activation시 오류발생 )

그리고 그 아래에 Select 구문을 작성합니다. 이때 From 뒤에 Select 대상 테이블을 결정하게 됩니다.

        FROM "_SYS_BIC"."ZPO01/ZPO_LFA1"  ;

위 처럼 코딩을 했습니다. 여기에서 "_SYS_BIC" 이 부분이 Point입니다. 1번째 단계에서 만들었던 Calculation View ( or Attribute View )를 읽어오는 부분인데, 위 코드를 통해 SYSID를 서버에 따라서 동적으로 결정하게 됩니다. "ZPO01/ZPO_LFA1" 이 부분에서 ZPO01 은 Package 이름입니다. 그 뒤의  ZPO_LFA1 은 1번째 단계에서 만들었던 Calculation View ( or Attribute View ) 이름입니다.

Select 구문을 확인하기 어려울때에는 아래 메뉴를 통해 쉽게 확인할 수 있습니다.

Hana Studio에서 1번째 단계에서 생성했던 Table Function 을 선택하여 마우스 오른쪽 버튼을 클릭합니다. 팝업되는 메뉴중에서 Generate Select SQL 을 선택하면 그림 오른쪽과 같은 Select 구문을 확인할 수 있는데 Class Method 선언부에 위 Select 구문을 입력합니다.

구문 입력이 완료 되었다면 해당하는 Class를 활성화 합니다.

상단 툴바의 Activate를 클릭하거나 Ctrl+F3을 실행합니다.

Elclipse 프로그램 하단에 위와같이 Active Object OOOOOOOOO Generated 메시지를 확인하고 다음 단계를 수행합니다. 에러가 발생한 경우 에러 내역을 확인하여 조치 후 활성화까지 완료된 후 다음 단계로 넘어갑니다.

 


[SAP Story/CDS View] - SLT로 복사된 테이블 조회하는 CDS View 생성하기(feat.CAR)_4

반응형

댓글