利用CRM中间件Middleware从ERP下载Customer Material的常见错误

使用事务码VD51和VD52创建和修改Customer Material。
下图是我在ERP创建的Material,为其维护了一个Customer Material AOP。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第1张图片

当下载到CRM后,在WebClient UI上显示如下:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第2张图片

下载Customer Material的主要配置:

    1. 通过表KNMT的字段KUNNR指定待下载的Customer ID:
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第3张图片
    1. 将ERP的Material 1427先下载到CRM

常见错误

    1. 错误消息Number not in interval XXX - XXX when downloading a customer from ERP


这个错误是试图从ERP下载上图编号为3471的Customer。
错误消息:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第4张图片

为什么错误消息里提到的interval是0000300000 - 0000399999?
当ERP的Customer被下载到CRM时,会创建一个对应的Business Partner的实例。
在这个例子里,通过调试方式得知CRM创建Business Partner时使用的Partner group为0002:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第5张图片

查看0002对应的number range设置为07:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第6张图片

而07对应的interval即为错误消息里提到的范围:
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第7张图片

解决方案:把0002对应的number range改为03
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第8张图片
    1. 错误消息Form of address 0001 not designated for organization


      利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第9张图片

通过调试CRM_BUPA_MAIN_VAL,发现错误消息在第34行抛出:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第10张图片

虽然这个Customer实例被判定成一个Organization(因为category字段为2),但是PERSON的字段被置位,而不是ORGANIZATN字段,因此出现这个错误消息。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第11张图片

解决方案:

在ERP事务码SM30里,打开view V_TSAD3,把0003标记为Organization:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第12张图片

然后把Customer 3471的title从Ms改成Company:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第13张图片

之后即可成功下载。
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第14张图片
    1. Customer classification 06 does not exist



      通过调试发现该错误信息是下图第22行抛出的,因为在表crmc_classif里找不到对应的配置项:

利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第15张图片

可以在Define Customer Class里维护这个配置表:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第16张图片

在我的系统里,没有06这个classification对应的配置项。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第17张图片

首先要搞清楚代码里的这个06从哪里来的?

在BAPI_CRM_SAVE里设置断点,在调试器里把变量BAPISTRUCTURES的内容下载到本地,用excel打开,搜索关键字06,发现06出现在结构BSS_S040:

利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第18张图片

然后对这个结构使用"where used list",发现classification的数据来自KUKLA.


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第19张图片
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第20张图片

classification是在ERP Customer维护界面的Marketing项维护的:

利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第21张图片

在Define Customer Classification维护:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第22张图片
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第23张图片

解决方案:要么像上图所示在CRM里维护06对应的classification,要么将ERP里对应的字段设置为空。

    1. Tax number category does not exist


      利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第24张图片

错误消息由于表tfktaxnumtype中没有查到US5对应的配置项,所以在第32行报了错误消息:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第25张图片

下一步需要搞清楚为什么US5会被查询到。通过调试,发现US5和JERRY都是从ERP传过来的:

利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第26张图片
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第27张图片

解决方案:要么在CRM里为US5维护对应的Tax category,要么清掉ERP的Tax number 5这个字段.


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第28张图片
    1. Distribution channel is not allowed for sales organization


      利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第29张图片

      通过调试发现错误消息在CRM_PR_SALES_CHECK_DISTR_CHAIN里抛出,原因是因为CRM Sales organization O 50040102和distribution chain 01没有找到对应的ERP端的匹配项.


      利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第30张图片

错误消息在第71行抛出:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第31张图片

当我查看内表st_distr_chains时,发现O 50040102只有Channel 10的组合,而缺少01的组合。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第32张图片

解决方案:使用事务码PPOMA_CRM添加缺少的distribution channel 01组合以及所有的division 00, 01和07:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第33张图片

然后执行HRBCI_ATTRIBUTES_BUFFER_UPDATE来更新表CRMD_ORGMAN_TEMP:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第34张图片

确保缓存表里能看到期望的O 50040102拥有的distribution channel和division的组合。错误消息得以解决。
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第35张图片
    1. Parent not O.K.: BUPA_MAIN


原因: CUST_MAT_INFO这个下载对象有三个父下载对象。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第36张图片

如果这三个对象有一个下载失败,则无法进行CUST_MAT_INFO的下载。技术上说,就是这三个parent对象在表SMOFDSTAT的对应记录的列DNL_STATUS必须为内容D-done。
在我的例子里,Material对象的状态为A-aborted.因此必须先修复Material下载的错误。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第37张图片
    1. sales area is not assigned for the header product
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第38张图片

错误在CRM的COM_IL_PRDSCP_CHECK抛出:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第39张图片

因为这个product是从ERP下载的,我们不能在CRM端手动为其维护Distribution Chain:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第40张图片

回到ERP,检查表MVKE,发现其实Sales Organization 0001和渠道01已经正确地维护到了这个product上。



再回到CRM,检查ERP的Sales organization和渠道的组合0001-01是否在CRM端维护有对应的映射关系。 当我使用事务码PPOMA_CRM维护了缺失的映射关系后,
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第41张图片

重新进行一次下载,此时能观察到Sales Area这一次被成功下载了:


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第42张图片
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第43张图片

之后也能在CRM UI上看到成功下载的Sales Area相关内容。


利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第44张图片
利用CRM中间件Middleware从ERP下载Customer Material的常见错误_第45张图片

你可能感兴趣的:(利用CRM中间件Middleware从ERP下载Customer Material的常见错误)