Bom dia, Configurei o PDI para acessar um servidor FTP e baixar um arquivo em csv, até aí tudo bem, o problema é que dentro da pasta no servidor FTP haverá sempre mais de arquivo, exemplo: REC_PEND_FECH_COM20180219130059.csv ,REC_PEND_FECH_COM20180219132200.csv , REC_PEND_FECH_COM20180219134000.csv . . . Ou seja preciso copiar sempre o arquivo mais atual, como fazer isso ? Aqui usei o shell script no pentaho para fazer o FTP e copiar os arquivos (Mget na pasta), mas não sei como especificar para capturar sempre o arquivo mais recente dentro do diretório, o nome do arquivo é dinâmico ( REC_PEND_FECH_COMaaaammddhhmmss.csv )
top of page
bottom of page
Olá Edivaldo,
Vou tentar ajudar com algumas opções:
1 - Crie uma estrutura de pasta, e mova os arquivos sempre que realizar a execução exemplo: (Entrada, Backup) de modo que na entrada sempre fique o ultimo arquivo
2 - Configurar o VFS da apache para passar parâmetros como ultima modificação de arquivo
https://help.pentaho.com/Documentation/7.1/0L0/0Y0/030/050/010/000/000
https://commons.apache.org/proper/commons-vfs/
3 - Crie uma tabela de controle no banco e faça um step para inserir nessa tabela com o nome do arquivo e o substring para pegar a data que já está no final do arquivo, no mapeamento de sua carga faça um select nessa tabela ordenando por essa data e pegando o primeiro registro. (Essa solução é legal por que você pode pegar o arquivo de qualquer data através desse gerenciamento de tabela)
4- Outra opção, caso você faça uma carga diária por exemplo, e sempre vai pegar uma data exemplo d-1, então você pode ler todos arquivos do FTP comparando se a data de modificação é igual ao período informado (Tenho um exemplo, qualquer coisa pede no email vraoliveira@gmail.com pois aqui não consigo fazer upload de arquivo).
Até mais