Как обновить состояние (открыто, завершено) в проекте silverlight / odata для Dynamics CRM 2011 - PullRequest
1 голос
/ 16 мая 2011

У меня есть приложение silverlight, размещенное в CRM 2011 онлайн.У меня есть функциональность, когда я обновляю телефонный звонок и отображаю два поля в маленькой форме.У меня есть требование пометить как выполненное, но мне кажется, что здесь не получается.

У меня есть:

phoneCall.StateCode.Value = 1;

phoneCall.Subject = activity.Subject;
phoneCall.Description = activity.Description;

_context.UpdateObject(phoneCall);
_context.BeginSaveChanges(OnChangesSaved, phoneCall);

Тема работает и сохраняет, а также описание, но код состояния - нет.StateCode не нулевой, это существующий объект, и в настоящее время он установлен в 0 (открыто).Сохранение не влияет на StateCode.У меня есть это в try-catch, и об ошибке не сообщается.

1 Ответ

2 голосов
/ 17 мая 2011

Статус записи не может быть изменен с помощью сообщения Update. Чтобы изменить код состояния или код состояния, необходимо ввести SetStateRequest.

var setStateRequest = new SetStateRequest
{
  EntityMoniker = new EntityReference({LogicalName}, {Id}),
  State = new OptionSetValue(1),
  Status = new OptionSetValue(1)
};

_context.Execute(setStateRequest);

Обновление


Конечная точка REST имеет некоторые ограничения .

Конечная точка REST предоставляет альтернативу конечной точке WCF SOAP, но в настоящее время существуют некоторые ограничения.

  • Только записи Create, Retrieve, Update и Delete могут быть выполнены для записей объекта Сообщения, для которых требуется метод Execute, не могут быть выполнены.

Это значит для вас: вы не можете изменить состояние с помощью конечной точки REST. Для этой задачи вы должны использовать конечную точку WCF SOAP.

...