none
Process Task RRS feed

  • Pergunta

  • Bom dia pessoal,

    Sou muito novato em SSIS e estou a desenvolver uma solução que implica em executar um programa que realiza alguns procedimentos na bases de dados.  Até agora consegui desenvolver um foreach que lista todas as variaveis(bases de dados) e imprimi na tela o valor da variavel(lista de todas as bases)

    Estudando e pesquisando notei que este componente Execute Process Task é o mais recomendado para minha solução. No entanto, não sei como posso fazer isto.

    Agora gostaria de saber primeiramente se é possível passar dentro do .bat a variavel(bases listadas) como parametro e executa-lo dentro do Execute Process Task.

    Se sim, como passar os valores dentro deste componente e dentro do .bat?

    Se não tiver uma forma, aceito outras...

    Desde já agradeço.   

     

     

     

     

     

     

    quarta-feira, 14 de dezembro de 2011 14:07

Todas as Respostas

  • Cavera,

     

    Veja este link, aqui ele da uma ideia de variaveis com .bat. http://stackoverflow.com/questions/26551/how-to-pass-command-line-parameters-in-batch-file

     

    Eu pessoalmente, nunca utilizei o Process task pata .bat, e sim para .exe, todo caso, veja esta outra thread do technet, creio que possa te ajudar.

    http://social.msdn.microsoft.com/Forums/eu/sqlintegrationservices/thread/6b893df2-cc15-4f28-93f1-aa798e8bf9fd


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quinta-feira, 15 de dezembro de 2011 16:56
    Moderador
  • Cavera,

    Você deseja utilizar a sua variável como parâmetro dentro do código do arquivo .bat?

    É isso?

    Dentro de um arquivo .bat as variáveis são declaradas em o símbolo de porcentagem, como por exemplo:

    dir %lista%

    Acredito que você conseguiria passar a sua variável como parâmetro pois no código do seu arquivo .bat existiria uma outra variável recebendo o valor.


    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]
    domingo, 18 de dezembro de 2011 23:21
    Moderador
  • Pois bem pessoal, já tentei inumeras coisas, mas nada dah certo. Além do .bat tentei com o .exe, resumindo, preciso de ajuda. O .exe que pretendo executar no task process é executado desta forma: C:\MicrovixBI\bkp_teste\ScriptDatabase.exe "nome_banco_dados" "C:\bkp_teste\"nome_banco_dados".sql" "C:\bkp_teste\"nome_banco_dados".log" Acreditei que colocando apenas uma variavel que recebe o nome dos bancos de dados no lugar do "nome_banco_dados" dentro de um .bat seria menos complicado. Atualmente consigo listar todas os bancos de dados em uma variavel, mas não consigo passar para fazer de forma dinâmica. Acho que estou me perdendo na configuração dos elementos do process task, alguém pode me ajudar ?
    terça-feira, 27 de dezembro de 2011 18:40
  • Cavera,

    Dentro do arquivo .bat você configurou a variável que deseja passar como parâmetro?


    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]
    quarta-feira, 28 de dezembro de 2011 23:37
    Moderador
  • Pedro,

    eu desisti de passar a variável dentro do .bat . Usei com o .exe, nas imagens abaixo para tentar descrever como cheguei na solução que eu precisava para esta parte do pacote.

    Passei o .exe , ocultei a janela ao executar o programa e coloquei false neste requireFullFileName.  E na guia Expressions , criei

    duas expressões, na primeira passei a variavel que continha os valores que acumulei em um foreach, e criei outra variavel para armazenar o caminho do executável(Nesta guia não deixou passar o caminho por extenso, p.ex C:\programa.exe).

    Desta forma, cheguei ao resultado esperado. Obrigado pela ajuda de voçês.

     

     

     

    quinta-feira, 29 de dezembro de 2011 16:07