lunes, 21 de junio de 2010

Consultado los Workflows desde SQL Server

Los flujos de trabajo se ejecutan con el servicio asíncrono de CRM (AsyncService) y van dejando en el SQL Server registro del estado de los mismos, los pasos y el seguimiento de los mismos.
Como todos sabemos, no esta soportado el acceso a ciertas tablas del SQL Server directamente, pero el CRM nos ofrece unas "FilteredViews" para poder consultar los Workflows para hacer un seguimiento de la ejecución de los mismos.
Las vistas se llaman "FilteredAsyncOperation" y "FilteredWorkflowLog"
La consulta para recoger todas las ejecuciones de workflows es la siguiente:

select asyncoperationid, name,statecodename,statuscodename, createdon
from FilteredAsyncOperation
WHERE messagename='ExecuteWorkflow'
order by createdon desc

y para recoger el estado de cada uno de los "Steps" (pasos) del workflow:

select stepname,activityname,description, completedon,statusname
from FilteredWorkflowLog
where asyncoperationid='8C6D813F-0C73-DF11-955A-000C299E8D82' --(aqui poner un "id" recogido de la consulta anterior)

De esta forma por ejemplo lo que podemos hacer es un monitor de ejecución de flujos de trabajo, de forma muy sencilla con una aplicación de escritorio o web que se vaya actualizando automáticamente.


un saludo

No hay comentarios:

Publicar un comentario