Widget de carga de varios archivos en Jitterbit App Builder
DescripciónEste widget se actualizó en enero de 2022
El Widget de Carga Múltiple de Archivos utiliza la biblioteca FilePond, versión 4.28.2, disponible en https://github.com/pqina/filepond. Este widget permite cargar múltiples archivos de forma síncrona o asíncrona. Para ello, los almacena temporalmente en una sola columna y utiliza el evento de guardado para extraer el binario del archivo y moverlo a una tabla independiente donde puede procesarse o transferirse a un sistema de archivos local o de red.
- Creador original: JP Fortier
- Actualizado por: Andros Haggins y Shrey Kumar
- Tipo: Widget de control
-
Parámetros:
Nombre del parámetro Predeterminado Traducible Descripción allowImagePreview
1
No
Habilitar (1) o deshabilitar (0) la vista previa para los tipos de archivos de imagen. allowMultiple
1
No
Habilitar (1) o deshabilitar (0) la adición de múltiples archivos. forceReload
1
No
Habilitar (1) o deshabilitar (0) la ejecución de una actualización global después de que se haya cargado un lote de archivos. maxParallelUploads
1
No
número máximo de archivos que se pueden cargar en paralelo. El máximo probado es 100.runSave
1
No
Habilite (1) o deshabilite (0) la ejecución del evento de guardar para cada archivo que se cargue en la columna de archivo del objeto comercial. Hay más parámetros disponibles para configurar según la documentación de FilePond en
https://pqina.nl/filepond/docs/print-version/#toc
En la sección "Propiedades". Para añadir parámetros o propiedades adicionales, deberá editar el archivo "binder.js" directamente en el widget. Tenga en cuenta que cualquier parámetro o propiedad adicional que añada podría no funcionar correctamente, ya que solo se han probado los parámetros anteriores.
Configuración
Para que el widget de carga de múltiples archivos funcione correctamente, necesitamos dos tablas independientes: una para guardar los archivos (en nuestro ejemplo, la tabla "Archivo") y otra para asociar las cargas de archivos con otros datos según el caso de uso de la aplicación (en nuestro ejemplo, la tabla "Ticket").
Definición de la tabla de tickets
Nota
Las columnas PK (TicketID) y Binary (File) son las únicas obligatorias
Definición de tabla de archivos
Nota
Las columnas PK (FileID), Binary (File) y FK a otra tabla (TicketID) son las únicas columnas requeridas
Ahora que nuestras tablas están configuradas, podemos pasar a la configuración de las reglas de negocio. Necesitaremos un mínimo de 3 reglas de negocio, 2 objetos de negocio y 1 regla CRUD para insertar un archivo en la tabla de archivos.
Boleto (fuente)
El primer objeto de negocio es simplemente un objeto de origen para la tabla Ticket. Este es el objeto de negocio que usaremos en nuestro primer panel, al que se vinculará el panel con el widget y que nos permitirá asociar un archivo con un registro específico:
Ticket (archivo)
Nuestro segundo objeto de negocio se dirige a la misma tabla de tickets, pero solo contiene la clave principal (ID del ticket), el archivo y el nombre del archivo (opcional). Esto es importante porque necesitamos un objeto de negocio independiente para el widget y así poder cargar varios archivos en paralelo:
Ticket (insertar en archivo)
Nuestra última regla de negocio es una regla CRUD de inserción que insertará un nuevo registro en la tabla Archivo. Apuntamos a la tabla Archivo y asignamos un NewUUID() a la columna FileID. Esta regla CRUD se añadirá al evento de guardado de nuestro objeto de negocio anterior en el siguiente paso:
Ahora asociamos la regla CRUD Ticket (Insertar en archivo) con el evento de guardado de nuestro segundo objeto de negocio, Ticket (Archivo), y agregamos una vinculación a TicketID, como se muestra a continuación. Esto moverá todos los archivos a la tabla Archivo una vez que se hayan cargado. Dado que nuestra tabla de tickets solo tiene una columna Archivo binario, esta configuración permite asociar un número dinámico de archivos a un solo registro de Ticket:
Ahora podemos pasar a la capa de interfaz de usuario para configurar el widget. Nuestra página constará de dos paneles: uno con Ticket (Origen) y el otro con Ticket (Archivo):
El panel que usa Ticket (Fuente) tiene menos restricciones de configuración, siempre que nuestro siguiente panel esté vinculado a él. Así es como se ve el nuestro:
Nuestro siguiente panel, que usa Ticket (Archivo), tiene un único control de Archivo donde configuraremos el widget:
En Cosmético > Información del widget, seleccione el widget MultiFileUpload. Si desea cambiar alguno de los parámetros predeterminados, puede hacerlo haciendo clic en las tres casillas debajo de los parámetros, como se muestra a continuación:
Aquí puede ver que hemos cambiado el valor de maxParallelUploads a 25. Aunque runSave sigue siendo 1, lo mostramos aquí para destacar su importancia para el funcionamiento de este widget. Dado que nuestra regla CRUD que mueve nuestro archivo a la tabla Archivo se configura en el evento Guardar de Ticket (Archivo), debemos asegurarnos de que esté configurado en 1 para que funcione correctamente. Si runSave no está configurado en 1, no podremos gestionar varios archivos.
Si necesita realizar algún procesamiento o acción adicional en un archivo, debe hacerlo en el evento Insertar de la tabla Archivo. Esto incluye mover el archivo a un sistema de archivos local o de red.
Nota
Si está cargando archivos en Amazon S3 Bucket y desea crear una estructura de directorio en niveles para los archivos, consulte el sistema de archivos de Amazon S3 artículo.