Power Automate & MSDyn365FO: A fondo (III)

Power Automate & MSDyn365FO: A fondo (III)

En este tercer y último artículo sobre Power Automate y su conector para Microsoft Dynamics 365 Finance and Operations apps vamos a hablar de las distintas operaciones de escritura existentes en el mismo. Estas operaciones son las siguientes:

Antes de comenzar con ellas, debemos tener en cuenta que estas operaciones estarán disponibles únicamente para aquellas entidades que tengan la propiedad Is Read Only con valor No, es decir, entidades que permitan la escritura de datos.

Propiedades de Visual Studio - Is Read Only = No
Propiedades de Visual Studio – Is Read Only = No

De hecho, el propio Power Automate nos avisa de ello, tal y como podemos ver en la siguiente imagen:

Inserción/Actualización/Borrado no permitida para entidades con ReadOnly = Yes
Inserción/Actualización/Borrado no permitida para entidades con ReadOnly = Yes

Crear registro

Utilizaremos la acción Crear registro, obviamente, cuando necesitemos crear nuevos datos dentro de MSDyn365FO.

Power Automate - Crear registro
Power Automate – Crear registro

Lo primero que necesitamos indicar es la Instancia sobre la que vamos a trabajar, y la entidad sobre la que queremos crear nuevos datos. Una vez seleccionados estos dos parámetros, veremos como aparecen los campos necesarios para poder crear el nuevo registro.

Power Automate - Crear registro
Power Automate – Crear registro

Siguiendo con la entidad Grupo de clientes, indicaremos los datos mínimos necesarios para poder crear el registro, que son el código del grupo de clientes y el código de empresa. Si pulsamos sobre el link Ver opciones avanzadas aparecerán el resto de campos que hay disponibles dentro de la entidad para completar la información. Una vez ejecutado el flow, podemos ver como el registro se ha creado en el sistema.

Crear registro ejecutado
Crear registro ejecutado
Dynamics 365 F&O - Grupos de clientes
Dynamics 365 F&O – Grupos de clientes

Ahora, si consultamos el log del IIS de nuestra instancia, podemos comprobar que Power Automate está realizando una llamada http de tipo POST sobre Dynamics 365, enviando en el body de la llamada los datos que hemos completado en el flow.

Actualizar un registro

Podemos utilizar la siguiente acción cuando necesitemos actualizar un registro dentro de Dynamics 365 Finance and Operations apps.

Power Automate - Actualizar registro
Power Automate – Actualizar registro

Si os fijáis bien, esta operación se parece mucho a la acción que vimos en el anterior artículo con la que podíamos Obtener un registro. Debemos indicar la instancia y entidad sobre la que queremos actuar, y también tenemos que introducir el Id de objeto que identifica de manera única al registro que queremos actualizar. Como ya vimos anteriormente, se trata, por lo general, del código de empresa, seguido de la clave primaria de la entidad.

Power Automate - Actualizar un registro
Power Automate – Actualizar un registro

Una vez indicado estos valores, nos obliga también a poner los valores obligatorios, como el Customer group (aunque no utiliza ese valor para actualizar), y si vamos a ver las opciones avanzadas, nos aparecerán el resto de campos disponibles en la entidad para que actualicemos su valor.

Una vez ejecutada la acción, podemos ver como en el log del IIS nos aparecen 2 operaciones:

Estas operaciones son una llamada de tipo PATCH, que ejecuta para actualizar el registro en cuestión, seguida de una operación de tipo GET que realiza Power Automate para obtener los datos actualizados del registro con el que estamos trabajando, y así poder utilizarlos como Output de la acción, y tener estos valores en los siguientes pasos de nuestro flujo de trabajo.

Cuidado!: En la segunda operación GET, el sistema no utiliza el Id de objeto para obtener los datos, sino, que está utilizando el CustomerGroupId, por lo que, si en el CustomerGroupId ponemos un valor diferente al Id objeto, aunque actualizaremos correctamente el registro que indiquemos en el mismo, los datos que obtendremos en el output serán distintos. Como podéis ver en la siguiente imagen, el sistema lanzaría un PATCH contra un registro, y un GET sobre otro distinto. Un poco «loco», no?

Comportamiento extraño de actualizar un registro
Comportamiento extraño de actualizar un registro

En esta acción, igual que nos pasaba al Obtener un registro, debemos tener especial cuidado con el orden de los parámetros dentro del Id de objeto, y también tenemos la limitación de la empresa asignada dentro de MSDyn365FO, por lo que si intentamos actualizar un registro de una empresa diferente, nos encontraremos con un error 404, ya que no encontrará el recurso que debe actualizar.

Power Automate - Error 404
Power Automate – Error 404

Eliminar registro

Y llegamos a la última de las acciones de Power Automate sobre MSDyn365FO: Eliminar registro. Tal y como indica su nombre, lo que conseguimos con esta acción es eliminar un registro sobre la entidad indicada en los parámetros de entrada.

Power Automate - Eliminar registro
Power Automate – Eliminar registro

Para identificar el registro que queremos eliminar, seguiremos el mismo mecanismo que el indicado en las acciones de Obtener registro y Actualizar un registro, es decir, indicaremos la instancia de Dynamics 365, la entidad sobre la que queremos actuar, y en el Id de objeto, ponemos la empresa seguida de la clave primaria de la entidad.

Tal y como hemos visto hace un rato, debemos ser estrictos con la disposición de los elementos que forman el Id de objeto, y de nuevo, contamos con la limitación que nos crea el no poder utilizar el parámetro cross-company dentro de este tipo de acciones, por lo que si intentamos eliminar un registro de una empresa distinta a la que tenemos asignada, nos encontraremos con un error ya conocido para todos.

Power Automate - Error 404 al eliminar registro en otra empresa
Power Automate – Error 404 al eliminar registro en otra empresa

Por último, vamos a consultar de nuevo el log del IIS para revisar la operación HTTP que realiza Power Automate sobre nuestra instancia de Dyn365 F&O.

Esta operación es un DELETE sobre la entidad que hemos indicado, tomando los valores que hemos puesto en el Id de objeto para identificar el registro en cuestión.

Y aquí finaliza esta serie de artículos sobre el conector de Power Automate para Microsoft Dynamics 365 Finance and Operations. Como habéis podido comprobar, podemos realizar con el prácticamente cualquier tipo de operación, aunque si que es cierto que nos encontramos con una serie de limitaciones y problemas que nos pueden dificultar al momento de diseñar una solución utilizando esta herramienta.

Espero que os hayan gustado y que os resulten útiles. Como siempre, estoy abierto a cualquier tipo de comentario, duda o crítica, y desde aquí, solo me queda desearos unas felices fiestas y un próspero año nuevo.

Nos vemos en 2021!! ✨

1 comment / Add your comment below

Deja una respuesta

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.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies