Eu tenho um Foreach Loop Container que percorre os arquivos em uma pasta. Achei que o Loop Container só olharia os arquivos 1 vez, mas aparentemente ele começará de volta no topo e pegará um arquivo que já havia visto novamente.
Eu tenho um script em meu contêiner de loop que processará o arquivo se ele atender a determinados critérios. Caso contrário, ele simplesmente ignorará o arquivo.
Os arquivos processados são movidos para outra pasta. O problema que estou tendo é que, uma vez que ele passa por todos os arquivos, ele começa de volta no topo da lista de arquivos, então ele continuará indefinidamente em loop se houver um arquivo que foi ignorado e não movido para uma pasta diferente .
Eu sei que posso fazer isso de forma que, em vez de pular o arquivo, meu processo mova o arquivo para outra pasta para que o contêiner de loop foreach possa terminar o loop e o pacote possa ser concluído, mas pensei em verificar primeiro para ver se havia um maneira de apenas fazer com que o contêiner de loop percorra os arquivos uma vez, de modo que, se um arquivo já tiver sido identificado, ele não seja detectado novamente pelo contêiner de loop.
Com base no esclarecimento dos comentários, o fluxo de trabalho foi
O ForEach File Enumerator tem uma
Traverse Subfolder
opção que permite ao enumerador olhar além do nível superior de uma hierarquia de pastas.A mecânica específica de como o enumerador parece ser implementado é que ele identificará todos os elementos dentro de uma pasta. Processe todos os arquivos correspondentes ao FileSpec,
*.csv
neste caso, e visite cada diretório aplicando o mesmo padrão.O que você está observando é que o arquivo original foi processado e movido corretamente para o local do arquivo. O local do arquivo foi então processado, resultando em um arquivo com processamento duplo.