Inquiridor
Process Task

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.
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.
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 -
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] -
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 ?
-
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] -
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.