我在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的原创技术文章,请关注公众号”汪子熙”或者扫描下面二维码: