SAP CRM的订单模型移植到S/4HANA后,在订单保存功能上作出的改进

简介:

Once an order is saved, our new event callback CRM_SRVO_H_SAVE_EC will be called:

Main logic is in this tool class, method save_header:

In save_header, header and item save is done separately within a LOOP:

A new term "Global Update Buffer"

(1) I introduce a terminology “Global Update Buffer", which consists of three internal table where the corresponding insertion, update and deletion operation for CURRENT ORDER is included.

(2) The "Global update buffer" will be passed into a new update function module for Order Header.
Example, suppose I have made changes on Order description:

the GUB looks like below:

save_single_header consists of three steps

Step1 - Each convert class is responsible to merge its own part of change into GUB.

How can each convert class know whether there is any change in current transaction for its responsible component?
I use the function module CRM_ORDER_UPDATE_TABLES_DETERM to detect the change.

Step2 for those component which does not have any change in current transaction, its object buffer must also be merged into GUB.

Consider this scenario, you changes header shipping data ( set SHIPPING ) but no change in ORDERADM_H. If you don't merge the object buffer of ORDERADM_H to GUB, the corresponding field for ORDERADM_H will be initial. So when finally update function module is called, the initial fields of ORDERADM_H will be stored into new header table.
This is done in this method:

I add a new method GET_OB in convert class' interface. The supported component are looped, to merge its object buffer to GUB.

Step3 - call new update function module with merged GUB

Item save has exactly the same logic

Since it is possible that one order can have different item with different item object type,


Here below is an example, I have made changes on item shipping data:

And this is how GUB for item looks like:


本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
1月前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
89 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
1月前
|
开发者 数据处理 数据管理
SAP HANA 的不同类型
SAP HANA 的不同类型
39 9
SAP HANA 的不同类型
|
1月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
1月前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
22 0
|
1月前
|
数据库 存储 安全
使用 SAP HANA Cloud 的一些优势
使用 SAP HANA Cloud 的一些优势
27 6
使用 SAP HANA Cloud 的一些优势
|
1月前
|
数据库
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
17 5
|
1月前
|
Web App开发 开发者 存储
介绍一个 webp 格式转 png 格式的软件:XNConvert
介绍一个 webp 格式转 png 格式的软件:XNConvert
30 6
介绍一个 webp 格式转 png 格式的软件:XNConvert
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
32 0
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
18 0
|
2月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
22 0