天天看點

如何使用代碼的方式删除 SAP CRM 訂單 Text 資料

如果call CRM_ORDER_MAINTAIN的時候傳一個change mode = U – update,但是text content = ‘’進去能不能成功執行?

目前webclient ui上text area清空後傳的是 change mode 的值為 D。

測試:

删除之前有兩個text entry,然後我點下面Header text的edit icon進去:

如何使用代碼的方式删除 SAP CRM 訂單 Text 資料
如何使用代碼的方式删除 SAP CRM 訂單 Text 資料
如何使用代碼的方式删除 SAP CRM 訂單 Text 資料
如何使用代碼的方式删除 SAP CRM 訂單 Text 資料

總結

如果是log type的text,每次call CRM_ORDER_MAINTAIN時總是creation mode

如果是edit type的text, 使用者輸入了一個非空的text:

(1)先讀取對于UI傳入的text object, 是否存在對應的text instance:

如何使用代碼的方式删除 SAP CRM 訂單 Text 資料

對于edit type的text而言, text guid,text object name ( 如上圖0004 ) , text language

這三者唯一确定一個text instance。Text guid本身并不能确定一個edit text instance,因為所有edit text instance的text guid都等于其屬于的opportunity guid。

Text API的輸入參數不包含text change type ( P,R, ‘’ )等,隻是text object和change type是1:1關系,能很容易根據text object從customizing裡讀取到其change type。

(2) 如果對應的instance已經存在,change mode = B – Update,否則為A - create

如果是edit type的text,使用者輸入了一個空的text:

還是從DB裡先讀取對應的text instance,如果不存在,什麼也不做。

如果存在- change mode傳B ( update ) 和 D ( delete ) 似乎都可以,因為兩者最後都會trigger text deletion,隻是傳D的話,semantic上更清晰。

繼續閱讀