Medición de tiempos en Business Process Flows de Dynamics 365

Las soluciones tecnológicas solicitadas por los clientes para mantener y aprovechar el crecimiento empresarial a largo plazo  hacen que uno  de los requerimientos más comunes cuando se usa un proceso de negocio (o Business Process Flow) sea la medición de tiempos en cada fase.

De sistema, podemos ver el tiempo que un registro está en la fase actual: 

 

business process flow

 

 

 

Sin embargo, no podemos acceder a esa información una vez salido de la fase ni tampoco hay un historial disponible. Hoy vamos a ver como podemos capturar la entrada y salida en una fase y calcular la duración del tiempo. 

Como primer paso, debemos crear una solución sobre la cual trabajamos, en nuestro caso la llamamos SalesStageHistory. Y dentro de la solución creamos una nueva tabla, llamada Sales Stage History:

 

safe stage story

Ahora creamos una serie de campos:

display name

  • Un campo de tipo Lookup hacía Oportunidad, que es donde tenemos nuestro proceso de negocio.
  • En Fase desde en formato Date and Time para grabar la fecha y hora en la que entra en la fase
  • En Fase hasta igual como el anterior, pero para grabar la fecha y hora de salida de la fase
  • Fase actual para escribir el nombre de la fase
  • Fase Previa para escribir el nombre de la fase anterior
  • Duración (en días) es un campo calculado, en ese caso queremos conocer la duración en días, sin embargo, podríamos cambiarlo a horas, minutos, etc. sin ninguna dificultad. El cálculo para ello es el siguiente:

establecer duracion en dias

En el siguiente paso creamos una vista nueva llamada Process Stage Histories en ese caso y ordenamos las columnas para que tengan un formato lógico.

tema

Esa vista la aprovecharemos dentro de la entidad que usa el proceso de negocio, en nuestro caso la oportunidad. Para ello, nos vamos a la entidad y añadimos un Tab al formulario:

 

process history

Dentro del Tab agregamos un Subgrid con referencía a Sales Stage Histories, es importante que seleccionemos Show related records para únicamente ver los eventos relacionados (para que funcione nos debemos asegurar que esté creada la relación):

stage history

Una vez creado todo eso, nos vamos a Power Automate para crear el Flow que nos genera los datos necesarios:

Primero, como siempre, configuramos el Trigger, en nuestro caso es cuando se cambia una oportunidad de fase (se considera buena practica renombrar los pasos para que se entienda que se está haciendo en cada uno). Para que el Flow se ejecute únicamente cuando haya un cambio en el campo stepname, seleccionamos Show Advanced Options y añadimos el filtro de columna:

when opportunity change stepname

Después se añade una condición para diferenciar si es la primera vez que entra en la fase (empieza el proceso) o no (cambia de fase dentro del proceso).

if no record exists

En caso que si, entonces tenemos que crear un nuevo registro dentro de la tabla Sales Stage Histories y actualizar el campo lookup de la oportunidad para relacionarla con ese Sales Stage History.

sales stages

En caso que no es la primera vez, debemos primero actualizar nuestra Sales Stage History actual con la Fecha y hora de salida:

up date sales stage

Después debemos crear la siguiente línea del Sales Stage History, indicando fecha y hora como entrada en fase, el nombre de la fase nueva (un campo en Dataverse) y el nombre de la fase previa (el que viene como fase actual en el trigger):

create new sales stage

Y como último, debemos actualizar la oportunidad nuevamente:

Una vez configurado todo, podemos crear una nueva Oportunidad y moverla por las distintas fases. En el tab asociado se verá la información actualizada:

picture

Esa información luego se podría aprovechar para hacer análisis adicional con Power BI para identificar áreas de mejora o establecer tiempos como objetivos.

¿Quieres saber porque deberias trabajar en  Business Process Flow en Dynamics 365?  Ponte en contacto con nosotros y uno de nuestros expertos podrá ayudarte.