miércoles, 9 de enero de 2013

Nueva versión de la SDK (5.0.13)

Con la nueva actualización de Dynamics CRM 2011 (UR12 o “Polaris”) se incluyen nuevas funcionalidades. Es por esto que era necesaria la publicación de una nueva SDK, y esto ha ocurrido esta semana.
Se ha publicado la nueva versión de la SDK ya disponible para la descarga: http://www.microsoft.com/en-us/download/details.aspx?id=24004
El listado de modificaciones está recogido en este enlace: http://msdn.microsoft.com/en-us/library/jj863620.aspx
Uno de los temas que creo que son de los mas interesantes es lo de la nueva funcionalidad de acciones con datos de forma “masiva” como se explica aquí: http://msdn.microsoft.com/en-us/library/jj863631.aspx
Un ejemplo de utilización de esta nueva funcionalidad:
   1: // Get a reference to the organization service.

   2: using (_serviceProxy = ServerConnection.GetOrganizationProxy(serverConfig))
   3: {
   4:     // Enable early-bound type support.
   5:     _serviceProxy.EnableProxyTypes();
   6:  
   7:     #region Execute Multiple with Results
   8:     // Create an ExecuteMultipleRequest object.
   9:     ExecuteMultipleRequest requestWithResults = new ExecuteMultipleRequest()
  10:     {
  11:         // Assign settings that define execution behavior: continue on error, 
  12:         // return responses. 
  13:         Settings = new ExecuteMultipleSettings()
  14:         {
  15:             ContinueOnError = false,
  16:             ReturnResponses = true
  17:         },
  18:         // Create an empty organization request collection.
  19:         Requests = new OrganizationRequestCollection()
  20:     };
  21:  
  22:     // Create several (local, in memory) entities in a collection. 
  23:     EntityCollection input = GetCollectionOfEntitiesToCreate();
  24:  
  25:     // Add a CreateRequest for each entity to the request collection.
  26:     foreach (var entity in input.Entities)
  27:     {
  28:         CreateRequest createRequest = new CreateRequest { Target = entity };
  29:         requestWithResults.Requests.Add(createRequest);
  30:     }
  31:  
  32:     // Execute all the requests in the request collection using a single web method call.
  33:     ExecuteMultipleResponse responseWithResults =
  34:         (ExecuteMultipleResponse)_serviceProxy.Execute(requestWithResults);
  35:  
  36:     // Display the results returned in the responses.
  37:     foreach (var responseItem in responseWithResults.Responses)
  38:     {
  39:         // A valid response.
  40:         if (responseItem.Response != null)
  41:             DisplayResponse(requestWithResults.Requests[responseItem.RequestIndex],
  42:                  responseItem.Response);
  43:  
  44:         // An error has occurred.
  45:         else if (responseItem.Fault != null)
  46:             DisplayFault(responseItem.Fault);
  47:     }


Como se ve, se puede utilizar el mensaje “ExecuteMultipleRequest” como una sola petición a los web services de CRM que hagan múltiples operaciones.

Además se dispone de dos parámetros:
  • ContinueOnError: para determinar si queremos que se detenga en caso de algún error
  • ReturnResponses: para que devuelva una colección con las respuestas

Próximamente intentaré probar esta funcionalidad (cuando disponga de un CRM con UR12…)

Además una nueva posibilidad es que ahora se puede añadir filtros al consultar metadatos de forma que esta consulta nos de solo lo que necesitemos y funcione mas rápido. un ejemplo en este blog: http://mscrmtools.blogspot.com.es/2013/01/sdk-5013-yes-you-can-get-only-metadata.html

Un saludo,

No hay comentarios:

Publicar un comentario