현재 데이터베이스 또는 데이터베이스 연결을 사용하여 지정된 데이터베이스가 데이터베이스 연결이 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 프로그램을 실행하면됩니다.
2. 아래 그림에 나타나듯이,SAP HANA 데이터베이스 버전에 대해 유효성을 검사할 데이터베이스 기능을 선택할 수 있습니다.
3. 결과는 아래 나타나듯이, 지원되고 지원되는 특징과, 지원되지 않는 특징을 나타내고 있습니다.
'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 |