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

i042416發表於2018-03-10

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

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

當下載到CRM後,在WebClient UI上顯示如下:

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

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

下載Customer Material的主要配置:

    1. 透過表KNMT的欄位KUNNR指定待下載的Customer ID:
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. 將ERP的Material 1427先下載到CRM

常見錯誤

    1. 錯誤訊息Number not in interval XXX - XXX when downloading a customer from ERP

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

這個錯誤是試圖從ERP下載上圖編號為3471的Customer。
錯誤訊息:

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

為什麼錯誤訊息裡提到的interval是0000300000 - 0000399999?
當ERP的Customer被下載到CRM時,會建立一個對應的Business Partner的例項。
在這個例子裡,透過除錯方式得知CRM建立Business Partner時使用的Partner group為0002:

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

檢視0002對應的number range設定為07:

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

而07對應的interval即為錯誤訊息裡提到的範圍:
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤

解決方案:把0002對應的number range改為03
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. 錯誤訊息Form of address 0001 not designated for organization

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

透過除錯CRM_BUPA_MAIN_VAL,發現錯誤訊息在第34行丟擲:

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

雖然這個Customer例項被判定成一個Organization(因為category欄位為2),但是PERSON的欄位被置位,而不是ORGANIZATN欄位,因此出現這個錯誤訊息。

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

解決方案:

在ERP事務碼SM30裡,開啟view V_TSAD3,把0003標記為Organization:

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

然後把Customer 3471的title從Ms改成Company:

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

之後即可成功下載。
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. Customer classification 06 does not exist

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

      透過除錯發現該錯誤資訊是下圖第22行丟擲的,因為在表crmc_classif裡找不到對應的配置項:

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

可以在Define Customer Class裡維護這個配置表:

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

在我的系統裡,沒有06這個classification對應的配置項。

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

首先要搞清楚程式碼裡的這個06從哪裡來的?

在BAPI_CRM_SAVE裡設定斷點,在偵錯程式裡把變數BAPISTRUCTURES的內容下載到本地,用excel開啟,搜尋關鍵字06,發現06出現在結構BSS_S040:

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

然後對這個結構使用"where used list",發現classification的資料來自KUKLA.

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

classification是在ERP Customer維護介面的Marketing項維護的:

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

在Define Customer Classification維護:

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

解決方案:要麼像上圖所示在CRM裡維護06對應的classification,要麼將ERP裡對應的欄位設定為空。

    1. Tax number category does not exist

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

錯誤訊息由於表tfktaxnumtype中沒有查到US5對應的配置項,所以在第32行報了錯誤訊息:

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

下一步需要搞清楚為什麼US5會被查詢到。透過除錯,發現US5和JERRY都是從ERP傳過來的:

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

解決方案:要麼在CRM裡為US5維護對應的Tax category,要麼清掉ERP的Tax number 5這個欄位.

利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. Distribution channel is not allowed for sales organization

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

      透過除錯發現錯誤訊息在CRM_PR_SALES_CHECK_DISTR_CHAIN裡丟擲,原因是因為CRM Sales organization O 50040102和distribution chain 01沒有找到對應的ERP端的匹配項.

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

錯誤訊息在第71行丟擲:

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

當我檢視內表st_distr_chains時,發現O 50040102只有Channel 10的組合,而缺少01的組合。

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

解決方案:使用事務碼PPOMA_CRM新增缺少的distribution channel 01組合以及所有的division 00, 01和07:

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

然後執行HRBCI_ATTRIBUTES_BUFFER_UPDATE來更新表CRMD_ORGMAN_TEMP:

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

確保快取表裡能看到期望的O 50040102擁有的distribution channel和division的組合。錯誤訊息得以解決。
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. Parent not O.K.: BUPA_MAIN

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

原因: CUST_MAT_INFO這個下載物件有三個父下載物件。


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

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

利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤
    1. sales area is not assigned for the header product
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤

錯誤在CRM的COM_IL_PRDSCP_CHECK丟擲:


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

因為這個product是從ERP下載的,我們不能在CRM端手動為其維護Distribution Chain:

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

回到ERP,檢查表MVKE,發現其實Sales Organization 0001和渠道01已經正確地維護到了這個product上。

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

再回到CRM,檢查ERP的Sales organization和渠道的組合0001-01是否在CRM端維護有對應的對映關係。 當我使用事務碼PPOMA_CRM維護了缺失的對映關係後,
利用CRM中介軟體Middleware從ERP下載Customer Material的常見錯誤

重新進行一次下載,此時能觀察到Sales Area這一次被成功下載了:

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

之後也能在CRM UI上看到成功下載的Sales Area相關內容。

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2151704/,如需轉載,請註明出處,否則將追究法律責任。

相關文章