SAP CLS_CHARACTERIZER Function Module for Attribute value assignment for an object
CLS_CHARACTERIZER is a standard cls characterizer SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Attribute value assignment for an object processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for cls characterizer FM, simply by entering the name CLS_CHARACTERIZER into the relevant SAP transaction such as SE37 or SE38.
Function Group: CLS_CHARACTERIZATION
Program Name: SAPLCLS_CHARACTERIZATION
Main Program: SAPLCLS_CHARACTERIZATION
Appliation area:
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function CLS_CHARACTERIZER pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'CLS_CHARACTERIZER'"Attribute value assignment for an object.
EXPORTING
* IM_ATTRIBUTES = "Attribute list
* IM_HOME_PACKAGES = "
* IM_LOCAL_PACKAGES = "
* IM_TRANSPORTABLE_PACKAGES = 'X' "
* IM_SRCSYSTEM_FILTER = "
* IM_TYPE_FILTER = "
* IM_OBJECTS = "List of development objects
* IM_INSTANCE = "Classification tool
* IM_OBJ_NAME_FILTER = "
* IM_NO_TOOLBAR = ABAP_FALSE "
* IM_NO_ATTRIBUTE_SELECTION = ABAP_FALSE "
* IM_KEY_ATTRIBUTES = "Key Attributes
* IM_NO_SETTINGS_BUTTON = ABAP_FALSE "
* IM_NO_MANUAL_CLASSIFICATION = ABAP_FALSE "
* IM_DISPLAY_TREE = ABAP_TRUE "
* IM_ALLOW_SWITCH = ABAP_TRUE "
* IM_PROJECT_ID_FILTER = "
* IM_EXPAND_ALL = ABAP_FALSE "
* IM_SORT_ORDER = "
* IM_TITLE = "
* IM_REPORT_RUN_RESULT = "Container for objects and classifications
* IM_ATTRIBUTES_WITH_KEY_INFO = "Both, key and non-key attributes
* IM_OPERATION = 'DISPCLS' "WB Request: swbm_c_op_disp_classification
* IM_USER_FILTER = "
* IM_COMPONENT_FILTER = "
* IM_TRANSPORT_LAYER_FILTER = "
* IM_DLVUNIT_FILTER = "
* IM_PACKAGE_FILTER = "
EXCEPTIONS
CX_PAK_WB_OBJECT_LOCKED = 1 CX_PAK_INVALID_STATE = 2 CX_PAK_INVALID_DATA = 3 CX_PAK_NOT_AUTHORIZED = 4 CX_PAK_GUI_ERROR = 5
IMPORTING Parameters details for CLS_CHARACTERIZER
IM_ATTRIBUTES - Attribute list
Data type: CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LISTOptional: Yes
Call by Reference: Yes
IM_HOME_PACKAGES -
Data type: ABAP_BOOLOptional: Yes
Call by Reference: Yes
IM_LOCAL_PACKAGES -
Data type: ABAP_BOOLOptional: Yes
Call by Reference: Yes
IM_TRANSPORTABLE_PACKAGES -
Data type: ABAP_BOOLDefault: 'X'
Optional: Yes
Call by Reference: Yes
IM_SRCSYSTEM_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_SRCSYSTEM_RANGEOptional: Yes
Call by Reference: Yes
IM_TYPE_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_TYPE_LISTOptional: Yes
Call by Reference: Yes
IM_OBJECTS - List of development objects
Data type: PAK_OBJECT_LISTOptional: Yes
Call by Reference: Yes
IM_INSTANCE - Classification tool
Data type: CL_WB_CLASSIFICATIONOptional: Yes
Call by Reference: Yes
IM_OBJ_NAME_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_OBJ_NAME_RANGEOptional: Yes
Call by Reference: Yes
IM_NO_TOOLBAR -
Data type: ABAP_BOOLDefault: ABAP_FALSE
Optional: Yes
Call by Reference: Yes
IM_NO_ATTRIBUTE_SELECTION -
Data type: ABAP_BOOLDefault: ABAP_FALSE
Optional: Yes
Call by Reference: Yes
IM_KEY_ATTRIBUTES - Key Attributes
Data type: CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LISTOptional: Yes
Call by Reference: Yes
IM_NO_SETTINGS_BUTTON -
Data type: ABAP_BOOLDefault: ABAP_FALSE
Optional: Yes
Call by Reference: Yes
IM_NO_MANUAL_CLASSIFICATION -
Data type: ABAP_BOOLDefault: ABAP_FALSE
Optional: Yes
Call by Reference: Yes
IM_DISPLAY_TREE -
Data type: ABAP_BOOLDefault: ABAP_TRUE
Optional: Yes
Call by Reference: Yes
IM_ALLOW_SWITCH -
Data type: ABAP_BOOLDefault: ABAP_TRUE
Optional: Yes
Call by Reference: Yes
IM_PROJECT_ID_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_PROJECT_ID_RANGEOptional: Yes
Call by Reference: Yes
IM_EXPAND_ALL -
Data type: ABAP_BOOLDefault: ABAP_FALSE
Optional: Yes
Call by Reference: Yes
IM_SORT_ORDER -
Data type: CL_CLS_OBJECT_GRID=>TY_SORT_ORDEROptional: Yes
Call by Reference: Yes
IM_TITLE -
Data type: STRINGOptional: Yes
Call by Reference: Yes
IM_REPORT_RUN_RESULT - Container for objects and classifications
Data type: CL_CLS_REPORT_RUN_RESULTOptional: Yes
Call by Reference: Yes
IM_ATTRIBUTES_WITH_KEY_INFO - Both, key and non-key attributes
Data type: CL_CLS_ATTRIBUTE_SET_EDITOR=>TY_ATTRIBUTE_SETOptional: Yes
Call by Reference: Yes
IM_OPERATION - WB Request: swbm_c_op_disp_classification
Data type: SEU_ACTIONDefault: 'DISPCLS'
Optional: Yes
Call by Reference: Yes
IM_USER_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_USER_RANGEOptional: Yes
Call by Reference: Yes
IM_COMPONENT_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_COMPONENT_RANGEOptional: Yes
Call by Reference: Yes
IM_TRANSPORT_LAYER_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_TRANSPORT_LAYER_RANGEOptional: Yes
Call by Reference: Yes
IM_DLVUNIT_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_DLVUNIT_RANGEOptional: Yes
Call by Reference: Yes
IM_PACKAGE_FILTER -
Data type: CL_CLS_OBJECT_COLLECTOR=>TY_PACKAGE_RANGEOptional: Yes
Call by Reference: Yes
EXCEPTIONS details
CX_PAK_WB_OBJECT_LOCKED - Error situation: enqueue locks hold by other instance
Data type:Optional: No
Call by Reference: Yes
CX_PAK_INVALID_STATE - Operation can't be executed in present object state
Data type:Optional: No
Call by Reference: Yes
CX_PAK_INVALID_DATA - Invalid data
Data type:Optional: No
Call by Reference: Yes
CX_PAK_NOT_AUTHORIZED - User doesn't have sufficient authorizations
Data type:Optional: No
Call by Reference: Yes
CX_PAK_GUI_ERROR - GUI Package-Builder exceptions
Data type:Optional: No
Call by Reference: Yes
Copy and paste ABAP code example for CLS_CHARACTERIZER Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lv_im_attributes | TYPE CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LIST, " | |||
| lv_cx_pak_wb_object_locked | TYPE CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LIST, " | |||
| lv_im_home_packages | TYPE ABAP_BOOL, " | |||
| lv_im_local_packages | TYPE ABAP_BOOL, " | |||
| lv_im_transportable_packages | TYPE ABAP_BOOL, " 'X' | |||
| lv_im_srcsystem_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_SRCSYSTEM_RANGE, " | |||
| lv_im_type_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_TYPE_LIST, " | |||
| lv_im_objects | TYPE PAK_OBJECT_LIST, " | |||
| lv_im_instance | TYPE CL_WB_CLASSIFICATION, " | |||
| lv_im_obj_name_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_OBJ_NAME_RANGE, " | |||
| lv_im_no_toolbar | TYPE ABAP_BOOL, " ABAP_FALSE | |||
| lv_im_no_attribute_selection | TYPE ABAP_BOOL, " ABAP_FALSE | |||
| lv_im_key_attributes | TYPE CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LIST, " | |||
| lv_cx_pak_invalid_state | TYPE CL_CLS_OBJECT_CHARACTERIZATION=>TY_ATTRIBUTE_LIST, " | |||
| lv_im_no_settings_button | TYPE ABAP_BOOL, " ABAP_FALSE | |||
| lv_im_no_manual_classification | TYPE ABAP_BOOL, " ABAP_FALSE | |||
| lv_im_display_tree | TYPE ABAP_BOOL, " ABAP_TRUE | |||
| lv_im_allow_switch | TYPE ABAP_BOOL, " ABAP_TRUE | |||
| lv_im_project_id_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_PROJECT_ID_RANGE, " | |||
| lv_im_expand_all | TYPE ABAP_BOOL, " ABAP_FALSE | |||
| lv_im_sort_order | TYPE CL_CLS_OBJECT_GRID=>TY_SORT_ORDER, " | |||
| lv_im_title | TYPE STRING, " | |||
| lv_im_report_run_result | TYPE CL_CLS_REPORT_RUN_RESULT, " | |||
| lv_cx_pak_invalid_data | TYPE CL_CLS_REPORT_RUN_RESULT, " | |||
| lv_im_attributes_with_key_info | TYPE CL_CLS_ATTRIBUTE_SET_EDITOR=>TY_ATTRIBUTE_SET, " | |||
| lv_im_operation | TYPE SEU_ACTION, " 'DISPCLS' | |||
| lv_cx_pak_not_authorized | TYPE SEU_ACTION, " | |||
| lv_im_user_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_USER_RANGE, " | |||
| lv_cx_pak_gui_error | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_USER_RANGE, " | |||
| lv_im_component_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_COMPONENT_RANGE, " | |||
| lv_im_transport_layer_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_TRANSPORT_LAYER_RANGE, " | |||
| lv_im_dlvunit_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_DLVUNIT_RANGE, " | |||
| lv_im_package_filter | TYPE CL_CLS_OBJECT_COLLECTOR=>TY_PACKAGE_RANGE. " |
|   CALL FUNCTION 'CLS_CHARACTERIZER' "Attribute value assignment for an object |
| EXPORTING | ||
| IM_ATTRIBUTES | = lv_im_attributes | |
| IM_HOME_PACKAGES | = lv_im_home_packages | |
| IM_LOCAL_PACKAGES | = lv_im_local_packages | |
| IM_TRANSPORTABLE_PACKAGES | = lv_im_transportable_packages | |
| IM_SRCSYSTEM_FILTER | = lv_im_srcsystem_filter | |
| IM_TYPE_FILTER | = lv_im_type_filter | |
| IM_OBJECTS | = lv_im_objects | |
| IM_INSTANCE | = lv_im_instance | |
| IM_OBJ_NAME_FILTER | = lv_im_obj_name_filter | |
| IM_NO_TOOLBAR | = lv_im_no_toolbar | |
| IM_NO_ATTRIBUTE_SELECTION | = lv_im_no_attribute_selection | |
| IM_KEY_ATTRIBUTES | = lv_im_key_attributes | |
| IM_NO_SETTINGS_BUTTON | = lv_im_no_settings_button | |
| IM_NO_MANUAL_CLASSIFICATION | = lv_im_no_manual_classification | |
| IM_DISPLAY_TREE | = lv_im_display_tree | |
| IM_ALLOW_SWITCH | = lv_im_allow_switch | |
| IM_PROJECT_ID_FILTER | = lv_im_project_id_filter | |
| IM_EXPAND_ALL | = lv_im_expand_all | |
| IM_SORT_ORDER | = lv_im_sort_order | |
| IM_TITLE | = lv_im_title | |
| IM_REPORT_RUN_RESULT | = lv_im_report_run_result | |
| IM_ATTRIBUTES_WITH_KEY_INFO | = lv_im_attributes_with_key_info | |
| IM_OPERATION | = lv_im_operation | |
| IM_USER_FILTER | = lv_im_user_filter | |
| IM_COMPONENT_FILTER | = lv_im_component_filter | |
| IM_TRANSPORT_LAYER_FILTER | = lv_im_transport_layer_filter | |
| IM_DLVUNIT_FILTER | = lv_im_dlvunit_filter | |
| IM_PACKAGE_FILTER | = lv_im_package_filter | |
| EXCEPTIONS | ||
| CX_PAK_WB_OBJECT_LOCKED = 1 | ||
| CX_PAK_INVALID_STATE = 2 | ||
| CX_PAK_INVALID_DATA = 3 | ||
| CX_PAK_NOT_AUTHORIZED = 4 | ||
| CX_PAK_GUI_ERROR = 5 | ||
| . " CLS_CHARACTERIZER | ||
ABAP code using 7.40 inline data declarations to call FM CLS_CHARACTERIZER
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| DATA(ld_im_transportable_packages) | = 'X'. | |||
| DATA(ld_im_no_toolbar) | = ABAP_FALSE. | |||
| DATA(ld_im_no_attribute_selection) | = ABAP_FALSE. | |||
| DATA(ld_im_no_settings_button) | = ABAP_FALSE. | |||
| DATA(ld_im_no_manual_classification) | = ABAP_FALSE. | |||
| DATA(ld_im_display_tree) | = ABAP_TRUE. | |||
| DATA(ld_im_allow_switch) | = ABAP_TRUE. | |||
| DATA(ld_im_expand_all) | = ABAP_FALSE. | |||
| DATA(ld_im_operation) | = 'DISPCLS'. | |||
Search for further information about these or an SAP related objects