SAP CTUT_FEATURE_CHECK Function Module for
CTUT_FEATURE_CHECK is a standard ctut feature check SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used to perform a specific ABAP function and below is the pattern details, 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 ctut feature check FM, simply by entering the name CTUT_FEATURE_CHECK into the relevant SAP transaction such as SE37 or SE38.
Function Group: CTUT
Program Name: SAPLCTUT
Main Program: SAPLCTUT
Appliation area:
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function CTUT_FEATURE_CHECK 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 'CTUT_FEATURE_CHECK'".
EXPORTING
* CLASS_TYPE = ' ' "Class type
* IGNORE_BUFFER = ' ' "Discard buffered data
* CHANGE_NUMBER = ' ' "Change Number
* FEATURE_ID = 0 "Internal feature number
* FEATURE_NAME = ' ' "Feature name
* FEATURE_NEUTRAL_NAME = ' ' "Language-independent feature name
* LANGUAGE = ' ' "Language indicator
* MESSAGE_TYPE_INP = 'E' "Message type (E,I,W,...)
* KEY_DATE = SY-DATUM "Date
* IGNORE_DELETE_FLAG = ' ' "Ignore deletion indicator
* IGNORE_RENAME = ' ' "Include renamed characteristics
IMPORTING
FEATURE_ID = "Internal feature number
ONLY_ONE_VALUE = "Only a valuation of the feature is
PATTERN = "Template
PLACES_AFTER_DECIMAL_SIGN = "Number of places behind the decima
REDUNDANT_STORAGE = "Redundant storage of master record fields
REQUIRED_ENTRY = "Entry necessary
STATUS = "
TABLE_FEATURE = "Feature which refers to a table fi
TITLE1 = "
TITLE2 = "
USE_OF_INTERVALS = "Interval values allowed
FEATURE_NAME = "Feature name
WITH_SIGN = "Value can have +/- sign
CONVERSION_EXIT = "Conversion exit (not yet in use)
UDEF_CLASS = "Internal class number for user-defined data type
FEATURE_NEUTRAL_NAME = "Language-independent feature name
FEATURE_TYPE = "Feature type
FORMAT = "Format
INTERNAL_UNIT_OF_MEASURE = "Internal description of unit of me
LOWER_CASES = "Lower case letter allowed
NUMBER_OF_POSITIONS = "Number of positions
OBJECT_ID = "ID of the object to which the feat
EXCEPTIONS
INVALID_CLASS_TYPE = 1 MISSING_FEATURE_INFORMATION = 2 NO_FEATURE_FOUND = 3 NO_FEATURE_VALID = 4 NO_LANGUAGE = 5
IMPORTING Parameters details for CTUT_FEATURE_CHECK
CLASS_TYPE - Class type
Data type: KLAH-KLARTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IGNORE_BUFFER - Discard buffered data
Data type: RCTMV-MARKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CHANGE_NUMBER - Change Number
Data type: CABN-AENNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
FEATURE_ID - Internal feature number
Data type: CABN-ATINNOptional: Yes
Call by Reference: No ( called with pass by value option)
FEATURE_NAME - Feature name
Data type: CABNT-ATBEZDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
FEATURE_NEUTRAL_NAME - Language-independent feature name
Data type: CABN-ATNAMDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
LANGUAGE - Language indicator
Data type: CABNT-SPRASDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MESSAGE_TYPE_INP - Message type (E,I,W,...)
Data type: SY-MSGTYDefault: 'E'
Optional: Yes
Call by Reference: No ( called with pass by value option)
KEY_DATE - Date
Data type: SY-DATUMDefault: SY-DATUM
Optional: Yes
Call by Reference: No ( called with pass by value option)
IGNORE_DELETE_FLAG - Ignore deletion indicator
Data type: RCTMV-MARKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IGNORE_RENAME - Include renamed characteristics
Data type: RCTMV-MARKDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for CTUT_FEATURE_CHECK
FEATURE_ID - Internal feature number
Data type: CABN-ATINNOptional: No
Call by Reference: No ( called with pass by value option)
ONLY_ONE_VALUE - Only a valuation of the feature is
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PATTERN - Template
Data type: CABN-ATSCHOptional: No
Call by Reference: No ( called with pass by value option)
PLACES_AFTER_DECIMAL_SIGN - Number of places behind the decima
Data type: CABN-ANZDZOptional: No
Call by Reference: No ( called with pass by value option)
REDUNDANT_STORAGE - Redundant storage of master record fields
Data type: CABN-ATWRIOptional: No
Call by Reference: No ( called with pass by value option)
REQUIRED_ENTRY - Entry necessary
Data type: CABN-ATERFOptional: No
Call by Reference: No ( called with pass by value option)
STATUS -
Data type: CABN-ATMSTOptional: No
Call by Reference: No ( called with pass by value option)
TABLE_FEATURE - Feature which refers to a table fi
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
TITLE1 -
Data type: CABNT-ATUE1Optional: No
Call by Reference: No ( called with pass by value option)
TITLE2 -
Data type: CABNT-ATUE2Optional: No
Call by Reference: No ( called with pass by value option)
USE_OF_INTERVALS - Interval values allowed
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FEATURE_NAME - Feature name
Data type: CABNT-ATBEZOptional: No
Call by Reference: No ( called with pass by value option)
WITH_SIGN - Value can have +/- sign
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
CONVERSION_EXIT - Conversion exit (not yet in use)
Data type: CABN-ATKONOptional: No
Call by Reference: No ( called with pass by value option)
UDEF_CLASS - Internal class number for user-defined data type
Data type: CABN-CLINTOptional: No
Call by Reference: No ( called with pass by value option)
FEATURE_NEUTRAL_NAME - Language-independent feature name
Data type: CABN-ATNAMOptional: No
Call by Reference: No ( called with pass by value option)
FEATURE_TYPE - Feature type
Data type: CABN-ATIDNOptional: No
Call by Reference: No ( called with pass by value option)
FORMAT - Format
Data type: CABN-ATFOROptional: No
Call by Reference: No ( called with pass by value option)
INTERNAL_UNIT_OF_MEASURE - Internal description of unit of me
Data type: CABN-MSEHIOptional: No
Call by Reference: No ( called with pass by value option)
LOWER_CASES - Lower case letter allowed
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_OF_POSITIONS - Number of positions
Data type: CABN-ANZSTOptional: No
Call by Reference: No ( called with pass by value option)
OBJECT_ID - ID of the object to which the feat
Data type: CAWN-ATIDNOptional: No
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
INVALID_CLASS_TYPE - Invalid class type
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MISSING_FEATURE_INFORMATION - Specifications not sufficient for
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_FEATURE_FOUND - Feature not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_FEATURE_VALID - No valid feature for class type fo
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_LANGUAGE - Language was not specified
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for CTUT_FEATURE_CHECK 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_class_type | TYPE KLAH-KLART, " SPACE | |||
| lv_feature_id | TYPE CABN-ATINN, " | |||
| lv_invalid_class_type | TYPE CABN, " | |||
| lv_ignore_buffer | TYPE RCTMV-MARK, " SPACE | |||
| lv_only_one_value | TYPE RCTMV, " | |||
| lv_pattern | TYPE CABN-ATSCH, " | |||
| lv_change_number | TYPE CABN-AENNR, " SPACE | |||
| lv_places_after_decimal_sign | TYPE CABN-ANZDZ, " | |||
| lv_redundant_storage | TYPE CABN-ATWRI, " | |||
| lv_required_entry | TYPE CABN-ATERF, " | |||
| lv_status | TYPE CABN-ATMST, " | |||
| lv_table_feature | TYPE CABN, " | |||
| lv_title1 | TYPE CABNT-ATUE1, " | |||
| lv_title2 | TYPE CABNT-ATUE2, " | |||
| lv_use_of_intervals | TYPE CABNT, " | |||
| lv_feature_id | TYPE CABN-ATINN, " 0 | |||
| lv_feature_name | TYPE CABNT-ATBEZ, " | |||
| lv_missing_feature_information | TYPE CABNT, " | |||
| lv_with_sign | TYPE CABNT, " | |||
| lv_conversion_exit | TYPE CABN-ATKON, " | |||
| lv_udef_class | TYPE CABN-CLINT, " | |||
| lv_feature_name | TYPE CABNT-ATBEZ, " SPACE | |||
| lv_no_feature_found | TYPE CABNT, " | |||
| lv_feature_neutral_name | TYPE CABN-ATNAM, " | |||
| lv_feature_type | TYPE CABN-ATIDN, " | |||
| lv_no_feature_valid | TYPE CABN, " | |||
| lv_feature_neutral_name | TYPE CABN-ATNAM, " SPACE | |||
| lv_format | TYPE CABN-ATFOR, " | |||
| lv_language | TYPE CABNT-SPRAS, " SPACE | |||
| lv_no_language | TYPE CABNT, " | |||
| lv_message_type_inp | TYPE SY-MSGTY, " 'E' | |||
| lv_internal_unit_of_measure | TYPE CABN-MSEHI, " | |||
| lv_key_date | TYPE SY-DATUM, " SY-DATUM | |||
| lv_lower_cases | TYPE SY, " | |||
| lv_ignore_delete_flag | TYPE RCTMV-MARK, " SPACE | |||
| lv_number_of_positions | TYPE CABN-ANZST, " | |||
| lv_object_id | TYPE CAWN-ATIDN, " | |||
| lv_ignore_rename | TYPE RCTMV-MARK. " SPACE |
|   CALL FUNCTION 'CTUT_FEATURE_CHECK' " |
| EXPORTING | ||
| CLASS_TYPE | = lv_class_type | |
| IGNORE_BUFFER | = lv_ignore_buffer | |
| CHANGE_NUMBER | = lv_change_number | |
| FEATURE_ID | = lv_feature_id | |
| FEATURE_NAME | = lv_feature_name | |
| FEATURE_NEUTRAL_NAME | = lv_feature_neutral_name | |
| LANGUAGE | = lv_language | |
| MESSAGE_TYPE_INP | = lv_message_type_inp | |
| KEY_DATE | = lv_key_date | |
| IGNORE_DELETE_FLAG | = lv_ignore_delete_flag | |
| IGNORE_RENAME | = lv_ignore_rename | |
| IMPORTING | ||
| FEATURE_ID | = lv_feature_id | |
| ONLY_ONE_VALUE | = lv_only_one_value | |
| PATTERN | = lv_pattern | |
| PLACES_AFTER_DECIMAL_SIGN | = lv_places_after_decimal_sign | |
| REDUNDANT_STORAGE | = lv_redundant_storage | |
| REQUIRED_ENTRY | = lv_required_entry | |
| STATUS | = lv_status | |
| TABLE_FEATURE | = lv_table_feature | |
| TITLE1 | = lv_title1 | |
| TITLE2 | = lv_title2 | |
| USE_OF_INTERVALS | = lv_use_of_intervals | |
| FEATURE_NAME | = lv_feature_name | |
| WITH_SIGN | = lv_with_sign | |
| CONVERSION_EXIT | = lv_conversion_exit | |
| UDEF_CLASS | = lv_udef_class | |
| FEATURE_NEUTRAL_NAME | = lv_feature_neutral_name | |
| FEATURE_TYPE | = lv_feature_type | |
| FORMAT | = lv_format | |
| INTERNAL_UNIT_OF_MEASURE | = lv_internal_unit_of_measure | |
| LOWER_CASES | = lv_lower_cases | |
| NUMBER_OF_POSITIONS | = lv_number_of_positions | |
| OBJECT_ID | = lv_object_id | |
| EXCEPTIONS | ||
| INVALID_CLASS_TYPE = 1 | ||
| MISSING_FEATURE_INFORMATION = 2 | ||
| NO_FEATURE_FOUND = 3 | ||
| NO_FEATURE_VALID = 4 | ||
| NO_LANGUAGE = 5 | ||
| . " CTUT_FEATURE_CHECK | ||
ABAP code using 7.40 inline data declarations to call FM CTUT_FEATURE_CHECK
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.| "SELECT single KLART FROM KLAH INTO @DATA(ld_class_type). | ||||
| DATA(ld_class_type) | = ' '. | |||
| "SELECT single ATINN FROM CABN INTO @DATA(ld_feature_id). | ||||
| "SELECT single MARK FROM RCTMV INTO @DATA(ld_ignore_buffer). | ||||
| DATA(ld_ignore_buffer) | = ' '. | |||
| "SELECT single ATSCH FROM CABN INTO @DATA(ld_pattern). | ||||
| "SELECT single AENNR FROM CABN INTO @DATA(ld_change_number). | ||||
| DATA(ld_change_number) | = ' '. | |||
| "SELECT single ANZDZ FROM CABN INTO @DATA(ld_places_after_decimal_sign). | ||||
| "SELECT single ATWRI FROM CABN INTO @DATA(ld_redundant_storage). | ||||
| "SELECT single ATERF FROM CABN INTO @DATA(ld_required_entry). | ||||
| "SELECT single ATMST FROM CABN INTO @DATA(ld_status). | ||||
| "SELECT single ATUE1 FROM CABNT INTO @DATA(ld_title1). | ||||
| "SELECT single ATUE2 FROM CABNT INTO @DATA(ld_title2). | ||||
| "SELECT single ATINN FROM CABN INTO @DATA(ld_feature_id). | ||||
| "SELECT single ATBEZ FROM CABNT INTO @DATA(ld_feature_name). | ||||
| "SELECT single ATKON FROM CABN INTO @DATA(ld_conversion_exit). | ||||
| "SELECT single CLINT FROM CABN INTO @DATA(ld_udef_class). | ||||
| "SELECT single ATBEZ FROM CABNT INTO @DATA(ld_feature_name). | ||||
| DATA(ld_feature_name) | = ' '. | |||
| "SELECT single ATNAM FROM CABN INTO @DATA(ld_feature_neutral_name). | ||||
| "SELECT single ATIDN FROM CABN INTO @DATA(ld_feature_type). | ||||
| "SELECT single ATNAM FROM CABN INTO @DATA(ld_feature_neutral_name). | ||||
| DATA(ld_feature_neutral_name) | = ' '. | |||
| "SELECT single ATFOR FROM CABN INTO @DATA(ld_format). | ||||
| "SELECT single SPRAS FROM CABNT INTO @DATA(ld_language). | ||||
| DATA(ld_language) | = ' '. | |||
| "SELECT single MSGTY FROM SY INTO @DATA(ld_message_type_inp). | ||||
| DATA(ld_message_type_inp) | = 'E'. | |||
| "SELECT single MSEHI FROM CABN INTO @DATA(ld_internal_unit_of_measure). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_key_date). | ||||
| DATA(ld_key_date) | = SY-DATUM. | |||
| "SELECT single MARK FROM RCTMV INTO @DATA(ld_ignore_delete_flag). | ||||
| DATA(ld_ignore_delete_flag) | = ' '. | |||
| "SELECT single ANZST FROM CABN INTO @DATA(ld_number_of_positions). | ||||
| "SELECT single ATIDN FROM CAWN INTO @DATA(ld_object_id). | ||||
| "SELECT single MARK FROM RCTMV INTO @DATA(ld_ignore_rename). | ||||
| DATA(ld_ignore_rename) | = ' '. | |||
Search for further information about these or an SAP related objects