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

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.

2020-12-20 18:22:31 POST /data/CustomerGroups ja.tomas@axazure.com - 201

{
   "dataAreaId": "usmf",
   "CustomerGroupId": "JAT",
   "ClearingPeriodPaymentTermName": "",
   "CustomerAccountNumberSequence": "",
   "DefaultDimensionDisplayValue": "",
   "Description": "",
   "IsSalesTaxIncludedInPrice": "No",
   "WriteOffReason": "",
   "PaymentTermId": "",
   "TaxGroupId": ""
 }

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:

2020-12-20 18:59:40 PATCH /data/CustomerGroups(dataAreaId='USMF',CustomerGroupId='10') ja.tomas@axazure.com - 204
2020-12-20 18:59:40 GET /data/CustomerGroups(dataAreaId='USMF',CustomerGroupId='10') ja.tomas@axazure.com - 200

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.

2020-12-20 18:41:08 DELETE /data/CustomerGroups(dataAreaId='USMF',CustomerGroupId='JAT') ja.tomas@axazure.com - 204

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!! ✹

Original Post https://jatomas.com/2020/12/23/power-automate-msdyn365fo-fondo-iii/

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Follow
Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...