Pergunta

Eu preciso de ajuda com um pacote SSIS. Eu tenho um servidor que preenche uma tabela DB como parte de um trabalho diário. Em seguida, as gravações de servidor para uma tabela de status do processo para deixar-me saber que o seu feito.

A tabela de status de processo esta aparência:

Job   | Ready | Downloaded
myJob    True     False

Eu quero criar um processo que irá verificar se a bandeira de prontidão na myjob é verdade e prossiga ou se Falso ele vai dormir por 30 mintues antes de tentar novamente e repetindo até 5 vezes.

Eu encontrei este artigo sobre como fazer a parte de dormir: http: // blogs.conchango.com/jamiethomson/archive/2006/10/23/SSIS_3A00_-Put-a-package-to-sleep.aspx

Eu estava pensando em usar uma tarefa do sistema de arquivos para acessar a tabela de estado do processo. Em seguida, defina uma variável para o valor da bandeira Ready. Então, um loop For Container, se verdadeira pausa para fora do loop for e continuar e se falsa prazo do sono, em seguida, executar outra tarefa do sistema de arquivo e defina a variável como o valor da bandeira Ready. A principal pergunta que tenho é como faço para definir uma variável para o valor da bandeira está pronto?

Foi útil?

Solução 2

Eu era capaz de descobrir isso.

Eu usei uma tarefa de fluxo de dados com um interior OLE DB fonte e componente Script. O componente Script ler e trata os dados do banco de dados, faz alguns básicos se a lógica mais, e escreve a uma variável do sistema.

Mais tarde eu usar essa variável de sistema em um loop.

Outras dicas

Se você tem um recipiente para Loop, você pode colocar uma tarefa "ExecuteSql" para extrair o valor de status (ou seja false), então use um "ScriptTask" para armazená-lo ou manipulá-lo conforme necessário. Você pode então continuar a processar o conteúdo do seu loop for recipiente (isso pode ser uma tarefa de fluxo de dados ou o que nunca o seu uso).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top