我在SAP成都研究院做过的CRM中间件的项目其实并不是很多:

1. 2013年下半年和2014年上半年曾经支持过中联重科和蒙牛的CRM项目相关的中间件问题;

2. 2014年上半年做过一个CRM物料主数据的中间件开发项目;

3. 2014年负责CRM物料主数据的维护工作。

这个列表里所有的文章都是我在实际开发或者项目过程中遇到问题后记录下来的心得。2013年直到清明节前,我其实对CRM中间件是一点都不了解的,但是我的老板Poseidon让我把这一块的知识空缺补上,因为将来成都团队需要负责中间件这块的维护和持续开发。

我先把SAP中间件培训教程CR500看了一遍,了解了一些基本概念。但是这个教程讲的比较笼统,对SAP中间件标准开发人员帮助不是很大。

于是2013年清明节的时候,我把CRM物料主数据这个模块收到的SAP内部测试人员报的所有的tickets搜索出来学习了一遍,一共有200多个。有25%的tickets是因为测试人员的配置不正确造成的。我借此又积累了一些如何处理形如"如果遇到XXX的错误消息, 可能是因为YYY配置出错造成"这类问题的经验。 当我把所有内部tickets过了一遍之后,对中间件的框架代码有了一定的了解,成为写下列这些文章的基础。

我遇到使用中间件时报错误信息的这类问题,分析过程也就下列两种办法:

1. 根据错误信息的technical信息作为关键字去Google或者SAP Community上搜索。如果别人也遇到过同样问题,那就能节省很多debug时间。

2. 自己debug。

CRM中间件的上传下载方向的定义,都是以ERP作为主系统(leading system)而言,所以从ERP上抓数据到CRM称为下载,从CRM主动发送数据到ERP称为上传。

以从CRM上触发从ERP系统下载数据为例。如果下载过程不能按照您期望的工作, 那理论上说,出问题的可能性有以下几种:

1. 代码在ERP上从数据库表中抓取数据时不能正常工作: 没有抓取到期望的数据;

2. 代码从ERP数据库表里成功抓取到期望数据之后,在把数据发送给CRM之前,由于种种原因(比如配置), 一部分数据被过滤掉了,根本没有发送到CRM;

3. ERP工作完全正常,期望的数据全部发送到CRM,但是CRM inbound处理时因为配置的原因,在处理这些数据或者试图存储到CRM数据库表时出错。

这三种可能性分别对应下图Point1,2,3。

调试的关键在于找到针对这三种可能性的调试入口,即在哪里设置断点。下面我的原创文章里有讲述。

点击文末的"阅读原文", 即可在新打开的页面里通过点击超链接直接跳转到对应的文章。

1. Step by step to debug Product Initial Download in CRM system

讲述如何调试第三种可能性: https://blogs.sap.com/2013/11/27/step-by-step-to-debug-product-initial-download-in-crm-system/

2. Step by step to debug Product Initial Download in ERP system

如何调试第一和第二种可能性:https://blogs.sap.com/2013/11/27/step-by-step-to-debug-product-initial-download-in-erp-system/

3. How to debug Product Delta download in ERP and CRM side

如何调试增量下载:

https://blogs.sap.com/2013/11/28/how-to-debug-product-delta-download-in-erp-and-crm-side/

4. How to debug Product initial upload in ERP and CRM system

如何debug上传:

https://blogs.sap.com/2013/11/28/how-to-debug-product-initial-upload-in-erp-and-crm-system/

5. Step by step for IDOC debug

https://blogs.sap.com/2013/12/16/step-by-step-for-idoc-debug/

6. An example to fix Generic stop set error status in tcode SMQ1

使用事务码SMQ1发现outbound队列里状态为STOP的处理方法:

https://blogs.sap.com/2014/07/28/an-example-to-fix-generic-stop-set-error-status-in-tcode-smq1/

7. How to resolve error message IB_CRM_UPLOAD_MSG 025 in equipment replication

案例分析: 如何处理设备(equipment)下载时的错误信息IB_CRM_UPLOAD_MSG 25

https://blogs.sap.com/2014/08/27/how-to-resolve-error-message-ibcrmuploadmsg-025-in-equipment-replication/

8. Step by step to download equipments from ERP with hierarchy

如何把ERP里具有层级结构的多个设备下载到CRM, 并且层级结构在CRM依然得以保持

https://blogs.sap.com/2014/09/03/step-by-step-to-download-equipments-from-erp-with-hierarchy/

9. Step by step to upload equipment from CRM to ERP

如何从CRM上传设备到ERP

https://blogs.sap.com/2014/09/18/step-by-step-to-upload-equipment-from-crm-to-erp/

10. An example of how to find database table and field where Material text and product text is stored in ERP and CRM

