Обновление значения списка выбора до нуля с помощью Sdk.Sync.Update ничего не делает

Можно ли обновить атрибут записи типа списка выбора null с помощью Sdk.Sync.Update? Это не работает для меня.

Вот что я делаю:

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, Я также заглянул внутрь XML, отправляемого внутри Sdk.Sync.update, и, действительно, ему не хватает пары "op_updatedExplanation" а также null,

Как это сделать?

Добавлено: я делаю это не внутри формы, а внутри страницы сетки, так что пользователь проверяет несколько записей, и мне нужно обновить все из них.

2 ответа

Стандартный код CRM SDK (при условии, что имя объекта и имя поля):

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

где сервис - это экземпляр IOrganizationService

Пожалуйста, используйте этот фрагмент, чтобы установить значение как ноль.

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

Это просто установит значение в форме. Возможно, вам придется сохранить форму, чтобы увидеть значение, хранящееся в базе данных.

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

Если элемент управления отключен - вы также должны установить атрибут submitmode.

Xrm.Page.getAttribute("op_updatedexplanation").setSubmitMode("always");
Другие вопросы по тегам