1. 程式人生 > >利用CRM中間件Middleware從ERP下載Customer Material的常見錯誤

利用CRM中間件Middleware從ERP下載Customer Material的常見錯誤

解決 則無 sign scp 是否 下載到本地 rom bec when

使用事務碼VD51和VD52創建和修改Customer Material。
下圖是我在ERP創建的Material,為其維護了一個Customer Material AOP。
技術分享圖片

當下載到CRM後,在WebClient UI上顯示如下:
技術分享圖片
技術分享圖片

下載Customer Material的主要配置:

    1. 通過表KNMT的字段KUNNR指定待下載的Customer ID:

技術分享圖片

    1. 將ERP的Material 1427先下載到CRM

常見錯誤

    1. 錯誤消息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

技術分享圖片

    1. 錯誤消息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:
技術分享圖片
之後即可成功下載。
技術分享圖片

    1. 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裏對應的字段設置為空。

    1. Tax number category does not exist
      技術分享圖片

錯誤消息由於表tfktaxnumtype中沒有查到US5對應的配置項,所以在第32行報了錯誤消息:
技術分享圖片
下一步需要搞清楚為什麽US5會被查詢到。通過調試,發現US5和JERRY都是從ERP傳過來的:

技術分享圖片

技術分享圖片
解決方案:要麽在CRM裏為US5維護對應的Tax category,要麽清掉ERP的Tax number 5這個字段.
技術分享圖片

    1. 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的組合。錯誤消息得以解決。

技術分享圖片

    1. Parent not O.K.: BUPA_MAIN
      技術分享圖片

原因: CUST_MAT_INFO這個下載對象有三個父下載對象。
技術分享圖片

如果這三個對象有一個下載失敗,則無法進行CUST_MAT_INFO的下載。技術上說,就是這三個parent對象在表SMOFDSTAT的對應記錄的列DNL_STATUS必須為內容D-done。
在我的例子裏,Material對象的狀態為A-aborted.因此必須先修復Material下載的錯誤。
技術分享圖片

    1. 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的常見錯誤