同一个概念,比如ERP里叫物料(Material), header数据存在表MARA里,而CRM叫产品(Product), header数据存在COMM_PRODUCT里。这篇文章以物料描述信息这一字段为例,介绍如何去查找这个字段分别是在ERP和CRM哪张表里存储的。

https://blogs.sap.com/2016/05/07/an-example-of-how-to-find-database-table-and-field-where-material-text-and-product-text-is-stored-in-erp-and-crm/

11. A small tip about how to find a given Consolidated Database in Middleware

小技巧: 如何找到对应的Consolidated数据库表

https://blogs.sap.com/2016/05/16/a-small-tip-about-how-to-find-a-given-consolidated-database-in-middleware/

12. How to download ERP plant into CRM via request download

https://blogs.sap.com/2016/09/23/how-to-download-erp-plant-into-crm-via-request-download/

13. How to resolve error message Number not in interval XXX - XXX when downloading a customer from ERP

如何处理这个错误信息:

https://blogs.sap.com/2016/09/24/how-to-resolve-error-message-number-not-in-interval-xxx-xxx-when-downloading-a-customer-from-erp/

14. How to deal with error message Form of address 0001 not designated for organization

如何处理这个错误信息:

https://blogs.sap.com/2016/09/25/how-to-deal-with-error-message-form-of-address-0001-not-designated-for-organization/

15. Why I always see warning message Object is in status Wait when performing a request download

当我们启动下载时,期望的结果是看到下图所示的绿灯,提示我们下载处于运行(Running)状态。但有时我们收到的消息一直是等待(Wait):

这篇文章介绍如何分析引起等待状态的原因。

https://blogs.sap.com/2016/09/25/why-i-always-see-warning-message-object-is-in-status-wait-when-performing-a-request-download/

16. How to resolve error message Customer classification does not exist when downloading a customer into CRM

如何处理这个错误消息:

https://blogs.sap.com/2016/09/25/how-to-resolve-error-message-customer-classification-does-not-exist-when-downloading-a-customer-into-crm/

17. How to resolve error message Distribution channel is not allowed for sales organization when downloading customer material info record from ERP

如何处理这个错误信息:

https://blogs.sap.com/2016/09/26/how-to-resolve-error-message-distribution-channel-is-not-allowed-for-sales-organization-when-downloading-customer-material-info-record-from-erp/

18. How to use SAT to measure CRM Middleware inbound processing performance

如何用SAT分析中间件的性能问题

https://blogs.sap.com/2016/10/10/use-sat-measure-crm-middleware-inbound-processing-performance/

19. How to download Service master from ERP to CRM

如何下载Service Master

https://blogs.sap.com/2016/10/10/download-service-master-erp-crm/

20. How to resolve /SAPPSPRO/S_MAT_ENHANC_COMM issue during request download

一个filter引起的奇怪问题: 在调试器里会观察到一个奇怪的表:/SAPPSPRO/S_MAT_ENHANC_COMM

https://blogs.sap.com/2016/10/27/resolve-sappspros_mat_enhanc_comm-issue-request-download/

21. Material Sales Organization and distribution channel mapping logic in middleware

ERP和CRM销售组织和分销渠道的映射关系:

https://blogs.sap.com/2016/10/28/material-sales-organization-distribution-channel-mapping-logic-middleware/

22. How to download material division to CRM

如何下载ERP物料的division:

https://blogs.sap.com/2016/10/28/download-material-division-crm/

23. Settype CRMM_PR_SALESA attributes mapping logic between CRM and ERP

https://blogs.sap.com/2016/10/28/settype-crmm_pr_salesa-attributes-mapping-logic-crm-erp/

24. Settype CRMM_PR_SALESG attributes mapping logic between CRM and ERP https://blogs.sap.com/2016/10/31/settype-crmm_pr_salesg-attributes-mapping-logic-crm-erp/

25. Product Sales status handling logic in Middleware

物料销售状态(Sales Status)的映射逻辑

https://blogs.sap.com/2016/11/01/product-sales-status-handling-logic-middleware/

26. How to resolve error message Parent objects have not been downloaded when downloading a BOM from ERP to CRM

如何处理这个错误信息:

https://blogs.sap.com/2016/11/14/how-to-resolve-error-message-parent-objects-have-not-been-downloaded-when-downloading-a-bom-from-erp-to-crm/

27. How to download BOM from ERP to CRM – relationship STRSET or BOMITM

如何下载BOM

https://blogs.sap.com/2016/11/27/how-to-download-bom-from-erp-to-crm-relationship-strset-or-bomitm/

28. Step by step to send IDoc data into external receiver via XIF adapter

IDOC和XIF练习

https://blogs.sap.com/2016/12/23/step-by-step-to-send-idoc-data-into-external-receiver-via-xif-adapter/

29. Settype COM_TA_R3_ID – mapping between ERP Equipment and CRM Individual Object

序列号(Serial Number)知识分享

