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.png

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.

相关文章
|
4月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
2月前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
47 6
|
3月前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
237 5
|
3月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。
|
2月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
|
4月前
|
SQL 存储 关系型数据库
数据库的基本原理
数据库的基本原理
41 2
|
4月前
|
SQL 存储 多模数据库
数据库技术探索:原理、应用与未来发展趋势
一、引言 数据库技术作为信息时代的基石,已经深入到社会的各个角落
|
4月前
|
存储 SQL Cloud Native
数据库技术揭秘:核心原理与前沿实践
一、引言 数据库技术是信息化时代的基石,它为我们提供了一种高效、可靠的方式来存储、检索和管理数据
|
3月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
52 0
|
3月前
|
SQL 存储 搜索推荐
SQL游标的原理与在数据库操作中的应用
SQL游标的原理与在数据库操作中的应用
下一篇
无影云桌面