본문 바로가기

AMDP/ADMP 기초

2.5 Feature Support Check Using Global Classes

현재 데이터베이스 또는 데이터베이스 연결을 사용하여 지정된 데이터베이스가 데이터베이스 연결이 AMDP 기능을 지원하는지, 그리고 런타임에 사용할 수 있는지 확인하는 것이 좋습니다.

글로벌 클래스 CL_ABAP_DBFEATURES의 USE_FEATURE 메서드를 사용하여 데이터베이스별 기능의 데이터베이스 특정 기능에 대한 지원을 확인할 수 있습니다.

데이터베이스별 기능을 확인하기 위해 여러 상수가 제공되며 Internal Table의 USE_FEATURE 메서드에 전달할 수 있습니다. 이 메서드는 해당 기능이 데이터베이스에서 지원되는 경우 ABAP_TRUE 값을 반환합니다, 값을 반환하는 반면에, 지원되지 않는 값은 클래스 CX_ABAP_INVALID_PARAM_에서 예외를 발생시키고 클래스에서 예외를 발생시키며 런타임 오류를 방지하기 위해 애플리케이션 프로그램 내에서 처리할 수 있습니다.

Database-specific한 특징들은 아래 표에 나열되어있고, CL_ABAP_DBFEATURES 클래스를 통해 유효성을 확인할 수 있습니다.

Database Feature Constant Name Value
External View EXTERNAL_VIEWS 2
Maximum number of key fields > 16 (120) TABLE_KEYCNT_MAX1 3
Maximum width of key fields > 900 bytes
(up to 2000)
TABLE_KEYLEN_MAX1  4
Maximum width of table or view > 4030 bytes
(up to 16293)
TABLE_LEN_MAX1 5
AMDP table functions AMDP_TABLE_FUNCTION  6
AMDP methods are supported CALL_AMDP_METHOD 8
CALL DATABASE PROCEDURE is supported CALL_DATABASE_PROCEDURE 7
Internal table as the source in the FROM clause
(from release 7.52)
ITABS_IN_FROM_CLAUSE  9
Limit/offset in subselect or common table
expressions (CTEs)
LIMIT_IN_SUBSELECT_OR_CTE 10
CTE used in a correlated subquery CTE_IN_CORRELATED_SUBQUERIES 11
MODIFY FROM SELECT MODIFY_FROM_SELECT 12
Hierarchies HIERARCHIES 13
GROUPING SETS  GROUPING_SETS 14

USE_FEATURES라는 Method를 통해 AMDP 관련 상수 CALL_AMDP_METHOD 및 AMDP_TABLE_FUNCTION을 전달될 수 있고 아래 소스코드에서 보여지듯이, 기본 데이터베이스가 AMDP 프로시저를 지원하는지 확인할 수 있습니다.

TRY.
	DATA(lv_supported) = cl_abap_dbfeatures=>use_features
    					( EXPORTING requested_features =
						  VALUE #( ( cl_abap_dbfeatures=>call_amdp_method )
								 ( cl_abap_dbfeatures=>amdp_table_function ) ) ).
                                 
	CATCH cx_abap_invalid_param_value INTO DATA(lref_invalid_value).
		DATA(lv_message) = lref_invalid_value->get_text( ).
ENDTRY.

IF lv_supported IS NOT INITIAL."ABAP_TRUE"
	WRITE:'Database specific feature', cl_abap_dbfeatures=>call_amdp_method, 'is supported'.
ELSE.
	WRITE lv_message.
ENDIF.

또한 Standard 프로그램인 DEMO_DBFEATURES를 사용하여 데이터베이스 기능을 사용하기 전에 현재 데이터베이스가 해당 기능을 지원하는지 확인할 수 있습니다.

database-specific 특징을 확인하기 위해서는 아래와 같은 절차를 따르면 됩니다.

1. 아래 그림에 나타나듯이 Transaction SE38에서 DEMO_FEATURES 프로그램을 실행하면됩니다.

Execute DEMO_DBFEATURES in Transaction SE38

2. 아래 그림에 나타나듯이,SAP HANA 데이터베이스 버전에 대해 유효성을 검사할 데이터베이스 기능을 선택할 수 있습니다.

Select Database Features for AMBP Supportability Check

3. 결과는 아래 나타나듯이, 지원되고 지원되는 특징과, 지원되지 않는 특징을 나타내고 있습니다.

Resulting List of Supported and Unsupported AMDP Features

 

반응형

'AMDP > ADMP 기초' 카테고리의 다른 글

2.4 Using Multiple Selection Criteria  (0) 2023.08.23
2.3 Calling AMDP Methods in Applications  (0) 2023.08.22
2.2 Implementing AMDP Methods  (0) 2023.08.22
2.1 Prerequisites  (0) 2023.08.21
2. Creating AMDP Classes  (0) 2023.08.19