利用CRM中介軟體Middleware從ERP下載CustomerMaterial的常見錯誤

JerryWangSAP發表於2018-03-04

使用事務碼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相關內容。


相關文章