一段用API批量修改SAP CRM产品主数据的ABAP代码
发布日期:2021-06-30 14:04:07
浏览次数:3
分类:技术文章
本文共 3912 字,大约阅读时间需要 13 分钟。
*&---------------------------------------------------------------------**& Report PROD_MULTIPLE_CHANGE*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT ZPROD_MULTIPLE_CHANGE.PARAMETERS: prd1 type comm_product-product_id OBLIGATORY DEFAULT 'ZJERRYTEST11241', prd2 type comm_product-product_id OBLIGATORY DEFAULT 'ZJERRYTEST1124'.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, lv_operation TYPE char1 VALUE 'U', 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(). CALL FUNCTION 'CONVERSION_EXIT_PRID1_INPUT' EXPORTING input = IMPORTING output = . ENDLOOP. SELECT product_guid INTO TABLE lt_prod_db FROM comm_product FOR ALL ENTRIES IN lt_prod_id WHERE product_id = lt_prod_id-table_line. ASSERT sy-subrc = 0. LOOP AT lt_prod_db ASSIGNING FIELD-SYMBOL( ). DATA(ls_product) = VALUE comt_product_s( product_guid = ). APPEND ls_product TO lt_product. ENDLOOP. CALL FUNCTION 'COM_PRODUCT_READ_MULTIPLE' EXPORTING it_product = lt_product IMPORTING et_product = lt_prod_out. PERFORM fill_prod_data. PERFORM change_and_save using ABAP_FALSE. PERFORM prepare_for_second_insert CHANGING lt_productm. PERFORM change_and_save USING ABAP_TRUE. FORM fill_prod_data. LOOP AT lt_prod_out ASSIGNING FIELD-SYMBOL( ). MOVE-CORRESPONDING 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 lv_operation CHANGING lt_sale_data . ls_prod_data-settype_id = 'CRMM_PR_SALESH'. GET REFERENCE OF lt_sale_data INTO ls_prod_data-data. CLEAR: lt_prod_data. APPEND ls_prod_data TO lt_prod_data. ls_productm-data = lt_prod_data. APPEND ls_productm TO lt_productm. ENDLOOP. ENDFORM. FORM prepare_for_second_insert CHANGING ct_product TYPE comt_product_maintain_api_extt. CLEAR: ct_product. PERFORM fill_prod_data. ENDFORM. FORM fill_sales_area USING guid TYPE comm_product-product_guid operation TYPE char1 CHANGING ct_sales TYPE CRMT_CRMM_PR_SALESH_MAINTAIN_T. CLEAR: ct_sales. FIELD-SYMBOLS: LIKE LINE OF ct_sales. APPEND INITIAL LINE TO ct_sales ASSIGNING . -update_type = operation. -relation-client = sy-mandt. -relation-product_guid = guid. -relation-fragment_guid = '380BDF7B502D63F7E10000009B38FA0B'. -relation-sales_org = 'O 50003059'. -relation-distr_chan = '01'. -relation-logsys = 'AG3CLNT001'. ENDFORM. FORM change_and_save USING save type abap_bool. CLEAR: et_bapireturnh. CALL FUNCTION 'COM_PRODUCT_MAINTAIN_MULT_API' EXPORTING iv_check_only = ' ' iv_suppress_inactive = 'X' iv_activate_inactive_products = 'X' IMPORTING et_bapireturn = et_bapireturnh CHANGING ct_product = lt_productm EXCEPTIONS internal_error = 1 OTHERS = 2. LOOP AT et_bapireturnh ASSIGNING FIELD-SYMBOL( ). WRITE: / 'Error: ', -message COLOR COL_NEGATIVE. ENDLOOP. CHECK et_bapireturnh IS INITIAL. IF save = 'X'. CALL FUNCTION 'CRM_PRODUCT_UI_SAVE' EXPORTING iv_update_task = abap_false. ASSERT sy-subrc = 0. COMMIT WORK AND WAIT. WRITE: / 'Mass change finished successfully' COLOR COL_POSITIVE. ENDIf.ENDFORM.
转载地址:https://jerry.blog.csdn.net/article/details/103631471 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月23日 18时28分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
为什么要反对比特币,这不代表是空气币
2019-05-01
5G技术如何运用在数字资产方面
2019-05-01
区块链技术运用最广泛的还是保险
2019-05-01
我们提出了DeFi项目如何成为聚合器,有两种路径
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01
聚合器运用在什么地方最合适
2019-05-01
区块链可以解决供应链的问题,包括食品方面
2019-05-01
首个聚合器怎么产生的,并运用领域在什么
2019-05-01
区块链的优势和劣势的对比
2019-05-01
新技术,区块链能用在什么领域
2019-05-01
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
为什么币圈的基础设施越来越多
2019-05-01
区块链投资要注意这几点
2019-05-01
市场套利策略是什么
2019-05-01
跨市场套利怎么处理
2019-05-01
当博士进入币圈会怎么样
2019-05-01
以太坊技术分解
2019-05-01
以太坊技术怎么提供安全性
2019-05-01
如何验证以太坊技术安全性
2019-05-01