使用代码创建SAP Sales area
生活随笔
收集整理的這篇文章主要介紹了
使用代码创建SAP Sales area
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Created by Jerry Wang on Nov 25, 2014
代碼如下:
REPORT ZPROD_MULTIPLE_CHANGE. PARAMETERS: prd1 type comm_product-product_id OBLIGATORY DEFAULT 'ZJERRYTEST11241',prd2 type comm_product-product_id OBLIGATORY DEFAULT '1002030'. DATA: lt_productm TYPE comt_product_maintain_api_extt,ls_productm TYPE comt_product_maintain_api_ext,lt_sale_data TYPE CRMT_CRMM_PR_SALESH_MAINTAIN_T,lt_prod_data TYPE COMT_PRODUCT_MAINTAIN_API_SETT,ls_prod_data LIKE LINE OF lt_prod_data,et_bapireturnh TYPE bapiret2_tab,lt_product TYPE comt_product_s_tab,lt_prod_out TYPE comt_product_tab_guid,lt_shorttext TYPE comt_pr_shtext_maintain_tab,ls_shorttext LIKE LINE OF lt_shorttext,lt_prod_id TYPE STANDARD TABLE OF comm_product-product_id,lt_prod_db TYPE STANDARD TABLE OF comm_product-product_guid. START-OF-SELECTION.APPEND prd1 TO lt_prod_id."APPEND prd2 TO lt_prod_id.LOOP AT lt_prod_id ASSIGNING FIELD-SYMBOL(<id>).CALL FUNCTION 'CONVERSION_EXIT_PRID1_INPUT'EXPORTINGinput = <id>IMPORTINGoutput = <id>.ENDLOOP.SELECT product_guid INTO TABLE lt_prod_db FROM comm_product FOR ALL ENTRIES IN lt_prod_idWHERE product_id = lt_prod_id-table_line.ASSERT sy-subrc = 0.LOOP AT lt_prod_db ASSIGNING FIELD-SYMBOL(<guid>).DATA(ls_product) = VALUE comt_product_s( product_guid = <guid> ).APPEND ls_product TO lt_product.ENDLOOP.CALL FUNCTION 'COM_PRODUCT_READ_MULTIPLE'EXPORTINGit_product = lt_productIMPORTINGet_product = lt_prod_out.LOOP AT lt_prod_out ASSIGNING FIELD-SYMBOL(<result>).MOVE-CORRESPONDING <result> TO ls_productm-header-com_product.ls_productm-header-pr_number = sy-tabix.PERFORM fill_sales_area USING ls_productm-header-com_product-product_guid CHANGING lt_sale_data .ls_prod_data-settype_id = 'CRMM_PR_SALESH'.GET REFERENCE OF lt_sale_data INTO ls_prod_data-data.APPEND ls_prod_data TO lt_prod_data.ls_productm-data = lt_prod_data.APPEND ls_productm TO lt_productm.ENDLOOP.CALL FUNCTION 'COM_PRODUCT_MAINTAIN_MULT_API'EXPORTINGiv_check_only = ' 'iv_suppress_inactive = 'X'iv_activate_inactive_products = 'X'IMPORTINGet_bapireturn = et_bapireturnhCHANGINGct_product = lt_productmEXCEPTIONSinternal_error = 1OTHERS = 2.LOOP AT et_bapireturnh ASSIGNING FIELD-SYMBOL(<error>).WRITE: / 'Error: ', <error>-message COLOR COL_NEGATIVE.ENDLOOP.CHECK et_bapireturnh IS INITIAL.CALL FUNCTION 'CRM_PRODUCT_UI_SAVE'EXPORTINGiv_update_task = abap_false.ASSERT sy-subrc = 0.COMMIT WORK AND WAIT.WRITE: / 'Mass change finished successfully' COLOR COL_POSITIVE.FORM fill_sales_area USING guid TYPE comm_product-product_guid CHANGING ct_sales TYPE CRMT_CRMM_PR_SALESH_MAINTAIN_T.CLEAR: ct_sales.FIELD-SYMBOLS: <line> LIKE LINE OF ct_sales.APPEND INITIAL LINE TO ct_sales ASSIGNING <line>.<line>-update_type = 'I'.<line>-relation-client = sy-mandt.<line>-relation-product_guid = guid.<line>-relation-fragment_guid = '380BDF7B502D63F7E10000009B38FA0B'.<line>-relation-sales_org = 'O 50003059'.<line>-relation-distr_chan = '01'.<line>-relation-logsys = 'AG3CLNT001'.ENDFORM.如果執行時遇到如下error message:
debug發現error message是line 24 行raise出來的:
將missing logical system assign上即可:
最后report里hard code的sales area能夠成功被創建。
總結
以上是生活随笔為你收集整理的使用代码创建SAP Sales area的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lxt是什么币
- 下一篇: 使用SAP ABAP 事物码 ST12