SAP CRM订单数据库表CRMD_SHIPPING的填充原理-阿里云开发者社区

开发者社区> c位出道> 正文

SAP CRM订单数据库表CRMD_SHIPPING的填充原理

简介: SAP CRM订单数据库表CRMD_SHIPPING的填充原理
+关注继续查看

In my recent project I need to figure out the logic how fields in table CRMD_PRICING are populated.


Take several of them highlighted below for example:



image.pngHere is the test data I used to demonstrate the scenario.


I have created a corporate account which is assigned to Sales Organization O 50000732, Distribution Channel 01, Division 02.


image.pngAnd in Pricing->Pricing in the Business Transaction->Determine Pricing Procedures, I maintain a corresponding determination procedure:

image.pngThe document pricing procedure for my own transaction type ZSRV is maintained as S:image.pngFor customer pricing procedure flag, it is maintained in the sales data in my corporate account:

image.pngSo far all customizing are done.

Now create a new Service order, enter that corporate account as Sold-to Party:

image.pngfunction module CRM_PRICING_PARTNER_CHANGE_EC will be called.


Inside it CRM_PRICING_MERGE_FROM_BUPA_OW will be called to get the pricing data from that corporate account.


image.pngThose data are read from account and stored in variable ls_data:image.pngimage.pngLater they are copied to pricing workarea field by field:image.pngThis is how pricing set is created.

Once you saved the service order successfully,

image.pngExecute the report below to directly print out the data in CRMD_SHIPPING which belongs to this service order:image.pngREPORT tool_display_order_price_head.

PARAMETERS: objid TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '5700000507',

            obtype TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'SRVO'.

SELECT SINGLE guid INTO @DATA(lv_guid) FROM crmd_orderadm_h

   WHERE object_id = @objid AND process_type = @obtype.

IF sy-subrc <> 0.

 WRITE:/ ' Service Order does not exist'.

 RETURN.

ENDIF.

SELECT SINGLE * INTO @DATA(ls_link) FROM crmd_link

  WHERE guid_hi = @lv_guid AND objtype_hi = '05' AND objtype_set = '09'.

IF sy-subrc <> 0.

 WRITE:/ 'no price data exists for this order'.

 RETURN.

ENDIF.

SELECT SINGLE * INTO @DATA(ls_price) FROM crmd_pricing

  WHERE guid = @ls_link-guid_set.

IF sy-subrc <> 0.

 WRITE:/ 'no price data exists for this order'.

 RETURN.

ENDIF.

cl_crm_1order_set_print_tool=>print_structure( ls_price ).Source code of CL_CRM_1ORDER_SET_PRINT_TOOL:CLASS cl_crm_1order_set_print_tool DEFINITION

 PUBLIC

 FINAL

 CREATE PUBLIC .

 PUBLIC SECTION.

   CLASS-METHODS print_structure

     IMPORTING

       !is_data TYPE any .

 PROTECTED SECTION.

 PRIVATE SECTION.

ENDCLASS.

CLASS CL_CRM_1ORDER_SET_PRINT_TOOL IMPLEMENTATION.

 METHOD print_structure.

   DATA(lo_struct_descr) = CAST cl_abap_structdescr( cl_abap_datadescr=>describe_by_data( is_data ) ).

   DATA(lt_comp) = lo_struct_descr->components.

   DO.

     ASSIGN COMPONENT sy-index OF STRUCTURE is_data TO FIELD-SYMBOL(<data>).

     IF sy-subrc <> 0.

       RETURN.

     ENDIF.

     READ TABLE lt_comp ASSIGNING FIELD-SYMBOL(<comp>) INDEX sy-index.

     IF <data> IS NOT INITIAL.

        DATA(lv_color) = sy-index MOD 4.

        DATA(lv_print) = |Field: { <comp>-name }, value: { <data> } |.

        CASE lv_color.

           WHEN 0.

             WRITE: / lv_print  COLOR COL_NEGATIVE.

           WHEN 1.

             WRITE: / lv_print  COLOR COL_POSITIVE.

           WHEN 2.

             WRITE: / lv_print  COLOR COL_GROUP.

           WHEN 3.

             WRITE: / lv_print  COLOR COL_KEY.

        ENDCASE.

     ENDIF.

   ENDDO.

 ENDMETHOD.

ENDCLASS.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10092 0
云数据库HBase增强版全文索引助力收钱吧低成本、高性能实现订单搜索
收钱吧,隶属于上海喔噻互联网科技有限公司,是中国移动支付服务商领军者,致力于用网络和数据的力量服务线下实体商家。收钱吧不仅为商家提供专业移动支付收款工具,同时也是为商家提供金融、广告、营销管理、供应链等多种服务的生意帮手。2014年12月,收钱吧正式上线,开创了中国移动支付市场“一站式收款”时代,并成功研发了“收钱吧扫码王”等全场景智能收款设备,产品获得多项国家专利。目前收钱吧服务超过330万商家,日服务3000万人次。
845 0
SAP CRM订单抬头级别的组织架构数据是如何自动拷贝到行项目的
SAP CRM订单抬头级别的组织架构数据是如何自动拷贝到行项目的
22 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11819 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11893 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
+关注
2316
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载