https://blogs.sap.com/2017/02/08/settype-com_ta_r3_id-mapping-between-erp-equipment-and-crm-individual-object/

30. Another reason that no IDOC is created for BUS_TRANS_MSG although all system configuration are correctly maintained

IDOC排错案例分享: 销售订单成功保存之后,系统没有自动生成对应的BDOC, 怎么办?

https://blogs.sap.com/2017/10/18/another-reason-that-no-idoc-is-created-for-bus_trans_msg-although-all-system-configuration-are-correctly-maintained/

31. BDOC Content Search tool

自己写的根据关键字搜索BDOC的工具,收到一个DBS的同事反馈说很有用。

https://blogs.sap.com/2017/10/27/bdoc-content-search-tool/

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

Jerry的CRM Middleware(中间件)文章合集的更多相关文章

  1. Jerry的ABAP原创技术文章合集

    我之前发过三篇和ABAP相关的文章: 1. Jerry的ABAP, Java和JavaScript乱炖 这篇文章包含我多年来在SAP成都研究院使用ABAP, Java和JavaScript工作过程中的 ...

  2. SAP成都研究院2018年总共87篇技术文章合集

    2018年很快就要结束了.Jerry在2017年年底准备开始写这个公众号时,给自己定的目标是:2018年至少保证每周发布一篇高质量的文章.如今2018年就快过去了,高质量与否需要大家来反馈,至少从量上 ...

  3. php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27)

    php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27) 比较好的模版 免费模板网,提供大量DIV+CSS布局网页模板下载及后台管理 ...

  4. .Net 2014 Connect() 相关文章合集

    微软在11月中旬的Connect()研讨会中公布了一系列 2015年的发展规划,今天在MSDN Blog上看到了一篇比较全的相关文章合集,这里转录一下,感兴趣的朋友可以看看. Announcement ...

  5. 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集

    title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...

  6. [原创]Machine Learning/机器学习 文章合集

    转载请注明出处:https://www.codelast.com/ ➤ 用人话解释机器学习中的Logistic Regression(逻辑回归) ➤ 如何防止softmax函数上溢出(overflow ...

  7. Android 文章合集 200+ 篇

    code小生 一个专注大前端领域的技术平台 公众号回复Android加入安卓技术群 镇楼 2017 文章合集 2017 年度文章分类整理 下面是 2018 年公众号所发表的文章分类整理 面经 一年经验 ...

  8. SpringBoot文章合集

    SpringBoot文章合集 SpringBoot合集为<尚硅谷雷神SpringBoot2零基础入门(spring boot2)>的学习以及项目中使用知识点进行整理. SpringBoot ...

  9. dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...

随机推荐

  1. 给JFinal添加 Sqlite 数据库支持

    [转自] http://my.oschina.net/u/237078/blog/69934 Sqlite 的单文件便携性.高性能在开发中方便性无与伦比,即使部署在中小型应用中也胜任有余. 在JFin ...

  2. python 文件处理(基础字符)

    基于字符read & write 最基本的文件操作当然就是在文件中读写数据.这也是很容易掌握的.现在打开一个文件以进行写操作: 1. fileHandle = open ( 'test.txt ...

  3. PIE SDK存储格式转换

      1.算法功能简介 影像存储格式转换可以实现栅格数据存储格式的自由转换,其中存储格式可以是 BSQ. BIP. BIL 三种格式. 遥感数字图像数据的存储与分发,通常采用以下三种数据格式: BSQ( ...

  4. Hash算法总结

    1. Hash是什么,它的作用 先举个例子.我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志.也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的 ...

  5. Bloom filter和Counting bloom filter

    Bloom filter原理: https://en.wikipedia.org/wiki/Bloom_filter 推导过程结合博客: https://blog.csdn.net/jiaomeng/ ...

  6. 抱歉最近朋友结婚去浪了几天~未来几天会正常更新.今天带来XML文件解析

    三种解析方法 DOM,SAX,XMLPullParse;你以为我要讲三种嘛 错 ,我只讲一种 ,其他两种我只是说下优缺点, 一.DOM解析器 优点: DOM解析器在解析XML文档时,会把文档中的所有元 ...

  7. React.js 小书 Lesson11 - 配置组件的 props

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson11 转载请注明出处,保留原文链接和作者信息. 组件是相互独立.可复用的单元,一个组件可能在不 ...

  8. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

  9. 在 Azure Web 应用中创建 PHP 应用程序

    本分步指南将通过 Azure Web 应用帮助您启动并运行示例 PHP 应用程序.除 PHP 外,Azure Web 应用还支持其他语言,如 Java..NET.Node.JS.Python.Ruby ...

  10. 14_synchronized深入

    [脏读] 对于对象同步和异步的方法,我们在设计程序的时候,一定要考虑问题的整体,不然会出现不一致的错误,最经典的错误的就是脏读(dirty read). [实例代码] package com.higg ...