Skip to content

Prefer Modern Class-Based APIs over Obsolete Function Modules ​

WarningClean ABAP & Modern Syntax#EC PREF_FUNC_MODRemote Enabled

Overview ​

Prefer class-based APIs over obsolete function modules.

ATC Finding Message: Legacy function &1 is obsolete; migrate to &2

Rationale ​

Classic function modules are non-object-oriented procedural constructs. Modern ABAP provides robust, object-oriented class libraries (such as CL_SYSTEM_UUID, CL_ABAP_TSTMP, CL_ABAP_MESSAGE_DIGEST, and CL_BCS) that improve testability, type safety, and ABAP Cloud compatibility. Prefer recommended class-based APIs over obsolete function modules.

Non-Compliant ​

abap
CALL FUNCTION 'GUID_CREATE'
  IMPORTING
    ev_guid_32 = lv_guid.

Compliant ​

abap
lv_guid = cl_system_uuid=>create_uuid_c32_static( ).

Suppression ​

To suppress findings for this rule, append the pseudo-comment to the statement:

abap
" Standard pseudo-comment:
... "#EC PREF_FUNC_MOD

" SAP CI_ prefix format:
... "#EC CI_PREF_FUNC_MOD

The following table lists all 67 obsolete classic function modules detected by this rule along with their recommended modern replacements:

Obsolete Function ModuleModern Recommended Replacement
CALCULATE_HASH_FOR_CHARCL_ABAP_MESSAGE_DIGEST
CALCULATE_HASH_FOR_RAWCL_ABAP_HMAC or CL_ABAP_MESSAGE_DIGEST
CCU_TIMESTAMP_DIFFERENCECL_ABAP_TSTMP
CLPB_EXPORTCL_GUI_FRONTEND_SERVICES
CLPB_IMPORTCL_GUI_FRONTEND_SERVICES
CONVERT_DATE_TO_EXTERNALCL_ABAP_DATFM
CONVERT_TIME_INPUTCL_ABAP_TIMEFM
DOWNLOADCL_GUI_FRONTEND_SERVICES
ECATT_CONV_XSTRING_TO_STRINGCL_BINARY_CONVERT
F4_FILENAMECL_GUI_FRONTEND_SERVICES
FUNCTION_EXISTSTRY..CATCH cx_sy_dyn_call_illegal_func
GUI_CREATE_DIRECTORYCL_GUI_FRONTEND_SERVICES
GUI_DELETE_FILECL_GUI_FRONTEND_SERVICES
GUI_DOWNLOADCL_GUI_FRONTEND_SERVICES
GUI_EXECCL_GUI_FRONTEND_SERVICES
GUI_FB_USAGECL_GUI_FRONTEND_SERVICES
GUI_FILE_LOAD_DIALOGCL_GUI_FRONTEND_SERVICES
GUI_FILE_SAVE_DIALOGCL_GUI_FRONTEND_SERVICES
GUI_GET_DESKTOP_INFOCL_GUI_FRONTEND_SERVICES
GUI_GET_FILE_INFOCL_GUI_FRONTEND_SERVICES
GUI_GET_REGVALUECL_GUI_FRONTEND_SERVICES
GUI_MULTIPLE_FILE_LOAD_DIALOGCL_GUI_FRONTEND_SERVICES
GUI_REMOVE_DIRECTORYCL_GUI_FRONTEND_SERVICES
GUI_RUNCL_GUI_FRONTEND_SERVICES
GUI_SET_REGVALUECL_GUI_FRONTEND_SERVICES
GUI_UPLOADCL_GUI_FRONTEND_SERVICES
GUI_VSS_DOWNLOADCL_GUI_FRONTEND_SERVICES
GUI_VSS_UPLOADCL_GUI_FRONTEND_SERVICES
GUID_CREATECL_SYSTEM_UUID
IGN_TIMESTAMP_DIFFERENCECL_ABAP_TSTMP
IGN_TIMESTAMP_PLUSMINUSCL_ABAP_TSTMP
ISM_SD_GET_PRICING_CONDITIONSCL_PRC_RESULT_FACTORY (SAP Note 2220005)
JOB_CREATECL_BP_ABAP_JOB
JOB_SUBMITCL_BP_ABAP_JOB
MD5_CALCULATE_HASH_FOR_CHARCL_ABAP_MESSAGE_DIGEST
MD5_CALCULATE_HASH_FOR_RAWCL_ABAP_MESSAGE_DIGEST
POPUP_TO_CONFIRM_LOSS_OF_DATAPOPUP_TO_CONFIRM
POPUP_TO_CONFIRM_STEPPOPUP_TO_CONFIRM
POPUP_TO_CONFIRM_WITH_MESSAGEPOPUP_TO_CONFIRM
POPUP_TO_CONFIRM_WITH_VALUEPOPUP_TO_CONFIRM
POPUP_TO_CONFIRM_WITH_VALUE_2POPUP_TO_CONFIRM
POPUP_TO_DECIDEPOPUP_TO_CONFIRM
POPUP_TO_DECIDE_INFOPOPUP_TO_CONFIRM
POPUP_TO_DECIDE_WITH_MESSAGEPOPUP_TO_CONFIRM
POPUP_TO_GET_VALUEPOPUP_GET_VALUES
QF05_RANDOM_INTEGERCL_ABAP_RANDOM_INT
REGISTRY_GETCL_GUI_FRONTEND_SERVICES
REGISTRY_SETCL_GUI_FRONTEND_SERVICES
REUSE_ALV_GRID_DISPLAYCL_SALV_TABLE=>FACTORY or CL_GUI_ALV_GRID
ROUNDbuilt-in function round( )
SAPGUI_PROGRESS_INDICATORCL_PROGRESS_INDICATOR
SCMS_BASE64_DECODE_STRCL_HTTP_UTILITY
SCMS_STRING_TO_XSTRINGCL_BINARY_CONVERT
SO_NEW_DOCUMENT_ATT_SEND_API1CL_BCS
SSFC_BASE64_DECODECL_HTTP_UTILITY
SSFC_BASE64_ENCODECL_HTTP_UTILITY
SUBST_GET_FILE_LISTSAP Note 1686357
SYSTEM_GET_UNIQUE_IDCL_SYSTEM_UUID
SYSTEM_UUID_C_CREATECL_SYSTEM_UUID
UPLOADCL_GUI_FRONTEND_SERVICES
WS_DOWNLOADCL_GUI_FRONTEND_SERVICES
WS_EXECUTECL_GUI_FRONTEND_SERVICES
WS_FILENAME_GETCL_GUI_FRONTEND_SERVICES
WS_FILE_ATTRIBCL_GUI_FRONTEND_SERVICES
WS_FILE_COPYCL_GUI_FRONTEND_SERVICES
WS_FILE_DELETECL_GUI_FRONTEND_SERVICES
WS_QUERYCL_GUI_FRONTEND_SERVICES
WS_UPLOADCL_GUI_FRONTEND_SERVICES

Technical Details ​

Released under the MIT License.