Namasté!
Hoy tengo el honor de compartirles esta publicación de mi amigo Facu, quien además de ser un ser auténtico e inteligente, es un caballero en todo el sentido de la palabra.
Aquí les dejo su post:
¡Buenas a todos! Me presento, soy Facundo Petrolo, Technical Consultant de Dynamics CRM. Si bien mi área de expertise reside en un producto distinto, algo que me enseñó el haber trabajado con mi quería amiga Kati es el hecho de elegir que método utilizar a la hora de integrarse con sistemas externos.
Esto es un aspecto vital ya que, esto se traduce no solo en dinero, sino también en tiempo de desarrollo y lo mas importante, evitar dolores de cabeza.
Una de las opciones disponibles es Power Automate, una plataforma creada por Microsoft para automatizar procesos y que nos abre las puertas hacia la integración con otros sistemas de forma sencilla. Esto es posible gracias a que Power Automate cuenta con miles de “conectores” o wrappers de distintas APIs para lograr lo que nosotros deseamos.
Cada proceso de automatización se llama “flujo” y siempre están compuestos de los siguientes elementos:
- Desencadenador: El cual indica que evento va a dar comienzo al flujo. Puede darse debido a la creación o actualización de un registro en F&O, o un usuario lo ejecuta a demanda, o por una API Request, o tal vez es un proceso que ocurre de forma recurrente (Cada 5 minutos, cada 3 horas, a fin de mes, etc), entre muchos otros.
- Acciones: Cada conector posee una serie de acciones posibles para realizar que permite interactuar con las APIs externas e interactuar con los datos.
Teniendo en cuenta esto, vamos a realizar un primer vistazo a la interfaz de Power Automate. El primer paso consiste en entrar a la URL https://make.powerautomate.com/ que servirá de hub central para administrar todos los flujos.
Desde aquí, intentaremos crear nuestro primer flujo el cual se desencadenará cuando una cuenta se cree en CRM y procederá a insertar dicha cuenta en F&O. Para ello, procedemos al apartado de “Crear” el cual nos dará distintas posibilidades para comenzar a desarrollar. Teniendo en cuenta el ejemplo mencionado, la opción mas conveniente es crear un “Flujo de nube automatizado”
Nos aparecerá la pantalla para inicializar la creación. Siempre se debe tener en cuenta darle un nombre significativo al flujo para poder identificarlo mas fácilmente. Recomiendo incluir en el nombre, el desencadenador y la acción general que realiza dicho flujo.
En términos generales:
Cuando - <Acción general>
Por ejemplo, para este caso, nuestro flujo se llamará
Cuando se inserte una cuenta en CRM - Agregar una cuenta en F&O
Obviamente, esto es una convención generalizada y puede no aplicarse para todos los casos pero me parece recomendable mencionarlo para mejorar la legibilidad de sus flujos.
Una vez elegido el nombre procederemos a seleccionar el desencadenador. La lista que se presenta permite realizar búsquedas tanto por nombre como por conector.
En nuestro caso, ya que el evento comienza con un desencadenador de Dynamics CRM, el cual está contenido en Microsoft Dataverse, buscamos por la palabra “Dataverse”. Seleccionamos el desencadenador “Cuando se agrega, modifica o elimina una fila” y presionamos el botón “Crear”
Se nos abrirá el editor de flujos de Power Automate que presenta a los distintos componentes como cuadrados, si hacemos clic en uno de ellos nos permite ver los detales de cada uno. En nuestro caso vamos a comenzar configurando el desencadenador.
Cada componente tiene un nombre modificable y parámetros que van a variar dependiendo del desencadenador o la acción que estemos ejecutando. Para el caso de este desencadenador de CRM, tenemos los siguientes:
- Tipo de cambio
- Nombre de la tabla
- Ámbito
- Seleccionar columnas
- Filtrar filas
- Retrasar hasta
- Ejecutar como
Ejemplo de los valores disponibles al seleccionar “Tipo de cambio”
Para no hacer esta explicación muy larga, no voy a entrar en detalles en cada uno de los parámetros, así que voy a mostrarles al desencadenador configurado. El flujo va a ejecutarse cuando se crea (Tipo de cambio = Added) una cuenta (Nombre de la tabla = Accounts) sin importar de quien lo haga (Ámbito = Organization).
El desencadenador obtendrá todos los campos de la cuenta creada, por lo cual el próximo paso es conectarse con F&O e insertar la cuenta. Realizamos clic en el símbolo “+” y en “agregar una acción” con el fin de mostrarnos la lista de acciones, dividida por conectores. Seleccionamos el conector de “Fin & Ops Apps”
Si seleccionamos “Ver mas” podemos ver todas las acciones de dicho conector. Aquí elegimos la acción de “Crear Registro” que tiene como parámetros la instancia de F&O y la entidad a la cual queremos crear el registro
Luego, debemos mapear cada parámetro que deseemos insertar en F&O. Esto lo haremos haciendo clic en el icono del rayo, el cual mostrará los valores dinámicos que corresponden a todos los atributos que fueron extraídos de la cuenta desencadenadora.
Por ejemplo, en este caso, se está mapeando el grupo de clientes de F&O con el campo “Client Grouping 1” de CRM.
También podremos utilizar funciones parecidas a las de Excel para modificar los datos según lo deseemos. En este caso, estamos tomando el nombre de la cuenta de CRM y quedándonos con los primero 3 caracteres.
Como podemos observar, nuestra primer acción de CRM hacia F&O quedó completa con un mapeo muy básico. Debido a que la tabla “CustomersV2” contiene una gran cantidad de campos, no se muestran todos por defecto, por lo cual debemos hacer clic en “Parámetros Avanzados” para ver la lista completa.
Con esto, ya pudimos armar un flujo automatizado, lo único que nos resta es guardar y realizar una prueba de funcionamiento. Para ello, clickeamos en “Probar” y allí, en “Manualmente”.
Con esto, el flujo quedará a la espera y monitoreará el evento de creación de cuenta en CRM, así que procedemos a crear una cuenta en el sistema.
Al cabo de unos instantes, visualizaremos el estado del flujo y si revisamos el registro en F&O vemos que el registro se creó correctamente
Con esto tenemos solo una prueba muy básica de lo que podemos realizar con Power Automate. Tengan en cuenta que esté método es solo uno de muchos posibles y tiene sus limitaciones tanto de concurrencia como de paralelismo de acciones o realización de solicitudes por minuto. Por eso, antes de desarrollar una integración es importante conocer cual va a ser el tráfico usual de datos y que tan compleja puede llegar a ser la lógica a nivel general, ya que esto puede permitirles definir si les conviene ir por esta u otra opción.
Espero que este artículo sea útil en sus implementaciones.
Éxitos!
Facundo Petrolo
Linkedin : https://www.linkedin.com/in/facundo-joel-petrolo-iriarte-1a6ba9b9
Bibliografía:
https://learn.microsoft.com/es-es/power-automate/
https://learn.microsoft.com/es-es/power-automate/limits-and-config
https://learn.microsoft.com/en-us/power-platform/admin/power-automate-licensing/types