top of page
  • Foto del escritorAlejandro Caravantes Molina

Dataverse Word Templates desde Power Automate

disponía, fíjate que lo único que necesitamos hacer es establecer los parámetros:

Si has jugado con Power Automate, sabrás que el conector de Word Online (Business) tiene una acción que se llama "Populate a Microsoft Word Template". Esta acción lo que hace es generar un documento Word a partir de una plantilla almacenada en Sharepoint, pidiéndonos las variables definidas en la propia plantilla. Muy bien, pero...


¿Qué ocurre si necesitamos mostrar en dicho documento mucha información de un registro almacenado en Microsoft Dataverse? Es más, si queremos trabajar con colecciones de registros, ¿cómo podemos trabajar con los registros relacionados de un registro padre?.


A este escenario nos tuvimos que enfrentar durante un evento en las oficinas de Microsoft que tuvo lugar hace unos días. Nos vimos en la necesidad de generar un documento Word a partir de una plantilla, mostrando información de varios registros almacenados en varias tablas de Dataverse y mostrar imágenes subidas a estos registros como Notas en el Timeline del registro principal. Además la plantilla de Word no queríamos almacenarla en Sharepoint.


Antes de nada, vamos a ver como trabajar con plantillas de Word almacenadas en Dataverse, que por si no lo sabías, al igual que podemos exportar o importar registros desde Microsoft Excel hacia Dataverse, también existe la posibilidad de generar reportes o informes a partir de una plantilla de Microsoft Word mostrando datos de uno o varios registros. Para ello, accede al centro de administración de Power Platform, y desde el entorno en el que estés trabajando accede a la opción Settings. Una vez allí desde el desplegable Templates selecciona Document Templates. También puedes acceder desde la configuración avanzada (para los mas oldies) del entorno desde el que estés trabajando.



Selecciona la opción Nueva y fíjate que puedes generar una plantilla Word a partir de una tabla del entorno sobre el que estés trabajando (Seleccionar entidad). Cuando hayas seleccionado la tabla sobre la que vas a generar la plantilla, lo siguiente que debes hacer es indicar que relaciones van a estar disponibles en tu plantilla para poder insertar registros de dichas tablas.


En mi caso voy a trabajar con la tabla Caso (Incident) y voy a traerme las relaciones 1:N con Notas y Citas y también la relación N:1 de Cuenta.


Una vez selecciones Descargar Plantilla, se descargará una plantilla de Word que ya tendrá vinculada la estructura de datos que hemos configurado. Mira como he dado forma a mi plantilla Word desde la pestaña Programador y la opción Panel de asignación XML.


Para este ejemplo, voy a mostrar unos datos básicos del Caso, la información básica del contacto principal del caso y las Tareas asociadas a dicho Caso. Muy fácil.


Sólo hace falta subir nuestra plantilla haciendo clic en el botón Cargar en el pop-up desde donde nos descargamos la plantilla. A partir de ese momento, cuando accedamos a un registro de la tabla Caso, nos aparecerá una nueva opción desde el botón plantillas de Word.


Si hacemos clic sobre ese nueva opción, se nos descargará un documento Word generado a partir de la plantilla que hemos creado y con todos los datos del registro que estamos visualizando.

Ahora bien....


¿Cómo generamos este documento desde un flujo cloud de Power Automate?

Verdaderamente este fue el reto. Ver como éramos capaces de generar este documento desde un flujo automatizado sin necesidad de hacer clic en ningún botón.


Lo primero que se nos ocurrió fue subir esta plantilla a Sharepoint y ver si con la opción "Populate a Microsoft Word Template" de la que hablábamos al principio, nos era suficiente. La respuesta fue clara: no. Si hacemos eso, el conector de Word Online (Business) nos mostraba una variable con un número como nombre al que debíamos pasarle todo el contexto. No queríamos entretenernos generando un XML al vuelo, que vete tu a saber cómo lo recibía Word y cómo era capaz de pintarlo.

Lo siguiente que intentamos hacer fue ver si desde Power Automate el conector de Dataverse disponía de alguna acción (bound o unbound) que hiciera referencia a algo relacionado con una plantilla de Word y ver si por ahí podíamos entrar. La respuesta también fue clara: no.


Cuando empezábamos a desesperarnos, de repente vinieron a nuestra mente las Custom Action a las que podemos dar forma desde el diseñador clásico de Workflows. Decidimos entrar por ahí y... ¡premio!. Desde la solución en la que estés trabajando, selecciona New > Automation > Process > Action.


Esto abrirá el diseñador clásico de Workflows. Selecciona la entidad con la que estés trabajando (en este ejemplo estamos trabajando con la tabla Caso) y a continuación selecciona Agregar Paso > Realizar Acción. Busca una acción con nombre SetWordTemplate.


Cuando hayas seleccionado esa acción, lo siguiente que necesitamos es pasarle un par de parámetros a la acción para que pueda ejecutarse correctamente. Haz clic en el botón Establecer Propiedades. Cuando se cargue el pop-up, fíjate que lo único que necesitamos hacer es establecer los parametros:

  • Selected Template: lo único que debemos indicar aquí es la plantilla de Word que generemos generar.

  • Target: en esta propiedad lo que debemos indicar es el contexto del registro con el que vayamos a generar la plantilla. En mi caso, el registro principal de la tabla Caso. Si en el desplegable de Buscar no aparece la tabla con la que estas trabajando, asegúrate que dicha tabla tiene activada la opción Flujos de proceso de negocio😉

Guarda las propiedades del paso SetWordTemplate, guarda y activa la propia acción y publica tu solución.


Vayámonos de vuelta a Power Automate y selecciona la acción Perform a Bound Action del conector de Dataverse. Selecciona la tabla con la que estés trabajando (en esta entrada estamos trabajando con la tabla Caso) y... ¡voilá!. Ahí está nuestra Custom Action que espera como parámetro el contexto del registro con el que debe ejecutarse. Establece dicho parámetro y ya tienes tu flujo de Power Automate generando documentos a partir de plantillas Word almacenadas en Microsoft Dataverse, de la misma forma que si hacemos clic en el botón de la Command Bar que veíamos mas arriba.


A partir de aquí puedes almacenar el documento generado en One Drive y generar el Pdf con la acción Convert Word Document to Pdf del conector Word Online (Business) y trabajar con el documento generado prácticamente a nuestro antojo.


¡Espero haber sido de ayuda! ¡Gracias por haber llegado hasta aquí! ¡Nos vemos en la próxima!

Comments


bottom of page