¿Cómo actualizo el estado (abierto, completo) en un proyecto de silverlight / odata para Dynamics CRM 2011?

Tengo una aplicación Silverlight alojada en CRM 2011 en línea. Tengo una funcionalidad en la que actualizo una llamada telefónica y visualizo dos campos en un formulario pequeño. Tengo el requisito de marcar como completo, pero parece que estoy fallando aquí.

Yo tengo:

phoneCall.StateCode.Value = 1;

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

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

El tema funciona y guarda tan bien como la descripción, pero el código de estado no. StateCode no es nulo, este es un objeto existente y actualmente está configurado en 0 (abierto). El guardado no afecta al StateCode. Tengo esto en un try-catch y no se informa ningún error.

preguntado el 16 de mayo de 11 a las 19:05

1 Respuestas

El estado de un registro no se puede cambiar con un Update mensaje. Para cambiar el código de estado o el código de estado, debe emitir un SetStateRequest.

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

_context.Execute(setStateRequest);

Noticias


El punto final REST tiene algunos limitaciones.

El extremo REST proporciona una alternativa al extremo WCF SOAP, pero actualmente existen algunas limitaciones.

  • Solo se pueden realizar acciones de Crear, Recuperar, Actualizar y Eliminar en registros de entidad. Los mensajes que requieren el método Ejecutar no se pueden realizar.

Esto significa para usted: no puede alterar el estado con el punto final REST. Debe usar el punto de conexión WCF SOAP para esta tarea.

contestado el 19 de mayo de 11 a las 11:05

El SetStateRequest se usa en el SDK. Estoy usando el servicio REST en una aplicación Silverlight alojada en CRM 2011 Online. SetStateRequest no existe en ese servicio. - Jonathan Kaufman

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.