Vamos a crear un ejercicio donde crearemos una biblioteca de SharePoint para anexar documentos, posteriormente los restauraremos para poder visualizarlos desde Power Apps.
Crearemos una lista de SharePoint.
- Folio (Numero)
- Empresa (Una sola lÃnea de texto)
También crearemos una biblioteca de documento en SharePoint, que será donde se almacenaran los archivos.
Tendremos que mostrar la columna ID, para esto seleccionamos Agregar columna/Mostrar u ocultar columnas.
Marcamos la casilla ID y presionamos Aplicar.
Se visualizará la columna ID y el Folio en la biblioteca de documentos.
Creamos una venta donde agregaremos
- Button = Para grabar los registros en la lista_empresas y en la biblioteca lista_empresas_anexos
- Label = Titulo Folio
- Label = Titulo Empresa
- TextInput_folio = Se tecleará el folio
- TextInput_empresa = Se tecleará la empresa
- Control attach = Se anexarán los archivos
- Galeria vertical = Ver los archivos anexos por registro
- Galeria vertical = Ver los registros almacenados en la lista_empresas
Para anexar el control attach debemos copiarlo de otra ventana, ya que no existe como tal en los componentes, para esto, creamos una nueva ventana, seleccionamos en signo + y presionamos Form.
Seleccionamos la lista de SharePoint.
Se visualizarán todos los campos de la lista, presionamos sobre la pantalla.
Se creará un formulario con todos los campos de la lista, copiaremos el control para el anexo de archivos.
Lo copiarmos en nuestra ventana y solo quitaremos el código donde nos aparezca algunos errores.
Creamos 2 flujos en Power Automate, uno será para grabar el archivo y otro será para eliminar el Folio y no se visualice en la lista de anexos.
Ingresamos a Power Automate y creamos un nuevo flujo, el flujo deberá ser Create from blank.
Tecleamos el nombre del flujo y seleccionamos un Number y File.
Agreamos Create file, llamaremos la dirección donde tenemos nuestra lista de SharePoint, asà como el nombre de la biblioteca de SharePoint.
En file name teclearemos:
@{triggerBody()['file']['name']}
para que tome el nombre del archivo.
En file content, llamaremos el nombre el file que creamos al inicio del flujo.
Llamaremos Update file properties, donde seleccionaremos la ruta donde se ubica nuestra biblioteca, asà como el nombre de La biblioteca, en Id se llamaremos ItemId que es el último registro creado, en Folio (es el campo de la biblioteca) llamaremos el numero creado al inicio del flujo.
Por último, llamaremos Respond to a Power App or flow, seleccionaremos Number y solo tendrá un número que nos indicara que se realizó el proceso, no olvides Salvar el flujo.
Ahora crearemos el flujo que eliminara el Folio de la biblioteca para que no muestre los archivos, seleccionaremos Number.
Por último, llamaremos Respond to a Power App or flow, seleccionaremos Number y solo tendrá un número que nos indicara que se realizó el proceso, no olvides Salvar el flujo.
En caso de ejecutar la App y marque un error al borrar un anexo, cambiar el retorno de la variable.
Ahora, seleccionamos en botón Grabar y tecleamos en OnSelect.
Patch(
Lista_empresas,
Defaults(Lista_empresas),
{
Folio: Value(TextInput_folio.Text),
Empresa: TextInput_empresa.Text
}
);
ForAll(Control_anexo.Attachments As Documento,
AnexarDoc.Run(Value(TextInput_folio.Text),
{
file: {
name: TextInput_folio.Text & "_" & Documento.Name,
contentBytes: Documento.Value
}
}
)
).resultado_1;
Refresh(Lista_empresas_anexos);
Reset(Control_anexo);
Notify("El registro han sido grabado",NotificationType.Success,5000)
Vamos a guardar el registro en la lista_empresas, llamamos el flujo AnexarDoc, se guardar el Folio que tecleamos en TextInput_Folio y almacena el archivo seleccionado en la biblioteca Lista_empresas_anexos e incluye el número de folio al inicio del nombre del archivo.
En la galeria llamaremos la lista_empresas y agregaremos las etiquetas Folio y Empresa.
En la galeria donde se visualizarán los anexos tecleamos en el Item.
Filter(Lista_empresas_anexos, ThisRecord.Folio=Value(TextInput_folio.Text) && ThisRecord.Folio > 0)
Donde indicamos que se filtraran solo los archivos que sean igual al TextInput_folio y que sean mayor a 0.
En la galeria agregarmos la etiqueta parea visualizar el nombre del archivo.
El icono para eliminar el número de folio en la lista_empresas_anexos.
BorrarDoc.Run(ThisItem.ID).resultado_2;
Refresh(Lista_empresas_anexos);
Reset(Control_anexo)
Ejecuta la app.
Anexamos algunos archivos, grabarnos el registro y verificamos la lista_empresas_anexos.
Presionamos el icono de borrar y volvemos a verificamos la lista_empresas_anexos.