CSV ( Comma Separated Values) é um formato de armazenamento de tabela no qual os valores das células são separados pelo símbolo ",". Em vez de "," o separador pode ser utilizado outro carácter. Embora, AppMaster requer uma vírgula.
É importante assegurar que este carácter não ocorra dentro da célula. Caso contrário, os dados do ficheiro serão lidos de forma incorrecta.
Primeiro, criar um modelo de dados onde a informação do ficheiro CSV será guardada. Por exemplo, vamos fazer um modelo de dados para voos. Este conterá os seguintes campos:
- flight_no - número de voo, em formato inteiro;
- destino em formato de string;
- classes - classe de voo disponível para este voo, formato de matriz[string].
Um exemplo de um ficheiro que será importado:
A primeira coluna contém flight_noo segundo contém destinatione o terceiro contém classes.
Na terceira coluna, os valores são separados por ponto-e-vírgula.
Criar um processo de negócio
Ir para o Business Logic e clique no separador Create Business Process botão.
Este processo empresarial necessita de um ficheiro CSV, por isso adicione o campo do ficheiro ao botão Start bloco.
A seguir, precisamos do bloco Read CSV bloco de ficheiro.
Da mesma forma, pode utilizar os blocos Read XLS file e Read XLSX file para os formatos correspondentes.
Como funciona o bloco Read CSV file:
Tem dois conectores de saída: Each Row e Completed. Quando o bloco é activado, lerá o ficheiro linha a linha, e cada vez que activar o Each Row e passar o número da linha (Número da linha, a partir de 1) e Colunas da linha um conjunto de cordas de todas as colunas da linha actual.
Passa o ficheiro a partir do Start bloco para o Read CSV file bloco:
A seguir, adicione o bloco For Each Loop bloco. Processará a matriz de cordas que envia o Read CSV file bloco.
Para Each Looptal como a Read CSV file, processa cada elemento da matriz e activa o Loop Body conector para cada um deles.
O campo de saída do índice no bloco For Each Loop é o número do índice do elemento da matriz. Começa a partir de 0.
Ligue todos os conectores:
O bloco seguinte é Switch. Com a sua ajuda, iremos determinar onde escrever os valores de diferentes campos.
Switch pode aceitar qualquer tipo de entrada e, dependendo dela, pode activar diferentes conectores de saída. O Default é activado se o valor de entrada não corresponder a nenhum dos conectores criados.
O ficheiro CSV tem três colunas, o que significa que existem três valores guardados em cada matriz de colunas de linha, sempre na mesma ordem:
- número;
- direcção;
- classes.
Por conseguinte, iremos criar três conectores de saída no Switch bloco 0, 1, e 2 e passar o índice a partir do For Each Loop bloco para o Switch bloco.
A primeira coluna do ficheiro contém o número do voo. Mas o For Each Loop bloco recebe-o no string formato. Por conseguinte, convertemo-lo para um número inteiro utilizando o To integer bloco antes de guardar. Depois disso, guardá-lo numa variável utilizando o Set variable bloco.
A segunda coluna do ficheiro contém a direcção em string formato. Pode ser imediatamente guardado a uma variável.
A terceira coluna do ficheiro contém uma lista de classes separadas por ponto-e-vírgula. O For Each Loop bloco também o recebe no formato de cordel. Por isso, divide-o num conjunto de cordas. Para o fazer, utilizamos o Split String bloco. Vamos passar-lhe um fio com uma lista de classes e definir ";" como o separador padrão.
Guardar o valor recebido numa variável.
Uma configuração de loop através de todos os valores das colunas em cada linha está terminada.
Precisamos de criar uma entrada a partir de cada linha do ficheiro. Utilizamos o conector de saída completo no ficheiro For Each Loop bloco e o Make flight bloco para o fazer. Vamos transferir para ele todas as variáveis recebidas durante o ciclo.
Agora salve o modelo criado em Make flight utilizando o DB Create flight bloco.
Assim, cada linha é guardada como um registo na base de dados.
Agora precisamos de terminar o processamento do ficheiro. Vamos utilizar o completed conector de saída no Read CSV file bloquear e ligá-lo ao End bloco.
O BP a importar de um ficheiro está terminado.
Endpoint configuração
Ir para o separador Endpoints e criar um novo ponto final.
Seleccione o bloco POST método, defina o URL endereço, seleccione o Flight groupe a criada BP Import CSV.
Configurar um botão no front-end
Agora precisamos de instalar um botão na parte da frente para carregar o ficheiro.
Arraste a File picker elemento sobre a tela.
E configurar o BP para ele:
Utilizar o elemento onSelectfiles gatilho. Este gatilho recebe ficheiros como uma matriz, mesmo que haja apenas um ficheiro. Portanto, utilizaremos o bloco Array Element para obter um elemento da matriz. Vamos definir o campo de índice a 0 para obter o primeiro elemento da matriz.
Agora, grave o ficheiro carregado na base de dados utilizando o Server request POST /_files/ bloco.
Expandir o ficheiro resultante utilizando o bloco Expand file bloco.
Agora passe o ID (que neste caso é um ficheiro) para o Server request POST /flight/csv/ bloco.