- En este ejemplo vamos a lanzar una consulta de Actividades cuyo campo Referente a sea una entidad de tipo Account, y comprobaremos la consulta efectiva mediante SQL Profiler
- Comprobar y medir estos tiempos de respuesta puede ser decisivo para perfilar la implementación de la consulta desde SDK
- El código de consulta es el siguiente
QueryExpression qe = new QueryExpression(ActivityPointer.EntityLogicalName) { Distinct = true, ColumnSet = new ColumnSet(new string[] { "subject", "actualstart", "actualend" }), LinkEntities = { new LinkEntity() { LinkFromEntityName = ActivityPointer.EntityLogicalName, LinkToEntityName = Account.EntityLogicalName, LinkFromAttributeName = "regardingobjectid", LinkToAttributeName = "accountid" }} }; EntityCollection ec = orgService.RetrieveMultiple(qe); foreach (ActivityPointer ap in ec.Entities) Console.WriteLine(ap.Subject);
- Para comprobar el proceso de consulta interno en SQL iniciaremos la tool SQL Profiler de nuestro servidor SQL de CRM y comenzaremos una nueva traza
- En la selección de eventos de profile marcaremos las opciones de traceo, en nuestro caso son las secciones SQL:BatchCompleted y SQL:BatchStarting las que capturarán la sentencia SQL generada por la consulta desde SDK
- El resultado cuando la consulta ha completado es el siguiente:
- En el resultado del informe podemos distinguir columnas como ApplicationName, NTUserName, y LoginName, distintivas de la aplicación SDK y la autenticación provista, y la duración de proceso de la consulta
Innovar Tecnologías
No hay comentarios:
Publicar un comentario