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