Crea un flujo de Microsoft Power Automate que se desencadena cuando se crea o modifica un elemento de SharePoint. Pero al agregar o cambiar un elemento, el flujo se ejecuta dos veces en lugar de una. Este problema suele deberse a una configuración del desencadenador que reacciona tanto al evento de creación como al de modificación, o a un bucle dentro del flujo que actualiza el mismo elemento. Este artículo explica la causa raíz de las ejecuciones duplicadas y muestra cómo detenerlas ajustando las condiciones del desencadenador y la lógica del flujo.
Puntos clave: Detener ejecuciones duplicadas del flujo
- Condición del desencadenador “Cuando se crea o modifica un elemento”: Se activa una vez para la creación y otra para cualquier actualización, incluida la misma actualización que realiza el propio flujo.
- Condición del desencadenador “Cuando se crea un elemento”: Se activa solo en elementos nuevos, lo que elimina la segunda ejecución causada por un desencadenador de modificación.
- Acción del flujo “Actualizar elemento”: Cuando se coloca dentro del flujo, esta acción modifica el elemento y desencadena el flujo de nuevo, creando un bucle.
Por qué un flujo se ejecuta dos veces para un elemento de SharePoint
La causa más común de una ejecución duplicada del flujo es la propia condición del desencadenador. Power Automate ofrece un desencadenador llamado Cuando se crea o modifica un elemento. Este desencadenador se activa una vez cuando un usuario crea un elemento nuevo. Luego se activa una segunda vez cuando el propio flujo actualiza ese mismo elemento durante su ejecución. Esta segunda ejecución suele ser no intencionada.
Una segunda causa común es un bucle dentro del flujo. Muchos flujos incluyen una acción que actualiza el elemento de SharePoint, por ejemplo, para cambiar un campo de estado o agregar una marca de tiempo. Esa acción de actualización es una modificación. Si el desencadenador está configurado para responder a modificaciones, el flujo se desencadena de nuevo. Esto crea un bucle infinito que la plataforma finalmente detiene, pero no antes de ejecutar el flujo dos o más veces.
Una tercera causa es una configuración de desencadenador personalizada o un receptor de eventos de SharePoint que también se activa. Sin embargo, en la mayoría de los escenarios empresariales, la condición del desencadenador y el bucle de autoactualización son los culpables.
Pasos para corregir un flujo que se ejecuta dos veces
- Verifique el tipo de desencadenador en Power Automate
Abra su flujo en el editor de Power Automate. Haga clic en el paso del desencadenador. Observe el nombre del desencadenador. Si dice Cuando se crea o modifica un elemento, está usando el desencadenador que causa la doble ejecución. Cámbielo a Cuando se crea un elemento si solo necesita reaccionar a elementos nuevos. Si también debe reaccionar a modificaciones, pase al siguiente paso. - Agregue una condición de desencadenador para filtrar modificaciones
Si necesita reaccionar tanto a la creación como a la modificación, agregue una condición de desencadenador que impida que el flujo se ejecute cuando el elemento sea modificado por el propio flujo. En la configuración del desencadenador, expanda Agregar condiciones de desencadenador. Agregue una condición que verifique una columna personalizada. Por ejemplo, cree una columna Sí/No llamada FlowProcessed. Establezca la condición del desencadenador en @equals(triggerOutputs()?[‘body/FlowProcessed’], false). Luego, en el flujo, después de las acciones principales, actualice esa columna a true. Esto evita que el flujo se ejecute de nuevo en el mismo elemento. - Elimine cualquier acción de actualización que cause un bucle
Revise cada acción de su flujo. Si alguna acción actualiza el mismo elemento de SharePoint que desencadenó el flujo, esa acción puede causar una segunda ejecución. Elimine la acción de actualización si no es necesaria. Si la actualización es necesaria, use la condición del desencadenador del paso 2 para bloquear la segunda ejecución. - Use la condición del desencadenador para campos modificados
Si usa Cuando se crea o modifica un elemento y solo desea reaccionar cuando cambia un campo específico, agregue una condición de desencadenador que verifique el nombre del campo. Por ejemplo, para reaccionar solo cuando cambia el campo Status, agregue @equals(triggerOutputs()?[‘body/Status’], ‘Approved’). Esto reduce las activaciones falsas de otras actualizaciones. - Pruebe el flujo con un elemento nuevo
Después de realizar cambios, cree un nuevo elemento de SharePoint y observe el historial de ejecuciones del flujo. Abra el flujo y seleccione Historial de ejecuciones. Debería ver solo una ejecución por cada creación o modificación de elemento. Si aún ve dos ejecuciones, revise de nuevo la condición del desencadenador y las acciones de actualización.
Si el flujo sigue ejecutándose dos veces después de la corrección principal
El flujo se ejecuta dos veces debido a un receptor de eventos de SharePoint
Algunos sitios de SharePoint tienen receptores de eventos personalizados o flujos de Power Automate que también se ejecutan en cambios de elementos. Verifique las características de la colección de sitios. Vaya al centro de administración de SharePoint, seleccione Sitios activos, abra su sitio y haga clic en Características del sitio. Busque cualquier característica activada que agregue receptores de eventos. Desactívela si no es necesaria.
El flujo se ejecuta dos veces debido a un paso de aprobación paralelo
Si su flujo incluye una acción de aprobación que se ejecuta en paralelo, la respuesta de aprobación puede desencadenar una segunda ejecución del flujo. Esto ocurre cuando la respuesta de aprobación actualiza el elemento. Use el método de condición del desencadenador descrito anteriormente para bloquear la segunda ejecución.
El flujo se ejecuta dos veces debido a un error del conector
En casos excepcionales, el conector de SharePoint tiene un error conocido que activa el desencadenador dos veces. Microsoft suele corregir estos errores en unos pocos meses. Para solucionar el error, agregue una acción de retraso al inicio del flujo. Inserte una acción Delay configurada en 30 segundos. Esto le da tiempo a la plataforma para deduplicar las ejecuciones. Esta es una solución temporal y debe eliminarse después de que se actualice el conector.
Cuando se crea un elemento vs. cuando se crea o modifica: diferencias clave
| Elemento | Cuando se crea un elemento | Cuando se crea o modifica un elemento |
|---|---|---|
| Evento de desencadenador | Solo en la creación de un elemento nuevo | En la creación y en cada modificación |
| Riesgo de ejecuciones duplicadas | Bajo, a menos que el flujo actualice el mismo elemento | Alto, porque el flujo a menudo actualiza el elemento |
| Mejor caso de uso | Enviar un correo electrónico de bienvenida cuando se agrega un elemento nuevo | Actualizar un campo de estado cuando cambia una columna específica |
| Condición de desencadenador necesaria | Normalmente no es necesaria | Necesaria para evitar bucles de autoactivación |
Cuando necesite reaccionar tanto a la creación como a la modificación, agregue siempre una condición de desencadenador. Cuando solo necesite reaccionar a elementos nuevos, use el desencadenador solo de creación. Esta simple elección elimina la mayoría de las ejecuciones duplicadas del flujo.
Ahora puede identificar por qué su flujo se ejecuta dos veces para un elemento de SharePoint. La corrección principal es cambiar el desencadenador a Cuando se crea un elemento o agregar una condición de desencadenador que bloquee la segunda ejecución. Si aún ve duplicados, verifique si hay receptores de eventos o aprobaciones paralelas. Para una solución rápida, agregue una acción de retraso de 30 segundos. Revise el historial de ejecuciones del flujo después de cada cambio para confirmar que la corrección funciona.