04-25-2019 02:43 PM - editado 04-30-2019 01:45 PM
Ler múltiplos arquivos com diferentes esquemas de campos
Este artigo faz parte da Série Desenvolvimento de Macros. O objetivo dessa série é divulgar dicas, truques e o processo mental necessário para desenvolver macros de qualidade e dinâmicas.
A ferramenta Diretório pode ser muito poderosa quando se deseja ler múltiplos arquivos de uma pasta, seja em sua unidade local ou em um local de rede. Tendo a lista de caminhos de arquivos, é possível utilizar a ferramenta dinâmica ou criar uma macro de lote para ler todos esses arquivos.
A ferramenta Entrada dinâmica pode ser utilizada se todos os seus arquivos tiverem o mesmo esquema de campos.
Contudo, se o esquema de campos for diferente, você receberá os avisos abaixo ao utilizar a ferramenta Entrada dinâmica para ler os caminhos de arquivo completos.
Sendo assim, é possível criar uma macro de lote simples que pode ser utilizada repetidamente para importar vários arquivos de uma só vez.
Dentro da macro - o primeiro passo é criar seu fluxo de trabalho.
1) Arraste uma ferramenta Dados de entrada e selecione um dos arquivos que deseja ler. Neste exemplo, eu utilizo arquivos .xlsx, mas é possível escolher qualquer formato de arquivo que deseje ler, desde que esse formato seja o mesmo para todos os arquivos que estiver lendo.
2) Adicione um Parâmetro de controle acima da sua ferramenta Dados de entrada. Isso permite passar um caminho de arquivo por vez do lado de fora da sua macro. Não é necessário configurar essa ferramenta.
3) Arraste do "Q" da ferramenta Parâmetro de controle para o símbolo de raio da ferramenta Dados de Entrada. Isso adicionará uma ferramenta Ação. Na ferramenta Ação, destaque o caminho de arquivo na janela Configuração.
Agora, isso irá adicioná-lo à opção "Substituir uma cadeia de caracteres específica" na parte inferior da janela de Configuração. Isso significa simplesmente que o valor que você passar pelo seu Parâmetro de controle substituirá isso na ferramenta Dados de entrada.
4) Adicione uma Saída de macro à ferramenta Dados de entrada. Isso permitirá que os dados fluam para fora da macro e de volta para o fluxo de trabalho original.
Agora vá para Visualizar >> Interface Designer (ID) e clique no ícone de engrenagem no lado esquerdo da janela do ID.
No Modo de saída, altere a opção para:
- Configurar automaticamente por nome (aguardar todas as iterações serem executadas) - Configurar automaticamente por nome unirá os campos com os mesmos nomes
- Configurar automaticamente por posição (aguardar todas as iterações serem executadas) - Configurar automaticamente por posição unirá o campo 1 etc. aos campos de mesma posição para cada arquivo lido.
Isso eliminará os avisos que você estava recebendo com a Entrada dinâmica.
Inserir a macro em seu fluxo de trabalho
1) Arquivo >> Salvar como - Salve a macro em um local onde seja possível acessá-la. O Alteryx saberá que esse é um fluxo de trabalho de macro porque você adicionou um Parâmetro de controle, bem como uma Saída de macro.
2) Em uma nova tela, você pode clicar com o botão direito na tela >> Inserir >>> Macro.
3) Se estiver lendo em uma lista de arquivos, é possível utilizar a ferramenta Diretório para acessar a pasta contendo os arquivos.
4) Como este é um exemplo de xlsx, precisarei adicionar o nome da planilha para cada um dos arquivos. Se estiver lendo um tipo de arquivo diferente, não será necessário fazer esta etapa.
5) É possível então configurar o Parâmetro de controle e selecionar "Caminho completo".
Veja em anexo um exemplo de fluxo de trabalho (Versão 11.0) que você pode aproveitar como um modelo.
Se desejar criar uma macro de lote, nossa página de treinamento sob demanda contém um vídeo excelente: http://www.alteryx.com/on-demand-training
*Embora esta macro tenha sido testada, ela pode não funcionar em todas as situações. Deixe seu comentário, ficarei feliz em ajudar.
Cumprimentos,
Jordan Barker
Representante de Assistência ao Cliente
@frapaso Acredito que este conteúdo também possa ajudar com a sua questão 😉