Como alterar programaticamente o fluxo de trabalho entre as tarefas de controle de fluxo do SSIS?
-
02-07-2019 - |
Pergunta
Eu tenho um pacote SSIS, que dependendo de uma variável booleana, deve quer ir para uma tarefa de script ou uma tarefa-mail. (Nota: os caminhos estão chegando de uma tarefa Script)
Lembro-me no velho dts desenhador havia uma maneira de fazer isso por meio de código. O que é a maneira correta de fazer isso em SSIS?
Solução
Não é uma condicional Dividir um fluxo de dados tarefa, que tem uma linha de dados e empurra-lo em uma das duas direções de acordo com alguma propriedade do dados ???
Opa, isso é correto. Eu encontrei esta entrada do blog que explica como fazer o controle adequado fluxo de ramificação condicional com base em valores booleanos.
Outras dicas
Em fluxo de controle, arraste a seta verde para a tarefa de e-mail, em seguida, clique com botão direito sobre ele e você vai ver que você pode configurá-lo de 'Concluído' para 'condicional', então você pode definir uma expressão da condição. A seta, então, ficar azul. Você deve então ser capaz de arrastar outra flecha para o outro script e conjunto que a condicional.
Eu tenho este set-up, muitas vezes, muitas vezes você deseja enviar e-mail, se uma determinada condição se aplica. A sintaxe padrão para as restrições condicionais é algo como:
@[User::SendEmail] == True
Assumindo que o seu variável SendEmail é um boolean. Se você usar qualquer outra coisa, apenas construir uma expressão que avalia tanto falso verdadeiro ou.
Lembre-se de definir as condicionais ou em vez de E, caso contrário, não será concluída a menos que possa tomar as duas rotas!
A condicional Dividir faz o que quiser. Adicionar a tarefa Conditional Split, adicionar em uma saída adicional (a saída padrão é fornecido) e defina a condição para que a saída. Em seguida, basta amarrar as saídas (padrão e novas) para as tarefas de script e-mail conforme o caso.