2017-06-15 23 views
-2

是否可以使用Sdk.Sync.Update更新記錄的選項列表類型屬性null?這不適合我。使用Sdk.Sync.Update將選項列表值更新爲null

這是我做的:

var detailsObj = updatedDetailsObj; // I get updatedDetailsObj from previous logic, not shown here 
var operation = new Sdk.Entity("kcl_operation"); 
operation.setId(operationId, false); // I have operationId from previous logic, not shown here 
operation.addAttribute(new Sdk.String("op_updatedAccount", detailsObj.UpdatedAccount)); // works, get updated 
operation.addAttribute(new Sdk.OptionSet("op_updatedExplanation", null)); // doesn't get updated 
Sdk.Sync.update(operation); 

Sdk.Sync.update建成後,將字符串字段得到更新,但選擇列表字段保留其先前的價值,而不是null。 我還看了一下在Sdk.Sync.update內發送的XML,實際上它缺少一對"op_updatedExplanation"null

如何使它工作?

補充: 我不會做一個形式裏面,但網格內頁,讓用戶檢查一些記錄,我需要做的所有這些更新。

+3

您呼叫的方法是習俗,他們是包裝到真正的SDK的消息,你應該問到是誰寫的方法 –

+0

我不不使用它們,我會接受的答案,顯示瞭如何介意可以用另一種方式來完成。 – HeyJude

+0

Guido提到,你正在使用一個自定義庫,它很可能不支持將選項設置值正確設置爲null。只顯示您顯示的代碼段,我們無法幫助您解決此問題。 –

回答

0

標準CRM SDK代碼(假設實體名稱和字段名):

Entity operation = new Entity("kcl_operation"); 
operation.Id = operationId; 
operation["op_updatedexplanation"] = null; 
service.Update(operation); 

,其中服務是IOrganizationService實例

+1

我需要它通過客戶端(即,使用Javascript) – HeyJude

0

請使用這段代碼來設置一個空值。

Xrm.Page.getAttribute("op_updatedexplanation").setValue(null); 

這將只是在窗體中設置值。您可能不得不保存表單以查看存儲在數據庫中的值。

Xrm.Page.data.entity.save(); 

如果控件被禁用 - 您還必須設置submitmode屬性。

Xrm.Page.getAttribute("op_updatedexplanation").setSubmitMode("always"); 
+1

對不起,我應該提到它:我不是在一個窗體內部,而是在一個網格頁面內部進行操作,以便用戶檢查多條記錄,他們全部。 – HeyJude

+0

不能你做批量編輯? –

+0

你必須探索和使用這些選項,無論你感到舒服 - https://msdn.microsoft.com/en-us/library/gg309549(v=crm.7).aspx –