A modo resumen:
- Planifica que vas a necesitar para ejecutar el flow antes de empezar a crear acciones sobre la marcha.
- Usa naming convention para el flow, usa títulos descriptivos para las acciones y define las variables siempre del mismo modo (por ejemplo, usando Camel Case).
- Evita concatenar IFs siempre que sea posible (Puedes usar Terminate y mantener condiciones de forma secuencial).
- Utiliza SCOPES, tanto para mantener tus acciones colapsadas y hacer el flow mas fácil de leer como para ejecutar diferentes acciones en función de si su ejecución ha fallado o no.
- Define siempre varios usuarios y, si el flow es genérico, utiliza una cuenta que no esté asignada a ningún usuario como owner principal.
A modo detallado:
1. Organiza el trigger y las acciones
Planifica en primer lugar los elementos que necesitarás. Normalmente se sigue la misma estructura:
- Trigger
- Inicializa las variables que necesites a nivel global (Lamentablemente solo podemos crear variables a nivel global al principio del flow)
- Comprueba si el flow debe ejecutarse (Recomendado a modo de control)
- Acciones necesarias en la ejecución
- Finaliza el flow (Puede ser implícita o explícitamente mediante un Response o Terminate)
2. Utiliza Naming Convention y unifica nombres de variables o acciones
Si aún no lo has hecho, deberías definir el naming convention para los diferentes flows que puedas crear a lo largo del tiempo. Esto significa definir un patrón a seguir por cada uno de ellos.
Por ejemplo: NombreDeLaEmpresa + Acrónimo para Power Automate + Proyecto + Numero de Flow + Definición = “MYCOMPANY_PA_PROJECT_0001_EMAILREMINDERS”.
De este modo quedarán estructurados y fácilmente identificables por cualquier compañero de trabajo que necesite acceder a ellos.
El título de cada acción debe ser descriptivo de su realización (por favor, no dejéis un genérico “Condition” y definidlo de un modo descriptivo como “If X is not within the options”).
Los nombres de variables deben ser descriptivos de su utilización y todas siguiendo un mismo patrón, por ejemplo, camel case (una variable para contener una lista de oficinas podría ser “officesList”).
3. Evita la concatenación de controles
Algo que puede ocurrir para los que estamos acostumbrados a trabajar en código es la concatenación de algunos controles como pueden ser los IFs. Power Automate no permite la misma libertad que tenemos en código, pero al intentar buscar equivalentes podemos encontrarnos con varios IFs uno dentro de otro. Deberíamos evitar esto. En el momento de publicación de este post hay un límite de concatenación de acciones en Power Automate de 8 niveles.
No solo deberíamos evitarlo por ese límite, sino también por el mantenimiento de ese flow posteriormente. Para acceder a esas acciones para editarlas o revisar una ejecución anterior tendremos que abrir cada nivel, normalmente incrementando el scroll horizontal del navegador y complicándonos la vida.
Intenta separar las condiciones siempre que sea posible. Un buen consejo que ojalá me hubieran dado al empezar es que puedes crear una condición que en caso negativo tenga una acción Terminate para que no siga el flow, así solo seguirá cuando se cumpla esa condición y puedes añadir la siguiente de forma secuencial.
4. Utiliza SCOPES
Si para uno de los “pasos” de tu flow necesitas varias acciones deberías pensar en utilizar un Scope. Este control te permite, por un lado, agrupar acciones (y colapsarlas para hacer el flow mas comprensible) y, por otro lado, realizar acciones en función del output de esas acciones del Scope.
Esto significa que además de la razón visual, el Scope tambien nos dara un resultado dependiendo de si sus acciones son ejecutadas correctamente o tenemos un error. En ocasiones ese error no es mas que algo que esperamos (por ejemplo, si hacemos una llamada para comprobar si un elemento existe y por defecto devuelve un error si no es así). De este modo podemos configurar la acción siguiente a ejecutarse cuando el Scope sea “Successful” y crear una acción paralela a ejecutarse cuando el Scope sea “Failed”, sin necesidad de utilizar un control de Condition.
¿Cómo se hace este último paso? Primero creamos una acción después del Scope. Después al intentar añadir otra accion entre el Scope y esta nueva acción creada podemos seleccionar “Add a parallel branch”. Una vez tenemos las dos acciones, a través del menú contextual podemos seleccionar “Configure run after” y ejecutar una de las dos con “has failed”.
5. Define siempre varios Owners
A no ser que se trate de un flow personal que tengas para algo muy individual con tu usuario, deberías compartir del flow añadiendo por lo menos otro owner. No sabemos quien va a trabajar en ese flow en el futuro, ni que puede ocurrir con nuestra cuenta (un ejemplo clásico es cuando el owner de un flow deja la empresa). Por eso, siempre se debe definir más de un owner.
Por otro lado, debemos recordar que las conexiones que necesitemos se van a realizar por defecto con el owner principal del flow, por eso, recomendamos que si el flow ejecuta acciones a nivel global, el owner principal no sea ningún empleado, si no una cuenta creada específicamente para este fin (por ejemplo, tener un usuario llamado “flowAdmin@mytenant.com” que será el owner de los principales flows de la empresa). De esta forma, el equipo de IT siempre tendra acceso y se podrá añadir y quitar otros owners en función de cuando sea necesario.
No Responses