Widget de upload de vários arquivos no Jitterbit App Builder
Descrição
Este widget foi atualizado em janeiro de 2022
O Widget de Upload de Vários Arquivos utiliza a biblioteca FilePond, versão 4.28.2, que pode ser encontrada em https://github.com/pqina/filepond. Este widget permite o upload de vários arquivos de forma síncrona ou assíncrona, armazenando-os temporariamente em uma única coluna e utilizando o evento de salvamento para extrair o binário do arquivo e movê-lo para uma tabela separada, onde pode ser processado posteriormente ou movido para um sistema de arquivos local ou de rede.
- Criador Original: JP Fortier
- Atualizado por: Andros Haggins e Shrey Kumar
- Tipo: Widget de Controle
-
Parâmetros:
Nome do Parâmetro Padrão Traduzível Descrição allowImagePreview
1
No
Habilita (1) ou desabilita (0) a pré-visualização para tipos de arquivo de imagem. allowMultiple
1
No
Habilita (1) ou desabilita (0) a adição de múltiplos arquivos. forceReload
1
No
Habilita (1) ou desabilita (0) a execução de uma atualização global após o upload de um lote de arquivos. maxParallelUploads
1
No
Número máximo de arquivos que podem ser enviados em paralelo. O máximo testado é 100. runSave
1
No
Habilita (1) ou desabilita (0) a execução do evento de salvamento para cada arquivo que está sendo carregado na coluna de arquivo do Objeto de Negócio. Mais parâmetros estão disponíveis para configuração com base na documentação do FilePond em
https://pqina.nl/filepond/docs/print-version/#toc
na seção "Propriedades". Para adicionar parâmetros/propriedades adicionais, você precisará editar o arquivo "binder.js" diretamente no widget. Observe que quaisquer parâmetros/propriedades adicionais adicionados podem não funcionar conforme o esperado e apenas os parâmetros acima foram testados.
Configuração
Para que o Widget de Upload de Vários Arquivos funcione corretamente, precisamos de duas tabelas separadas. Uma para os arquivos a serem salvos (no nosso exemplo, a tabela "Arquivo") e outra que associará os uploads dos seus arquivos a outros dados com base no caso de uso do seu aplicativo (no nosso exemplo, a tabela "Ticket").
Definição de mesa de ingressos
Nota
A coluna PK (TicketID) e a coluna Binary (Arquivo) são as únicas colunas obrigatórias
Definição de tabela de arquivos
Nota
Coluna PK (FileID), coluna Binária (File) e coluna FK para outra tabela (TicketID) são as únicas colunas necessárias
Agora que nossas tabelas estão configuradas, podemos passar para a configuração das Regras de Negócios. Precisaremos de no mínimo 3 Regras de Negócios, 2 Objetos de Negócios e 1 regra CRUD para inserir um arquivo na tabela de arquivos.
Bilhete (fonte)
O primeiro objeto de negócio é apenas um objeto de origem para a tabela Ticket. Este é o objeto de negócio que usaremos em nosso primeiro painel, ao qual o painel com o widget se vinculará e nos permitirá associar um arquivo a um registro específico:
Bilhete (arquivo)
Nosso segundo objeto de negócios tem como alvo a mesma tabela de Tickets, mas contém apenas o PK (TicketID), o arquivo e o nome do arquivo (opcional). Isso é importante porque precisamos de um objeto de negócios separado para o widget, para que vários arquivos possam ser carregados em paralelo:
Bilhete (inserir no arquivo)
Nossa última regra de negócios é uma regra CRUD de Inserção que inserirá um novo registro na tabela Arquivo. Visamos a tabela Arquivo e definimos um NewUUID() para a coluna FileID. Essa regra CRUD será adicionada ao evento de salvamento do nosso objeto de negócios anterior na próxima etapa:
Agora, associamos a regra CRUD Ticket (Inserir no Arquivo) ao evento de salvamento do nosso segundo objeto de negócios Ticket (Arquivo) e adicionamos uma vinculação ao TicketID, conforme mostrado abaixo. Isso moverá todos os arquivos para a tabela File após a conclusão do upload. Como nossa tabela de tickets possui apenas uma coluna Binary File, essa configuração permite que um número dinâmico de arquivos seja associado a um único registro de Ticket:
Agora podemos passar para a camada de interface do usuário para configurar o widget em si. Nossa página consistirá em 2 painéis. Um usando Ticket (Fonte) e o outro usando Ticket (Arquivo):
O painel que usa Ticket (Fonte) tem menos restrições de configuração, desde que nosso próximo painel esteja vinculado a ele. Veja como o nosso se parece:
Nosso próximo painel usando Ticket (Arquivo) tem um único controle de Arquivo onde configuraremos o widget:
Em Cosméticos > Informações do Widget, você selecionará o widget MultiFileUpload. Se desejar alterar algum dos parâmetros padrão, clique nas 3 caixas abaixo dos parâmetros, como mostrado a seguir:
Aqui você pode ver que alteramos maxParallelUploads para 25. Embora runSave ainda seja 1, estamos exibindo-o aqui para demonstrar sua importância para a funcionalidade deste widget. Como nossa regra CRUD que move nosso arquivo para a tabela File está configurada no evento Save de Ticket (File), precisamos garantir que ele esteja definido como 1 para funcionar corretamente. Se runSave não estiver definido como 1, não conseguiremos manipular vários arquivos.
Se houver algum processamento/ação adicional que precise ser feito em um arquivo, isso deve ser feito no evento Insert da tabela File. Isso incluiria mover o arquivo para um sistema de arquivos local ou de rede.
Nota
Se você estiver carregando arquivos no Amazon S3 Bucket e procurando criar uma estrutura de diretório em camadas para os arquivos, consulte o Sistema de arquivos Amazon S3 artigo.