如何使用程式碼建立和讀取 SAP CRM 訂單的 Text 資料
SAP CRM Fiori 應用裡,可以為 Opportunity 等訂單,維護 note.
note creation 後臺實現實際上很簡單. GM6上建立一個note:
HTTP post的request payload裡就只有opp guid和user輸入的note
後臺返回的response也只有這兩個attribute:
最後到webclient UI上卻發現兩條只讀的text,型別為Description和Preparation
後臺實現:
直接用OPEN SQL 找當前建立的opportunity的transaction type對應的text determination 資訊。
Opportunity 對應的text object type hardcode成CRM_ORDERH,changeable的屬性也寫死成P,因此當前的實現,通過Fiori UI創建出來的note 型別都為log ( changeable = P )
最後Opportunity OData的實現並沒有call 底層的text API,而是直接call One order的modification FM,
只需要把text determination ID和待建立的note content和language傳入 modify FM:
在webclient UI上看到兩個不同text type的note的原因是因為backend system 配置裡,指定型別為P的text的content會自動transfer到 changes = R的text裡,即Description和Preparation。
note 資料的讀取
沒有采取 One Order API 即 CRM_ORDER_READ.
讀的時候,傳入的引數是Opp header的guid:
OData的read實現裡,根據opp的guid直接去text header的資料庫表裡取所有該opp上維護的note:
Note實際的內容讀取直接通過note底層的API READ_TEXT,( 而不是one order的CRM_ORDER_READ ),
傳入的引數就是note的determination id,language code,text header id和hard code的text type CRM_ORDERH:
更多Jerry的原創文章,盡在:"汪子熙":