Hola, como muchos habrán utilizado alguna vez, al trabajar con Plugins, a veces es difícil saber con que usuario se realizan las acciones que se desarrollen en el mismo.
Primero hay que tener en cuenta en el registro de los Plugins, en donde se puede seleccionar que dicho paso se ejecute con un usuario específico, o por el contrario el “Calling User”, que permitirá que en el contexto se “pase” el id del usuario que ha lanzado el Plugin:
Una vez que estamos en el código, debemos conectarnos al CRM para realizar diferentes acciones como por ejemplo una consulta, una actualización, etc.
Para esto se utiliza en 2011 el método IOrganizationServiceFactory.CreateOrganizationService (http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iorganizationservicefactory.createorganizationservice.aspx).
En CRM 4.0 se utilizaba el método IPluginExecutionContext.CreateCrmService (http://msdn.microsoft.com/en-us/library/bb959583.aspx).
Para saber como podemos autenticarnos en los plugins dejo un listado que además muestra las diferencias entre 4.0 y 2011:
Tipo | CRM 4.0 | CRM 2011 |
Usuario conectado (Calling User) | ICrmService service = context.CreateCrmService(true); | IOrganizationService service = serviceFactory.CreateOrganizationService(Guid.Empty); |
Un usuario específico | ICrmService service = context.CreateCrmService(context.UserId); | IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); |
System User | ICrmService service = context.CreateCrmService(false); | IOrganizationService service = serviceFactory.CreateOrganizationService(null); |
Un saludo,
No hay comentarios:
Publicar un comentario