Hello Dear Friends , If you are looking for BAPI for Characteristics – Find Name then here you will find the details related to it.
BAPI for Finding Characteristic Names in SAP (Classification System)
For working with characteristics in SAP (commonly used in classification, variant configuration, or quality management), the key BAPI is:
Primary BAPI: BAPI_OBJCL_GETCLASSES
This BAPI retrieves characteristics assigned to an object (material, batch, equipment, etc.).
Alternative BAPIs for Characteristics:
BAPI_CHARACT_GETDETAIL
- Gets detailed information about a specific characteristic
- Requires the characteristic name as input
BAPI_CHARACT_GETLIST
- Retrieves a list of characteristics based on filters
BAPI_CLASS_GETDETAIL
- Gets class details including assigned characteristics
Example: Find Characteristic Name by Object (Material)
REPORT z_find_characteristics.
DATA:
lt_classes TYPE TABLE OF bapi1003_alloc_list,
lt_charact TYPE TABLE OF bapi1003_alloc_values_char,
lt_return TYPE TABLE OF bapiret2,
lv_objectkey TYPE bapi1003_key-object,
lv_objecttype TYPE bapi1003_key-objecttype VALUE 'MATERIAL', " MATERIAL/BATCH/EQUIPMENT
lv_classnum TYPE bapi1003_key-classnum,
lv_classtype TYPE bapi1003_key-classtype VALUE '001'. " Class Type (001=Material)
* Set Material Number
lv_objectkey = 'MAT-1001'. " Replace with your material
* Get Classes assigned to Material
CALL FUNCTION 'BAPI_OBJCL_GETCLASSES'
EXPORTING
objectkey_imp = lv_objectkey
objecttype_imp = lv_objecttype
classtype_imp = lv_classtype
read_valuations = 'X' " Read characteristic values
IMPORTING
classnum = lv_classnum
TABLES
alloclist = lt_classes
allocvalueschar = lt_charact
return = lt_return.
* Check for errors
READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
WRITE: / 'Error fetching characteristics:'.
LOOP AT lt_return INTO DATA(ls_error) WHERE type CA 'EAX'.
WRITE: / ls_error-message.
ENDLOOP.
ELSE.
WRITE: / 'Characteristics for Material', lv_objectkey, ':'.
LOOP AT lt_charact INTO DATA(ls_char).
WRITE: / ls_char-charactname, ':', ls_char-value_char.
ENDLOOP.
ENDIF.
How to Find a Specific Characteristic by Name
If you need to search for a characteristic by name (partial/full text), use:
Method 1: Using BAPI_CHARACT_GETLIST
DATA:
lt_char_list TYPE TABLE OF bapi1003_charact_list,
ls_char_sel TYPE bapi1003_charact_sel.
ls_char_sel-charactname = '*COLOR*'. " Wildcard search
ls_char_sel-description = '*'. " Optional description filter
CALL FUNCTION 'BAPI_CHARACT_GETLIST'
EXPORTING
selection = ls_char_sel
TABLES
charact_list = lt_char_list
return = lt_return.
LOOP AT lt_char_list INTO DATA(ls_char).
WRITE: / ls_char-charactname, '-', ls_char-description.
ENDLOOP.
Method 2: Using Table CABN
(Direct SQL Query)
SELECT atnam, atbez
FROM cabn
WHERE atnam LIKE '%COLOR%'
INTO TABLE @DATA(lt_char_names).
LOOP AT lt_char_names INTO DATA(ls_cabn).
WRITE: / ls_cabn-atnam, '-', ls_cabn-atbez.
ENDLOOP.
Key Tables for Characteristics
Table | Description |
---|---|
CABN | Characteristic master data |
AUSP | Characteristic values (assignments) |
KLAH | Class header data |
KSML | Class-characteristic assignments |
Conclusion
- Use
BAPI_OBJCL_GETCLASSES
to find characteristics assigned to an object. - Use
BAPI_CHARACT_GETLIST
to search characteristics by name/description. - For direct queries, use table
CABN
.