利用CRM中间件Middleware从ERP下载Customer Material的常见错误
使用事務碼VD51和VD52創建和修改Customer Material。
下圖是我在ERP創建的Material,為其維護了一個Customer Material AOP。
當下載到CRM后,在WebClient UI上顯示如下:
下載Customer Material的主要配置:
- 通過表KNMT的字段KUNNR指定待下載的Customer ID:
- 將ERP的Material 1427先下載到CRM
常見錯誤
- 錯誤消息Number not in interval XXX - XXX when downloading a customer from ERP
這個錯誤是試圖從ERP下載上圖編號為3471的Customer。
錯誤消息:
為什么錯誤消息里提到的interval是0000300000 - 0000399999?
當ERP的Customer被下載到CRM時,會創建一個對應的Business Partner的實例。
在這個例子里,通過調試方式得知CRM創建Business Partner時使用的Partner group為0002:
查看0002對應的number range設置為07:
而07對應的interval即為錯誤消息里提到的范圍:
解決方案:把0002對應的number range改為03
- 錯誤消息Form of address 0001 not designated for organization
通過調試CRM_BUPA_MAIN_VAL,發現錯誤消息在第34行拋出:
雖然這個Customer實例被判定成一個Organization(因為category字段為2),但是PERSON的字段被置位,而不是ORGANIZATN字段,因此出現這個錯誤消息。
解決方案:
在ERP事務碼SM30里,打開view V_TSAD3,把0003標記為Organization:
然后把Customer 3471的title從Ms改成Company:
之后即可成功下載。
- Customer classification 06 does not exist
通過調試發現該錯誤信息是下圖第22行拋出的,因為在表crmc_classif里找不到對應的配置項:
可以在Define Customer Class里維護這個配置表:
在我的系統里,沒有06這個classification對應的配置項。
首先要搞清楚代碼里的這個06從哪里來的?
在BAPI_CRM_SAVE里設置斷點,在調試器里把變量BAPISTRUCTURES的內容下載到本地,用excel打開,搜索關鍵字06,發現06出現在結構BSS_S040:
然后對這個結構使用"where used list",發現classification的數據來自KUKLA.
classification是在ERP Customer維護界面的Marketing項維護的:
在Define Customer Classification維護:
解決方案:要么像上圖所示在CRM里維護06對應的classification,要么將ERP里對應的字段設置為空。
- Tax number category does not exist
錯誤消息由于表tfktaxnumtype中沒有查到US5對應的配置項,所以在第32行報了錯誤消息:
下一步需要搞清楚為什么US5會被查詢到。通過調試,發現US5和JERRY都是從ERP傳過來的:
解決方案:要么在CRM里為US5維護對應的Tax category,要么清掉ERP的Tax number 5這個字段.
- Distribution channel is not allowed for sales organization
通過調試發現錯誤消息在CRM_PR_SALES_CHECK_DISTR_CHAIN里拋出,原因是因為CRM Sales organization O 50040102和distribution chain 01沒有找到對應的ERP端的匹配項.
錯誤消息在第71行拋出:
當我查看內表st_distr_chains時,發現O 50040102只有Channel 10的組合,而缺少01的組合。
解決方案:使用事務碼PPOMA_CRM添加缺少的distribution channel 01組合以及所有的division 00, 01和07:
然后執行HRBCI_ATTRIBUTES_BUFFER_UPDATE來更新表CRMD_ORGMAN_TEMP:
確保緩存表里能看到期望的O 50040102擁有的distribution channel和division的組合。錯誤消息得以解決。
- Parent not O.K.: BUPA_MAIN
原因: CUST_MAT_INFO這個下載對象有三個父下載對象。
如果這三個對象有一個下載失敗,則無法進行CUST_MAT_INFO的下載。技術上說,就是這三個parent對象在表SMOFDSTAT的對應記錄的列DNL_STATUS必須為內容D-done。
在我的例子里,Material對象的狀態為A-aborted.因此必須先修復Material下載的錯誤。
- sales area is not assigned for the header product
錯誤在CRM的COM_IL_PRDSCP_CHECK拋出:
因為這個product是從ERP下載的,我們不能在CRM端手動為其維護Distribution Chain:
回到ERP,檢查表MVKE,發現其實Sales Organization 0001和渠道01已經正確地維護到了這個product上。
再回到CRM,檢查ERP的Sales organization和渠道的組合0001-01是否在CRM端維護有對應的映射關系。 當我使用事務碼PPOMA_CRM維護了缺失的映射關系后,
重新進行一次下載,此時能觀察到Sales Area這一次被成功下載了:
之后也能在CRM UI上看到成功下載的Sales Area相關內容。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的利用CRM中间件Middleware从ERP下载Customer Material的常见错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏《我的世界》重塑品牌:启动器图标改用
- 下一篇: 比亚迪海龙等4款超跑概念图亮相!你觉得哪