Created by Jerry Wang, last modified on Nov 25, 2014

系统里Product R15维护了如下格式的Distribution chain 数据:

在BOL browser tool里通过Relation ProductDistrChain 从root 节点associate到Distribution chain的子节点:

使用如下report 列出指定product维护的distribution chain信息并全部删除:


执行report,列出product下面所属的所有的distribution信息并 全部删除:

REPORT zhana_product_create_dc.
PARAMETERS: id TYPE comm_product-product_id OBLIGATORY DEFAULT 'R15'.
DATA(product) = cl_crm_prod_internal_tool=>get_prod_by_id( id ).
DATA: lv_index TYPE int4 VALUE 1.
DATA(lo_dist_chain) = product->get_related_entities( iv_relation_name = 'ProductDistrChain' ).
IF lo_dist_chain IS INITIAL.WRITE: / 'Current product does not have distribution chain' COLOR COL_NEGATIVE.RETURN.
ELSE.DATA(lo_dist_chain_single) = lo_dist_chain->get_first( ).WHILE lo_dist_chain_single IS NOT INITIAL.WRITE: / 'Distribution Chain index: ' , lv_index COLOR COL_NEGATIVE.DATA(lv_sale_org)  = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'SALES_ORG'  ).DATA(lv_disc_cha)  = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'DISTR_CHAN'  ).DATA(lv_short_txt) = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'SHORT_DESC'  ).DATA(lv_sales_txt) = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'SALES_DESC'  ).DATA(lv_distr_txt) = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'DISTR_DESC'  ).DATA(lv_distr_id)  = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'DSTRBCHAIN_ID'  ).DATA(lv_long_txt)  = lo_dist_chain_single->get_property_as_string( iv_attr_name = 'DESCRIPTION'  ).WRITE:/ 'SalesOrg: ', lv_sale_org COLOR COL_POSITIVE, ' Distribution Chain: ' , lv_disc_cha COLOR COL_POSITIVE.WRITE: / 'Short text:' , lv_short_txt COLOR COL_TOTAL, ' Sales text: ' , lv_sales_txt COLOR COL_TOTAL.WRITE: / 'Distribution text: ' , lv_distr_txt COLOR COL_GROUP, ' Distribution ID: ', lv_distr_id COLOR COL_GROUP.WRITE: / 'Long text: ' , lv_long_txt COLOR COL_KEY.lo_dist_chain_single->delete( ).lo_dist_chain_single = lo_dist_chain->get_next( ).ADD 1 TO lv_index.ENDWHILE.DATA(lv_saved) = cl_crm_prod_internal_tool=>save_transaction( ).WRITE: / 'saved successfully?' , lv_saved COLOR COL_TOTAL.
ENDIF.class CL_CRM_PROD_INTERNAL_TOOL definitionpublicfinalcreate public .
public section.class-methods CLASS_CONSTRUCTOR .class-methods GET_PROD_BY_IDimporting!IV_PRODUCT_ID type COMM_PRODUCT-PRODUCT_IDreturningvalue(RO_BOL) type ref to CL_CRM_BOL_ENTITY .class-methods SAVE_TRANSACTIONreturningvalue(RV_SUCCESS) type ABAP_BOOL .
protected section.
private section.class-data SO_BOL_CORE type ref to CL_CRM_BOL_CORE .
ENDCLASS.
CLASS CL_CRM_PROD_INTERNAL_TOOL IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method CL_CRM_PROD_INTERNAL_TOOL=>CLASS_CONSTRUCTOR
* +-------------------------------------------------------------------------------------------------+
* +--------------------------------------------------------------------------------------</SIGNATURE>method CLASS_CONSTRUCTOR.so_bol_core = cl_crm_bol_core=>get_instance( ).so_bol_core->load_component_set( 'PROD_ALL' ).endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method CL_CRM_PROD_INTERNAL_TOOL=>GET_PROD_BY_ID
* +-------------------------------------------------------------------------------------------------+
* | [--->] IV_PRODUCT_ID                  TYPE        COMM_PRODUCT-PRODUCT_ID
* | [<-()] RO_BOL                         TYPE REF TO CL_CRM_BOL_ENTITY
* +--------------------------------------------------------------------------------------</SIGNATURE>METHOD get_prod_by_id.DATA:lo_collection      TYPE REF TO if_bol_entity_col,lo_root_entity     TYPE REF TO cl_crm_bol_entity,lv_view_name       TYPE crmt_view_name,lv_query_name      TYPE crmt_ext_obj_name,lt_query_parameter TYPE crmt_name_value_pair_tab,ls_query_parameter LIKE LINE OF lt_query_parameter,lv_size            TYPE i.ls_query_parameter-name = 'PRODUCT_ID'.ls_query_parameter-value = iv_product_id.APPEND ls_query_parameter TO lt_query_parameter.ls_query_parameter-name = 'MAX_ROWS'.ls_query_parameter-value = 1.APPEND ls_query_parameter TO lt_query_parameter.lv_query_name = 'ProdAdvancedSearchProducts'.lo_collection = so_bol_core->query(iv_query_name               = lv_query_nameit_query_params             = lt_query_parameteriv_view_name                = lv_view_name ).ASSERT lo_collection IS NOT INITIAL.ASSERT lo_collection->size( ) = 1.ro_bol = lo_collection->get_current( ).ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method CL_CRM_PROD_INTERNAL_TOOL=>SAVE_TRANSACTION
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RV_SUCCESS                     TYPE        ABAP_BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>method SAVE_TRANSACTION.so_bol_core->modify( ).DATA(lo_transaction) = so_bol_core->get_transaction( ).DATA(lv_changed) = lo_transaction->check_save_needed( ).CHECK lv_changed EQ abap_true.DATA(lv_success) = lo_transaction->save( ).IF lv_success = abap_true.lo_transaction->commit( ).rv_success = abap_true.ELSE.lo_transaction->rollback( ).ENDIF.endmethod.
ENDCLASS.


