Manipulação de Diretório de Arquivo
Este artigo revisará o trabalho com Manipulação de Diretório de Arquivos em App Builder. Os tópicos abordados incluem mover arquivos entre binários e um sistema de arquivos, criar diretórios de dentro App Builder, e vincular diretórios em um Painel do Sistema de Arquivos.
Pré-requisitos
- É necessário configurar um sistema de arquivos em seu App Builder servidor (Local, S3 ou Rede)
- É recomendado armazenar o sistema de arquivos DataSourceID na tabela de parâmetros do aplicativo do qual você vai transferir os arquivos
- O banco de dados do qual você está transferindo seus arquivos deve estar vinculado ao seu sistema de arquivos
Colunas em uma Tabela de Arquivos do Sistema de Arquivos
Coluna | Obrigatório (S/N) | Tipo de dados | Descrição |
---|---|---|---|
DataSourceID(*) | Sim | UUID | O DataSourceID da fonte de dados do sistema de arquivos |
Nome(*) | Sim | String | O nome do arquivo quando ele é armazenado no sistema de arquivos |
Diretório(*) | Sim | String | O caminho do arquivo que está sendo armazenado no sistema de arquivos |
NomeCompleto | Não | String | O nome do arquivo quando ele é armazenado no sistema de arquivos |
IsDirectory | Não | Boolean | Se o arquivo armazenado é ou não uma pasta |
Conteúdo | Não | Binário | O arquivo em si |
Extensão | Não | String | A extensão do arquivo que está sendo armazenado |
CreatedOn | Não | Data/Hora | Quando o arquivo foi inserido no sistema de arquivos |
ModifiedOn | Não | Data/Hora | Quando o arquivo foi atualizado no sistema de arquivos |
Comprimento | Não | Inteiro | Comprimento do arquivo em bytes |
FolderIcon | Não | Binário | O ícone da pasta no sistema de arquivos |
Instruções para Mover Arquivos do Binário para an App Builder tabela para Sistema de Arquivo
Pastas
- Se você já tem uma pasta no sistema de arquivos onde deseja armazenar os arquivos, então você não precisa configurar pastas através App Builder
-
Se você quiser criar uma pasta no sistema de arquivos, você precisará configurar as Regras em App Builder para fazer isso:
- Crie uma regra de inserção XP CRUD do banco de dados principal do seu aplicativo visando a tabela de arquivos do seu sistema de arquivos
- As chaves da tabela de arquivos que precisam ser direcionadas são DataSourceID (do seu sistema de arquivos), Name (nome do arquivo) e Directory (caminho do arquivo)
- DATASOURCEID(*): Se você armazenou o DataSourceID do seu sistema de arquivos na sua tabela de parâmetros, você pode construir a regra a partir dessa tabela e usar esse campo parametrizado para direcionar o DataSourceID.
- NAME(*): Você pode usar o que quiser como nome do arquivo/pasta. É uma prática comum não usar o nome real do arquivo e gerar um novo nome ao armazenar em um sistema de arquivos por motivos de segurança.
- DIRECTORY(*): Se a pasta for a pasta de nível mais alto no seu sistema de arquivos, use uma string em branco como o diretório. Se você estiver criando uma hierarquia de pastas, o diretório é o caminho do arquivo da pasta, App Builder assume automaticamente o primeiro '\' no caminho do arquivo.
- Direcione o campo IsDirectory com um '1' para todas as pastas. É assim que App Builder saberá criar uma pasta no sistema de arquivos, em vez de tentar inseri-la como um arquivo.
- Registre a Regra de Inserção como uma Ação em um Evento e dispare esse Evento. Se você criou uma pasta de nível superior em seu sistema de arquivos, ela deve aparecer na tabela de arquivos do seu sistema de arquivos, se a pasta/arquivo estiver em qualquer lugar, exceto no nível mais alto em seu sistema de arquivos, você terá que configurar páginas para verificar se ele foi inserido corretamente ou entrar em contato com alguém com acesso ao sistema de arquivos para confirmar que a pasta foi criada.
- As chaves da tabela de arquivos que precisam ser direcionadas são DataSourceID (do seu sistema de arquivos), Name (nome do arquivo) e Directory (caminho do arquivo)
- Crie uma regra de inserção XP CRUD do banco de dados principal do seu aplicativo visando a tabela de arquivos do seu sistema de arquivos
Inserindo Arquivos no Sistema de Arquivos
-
Crie uma Regra de Inserção XP CRUD da fonte de dados e da tabela da qual você está movendo os arquivos, visando a tabela de arquivos do seu sistema de arquivos
- As chaves para o arquivo são as mesmas da pasta
- DATASOURCEID(*): O DataSourceID do sistema de arquivos, você pode codificar o valor ou cruzá-lo na tabela de Parâmetros se você o armazenou
- NAME(*): É uma prática comum não usar o nome original do arquivo no seu sistema de arquivos, no entanto, você pode fazê-lo. Se não fizer isso, certifique-se de configurar uma convenção de nomenclatura que seja consistente e fácil de lembrar. (Observação: se você planeja visualizar este arquivo em um controle incorporado, você deve concatenar a extensão do arquivo ao final do nome. Há documentação SQL online que ajudará você a cortar a extensão do nome do arquivo original.)
- DIRECTORY(*): O caminho em que o arquivo será armazenado. Uma série de nomes de pastas separados por '\'.
- Outro campo que precisa ser direcionado para arquivos é Conteúdo
- CONTENT: O arquivo em si. O binário que está sendo armazenado na tabela
- As chaves para o arquivo são as mesmas da pasta
Vinculando Diretórios em um Painel de Sistema de Arquivos
-
Ao vincular a uma página usando um sistema de arquivos como fonte do painel, é necessário que haja uma vinculação passada para acessar seus arquivos
- No objeto do qual você está vinculando, você deve adicionar os campos aos quais você irá vincular
- Os campos aos quais você vinculará são os PKs da tabela File no seu sistema de arquivos (DataSourceID, Directory e Name)
- Onde quer que você esteja definindo seu link para a página File System, você deve definir os campos que você acabou de adicionar ao seu objeto como Link Criteria. Você também pode fazer isso entre painéis se desejar fazer dessa forma.
- No objeto do qual você está vinculando, você deve adicionar os campos aos quais você irá vincular
Exemplo de Regra XP CRUD para Criar Subpasta
Aqui está um exemplo de regra XP CRUD que instrui App Builder para criar uma subpasta chamada PaymentImport
fora do App Builder data
pasta localizada no C:
unidade. Este exemplo pressupõe que o caminho da fonte de dados é C:/App Builder data
.
Configuração da regra:
- Objetivo: XP CRUD
- Ação: Cram
- Fonte de dados de origem: fonte de dados da qual a regra se origina. Exemplo: InvoicePortal
- Fonte de dados de destino: fonte de dados da qual a regra é alvo. Exemplo: Unidade C
- Camada de destino: camada lógica
- Destino: tabela nomeada da qual a regra é alvo. Exemplo: arquivo
Colunas definidas na regra:
- DataSourceID: 'b24b8338-5c91-4e92-8481-8605944a558d'
- Diretório: *
- Nome: 'PaymentImport'
- IsDirectory: 1
Exemplo de regra XP CRUD para criar uma subpasta