Usuário com melhor resposta
Execucao DTS atraves de un Batch

Pergunta
-
Ola Amigos, tenho um problema aqui, tenho un DTS e quero que atraves de un bath o usuario execute o pacote.
o Batch tem as seguintes linhas:
echo on
REM Inicio da Carga Financeiro %DATE% as %TIME% >>dtexec /f "\\hdbapl2\BI\fontesoficial\integration services hd_protheus\integration services hd\Carga BI_KN.dtsx" /l "DTS.LogProviderTextFile;\\hdbapl2\BI\Log\Carga BI_KN.txt"
dtexec /f "\\hdbapl2\BI\fontesoficial\integration services hd_protheus\integration services hd\Balance_Income (1).dtsx" /l "DTS.LogProviderTextFile;\\hdbapl2\BI\Log\Balance_Income.txt"
dtexec /f "\\hdbapl2\BI\fontesoficial\integration services hd_protheus\integration services hd\KeyNumber (2).dtsx" /l "DTS.LogProviderTextFile;\\hdbapl2\BI\Log\KeyNumber.txt"
dtexec /f "\\hdbapl2\BI\fontesoficial\integration services hd_protheus\integration services hd\Pms (2).dtsx" /l "DTS.LogProviderTextFile;\\hdbapl2\BI\Log\Pms.txt"
dtexec /f "\\hdbapl2\BI\fontesoficial\integration services hd_protheus\integration services hd\Shrink (2).dtsx" /l "DTS.LogProviderTextFile;\\hdbapl2\BI\Log\Shrink.txt"
REM Fim da Carga - Financeiro %DATE% as %TIME% >>
pause
Mensagem de erro do batch:
dtexec nao e reconhecido como comando interno ou externo, um programa operavel ou um arquivo en lotes.
so que de minha maquina eu consigo executar sem problemas agora da maquina do usuario nao executa, eu imagino que deve estar faltando instalar algo, mas nao sei o que e.
Obrigado
Respostas
Todas as Respostas
-
-
-
Reinaldo,
Você não pode executar esse DTS através de um programa em VB não? Pois nisso eu tenho experiência.
Veja o exemplo:
Primeiramente adicione as referencias:
Microsoft DTS Custom Tasks Object Library
Microsoft DTSDataPump Scripting Object Library
Microsoft DTSPackage Object Library
Code SnippetDim dtsp As New DTS.Package2
Dim oStep As DTS.Step
Dim Mensagem As String = ""
Dim NumErr As Long Dim Descr As String = "" Dim Origem As String = ""dtsp.LoadFromSQLServer( _
ServerName:= "NomeServidor"
, _ServerUserName:= "Usuario do Banco"
, _ServerPassword:= "senha do usuario"
, _PackageName:= " Nome do pacote DTS "
)'Deletando variaveis globais default do DTS
For Each gv As Global.DTS.GlobalVariable In dtsp.GlobalVariablesdtsp.GlobalVariables.Remove(gv.Name)
Next'Inserindo variaveis globais default do DTS com valores parametrizados
dtsp.GlobalVariables.AddGlobalVariable(
"DtInicial", dtpDataAquis.Text)dtsp.GlobalVariables.AddGlobalVariable(
"DtFinal", dtpDataAquis.Text)'Abilitando está opção o erro cairá no Catch
'dtsp.FailOnError() = Truedtsp.Execute()
'Recupera o erro dos steps
For Each oStep In dtsp.Steps If oStep.ExecutionStatus = DTSStepExecStatus.DTSStepExecStat_Completed Then If oStep.ExecutionResult = DTSStepExecResult.DTSStepExecResult_Failure ThenoStep.GetExecutionErrorInfo(NumErr, Origem, Descr)
Mensagem = Mensagem & vbCrLf & _
"Step " & oStep.Name & " failed, error: " & _sErrorNumConv(NumErr) & vbCrLf & Descr & vbCrLf
End If End If NextMessageBox.Show("Erro",
"Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error)dtsp.UnInitialize()
dtsp =
Nothing Exit Sub End Ifdtsp.UnInitialize()
dtsp =
NothingMessageBox.Show(
"Sucesso !!!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)É isso qualquer dúvida é só postar.
[]'s
Rafael Krisller
-
Reinaldo,
Você não pode executar esse DTS através de um programa em VB não? Pois nisso eu tenho experiência.
Veja o exemplo:
Primeiramente adicione as referencias:
Microsoft DTS Custom Tasks Object Library
Microsoft DTSDataPump Scripting Object Library
Microsoft DTSPackage Object Library
Code SnippetDim dtsp As New DTS.Package2
Dim oStep As DTS.Step
Dim Mensagem As String = ""
Dim NumErr As Long Dim Descr As String = "" Dim Origem As String = ""dtsp.LoadFromSQLServer( _
ServerName:= "NomeServidor"
, _ServerUserName:= "Usuario do Banco"
, _ServerPassword:= "senha do usuario"
, _PackageName:= " Nome do pacote DTS "
)'Deletando variaveis globais default do DTS
For Each gv As Global.DTS.GlobalVariable In dtsp.GlobalVariablesdtsp.GlobalVariables.Remove(gv.Name)
Next'Inserindo variaveis globais default do DTS com valores parametrizados
dtsp.GlobalVariables.AddGlobalVariable(
"DtInicial", dtpDataAquis.Text)dtsp.GlobalVariables.AddGlobalVariable(
"DtFinal", dtpDataAquis.Text)'Abilitando está opção o erro cairá no Catch
'dtsp.FailOnError() = Truedtsp.Execute()
'Recupera o erro dos steps
For Each oStep In dtsp.Steps If oStep.ExecutionStatus = DTSStepExecStatus.DTSStepExecStat_Completed Then If oStep.ExecutionResult = DTSStepExecResult.DTSStepExecResult_Failure ThenoStep.GetExecutionErrorInfo(NumErr, Origem, Descr)
Mensagem = Mensagem & vbCrLf & _
"Step " & oStep.Name & " failed, error: " & _sErrorNumConv(NumErr) & vbCrLf & Descr & vbCrLf
End If End If NextMessageBox.Show("Erro",
"Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error)dtsp.UnInitialize()
dtsp =
Nothing Exit Sub End Ifdtsp.UnInitialize()
dtsp =
NothingMessageBox.Show(
"Sucesso !!!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)É isso qualquer dúvida é só postar.
[]'s
Rafael Krisller
-
Reinaldo,
Você não pode executar esse DTS através de um programa em VB não? Pois nisso eu tenho experiência.
Veja o exemplo:
Primeiramente adicione as referencias:
Microsoft DTS Custom Tasks Object Library
Microsoft DTSDataPump Scripting Object Library
Microsoft DTSPackage Object Library
Code SnippetDim dtsp As New DTS.Package2
Dim oStep As DTS.Step
Dim Mensagem As String = ""
Dim NumErr As Long Dim Descr As String = "" Dim Origem As String = ""dtsp.LoadFromSQLServer( _
ServerName:= "NomeServidor"
, _ServerUserName:= "Usuario do Banco"
, _ServerPassword:= "senha do usuario"
, _PackageName:= " Nome do pacote DTS "
)'Deletando variaveis globais default do DTS
For Each gv As Global.DTS.GlobalVariable In dtsp.GlobalVariablesdtsp.GlobalVariables.Remove(gv.Name)
Next'Inserindo variaveis globais default do DTS com valores parametrizados
dtsp.GlobalVariables.AddGlobalVariable(
"DtInicial", dtpDataAquis.Text)dtsp.GlobalVariables.AddGlobalVariable(
"DtFinal", dtpDataAquis.Text)'Abilitando está opção o erro cairá no Catch
'dtsp.FailOnError() = Truedtsp.Execute()
'Recupera o erro dos steps
For Each oStep In dtsp.Steps If oStep.ExecutionStatus = DTSStepExecStatus.DTSStepExecStat_Completed Then If oStep.ExecutionResult = DTSStepExecResult.DTSStepExecResult_Failure ThenoStep.GetExecutionErrorInfo(NumErr, Origem, Descr)
Mensagem = Mensagem & vbCrLf & _
"Step " & oStep.Name & " failed, error: " & _sErrorNumConv(NumErr) & vbCrLf & Descr & vbCrLf
End If End If NextMessageBox.Show("Erro",
"Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error)dtsp.UnInitialize()
dtsp =
Nothing Exit Sub End Ifdtsp.UnInitialize()
dtsp =
NothingMessageBox.Show(
"Sucesso !!!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)É isso qualquer dúvida é só postar.
[]'s
Rafael Krisller
-
Rafael Krisller wrote: Reinaldo,
Você não pode executar esse DTS através de um programa em VB não? Pois nisso eu tenho experiência.
Veja o exemplo:
Primeiramente adicione as referencias:
Microsoft DTS Custom Tasks Object Library
Microsoft DTSDataPump Scripting Object Library
Microsoft DTSPackage Object Library
Code SnippetDim dtsp As New DTS.Package2
Dim oStep As DTS.Step
Dim Mensagem As String = ""
Dim NumErr As Long Dim Descr As String = "" Dim Origem As String = ""dtsp.LoadFromSQLServer( _
ServerName:= "NomeServidor"
, _ServerUserName:= "Usuario do Banco"
, _ServerPassword:= "senha do usuario"
, _PackageName:= " Nome do pacote DTS "
)'Deletando variaveis globais default do DTS
For Each gv As Global.DTS.GlobalVariable In dtsp.GlobalVariablesdtsp.GlobalVariables.Remove(gv.Name)
Next'Inserindo variaveis globais default do DTS com valores parametrizados
dtsp.GlobalVariables.AddGlobalVariable(
"DtInicial", dtpDataAquis.Text)dtsp.GlobalVariables.AddGlobalVariable(
"DtFinal", dtpDataAquis.Text)'Abilitando está opção o erro cairá no Catch
'dtsp.FailOnError() = Truedtsp.Execute()
'Recupera o erro dos steps
For Each oStep In dtsp.Steps If oStep.ExecutionStatus = DTSStepExecStatus.DTSStepExecStat_Completed Then If oStep.ExecutionResult = DTSStepExecResult.DTSStepExecResult_Failure ThenoStep.GetExecutionErrorInfo(NumErr, Origem, Descr)
Mensagem = Mensagem & vbCrLf & _
"Step " & oStep.Name & " failed, error: " & _sErrorNumConv(NumErr) & vbCrLf & Descr & vbCrLf
End If End If NextMessageBox.Show("Erro",
"Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error)dtsp.UnInitialize()
dtsp =
Nothing Exit Sub End Ifdtsp.UnInitialize()
dtsp =
NothingMessageBox.Show(
"Sucesso !!!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)É isso qualquer dúvida é só postar.
[]'s
Rafael Krisller
Muito Obrigado.