Обновление значения списка выбора до нуля с помощью 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");