SAP CRM One Order函数CHANGE_OW的设计原理-阿里云开发者社区

开发者社区> 开发者小助手-bz4> 正文

SAP CRM One Order函数CHANGE_OW的设计原理

简介: SAP CRM One Order函数CHANGE_OW的设计原理
+关注继续查看

Use the naming convention CRM*CHANGE_OW to search in SE37 and there are totally 92 function modules found in my system.

image.png

Still use the same scenario ( change Closing Date in Opportunity header ) to research how this CHANGE_OW function works:

image.png

Use the following report to trigger the corresponding CHANGE_OW function module for Opportunity header, CRM_OPPORT_H_CHANGE_OW.

image.png

Execute the report under transaction code SAT and you can easily find this function module consists of five major steps:

image.png

(1) CRM_OPPORT_H_READ_OB

The logic is explained in blog Buffer logic in One Order header extension Read.

The input for this object buffer read function module only contains opportunity guid and latest closing date specified by consumer:


image.png

The data read from CRM_OPPORT_H_READ_OB:

image.png

(2) CRM_OPPORT_H_FILL_OW

This function module fills the latest order data specified by consumer into object work area. Details could be found from this blog: Logic of FILL_OW function module in One Order.


(3) CRM_OPPORT_H_CHECK_OW


Please kindly notice that there are also check logic performed in function module CRM_OPPORT_H_FILL_OW, Let’s recall what kinds of checks are done there:


a. CRM_ORDER_GENERAL_CHECKS_FC


This check could be switched off by function module CRM_ORDER_SET_ACTIVE_OW.

A customer exit if_ex_crm_order_fieldcheck and a new BAdI definition crm_order_fieldcheck_new is allowed for customer to implement their own check logic and called within this check function module.


b. CRM_FIELDCHECK_CALL


This FM will call dedicated check function module for a given field registered in system table CRMC_FIELDCHECK:


image.png

And back to CRM_OPPORT_H_CHECK_OW in this blog, the consistency of each field in Opportunity header are checked there.

image.png

(4) CRM_OPPORT_H_PUT_OB


Once the object work area passes validation successfully, it will be put to Opportunity header object buffer via function module CRM_OPPORT_H_PUT_OB.


image.png

(5) CRM_OPPORT_H_PUBLISH_OW

This function module raises event via generic function module CRM_EVENT_PUBLISH_OW:

image.png

In this example why CRM_OPPORT_H_SET_PRICE_DATE_EC is called?

image.png

Check via tcode CRMV_EVENT,

image.png

And the callback is registered here:

image.png

Further reading

I have written a series of blogs to explain how One Order API works. The blogs are written based on a simple scenario: read, change and save field “Closing Date” in Opportunity header level.


Buffer logic in One Order header extension Read


Change Scenario


CRM_ORDER_MAINTAIN


|- CRM_ORDER_MAINTAIN_MULTI_OW


|- CRM_ORDER_MAINTAIN_SINGLE_OW


|- CRM_ORDER_H_MAINTAIN_OW


|- CRM_OPPORT_H_MAINTAIN_OW


|- CRM_OPPORT_H_CHANGE_OW


|- CRM_OPPORT_H_READ_OB


|- CRM_OPPORT_H_FILL_OW


|- CRM_OPPORT_H_CHECK_OW


|- CRM_OPPORT_H_PUT_OB


|- CRM_OPPORT_H_PUBLISH_OW


Save Scenario


CRM_ORDER_SAVE


|- CRM_ORDER_SAVE_OW


|- CRM_EVENT_SET_EXETIME_MULTI_OW


|- CRM_OPPORT_H_SAVE_EC


|- CRM_ORDER_TABLE_SAVE


|- CRM_OBJECT_NAMES_DETERMINE


|- CRM_ORDER_UPDATE_TABLES_DETERM


|- CRM_ORDER_SET_OBJECTS_TO_SAVE


CRM_OPPORT_H_UPDATE_DU


Create Scenario


CRM_ORDER_MAINTAIN


|- CRM_ORDER_MAINTAIN_MULTI_OW


|- CRM_ORDER_MAINTAIN_SINGLE_OW


|- CRM_ORDER_H_MAINTAIN_OW


|- CRM_ORDERADM_H_MAINTAIN_OW


|- CRM_ORDERADM_H_CREATE_OW


|- CRM_OPPORT_H_MAINTAIN_OW


|- CRM_OPPORT_H_READ_OB


|- CRM_OPPORT_H_CREATE_OW


|- CRM_OPPORT_H_CHANGE_OW


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

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8399 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10188 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12037 0
DockOne微信分享(一四零):Serverless云函数架构精解
本文讲的是DockOne微信分享(一四零):Serverless云函数架构精解【编者的话】继虚拟机,容器技术之后,无服务器化成为新的行业热点,无服务器云函数可以让用户无需关心服务器的部署运营,只需开发最核心的业务逻辑,即可实现上线运营,具备分布容灾能力,可依据负载自动扩缩容,按照实际调用次数与时长计费。
2579 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11376 0
2315
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载