Come posso continuare dopo un errore in SSIS


12

Voglio implementare qualcosa di simile al seguente: inserisci qui la descrizione dell'immagine

In questo pacchetto, voglio scorrere un elenco di nomi di database, modificando dinamicamente le impostazioni della gestione connessione.

Tuttavia, il primo errore in "Test connessione" si interromperà e non riuscirà l'esecuzione del pacchetto.

Ma vorrei continuare il mio ciclo Foreach. Ho la sensazione che questo dovrebbe essere possibile (altrimenti qual è il caso d'uso per queste frecce rosse di errore?)

Le cose che ho provato includono la confusione con "MaximumErrorCount".

Risposte:


12

Per rispondere alla domanda quando l'ho posta, è possibile continuare dopo gli errori assicurandosi che MaximumErrorCount sia zero per l'attività e i relativi contenitori padre ... In questo caso ciò significa l'attività "Test connessione", il contenitore "foreach" e il pacchetto stesso.

Ho finito per fare qualcosa di diverso però. E Jamie Thomson ha verificato una connessione prima dell'uso È stato utile qui. Ecco cosa ho fatto:

Ho sostituito l'attività Test connessione con un'attività di script. Il compito della sceneggiatura era quasi esattamente come la sceneggiatura di Jamie, tranne per il fatto che io

  • utilizzato solo una gestione connessione, non tutte,
  • il risultato dell'attività è stato sempre un successo
  • e ho impostato una nuova variabile "User :: ConnectionSucceeded" sul risultato del test di connessione.

Ho anche cambiato le frecce che escono dall'attività di connessione di prova per valutare le espressioni, valutano:

  • @ [Utente :: ConnectionSucceed] == Vero
  • @ [Utente :: ConnectionSucceed] == Falso

rispettivamente.

Ho anche dovuto ricordare di modificare i vincoli multipli andando nell'attività "Aggiorna LastMonitored". Li ho cambiati per usare un "OR" logico.

Ecco come appare il mio pacchetto SSIS ora: nuovo pacchetto


1

Il modo semplice ...

Fare doppio clic sul Vincolo di precedenza (La linea verde) dopo l'attività "Verifica connessione". Dovresti vedere "Opzioni di vincolo", fare clic sull'elenco a discesa "Valore" e selezionare "Completamento". Questo dice al tuo pacchetto di continuare a funzionare dopo che l'attività è stata completata, indipendentemente se fallisce.

Nota: non modificare l'elenco a discesa "Operazione di valutazione" da "Vincolo" a meno che non si desideri aggiungere un'espressione da valutare una volta completata l'attività. Mantenere anche il vincolo su "Logical AND".

Spero che sia di aiuto.

Utilizzando il vincolo di precedenza


Il vincolo di precedenza era stato impostato deliberatamente su "Successo". Inoltre, cambiarlo in "Completamento" non risolve la domanda che ho posto o l'attività con cui stavo lottando. Se "Test connessione" fallisce, ciò interrompe comunque l'esecuzione del pacchetto.
Michael J Swart,

Così tante pagine lette per trovare finalmente questa risposta! Grazie!
alexkovelsky,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.