SAP CRM Distribution Chain数据模型相关推荐

  1. SAP cross distribution chain status在Fiori应用中的draft handling

    The explanation why draft handling is necessary in Fiori application could be found from Fiori Desig ...

  2. SAP RETAIL WB02 为门店激活物料分类账报错 - Distribution chain NMI1 00 not valid for retail price determination -

    SAP RETAIL WB02 为门店激活物料分类账报错 - Distribution chain NMI1 00 not valid for retail price determination - ...

  3. Pricing in SAP CRM and Cloud for Customer

    CRM的price determination C4C C4C的price分Internal Pricing和External Pricing两种. Internal Pricing涉及到的工作中心: ...

  4. 观察者模式在SAP CRM One Order回调函数中的应用

    例如需求是搞清楚function module CRM_PRODUCT_I_A_CHANGE_ORGM_EC在什么样的场景下会被调用.当然最费时间的做法是设一个断点,然后跑对应的场景,观察断点何时被触 ...

  5. 浅谈SAP CRM开发——技术概念、与ECC 系列产品区别

    SAP CRM首先和SAP ECC,SAP BW一样,都是SAP的一个产品,而不是属于ECC的一个模块,当然CRM在很多功能方面和ECC有重复,比如CRM的SALES和ECC的SD,CRM的SERVI ...

  6. 《SAP CRM管理与实施指南》一一2.2 SAP CRM基础功能

    本节书摘来自华章计算机<SAP CRM管理与实施指南>一书中的第2章,第2.2节,作者:邹荫文 著,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 SA ...

  7. 如何使用代码给product创建distribution chain

    Created by Jerry Wang, last modified on Jul 16, 2014 下列report能给指定的product创建3个用户输入的distribution chain ...

  8. performance improvement in Distribution chain scenario

    Created by Jerry Wang, last modified on Jul 16, 2014 当删除一个product下面的所有distribution chain并且成功save之后,在 ...

  9. SAP CRM系统订单模型的设计与实现

    SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对S ...

最新文章

  1. 几道 BAT 算法面试中经常问的「字符串」问题
  2. 2021年春季学期-信号与系统-第七次作业参考答案
  3. 安装库_免费软件安装库
  4. 微信小程序--数据存储
  5. 单片机读tf卡c语言程序,单片机读写U盘闪盘超精简C源程序
  6. Linux查找字符串包含在某目录所有文件中
  7. mavonEditor 有序无序列表不能显示数字和小原点的问题
  8. Mac上MacVim安装与配置
  9. jq如何获取选中option的值_如何用jQuery获得select的值
  10. Audiority Big Goat Mac(模拟建模复古失真插件)
  11. springcloud分布式事务处理方案
  12. 工控c语言培训,[转载]最完整的工控培训、PLC培训教程大全
  13. java list 冒泡排序_冒泡排序详细分析JAVA
  14. Java服务优雅停机_JAVA优雅停机的实现
  15. Matlab c2d离散用法
  16. Pr 2019版安装教程
  17. Linux系统-gzip命令 – 压缩和解压文件
  18. 水源热泵系统的优点和缺点有哪些?
  19. 漏洞解决方案-Http host头攻击
  20. tomcat--catalina

热门文章

  1. (转)WPF中让窗体不显示最大化,最小化,关闭按钮
  2. jvm classLoader 过程
  3. springMVC 与mybatis 整合 demo(maven 工程)
  4. 第三次学JAVA再学不好就吃翔(part100)--文件名称过滤器
  5. 探索Julia(part3)--数据类型
  6. python基础(part15)--迭代
  7. SAP 电商云 FooterNavigationComponent 的设计细节
  8. SAP 电商云 Spartacus UI 的 checkout 设计
  9. Jest 测试框架 expect 和 匹配器 matcher 的设计原理解析
  10. 对 SAP Spartacus 进行服务器端构建时,编译的资源列表