zoukankan      html  css  js  c++  java
  • 如何使用ABAP代码创建SAP Product Category

    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:


    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    滴水穿石mysql添加授权用户命令
    滴水穿石修改IIS服务器的MIME类型
    滴水穿石Java静态代理
    滴水穿石MyEclipse中集成开发插件Spket
    滴水穿石Java连接Access数据库及其操作
    好站收藏
    apache缓存设置
    Linux Apache开启gzip压缩提高网页下载速度
    web制作、开发人员需知的Web缓存知识
    cookiec和session学习笔记
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13570530.html
Copyright © 2011-2022 走看看