Power Automate: Agregar firma a un documento de Word usando Power Apps.

Hace poco, mostre una forma de como podias crear tu app para recopilar firmas de contratos con Power Apps y la herramienta pen input. Ahora, veremos como incluir a la ecuación Power Automate para guardar esa información (con todo y firma) en una plantilla de Word

Si te lo perdiste, puedes verlo haciendo click aquí.

Ahora, vamos un paso más lejos y veamos la forma en que podemos crear un documento plantilla de Word que recopile la información de la app. En ese documento, veremos el texto pactado por el cliente, su firma y otros datos adicionales.

Creando el template de Word.

Primero creemos el template.

Entraremos a Word desde el escritorio e iremos a la ficha Programador. Si aún no la tienes activa, puedes revisar este link para hacerlo.

En la pestaña de desarrollador, usaremos estos botones para crear nuestro template.

Vamos a darle la «apariencia» a nuestro template. Inserta logotipos, imagenes y demás en el libro para empezar a escribir.

Para rellenar el texto y tomar los valores desde Power Automate agregaremos dos tipos de botones según convenga a tu formato.

  1. Control de Texto Plano: Insertaremos tres de ellos, uno para tomar el nombre del Usuario que firma, otro para tomar el texto del contrato y uno final para repetir el nombre del usuario en la parte de la firma.
  2. Control de imágen: Para insertar la firma del usuario al finalizar el paso de la app.

La hoja debera verse como esta:

Power Automate firma Word 4

El paso final para poder crear el flujo es poner nombre a las etiquetas de objeto insertadas. Para cada una de ellas ve a la ventada de desarrollador y entra a sus propiedades. Designale un nombre que recuerdes (ya que lo necesitaremos saber en el flujo).

Power Automate firma Word 2

Para terminar, guarda tu Documento en una carpeta de OneDrive accesible y ve a Power Automate para continuar.

Agregar pasos al flujo de Power Automate.

De regreso a Power Automate, vamos a abrir nuestro flujo que construimos en la entrada pasada. Si no lo recuerdas, aquí te dejo una imágen rápida.

Como en este flujo ya hemos creado una imagen y guardadola en SharePoint, solo será necesario agregar algunos pasos. Empezaremos por ir a tomar la imagen con el paso «Get File Content»

El ID es del objeto creado en el paso «Create File»

Ahora, buscaremos el paso «Populate a Microsoft Word Template» en las acciones de Word online y agregaremos los datos del documento.

Una vez lleno estos datos, veras que se despliegan los campos a llenar del template. En mi caso tengo 4 campos obligatorios que se ven así:

Tuve que agregar el tomar nombre de Usuario desde la App, ya que en ningun momento lo contemple en el proceso de arriba. Esto nos obligará a cambiar la función en nuestro contrato firmado, pero lo veremos más abajo.

Para finalizar, guardaremos este archivo como una copía para dejar intacto nuestro template. Agregaremos un paso de «Create File» en One Drive y tomaremos todo nuestro documento creado arriba, Puedes construir el nombre del archivo como más convenga.

Power Automate firma Word 3

La función dentro del concat es la siguiente:

concat(String(outputs('Create_item')?['body/ID']),'_',triggerBody()['PopulateaMicrosoftWordtemplate_Usuario'],'_',String(outputs('Create_item')?['body/Fecha_Firma']),'.docx')

Esto creará el archivo de Word con el ID de SharePoint, mas el nombre y la fecha. Guardamos y estamos listos para…

Modificar la función del flujo en la App.

Como todo está listo, vamos a actualizar la función agregando el último nuevo parámetro.

Entraremos al botón «bt_enviar», el cual tendrá la siguiente fórmula:

//convert image to binary
 Set(varJSON,
     With(
         {wJSON: JSON(im_firma_imagen.Image,JSONFormat.IncludeBinaryData)},
         With(
             {wCommaPossition: Find(",",wJSON)},
             Mid(wJSON, wCommaPossition+1,Len(wJSON)-wCommaPossition-1)
         )
     )
 );
// Run Flow
 'ContratosdeVenta-GuardarFirma-WORD'.Run(varJSON,lb_firma_cliente.Text,lbl_contract.Text);
// Reset pen user 
Reset(pen_firma);
// refresh sp list
 Refresh(Contratos_de_Venta)

Lo único que haremos, será agregar el último parámetro usando «lbl_contract.Text» como nombre del cliente:

//convert image to binary
 Set(varJSON,
     With(
         {wJSON: JSON(im_firma_imagen.Image,JSONFormat.IncludeBinaryData)},
         With(
             {wCommaPossition: Find(",",wJSON)},
             Mid(wJSON, wCommaPossition+1,Len(wJSON)-wCommaPossition-1)
         )
     )
 );
// Run Flow
 'ContratosdeVenta-GuardarFirma-WORD'.Run(varJSON,lb_firma_cliente.Text,lbl_contract.Text);
// Reset pen user 
Reset(pen_firma);
// refresh sp list
 Refresh(Contratos_de_Venta)

Y con esto, todo está configurado para correr. Presionamos Play y ejecutamos la app para ver los resultados.

Power Automate firma Word 1

Esta es una forma de crear documentos con firma en Word usando Power Apps, Power Automate y templates. Ahora no hay pretextos de que se olvidó el documento.

Cualquier duda nos leemos abajo.

Power Automate: Agregar firma a un documento de Word usando Power Apps.
Scroll hacia arriba