4 cosas de Power Automate que quizás no sabías y cambiarán tu forma de utilizarlo
4 cosas de Power Automate que quizás no sabías y cambiarán tu forma de utilizarlo

4 cosas de Power Automate que quizás no sabías y cambiarán tu forma de utilizarlo

Quizás crees que conocer Power Automate y que no hay nada más interesante que lo que nos han contado Microsoft y hemos visto en innumerables charlas, pero quizás haya cosas que no te hayan contado y quizás no sepas. Por eso he intentado recopilar estos 5 puntos para que te ayuden a sacar más rendimiento a este producto:

1 – Prefiltra condiciones de ejecución

El licenciamiento de Power Automate se mide por el número de ejecuciones que realice cada usuario. A pesar de que los que somos usuarios de PowerApps tenemos actualmente 5000 ejecuciones por usuario/día que en un principio podemos pensar que son muchas pero nada más lejos de eso, debemos medir bien estas ejecuciones. En este ejemplo he creado un flujo que envía un correo de bienvenida cuando se da de alta un contacto en el CDS:

Este flujo no tendría sentido ejecutarlo si el contacto no ha proporcionado una dirección de correo electrónico. Si accedemos a la configuración del paso “Crear Contacto” (tal y como señalo en la imagen anterior) entre las distintas opciones que encontramos las condiciones de desencadenador:

Cómo podéis ver, en la condición del desencadenador le indico que el flujo debe ejecutarse en aquellos contactos que contengan email. Para más información de cómo escribir expresiones para Power Automate podéis consultarlo aquí.

2 – Establece el control de simultaneidad y dispara la potencia de Power Automate

Al acceder a la configuración de un desencadenador o una acción, podemos establecer un número de simultaneidad con la que queremos ejecutar esa acción. Que qué significa? Bien, imaginemos que tenemos una acción que debe procesar 500 registros. Si este valor está por defecto no procesará un registro hasta que haya terminado el anterior. Sin embargo si establecemos una simultaneidad, podrá procesar registros de 50 en 50 paralelamente. Esto disparará la velocidad de procesado de nuestro flujo. Podemos encontrar el control de simultaneidad en la configuración de cualquier acción o desencadenador. Pero cuidado, no se podrá deshabilitar una vez habilitado:

3 – Crea flujos desde una solución: es lo mismo pero no es lo mismo

Cuando encontréis un ejemplo de Power Automate y os volváis locos buscando algún desencadenador o acción y no la encontréis la respuesta está clara: debéis crear el flujo desde una solución de vuestro entorno. De esta manera, tendréis desencadenadores más personalizados de un entorno concreto. Como por ejemplo, el conector de Common Data Service current, que sólo ejecutará flujos en el entorno que hayáis instalado la solución:

4 – Crea variables de entorno para almacenar esas url’s que son propias de cada entorno

¿Quién no ha creado la típica tabla de configuración para almacenar las url’s de servicios con los que integramos nuestros entornos? Al menos en desarrollo de Dynamics 365 es una práctica muy común. Bien, con la nueva interfaz del editor de soluciones tenemos la capacidad de añadir variables de entorno. Estas variables se almacenarán de manera estática en cada entorno y no importa las veces que despleguemos sobre ellas, no se verán modificadas al ser un dato del CDS.

En este caso he creado una variable llamada ‘ServiceURL‘ que contiene la url de un servicio REST al que quiero llamar. Aquí viene la parte un poco más complicada y es que aún no tenemos un método en Power Automate que nos permita obtener directamente la variable de entorno. Esta variable es almacenada en CDS y debemos hacer la consulta específica para extraerlo:

<fetch version="1.0" no-lock = "true" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="environmentvariablevalue">
    <attribute name="environmentvariablevalueid" />
    <attribute name="value" />
    <link-entity name="environmentvariabledefinition" from="environmentvariabledefinitionid" to="environmentvariabledefinitionid" link-type="inner" alias="ab">
      <filter type="and">
      <condition attribute="displayname" operator="eq" value="Service URL"/>
      </filter>
    </link-entity>
  </entity>
</fetch>

Únicamente debemos ejecutar esta consulta sustituyendo “Service URL” por el nombre para mostrar de nuestra variable y podemos crearnos un flujo para ejecutarlo como flujo secundario para que nos extraiga estas variables de entorno. Esta consulta en formato FetchXML es admitida como entrada en un paso de listar registros de Common Data Service y de esta manera podemos extraer el valor de nuestra variable de entorno.

Lo interesante de todo esto es que podemos crearnos un flujo “secundario” que nos permita reutilizar la funcionalidad de extraer variables de entorno y que los demás flujos llamen a este cuando lo necesiten. De este modo podemos simplificar nuestros flujos principales y dividir funcionalidades en distintos flujos:

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.