What is BAPI for Characteristics – Find Name?

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:

  1. BAPI_CHARACT_GETDETAIL
  • Gets detailed information about a specific characteristic
  • Requires the characteristic name as input
  1. BAPI_CHARACT_GETLIST
  • Retrieves a list of characteristics based on filters
  1. 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

TableDescription
CABNCharacteristic master data
AUSPCharacteristic values (assignments)
KLAHClass header data
KSMLClass-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.

Leave a Comment