Skip to Content
Author's profile photo Jerry Wang

How to create product category by ABAP code

In ERP we can create new material type by copying from existing one using tcode OMS2:

This new type could be downloaded into CRM system via customizing download. A product category with prefix MAT_ will be automatically created.

And here below is source code to create new product category using MAT_ as parent category by ABAP code.

METHOD replicate_category.

    CONSTANTS:
      BEGIN OF gc_application,
        sales      TYPE comt_application VALUE '01', "r3-produkthier
        purchasing TYPE comt_application VALUE '02', "r3 mat class
        product    TYPE comt_application VALUE '03', "r3 mat types
        config     TYPE comt_application VALUE '04',
        internet   TYPE comt_application VALUE '05',
      END OF gc_application.

    CONSTANTS:

      BEGIN OF gc_product_type,
        material  TYPE comt_product_type VALUE '01',
        service   TYPE comt_product_type VALUE '02',
        finance   TYPE comt_product_type VALUE '03',
        ip_prod   TYPE comt_product_type VALUE '04',
        warranty  TYPE comt_product_type VALUE '05',
        tradeitem TYPE comt_product_type VALUE '06',
        fs_prod   TYPE comt_product_type VALUE '07',
      END OF gc_product_type.

    rv_success = abap_false.
    DATA: lv_hierarchy_guid TYPE comt_hierarchy_guid,
          lv_parent_guid    TYPE comt_category_guid,
          lt_categoryt      TYPE comt_categoryt_tab.


* Prerequisite: the corresponding hierarchy is already downloaded from ERP
* Read the hierarchy which is assigned to application 03
* (product type material) in transaction COMM_PRAPPLCAT
    CALL FUNCTION 'COM_HIERARCHY_READ_WITH_APPL'
      EXPORTING
        iv_application    = gc_application-product
        iv_product_type   = gc_product_type-material
      IMPORTING
        ev_hierarchy_guid = lv_hierarchy_guid
      EXCEPTIONS
        not_found         = 1
        OTHERS            = 2.

    CHECK sy-subrc = 0.

    DATA(ls_cat_text) = VALUE comt_categoryt( langu = sy-langu category_text = iv_text
    text_upper_case = iv_text ).
    TRANSLATE ls_cat_text-text_upper_case TO UPPER CASE.
    APPEND ls_cat_text TO lt_categoryt.

    select single category_guid into lv_parent_guid FROM comm_category
       where category_id = 'MAT_'.

    CALL FUNCTION 'COM_PRODCAT_API_CREATE_CAT'
      EXPORTING
        iv_category_id           = iv_cat_id
        iv_hierarchy_guid        = lv_hierarchy_guid
        iv_parent_guid           = lv_parent_guid
        iv_product_type          = gc_product_type-material
        it_categoryt             = lt_categoryt
        iv_logsys                = iv_log_sys " 'QI3CLNT502'
        iv_non_assignable        = abap_false
      EXCEPTIONS
        hierarchy_not_maintained = 1
        wrong_call               = 2
        category_id_exists       = 3
        id_scheme_error          = 4
        error                    = 5
        OTHERS                   = 6.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      RETURN.
    ENDIF.

    CALL FUNCTION 'COM_PRODUCT_CATEGORY_SAVE_ALL'
      EXPORTING
        iv_update_task    = ' '
        iv_update_pme     = ' '
        iv_hierarchy_guid = lv_hierarchy_guid
      EXCEPTIONS
        internal_error    = 1
        OTHERS            = 2.
    ASSERT sy-subrc = 0.

    COMMIT WORK AND WAIT.

    rv_success = abap_true.

  ENDMETHOD.
Method signature:

How to use this code
Run method in SE24, specify new product category id via parameter iv_cat_id:

Execute method, ensure ev_success equals to abap_true.

Once created, the category could be searched via tcode COMM_HIERARCHY:

And the category could be used to create new product in WebUI:

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Ketika obat-obatan habis serta terlambat cuci darah, kondisi saya pasti langsung menurun, tapi sekarang sudah ada Obat Tradisional herbal sejagat serta teh Murbei yang pasti menjadi kawan hidup saya.  obat herbal gagal ginjal kronis tanpa cuci darah