SAP CRM Product category的決定邏輯

i042416發表於2020-02-25

(1) UI上我們可以看到Category AB裡面有一個indicator叫”Base Category”.

SAP CRM Product category的決定邏輯

(2)在GenIL這層我們也可以看到Product有兩個relation,一個”ProductBaseCategory”,一個”ProductCategory”. 這兩個relation共享的一個object(表),也就是”COMM_PRPRDCATR”.

SAP CRM Product category的決定邏輯

(3)但是我們發現其實這張表裡面並沒有存”Is_Base_Category”這個欄位。也就是這個欄位是在runtime時候determine出來的。

SAP CRM Product category的決定邏輯

(4)從下圖可以看出這個欄位是在MAP_TO_UI_STRUCTURE這個介面裡面實現的,這個介面在GenIL API裡面用來實現將Native API layer的資料轉換成GenIL layer的資料格式的作用。(由此可以看出這個介面可以用來實現一個GenIL layer的transformation field的功能)

SAP CRM Product category的決定邏輯

(5) 從上面的程式碼中可以看出一個category assignment是不是base category,是透過看這個category對應的hierarchy id是不是與product的hierarchy id相同來判斷的。而在建立Product時候,第一次選擇的category的hierarchy id將會賦給product的hierarchy id。

而之後在選擇category的時候就不能選擇與第一個category相同的hierarchy了。

SAP CRM Product category的決定邏輯

上圖可以看出當你選擇category時候,已有的category對應的hierarchy將會被作為”Is Not”的查詢引數被預設生成出來。

如果你強行刪除這些限制條件,選擇一個不正確的category,如下error message將會觸發。

SAP CRM Product category的決定邏輯


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

相關文章