是否可以使用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
对。
如何使其有效?
加了: 我没有在表单中但在网格页面内执行此操作,因此用户检查多个记录,我需要对所有记录进行更新。
答案 0 :(得分:0)
标准CRM SDK代码(假设实体名称和字段名称):
Entity operation = new Entity("kcl_operation");
operation.Id = operationId;
operation["op_updatedexplanation"] = null;
service.Update(operation);
其中service是IOrganizationService实例
答案 1 :(得分:0)
请使用此代码段将值设置为null。
Xrm.Page.getAttribute("op_updatedexplanation").setValue(null);
这只会在表单中设置值。您可能必须保存表单才能看到存储在数据库中的值。
Xrm.Page.data.entity.save();
如果禁用该控件 - 您还必须设置submitmode属性。
Xrm.Page.getAttribute("op_updatedexplanation").setSubmitMode("always");