none
Validar data source xls RRS feed

  • Pergunta

  • Boa tarde galera,

    A algum tempo venho tentando validar se um arquivo (Excel Conection Manager) xls existe em um determinado diretório, mas não tenho conseguido. Quando adiciono uma nova conexão (no meu caso Excel), defino aonde ele deve buscar o arquivo (xls), porém no diretório informado nem sempre irá existir o arquivo (xls), preciso validar se existe o arquivo, caso não exista o SSIS continue rodando sem dar erro. Tentei fazer a validação usando a opção "Script Tasks", mas não deu certo.

    Alguém poderia dar um help?

    Desde já agradeço pela atenção.

    segunda-feira, 18 de fevereiro de 2013 20:53

Respostas

Todas as Respostas

  • Andre,

    Talvez não seja a melhor solução, mas nessas situações normalmente eu faço uma procedure que utilize o comando xp_fileExists retornando 0 ou 1 e controlando o fluxo por este retorno.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 19 de fevereiro de 2013 12:22
    Moderador
  • André, bom dia.

    É possível fazer como o Fabrizzio citou a partir de uma SQL execute task com uma varíavel como ouput e uma constraint do tipo expression no fluxo.

    Adicionalmente, vc também pode colocar o seu dataflow dentro de um foreach looping do tipo "Foreach File Enumerator". Se não existir o arquivo excel na pasta apontada o foreach looping simplesmente finaliza com sucesso.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 19 de fevereiro de 2013 13:21
  • Olá pessoal, obrigado pela força.

    Dentro do meu Data_Flow, tenho algumas conexões com o arquivo do excel (imagem), mesmo eu fazendo essa validação usando a opção "SQL Tasks", acredito que o SSIS vai primeiro conferir a conexão com o excel, depois ele desce o nível indo para os passos "SQL Task". Precisaria fazer a vaidação no "Excel Connection Manager", será que é possível usar essa proc "sp_fileexists"de sistema na conexão?

    terça-feira, 19 de fevereiro de 2013 13:50
  • Andre,

    O uso da XP_FileExist pode ser uma possibilidade se você utilizar o componente Execute SQL Task no seu Control Flow antes do próprio Data Flow!!!!

    Mas acredito que poderíamos pensar em utilizar o componente Script Task, com este componente criando um expression em VB ou C# que poderia fazer a validação do ambiente.



    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    terça-feira, 19 de fevereiro de 2013 14:10
    Moderador
  • Andre,

    Acho que voce esta com alguma duvida conceitual sobre a arquitetura. Veja da seguinte forma: Se ele entrar no Data Flow o arquivo tem que existir! O controle do fluxo se vai ou não entrar no data source deve ser feito antes do data flow.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    terça-feira, 19 de fevereiro de 2013 14:13
    Moderador