Widget de Carga Múltiple de Archivos en Jitterbit App Builder
Descripción
El widget Carga Múltiple de Archivos utiliza la biblioteca FilePond. Este widget permite cargar múltiples archivos de manera sincrónica o asincrónica al almacenar temporalmente los archivos en una sola columna. Utiliza el evento Guardar para extraer el binario del archivo y moverlo a una tabla separada. Desde allí, se puede procesar más o mover a un sistema de archivos local o de red.
Para descargar el widget de Carga Múltiple de Archivos, consulta Carga Múltiple de Archivos en Descargas de Widgets.
-
Creador Original: JP Fortier
-
Actualizado Por: Andros Haggins & Shrey Kumar
-
Tipo: Widget de Control
-
Parámetros:
Nombre del Parámetro Predeterminado Traducible Descripción allowImagePreview1 No Habilitar (1) o deshabilitar (0) la vista previa para tipos de archivos de imagen. allowMultiple1 No Habilitar (1) o deshabilitar (0) la adición de múltiples archivos. forceReload1 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. runSave1 No Habilitar (1) o deshabilitar (0) la ejecución del evento de guardar para cada archivo que se carga en la columna de archivos del Objeto de Negocio. allowFileSizeValidation1 No Habilitar (1) o deshabilitar (0) para permitir el uso de la configuración del parámetro maxFileSize. maxFileSize5000KB No Valor para el tamaño de archivo más grande que el widget permitirá. Debe expresarse en kilobytes y es un valor de cadena. Se pueden configurar más parámetros según la documentación de FilePond en la sección de Propiedades. Para agregar parámetros/propiedades adicionales, será necesario editar el archivo
binder.jsen el widget directamente.Nota
Cualquier parámetro/propiedad adicional que se agregue puede no funcionar como se espera y solo se han probado los parámetros anteriores.
Configuración
A continuación se muestra un ejemplo de cómo configurar y usar el widget de Carga de Múltiples Archivos. La guía se divide en dos pasos:
Paso 1: Configurar tablas, objetos de negocio y reglas
Para que el widget de Carga de Múltiples Archivos funcione correctamente, primero necesitaremos dos tablas. Una para los archivos que se guardarán, a la que llamaremos la tabla Archivo, y otra que asociará tus cargas de archivos con otros datos según el caso de uso de tu aplicación, a la que llamaremos la tabla Ticket.
Definiciones de tabla
La tabla Ticket se puede definir como se muestra en la captura de pantalla a continuación. Aunque se muestran otras columnas, las únicas que son requeridas son la Clave Privada (PK) (TicketID) y la columna Binaria (Archivo).

La siguiente captura de pantalla muestra la definición de la tabla Archivo. Aunque se muestran otras columnas, las únicas que son requeridas son la Clave Privada (PK) (FileID), la columna Binaria (Archivo) y la Clave Foránea (FK) (TicketID).

Ahora que las tablas están configuradas, podemos configurar las tres reglas (dos objetos de negocio y una regla CRUD) que necesitaremos.
Definiciones de regla
Primero, necesitaremos un objeto de negocio, llamado Ticket (Fuente), que actúe como un objeto fuente para la tabla Ticket. Este es el objeto de negocio al que se vinculará nuestro panel con el widget, lo que nos permitirá asociar un archivo con un registro específico:

Nuestro segundo objeto de negocio, llamado Ticket (Archivo), apunta a la misma tabla Ticket, pero solo contiene las columnas TicketID (que es la clave primaria), Archivo y nombre de archivo (opcionalmente). Esto es importante porque necesitamos un objeto de negocio separado para que el widget esté en él y se puedan cargar múltiples archivos en paralelo:

Nuestra última regla de negocio es una regla CRUD de Inserción, llamada Ticket (Insertar en Archivo), que insertará un nuevo registro en la tabla Archivo. Apuntamos a la tabla Archivo y agregamos un NewUUID() a la columna FileID. Esta regla CRUD se añadirá al evento de Guardar para nuestro objeto de negocio anterior en el siguiente paso:

Ahora asociamos la regla CRUD Ticket (Insertar en Archivo) con el evento de Guardar de nuestro segundo objeto de negocio, Ticket (Archivo), y agregamos un enlace en TicketID como se muestra a continuación. Esto moverá cada archivo a la tabla Archivo una vez que se haya terminado de cargar. Debido a que nuestra tabla Ticket solo tiene una columna de archivo binario, esta configuración permite que un número dinámico de archivos se asocie con un solo registro en Ticket:


Paso 2: Configurar el widget de Carga Múltiple de Archivos
Ahora podemos pasar a la capa de UI para configurar el widget en sí. Nuestra página constará de dos paneles. Uno usando Ticket (Fuente) y el otro usando Ticket (Archivo):

El panel que usa Ticket (Fuente) tiene menos restricciones en cuanto a 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 la configuración del control Archivo, haz clic en la pestaña Caso Especial y bajo el grupo de campos Caso Especial, encontrarás el campo Widget. Selecciona el widget Carga de Múltiples Archivos. Si deseas cambiar alguno de los parámetros predeterminados, puedes hacerlo ahora:

Observa que hemos cambiado el valor de maxParallelUploads a 25. Aunque el valor de runSave sigue siendo 1, lo mostramos aquí para resaltar su importancia en la funcionalidad de este widget. Dado que nuestra regla CRUD que mueve nuestro archivo a la tabla Archivo está configurada en el evento Guardar de Ticket (Archivo), necesitamos asegurarnos de que esto esté configurado en 1 para que funcione correctamente. Si runSave no está configurado en 1, no podremos manejar múltiples archivos.
Si tienes algún procesamiento/acción adicional que deba realizarse en un archivo, debe hacerse en el evento Insertar para la tabla Archivo. Esto incluiría mover el archivo a un sistema de archivos local o de red.
Nota
Si estás subiendo archivos a un Bucket de Amazon S3 y deseas crear una estructura de directorios en niveles para los archivos, consulta el artículo sobre el sistema de archivos de Amazon S3.