Domanda

Ho bisogno di aiuto con un pacchetto SSIS. Ho un server che popola una tabella DB come parte di un lavoro quotidiano. Quindi il server scrive in una tabella di stato del processo per farmi sapere che è stato eseguito.

La tabella di stato del processo è simile alla seguente:

Job   | Ready | Downloaded
myJob    True     False

Voglio creare un processo che controllerà se il flag Pronto su myJob è True e procede o se False dormirà per 30 minuti prima di riprovare e ripetere fino a 5 volte.

Ho trovato questo articolo su come fare la parte dormiente: http: // blogs.conchango.com/jamiethomson/archive/2006/10/23/SSIS_3A00_-Put-a-package-to-sleep.aspx

Stavo pensando di utilizzare un'attività del file system per accedere alla tabella dello stato del processo. Quindi impostare una variabile sul valore del flag Pronto. Quindi disporre di un contenitore di ciclo For, se true esce dal ciclo for e continua e se false esegue lo sleep, quindi eseguire un'altra attività del file system e impostare la variabile sul valore del flag Pronto. La domanda principale che ho è come impostare una variabile sul valore del flag pronto?

È stato utile?

Soluzione 2

Sono stato in grado di capirlo.

Ho usato un'attività Flusso di dati con all'interno una sorgente OLE DB e un componente script. Il componente script legge e gestisce i dati del database, esegue alcune logiche if else di base e scrive su una variabile di sistema.

Successivamente utilizzo quella variabile di sistema in un ciclo for.

Altri suggerimenti

Se disponi di un contenitore For Loop, puoi inserire un " ExecuteSql " attività per estrarre il valore del tuo stato (ovvero falso), quindi utilizzare un "ScriptTask" per archiviarlo o manipolarlo se necessario. È quindi possibile continuare a elaborare il contenuto del contenitore for loop (potrebbe trattarsi di un'attività di flusso di dati o di qualunque cosa si stia utilizzando).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top