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.
De hecho, el propio Power Automate nos avisa de ello, tal y como podemos ver en la siguiente imagen:
Crear registro
Utilizaremos la acción Crear registro, obviamente, cuando necesitemos crear nuevos datos dentro de MSDyn365FO.
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.
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.
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.
1 |
2020-12-20 18:22:31 POST /data/CustomerGroups ja.tomas@axazure.com - 201 |
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "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.
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.
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:
1 2 |
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?
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.
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.
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.
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.
1 |
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!! ✨
1 comment / Add your comment below