惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
T
The Blog of Author Tim Ferriss
U
Unit 42
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
Y
Y Combinator Blog
F
Full Disclosure
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
S
SegmentFault 最新的问题
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
T
Threatpost
GbyAI
GbyAI
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
L
LangChain Blog
T
Tenable Blog
C
Cisco Blogs
T
Threat Research - Cisco Blogs
Google Online Security Blog
Google Online Security Blog

博客园 - Raymond Zhang

案例分享:电信行业零售业务CRM架构 客户关系管理及客户服务简介(译) How-to: disable the web-security-check in Chrome for Mac 基于HANA Cloud的SAP Mobility Platform正式发布 Automate debugging using ABAP debugger scripts Some notes about CRM Roles Concept in Web UI Fixing the SAPOSS RFC connection via Secure Storage Migration How-to: Move the items in local to specific packages Some basic skills (2) - Configure the printer for your SAP systems A trouble shooting case - Background job ZABC failed Gateway Notes (1) SAP Netweaver Gateway Add-on for Backend System Installation Some basic skills (1) - Change the background image after logon Why is “GUID” used in SAP CRM? Enhancement on SAP CRM Web UI page toolbar How to estimate the active condition records in a CRM system (2) How to estimate the active condition records in a CRM system (1) How-to: Set up the delta upload for Vendor Master Data from CRM to ERP Introduction of new feature ‘Tag Cloud’ with SAP CRM 7.0 Ehp 1
SPM (Service Parts Management) Inter-Company STO - CRM Billing issue
Raymond Zhang · 2012-01-07 · via 博客园 - Raymond Zhang

Lately I met an issue in the inter-company STO scenario in the SPM solution (Service Parts Management) with one of our customers.

The scenario starts from Purchase Order(Stock Transfer Order) in ERP and based on that an Replenishment (outbound) delivery order is created and the delivery order will be replicated to EWM system for picking and goods issue, after that however, the billing due list will be generated in CRM system and therefore billing document will be created via integration with CRM Billing. This article will focus on the detailed issue only but not the SPM solution. For more information about SPM, you can check details here.

The issue is that pricing information on the purchase order, is not actually copied into the final billing document in CRM system. 

Pricing info in Purchase Order (ERP)

image

Pricing info in Billing document (CRM)

image

This scenario looks complicated because it involves several different systems and from business point of view we also see topics like inter-company purchasing and CRM billing.

My very first understanding is that the pricing of purchase order will be copied to delivery document and then copied to CRM billing document through CRM Middleware. Therefore if there is inconsistency, there should be something wrong in between and the very first idea is to check the pricing information of the delivery document.

image

Roughly looking into this condition data, I thought it was wrongly copied from the PO/STO. However, after reconsidering the business process, I realized there should be something more than just copying the condition data.

In inter-company STO, there would be two plants involved. One is issuing the product while the other is receiving. The purchase order is initialized by the Receiving Plant but the Replenishment Delivery Order is initialized by the Issuing Plant and also the Billing document should be initialized by the Issuing Plant. Therefore I double checked the STO and ODO, if you look at the two screenshots above, you will also find that condition types inside the two orders are actually different.

Checking Pricing for Purchasing (it is called “Calculation Schema” in MM instead of “Pricing Procedure” in SD)

Path: SPRO –> Mat. Mgt –> Purchasing –> Conditions –> Def. Pricing Deter. Process –> Def. Calc. Schema

imageimage

Checking Pricing for SD

Path: SPRO –> Sales & Distr. –> Basic Functions –> Pricing –> Pricing Control –> Def. & Assign Pricing Procedure. (or you can use t-code v/08)

imageimage

I am not familiar with the SPM configuration but obviously I see that the Purchase Order’s condition data is coming from Pricing Procedure in MM while the delivery document’s condition data is coming from Pricing Procedure in SD. And eventually the information passing didn’t work between these two different conditions.

Until now I still don’t understand why the customer is configuring the pricing both in SD and MM in such a way (and I would like to know if anybody want to share it). However, after discussion with one of our SPM developers, I got some more information.

“Actually during delivery posting, the STO pricing conditions are read from the STO and transferred directly to CRM without copying them into the delivery. This is what is called the ‘delivery interface’ in SPM. The logic for Inter company STO billing functionality in SPM has been implemented in FM /SPE/STO_CONDITIONS_ADD. “ He said.

The logic for condition data transferring in the FM /SPE/STO_CONDITIONS_ADD.

View Code

 1   LOOP AT it_lips INTO ls_lips.
 2 
 3 * Process only replenishment deliveries
 4 * Does the item refer to a purchase order?
 5     CHECK ls_lips-vgtyp = vbtyp_bestell.
 6 * Is the Delivery Relevant for Billing?
 7     CHECK ls_lips-fkrel = 'V'.
 8 
 9     IF ls_likp-vbeln <> ls_lips-vbeln.
10       READ TABLE it_likp INTO ls_likp
11                          WITH KEY vbeln = ls_lips-vbeln.
12       CHECK sy-subrc = 0.
13     ENDIF.
14 * Is the document an outbound delivery and not a return delivery ?
15     CHECK ls_likp-vbtyp = vbtyp_lino AND ls_likp-werks IS NOT INITIAL.
16 
17 * Is there a number for conditions in the delivery?
18     CHECK ls_likp-knumv IS NOT INITIAL.
19 
20 * Read condition from the purchase order item
21     PERFORM konv_read USING    ls_lips-vgbel
22                                ls_lips-vgpos
23                                ls_likp-knumv
24                                ls_lips-posnr
25                       CHANGING lt_konv.
26 
27 
28 * Add conditions from the PO item to the conditions of delivery item
29     LOOP AT lt_konv INTO ls_konv.
30 
31 * Condition record of type 0VPR might be added by middleware
32       CHECK ls_konv-kschl <> lc_kschl_0vpr.
33 
34 * Do not add conditions, which are already defined in delivery
35       READ TABLE it_konv WITH KEY knumv = ls_likp-knump
36                                   kposn = ls_lips-posnr
37                                   kschl = ls_konv-kschl
38                          TRANSPORTING NO FIELDS.
39       CHECK sy-subrc <> 0.
40 
41       APPEND ls_konv TO et_konv.
42 
43     ENDLOOP.
44 
45   ENDLOOP.

After this, further check was done in CRM’s configuration for billing document.

Checking pricing strategy for CRM Billing (in CRM).

Path: SPRO –> CRM –> Billing –> Def. Billing Item Categories / Def. Billing Types.

Configure the corresponding billing document type and the billing document item category.

image   image

Debugging finally confirm that the Pricing Type is the root cause. When it is set as “Copy Manual Pricing Elements and Redetermine the Others”, the pricing info somehow is not flowed in. As it is a integration scenario, I am not quite sure how the pricing info is updated. (should be some BAPI or FM in CRM to receive the updates). After change the pricing type to “Copy Pricing Element no change and Redetermine the Others”, the issue was resolved.

(The end)

Raymond Zhang
If you want to discuss with me about any idea, please contact me at raymond.zhang@sap.com