`
JerryWang_SAP
  • 浏览: 1030609 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置

阅读更多

In my blog Six kinds of debugging tips Fabian Geyer raised a very good point about the trouble during ERP Application trouble shooting. Let me just quote his good statement:

“Several ERP applications (esp. Financials) often use a “message collector” technique especially when handling “multiple objects”, where after the application ist “detecting” an error it will be “stored” to an “error collection” and after all checks have been done the list of maybe many errors?is shown in a popup or list. In these cases, when the message is “shown” is far to late to analyze, because the application data/situation which is causing the error is analyzed somewhere else (far earlier in the runtime). In these cases I often use breakpoints in FM “MESSAGE_STORE”. Similar handling is needed in case the BC Application Log-technique is used (SLG0, SLG1 etc.) a breakpoint in FM BAL_LOG_MSG_ADD can help. “

Actually in CRM application the error message handling logic is the same. Let me just use the example of Service Contract processing as example: How to find the code where the message CRM_ORDERADM_I with number 505 is raised?

 

 

Approach1: Use the source code scan

For more details about how to use source code scan, please refer to my previous blog. When I am using this approach to write the blog, it just took me several minutes to find the exact code position. First we use the source code scan tool ( search keyword = 505) to find the constant ITEM_TYPE_NOT_FOUND for message number 505. Since I know the program CRM_STATUS_CON has defined constants for all status, then I execute the search report with the parameter below:

 

 

And here is the result:

 

 

Then use the source code scan once again. The question is how to specify the input parameter?

(1) We know that service contract is implemented via one order framework. Just display function module CRM_ORDER_* for example CRM_ORDER_READ, and get its package name CRM_ORDER:

 

 

(2) execute the search report with the following input:

 

 

Nothing found. Then I change CRM_ORDER to CRM_ORDER*. This time we get seven candidates, then just set a breakpoint at each and repeat your scenario.

 

 

The third one in result above is proven to be the location we are just looking into:

 

 

Approach2: Use function module BAL_LOG_MSG_ADD

This tip is suggested by Fabian Geyer and is also very good. Just set a breakpoint on function module BAL_LOG_MSG_ADD and repeat the scenario in service contract. The breakpoint is triggered( you can observe the FM is now displayed in the top-most of callstack ) and the code position we found this way is just exactly the same as Approach 1. In this case the Approach 2 is even more efficient than Approach 1 to quickly locate the code we look for. Thank Fabian for sharing us such useful tip.

 

 

Setting breakpoint in function module BALW_BAPIRETURN_GET2 would be another good attempt.

Why neither approach works for me? Why the breakpoint is not triggered in my application?

Still use service contract for example, the business transaction like Sales Order, Service Order and Service Contract are implemented via so-called One Order Framework. And as clearly described by Fabian which I quote in the beginning of this part, the error detection logic of One Order Framework, in this example is the logic in form DETERMINE_ITEM_TYPE, is ONLY done for the first time the item is inserted. Once an error is found, the respective function module in the function group CRM_MESSAGES will be called to persist the error message. Later on when the erroneous service contract is opened once again, there are no item type check any more, instead the error message is fetched via read function module in the function group and displayed in the UI.

 

 

When I delete one item product in the service contract, the obsolete error message for that item would also be deleted by the corresponding FM CRM_MESSAGES_DELETE.

 

 

So when I am trouble shooting the error message raised in Business Transaction application, I will either delete the old erroneous item then recreate it, or create a new one from scratch. Of course if we need to do debugging in production system, both could be inappropriate.

In this case if you can ensure that the error message raised in customer production system could also be reproduced in your dev system, then you can still use the tips in this blog to find the position in an efficient way.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    SAP CRM同步问题记录

    在SAP CRM(客户关系管理)系统中,同步问题往往是由于不同组件间的通信故障或配置错误导致的。本文将深入探讨两个具体的问题及其解决方案,帮助用户理解和处理SAP CRM中的同步异常。 首先,我们遇到的第一个问题是...

    sap crm 一点通

    ### SAP CRM 开发核心知识点详解 #### 一、SAP CRM 概览 SAP CRM(Customer Relationship Management)是一款由SAP公司推出的企业级软件,主要用于优化企业的客户关系管理过程。与SAP ECC(Enterprise Core ...

    SAP CRM 7.0 PA-CR100

    标题与描述中的"SAP CRM 7.0 PA-CR100"指向的是SAP公司的一款企业级软件——客户关系管理(Customer Relationship Management)系统的一个特定版本与课程代码。SAP CRM是SAP Business Suite的一部分,它帮助企业优化...

    sap CRM 2007 IDES.rar

    【SAP CRM 2007 IDES】是一款专门针对SAP客户关系管理(CRM)2007版本的集成开发和教育环境(IDES)。IDES全称为Integrated Development and Education System,它为开发者和学习者提供了完整的SAP CRM系统,以便...

    SAP CRM系统介绍

    SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍SAP CRM系统介绍

    SAP CRM Tables 1

    标题"SAP CRM Tables 1"指的是关于SAP客户关系管理(CRM)系统中的数据库表的讨论,这通常涉及系统的数据结构、业务逻辑以及如何在CRM环境中存储和处理数据。SAP CRM是一个集成的解决方案,帮助企业管理和优化其销售...

    SAP CRM管理方案介绍

    ### SAP CRM管理方案介绍 #### 一、总体方案概述 SAP CRM(Customer Relationship Management)是一种全面的企业级解决方案,旨在帮助企业管理与客户的交互过程。它不仅涵盖了传统的市场营销、销售和服务等核心...

    sap crm ipc 增强介绍

    综上所述,SAP CRM IPC增强不仅提升了企业的定价效率和准确性,还为企业提供了更多定制化的选项,帮助企业更好地适应不断变化的市场环境。通过利用IPC增强的功能,企业可以更有效地管理其定价策略,从而在竞争激烈的...

    SAP_CRM中文自学笔记

    SAP CRM系统的学习和应用对于初学者来说可能具有一定难度,但通过对SAP CRM的系统学习和掌握,用户可以快速找到配置点或增强点,从而完成定制需求。为了帮助初学者更好地学习SAP CRM,强晟在2010年制作的自学笔记,...

    SAP CRM 2007 IDES

    SAP CRM 2007 IDES

    SAP_CRM简介

    SAP CRM,全称为SAP客户关系管理,是一款全面、以客户为中心的电子商务解决方案,旨在帮助企业管理和优化与客户的互动,特别是在销售、市场营销和服务环节。它包含三个主要组件:可操作的CRM、可分析的CRM和可协作的...

    SAP CRM会员管理

    SAP公司全套CRM解决方案覆盖了销售...新的SAP CRM解决方案能够为销售、市场营销及售后服务等业务提供综合性的、具有行业特性的流程,帮助各类企业制定出明确的决策,给客户提供出持续、高质的服务,成为最佳运营企业。

    SAP-CRM-系统用户界面操作指导手册

    ### SAP CRM 系统用户界面操作指导手册知识点详解 #### 一、引言 SAP CRM(Customer Relationship Management)作为一款先进的客户关系管理系统,在帮助企业更好地管理客户信息、提高销售效率及客户服务方面扮演着...

    SAP CRM解决方案

    CRM原厂解决方案 SAP标准CRM业务模式介绍,CRM产品

    SAP CRM行业解决方案.pdf

    SAP CRM行业解决方案 SAP CRM行业解决方案是一个基于客户关系管理(Customer Relationship Management,CRM)的解决方案,旨在帮助企业更好地管理客户关系、提高销售业绩和客户满意度。该解决方案提供了一整套的...

    sap crm install

    4. **SAP NetWeaver AS(Application Server)安装**:这是SAP应用的基础,包含了运行SAP CRM所需的各种组件。你需要按照SAP提供的文档,安装AS并进行基本配置。 5. **SAP CRM软件安装**:这一步骤通常包括导入...

    SAP CRM课程中文自学笔记

    SAP CRM(客户关系管理)是...综上所述,SAP CRM课程中文自学笔记是一份适合初学者的、全面的自学材料,能够让初学者快速掌握SAP CRM的基础知识和应用技能,为未来在企业中实施和操作SAP CRM解决方案打下坚实的基础。

    SAP CR100 文档,用于SAP CRM培训

    SAP CR100 用于SAP CRM培训。

    SAP IDOC - 消息输出 - 采购订单<->销售订单

    总结来说,SAP IDOC在采购订单到销售订单的集成流程中起到至关重要的作用,它协调了不同系统间的数据交换,并通过消息输出控制确保了业务流程的透明性和准确性。通过对NAST、NACE、BRF+等参数的精细配置,企业能够...

Global site tag (gtag.js) - Google Analytics