生活随笔
收集整理的這篇文章主要介紹了
SAP CRM Distribution Chain数据模型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Created by Jerry Wang, last modified on Nov 25, 2014
系統(tǒng)里Product R15維護了如下格式的Distribution chain 數(shù)據(jù):
在BOL browser tool里通過Relation ProductDistrChain 從root 節(jié)點associate到Distribution chain的子節(jié)點:
使用如下report 列出指定product維護的distribution chain信息并全部刪除:
執(zhí)行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.
總結(jié)
以上是生活随笔為你收集整理的SAP CRM Distribution Chain数据模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。