SAP CRM Distribution Chain数据模型
SAP CRM 数据模型 Chain distribution
2023-09-14 09:03:02 时间
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 definition public final create public . public section. class-methods CLASS_CONSTRUCTOR . class-methods GET_PROD_BY_ID importing !IV_PRODUCT_ID type COMM_PRODUCT-PRODUCT_ID returning value(RO_BOL) type ref to CL_CRM_BOL_ENTITY . class-methods SAVE_TRANSACTION returning value(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_name it_query_params = lt_query_parameter iv_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 UI5 sap.ui.core.Element 的概要介绍
- 浅谈 SAP UI5 OData 模型构造函数的输入参数
- SAP Commerce Cloud 里 OAuth2 Client 的两种配置方法
- SAP ABAP 标准表和其字段的命名规则讲解
- SAP UI5 sap.ui.layout.Grid 控件概述
- SAP CRM 如何使用 ABAP 代码读取 Campaign 的数据
- 使用 BOL API 创建 SAP CRM IBASE 数据
- SAP UI5 sap.ui.base.ManagedObject 的构造函数参数讲解
- SAP UI5 sap.ui.Device.media.RANGESETS 的使用介绍
- SAP UI5 sap.ui.Device.media 的使用介绍
- SAP UI5 sap.ui.Device.media.initRangeSet 方法的单步调试
- 使用代码给 SAP CRM appointment 和 Opportunity 创建关联关系
- [ChatGPT 勘误] SAP UI5 的 sap.ui.base.Object
- 使用 SAP CRM Application Enhancement Tool(AET) 创建扩展字段
- 使用 SAP UI5 3D Viewer 控件显示 3D 模型效果试读版
- 在同一个 ABAP session 里对 SAP CRM IBASE 进行创建,修改和删除的 ABAP 代码
- SAP QM 不常用事务代码QVM3 - Inspection Lots Without Usage Decision
- 关于 SAP UI5 接口 sap.ui.core.IAsyncContentCreation 的问题讨论
- 关于 SAP UI5 MessageProcessor 消息创建的问题
- ORA-06805: TLI Driver: could not send datagram SAP packet for SPX ORACLE 报错 故障修复 远程处理
- SAP 《MM学习指南》操作记录—- 计划协议及交货计划详解编程语言
- SAP S4 BP事务代码的业务伙伴和供应商,客户之间的表关系详解编程语言
- SAP-MM知识精解-批次管理(01)- 概览及物料的批次启用详解编程语言
- 对比SAP VS Oracle: 哪个更适合你?(sap与oracle)
- SAP和MySQL的比较与优劣势分析(sapmysql)
- Oracle CRM打造客户关系的新时代(.oracle crm)
- Oracle和SAP技术比较优势和劣势(oracle与sap比照)
- 跨界合作新模式 Oracle与SAP实现合并(oracle与sap合并)
- 对比Oracle和SAP价格比较哪个是更值得投入的选择(oracle与sap价格)
- 探索 Oracle 与 SAP 技术的开发可能性(oracle sap开发)
- Oracle CRM费用分析与投资回报测算(oracle crm费用)