본문 바로가기

AMDP/ADMP 기초

(9)
2.5 Feature Support Check Using Global Classes 현재 데이터베이스 또는 데이터베이스 연결을 사용하여 지정된 데이터베이스가 데이터베이스 연결이 AMDP 기능을 지원하는지, 그리고 런타임에 사용할 수 있는지 확인하는 것이 좋습니다. 글로벌 클래스 CL_ABAP_DBFEATURES의 USE_FEATURE 메서드를 사용하여 데이터베이스별 기능의 데이터베이스 특정 기능에 대한 지원을 확인할 수 있습니다. 데이터베이스별 기능을 확인하기 위해 여러 상수가 제공되며 Internal Table의 USE_FEATURE 메서드에 전달할 수 있습니다. 이 메서드는 해당 기능이 데이터베이스에서 지원되는 경우 ABAP_TRUE 값을 반환합니다, 값을 반환하는 반면에, 지원되지 않는 값은 클래스 CX_ABAP_INVALID_PARAM_에서 예외를 발생시키고 클래스에서 예외를 발..
2.4 Using Multiple Selection Criteria ABAP 보고서에서 선택 화면을 정의하는 것은 원하는 요소에 따라 데이터를 필터링할 수 있기 때문에, 비즈니스 사용자의 역량을 강화하는 데 필수적입니다. 선택 기준은 다음을 애플리케이션이 데이터베이스 레이어 에서 원치 않는 데이터를 필터링하여 데이터를 더 빠르게 처리할 수 있음을 보장합니다. 그러나 데이터를 필터링하려면 Parameter, SELECT-OPTIONS를 사용하여 선택 기준을 정의해야 합니다, Parameter의 목적은 단일 값을 기준으로 레코드를 필터링하는 것이며, 반면에 SELECT-OPTIONS를 사용하면 복잡한 선택 기준을 정의하여 레코드를 필터링할 수 있습니다. 그런 다음 개발자는 이러한 선택 화면 요소를 Open SQL 문에서 직접 사용하여 데이터를 필터링할 수 있습니다. 그런 다..
2.3 Calling AMDP Methods in Applications ABAP 응용 프로그램에서 AMDP 메서드를 호출하는 방법은 일반적인 메서드와 유사합니다. 이는 ADT의 기반으로 하는 Eclipse 기반 폼 에디터나 SAP GUI 기반 트랜잭션을 통해 이루어집니다. 이러한 메서드는 항상 정적 메서드 호출로 실행됩니다. 실제로 인스턴스 메서드로 정의되었더라도 정적 메서드 호출로 실행됩니다. ABAP 응용 프로그램에서 AMDP 메서드를 호출하는 방법은 여러 가지가 있습니다. Eclipse 기반의 ABAP 퍼스펙티브(그림 6.8 참조)에서는 (Ctrl) + (Space)를 눌러 AMDP 메서드를 호출하는 코드 완성 템플릿을 사용할 수 있습니다. SAP GUI 기반 에디터(그림 6.9 참조)에서는 (Ctrl) + (F6)를 눌러 ABAP 기반 패턴을 사용할 수 있습니다. 그..
2.2 Implementing AMDP Methods AMDP 메소드는 응용 프로그램 서버 레이어에서 데이터베이스 레이어로 코드 푸시다운(Code PushDown)을 구현하여 ABAP 응용 프로그램을 최적화하는 고유한 메소드입니다. 이 메소드는 전역 클래스에 래핑되며 정적 메소드 또는 인스턴스 메소드로 정의할 수 있습니다. AMDP 메소드를 인스턴스 메소드로 정의할 수 있지만, 항상 정적 메소드 호출로 실행됩니다. 두 종류의 AMDP 메소드가 있습니다: 1. Return Code가 없는 AMDP 프로시저는 BY DATABASE PROCEDURE 추가를 사용하여 메소드를 통해 정의됩니다. 2. Return code가 있는 AMDP 함수는 BY DATABASE FUNCTION 추가를 사용하여 메소드를 통해 정의됩니다. AMDP 메소드의 본문은 SQLScript..
2.1 Prerequisites AMDP 클래스는 하나 이상의 Tranditional 및 AMDP 메소드로 구성될 수 있습니다. 또한 태그 인터페이스에 의해 지정된 각 데이터베이스 시스템을 위한 AMDP도 포함할 수 있습니다. Listing 6.2에 표시된 소스 코드는 필요한 모든 전제 조건을 구현하는 간단한 AMDP 정의를 보여줍니다. 이러한 전제 조건은 다음과 같습니다: ■ AMDP 클래스 정의에는 Marker Interface인 IF_AMDP_MARKER_HDB가 포함되어야 하며, 이는 SAP HANA 데이터베이스용 AMDP 메소드를 구현하기 때문입니다. ■ 클래스 정의에서 AMDP 메소드 매개변수 유형은 사전, ABAP(예: 정수 또는 문자) 또는 테이블 유형이어야 합니다. 테이블 유형 매개변수의 경우 라인 유형은 중첩된 테이블..
2. Creating AMDP Classes AMDP 프로시저를 생성하려면 전역 클래스를 ADT를 사용하여 클래스 라이브러리에 정의해야 합니다. 클래스의 정의에 하나 이상의 태그 인터페이스가 포함되어 있는 경우 해당 클래스는 AMDP 클래스로 분류됩니다. 태그 인터페이스는 IF_AMDP_MARKER로 접두사가 붙으며, 프로시저가 구현된 데이터베이스 시스템을 나타내는 접미사로 끝납니다. 다음 섹션에서는 AMDP 메소드를 정의하고 구현할 때 고려해야 할 여러 가지 전제 조건을 이해할 것입니다. 또한 AMDP를 사용하고 현재 데이터베이스(또는 데이터베이스 연결을 사용하여 지정된 데이터베이스)가 ABAP 애플리케이션에서 AMDP 기능을 지원하는지 확인하는 방법을 배우게 될 것입니다. *Marker Interace인 IF_AMDP_MARKER_HDB는 SA..
1.2 Development Environment for AMDP AMDP를 생성하고 변경하기 위해 ABAP 개발 도구 (ADT)를 사용하는 것은 필수입니다. 고전적인 SAP GUI 기반의 트랜잭션 SE24는 표시 기능만 지원하기 때문입니다. ADT는 또한 개발자가 AMDP와 효과적으로 작업하고 생산성과 효율성을 향상시키기 위해 추가 기능을 제공합니다. ADT가 제공하는 AMDP 관리를 위한 몇 가지 기능은 다음과 같습니다. 이제 ADT에서 지원하는 일부 기능을 살펴보겠습니다. 아래 그림에서 볼 수 있듯이, SAP GUI 기반의 클래스 빌더 (트랜잭션 SE24)는 AMDP 클래스를 편집할 수 없으며 표시 기능만 지원합니다. 따라서 AMDP에 대한 우선적인 개발 환경은 ADT입니다. ADT에서는 폼 기반 편집기의 모양을 변경하여 구문 오류를 강조하고 내장된 (데이터베이스..
1.1 ABAP-Managed Database Procedure Framework 만약 기본 데이터베이스가 SAP HANA인 경우, AMDP(ABAP-Managed Database Procedures)는 코드 푸시다운 기능을 달성하기 위한 권장 기술입니다. 이 프레임워크는 ABAP 환경에서 데이터베이스 프로시저를 생성하고 관리하기 위해 상향식 접근법을 사용합니다. AMDP 프레임워크는 AMDP 프로시저의 전체 라이프사이클 - 생성, 변경, 활성화 및 전송 -이 ABAP 런타임 환경에 의해 응용 프로그램 계층에서 처리되는 것을 보장합니다. 개발자로서, AMDP 클래스의 AMDP 메소드 구현에서 프로시저를 작성하게 됩니다. 전통적인 ABAP 메소드와 달리, AMDP 메소드는 고유한 메소드로서 SQLScript, 네이티브 SQL 및 L(SAP 내부적으로 사용하는 언어)과 같은 데이터베이스 ..