使用 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对。

如何使其工作?

添加:我不是在表单中执行此操作,而是在网格页面中执行此操作,以便用户检查多个记录,并且我需要对所有记录进行更新。

标准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");

相关内容

最新更新