我在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. OPENROWSET read excel

    由于64位系统已经不支持 oledb 4.0访问 xls 1. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 去http://download.microsoft. ...

  2. 《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感

    在使用淘宝时发现搜索框很神奇,它可以将将我们想要的商品全部查询出来,但是我们并感觉不到数据库查询的过程,速度很快.通过阅读这篇文章让我知道了搜索框背后包含着很多技术,对我以后的学习可能很有借鉴. 平时 ...

  3. vue 的计算属性computed自我理解

    类型:{ [key: string]: Function | { get: Function, set: Function } } 计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算.注意, ...

  4. Hash算法总结

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

  5. spark第三篇:Cluster Mode Overview 集群模式预览

    Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContex ...

  6. myEclipse注册码地址2019年最新

    myEclipse注册码地址2019年最新 https://www.sojson.com/myeclipse8.5/

  7. Unity 修改windows窗口的标题

    修改windows窗口的标题名称,就是修改下图的东西: 第一种: using UnityEngine; using System; using System.Runtime.InteropServic ...

  8. DNS服务器设置

    1,域名解析:ip能够访问,但是域名不能访问. 2,配置好网络之后,切换到命令行模式,配置好的网络便不能用了. 具体方法: 打开vim /etc/sysconfig/network-scripts/i ...

  9. Apache Beam中的函数式编程理念

    不多说,直接上干货! Apache Beam中的函数式编程理念 Apache Beam的编程范式借鉴了函数式编程的概念,从工程和实现角度向命令式妥协. 编程的领域里有三大流派:函数式.命令式.逻辑式. ...

  10. unity消息队列

    解决一些当一些消息事件需要处理时,但是 相应的系统还没有初始化来解决的问题 每个系统执行层也有一个消息队列,这样系统没有做好初始化,不执行就好了. 参考:http://blog.csdn.net/ws ...