본문 바로가기

전체 글

(184)
COALESCE Function Coalesce 함수를 SQL 표현식 또는 Open SQL에서 표현식의 피연산자로 호출합니다. Coalesce 함수는 쉼표로 구분된 목록으로 최소 2개 이상 255개 이하의 인수 arg1, arg1, ..., argn을 가질 수 있습니다. 이 함수는 null 값이 없는 첫 번째 인수의 값을 반환합니다. 모든 인자에 널 값이 있으면 마지막 인자 argn의 값이 반환됩니다. 여는 괄호 뒤와 닫는 괄호 앞에 공백을 넣어야 합니다. 가능한 인수(Argument)는 여러 가지가 있습니다: ■ ACCP, DF16_SCL(더 이상 사용되지 않음), DF34_SCL(더 이상 사용되지 않음), LCHR, LRAW, PREC, RAWSTRING 및 STRING을 제외한 모든 사전 유형을 가진 열 및 기타 표현식. ■ 문자..
CASE Function 2 : Complex Case Complex Case ... CASE WHEN sql_cond1 THEN result1 [WHEN sql_cond2 THEN result2] [WHEN sql_cond3 THEN result3] ... [ELSE resultn] END ... Open SQL에서의 Complex case distinction (Searched CASE)는 Logical Expression sql_cond1, sql_cond2 등을 평가하고, 첫 번째로 참인 논리 식 이후에 피연산자 result를 결과로 생성합니다. 어떤 논리 식도 참이 아닌 경우 ELSE 이후에 지정된 결과가 선택됩니다. ELSE가 지정되지 않은 경우 결과는 제로 값(Zero Value)입니다. 결과 result1, result2 등은 열(Column)..
CASE Function 1 : Simple Case OPEN SQL에서 Case문의 구별은 Simple case와 Complex case로 구분지을 수 있습니다. Simple Case ... CASE operand WHEN operand1 THEN result1 [WHEN operand2 THEN result2] ... [ELSE resultn] END ... Simple Case Ditinction (Open SQL에서 간단한 경우)는 SQL 식으로, 피연산자(operand)의 값과 피연산자 operand1, operand2 등을 비교하고, 첫 번째 THEN 이후에 비교가 참인 경우 결과로 피연산자 result를 생성합니다. 일치하는 경우가 없으면 ELSE 뒤에 지정된 결과가 선택됩니다. ELSE가 지정되지 않은 경우 결과는 제로(Zero) 값이 됩니다..
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(예: 정수 또는 문자) 또는 테이블 유형이어야 합니다. 테이블 유형 매개변수의 경우 라인 유형은 중첩된 테이블..