Encontrar una ejecución específica de un Flow en Producción (cuando la UI ya no ayuda)



Trabajar en Producción tiene algo en particular: cuando algo falla, casi nunca falla “ordenadamente”.

Hace poco tuve que analizar un Flow que en algunos casos estaba fallando en PROD. No siempre. No de forma consistente. Solo en ciertos escenarios.

Hasta ahí, nada nuevo.

El problema apareció cuando fui a Power Automate a buscar la ejecución específica que necesitaba revisar.

El Flow se ejecuta muchas veces por día. Muchísimas.
La lista de runs era interminable.

Scroll.
Más scroll.
Filtros.
Más scroll.

Imposible.

Entonces decidí dejar de pelearme con la UI y atacar el problema desde otro ángulo.


Entender cómo se construye la URL de una ejecución

Cada ejecución de un Flow tiene una URL con esta estructura:


https://make.powerautomate.com/environments/[ID_ENV]/solutions/[ID_SOLUTION]/flows/[ID_FLOW]/runs/[NOMBRE_EJECUCION]


🔍Si lo pensamos, todo lo que necesitamos es:
  • El Environment ID

  • El Solution ID

  • El Flow ID

  • Y el nombre de la ejecución (este es el dato clave)

Los tres primeros son fáciles de obtener.

Abrís cualquier ejecución reciente del Flow en PROD y copiás desde la URL:


https://make.powerautomate.com/environments/[ID_ENV]/solutions/[ID_SOLUTION]/


Con eso ya tenemos la base.


El verdadero problema: cómo encontrar el run correcto

La parte difícil es el [NOMBRE_EJECUCION].

Ahí es donde entra Dataverse.

Cada ejecución de un Flow se guarda en la tabla flowrun.
Si usamos SQL4CDS conectados al ambiente correspondiente (por ejemplo PROD), podemos consultar directamente esa información.

Una query básica sería:

SELECT createdon, workflowname, status, starttime, endtime, duration, flowrunid, name FROM flowrun WHERE workflow = 'FLOW_GUID_AQUI' ORDER BY createdon DESC

Reemplazando 'FLOW_GUID_AQUI' por el ID real del Flow.

A partir de ahí, podemos:

  • Filtrar por rango de fechas

  • Buscar por duración

  • Revisar estados específicos

  • Ajustar hasta encontrar exactamente la ejecución que queremos

El campo importante es:

name

Ese valor es exactamente el que necesitamos para completar la URL.

Construcción final

Con todos los datos, la URL quedaría así (ejemplo obfuscado):

https://make.powerautomate.com/environments/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /solutions/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy /flows/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz /runs/08584317223844437929364009844CUXX

Pegás esa URL en el navegador y accedés directamente a la ejecución deseada.

Sin scroll.
Sin depender de los filtros limitados de la UI.
Sin perder tiempo.


Reflexión 🤔

La interfaz de Power Automate está pensada para casos normales.
Pero cuando trabajamos con alto volumen de ejecuciones en Producción, a veces necesitamos más precisión.

Este approach no es sofisticado. No es “bonito”.

Pero es práctico.

Y en Producción, cuando algo está fallando y necesitás entender por qué, lo práctico suele ser lo correcto.

Muchas veces la diferencia entre avanzar o quedarse trabado no es saber más, sino cambiar el ángulo desde el cual estamos mirando el problema.


Comentarios