Vincoli di precedenza
I vincoli di precedenza collegano gli eseguibili, i contenitori e le attività inclusi nei pacchetti in modo da formare un flusso di controllo e specificano le condizioni che determinano se tali eseguibili devono essere eseguiti. Un eseguibile può essere costituito da un gestore di evento o da un contenitore Ciclo For, Ciclo Foreach o Sequenza. Anche nei gestori di eventi vengono utilizzati vincoli di precedenza per collegare gli eseguibili in modo da formare un flusso di controllo.
Un vincolo di precedenza collega due eseguibili: l'eseguibile con precedenza e l'eseguibile soggetto al vincolo. L'eseguibile con precedenza viene eseguito prima dell'eseguibile soggetto al vincolo e il risultato della sua esecuzione può determinare se l'eseguibile soggetto al vincolo verrà eseguito o meno. Nella figura seguente vengono illustrati due eseguibili collegati da vincoli di precedenza.
L'architettura a contenitori nidificati di Integration Services consente a tutti i contenitori, ad eccezione del contenitore Host attività che incapsula una sola attività, di includere altri contenitori, ognuno con un proprio flusso di controllo. I contenitori Ciclo For, Ciclo Foreach e Sequenza possono includere più attività e altri contenitori, che a loro volta possono includere più attività e contenitori. Un pacchetto con un'attività Script e un contenitore Sequenza può ad esempio includere un vincolo di precedenza che collega l'attività Script e il contenitore Sequenza. Il contenitore Sequenza include tre attività Script e i relativi vincoli di precedenza collegano le tre attività Script in modo da formare un flusso di controllo. Nella figura seguente vengono illustrati i vincoli di precedenza utilizzati in un pacchetto con due livelli di nidificazione.
Poiché il pacchetto è al livello principale della gerarchia dei contenitori di SSIS, non è possibile collegare più pacchetti tramite vincoli di precedenza. È tuttavia possibile aggiungere un'attività Esegui pacchetto a un pacchetto e in tal modo collegare indirettamente un altro pacchetto al flusso di controllo.
Per configurare i vincoli di precedenza, procedere nel modo seguente:
- Specificare un'operazione di valutazione. Il vincolo di precedenza utilizza un valore di vincolo, un'espressione o entrambi o per determinare se l'eseguibile deve essere eseguito o meno.
- Se il vincolo di precedenza utilizza il risultato di un'esecuzione, sarà possibile specificare se l'esecuzione deve avere esito positivo, negativo o essere semplicemente completata.
- Se il vincolo di precedenza utilizza il risultato di una valutazione, sarà possibile specificare un'espressione che restituisce un valore booleano.
- Specificare se il vincolo di precedenza deve essere valutato singolarmente o insieme ad altri vincoli applicati all'eseguibile soggetto al vincolo.
Operazioni di valutazione
In Integration Services sono disponibili le operazioni di valutazione seguenti:
- Un vincolo che utilizza solo il risultato dell'esecuzione dell'eseguibile con precedenza per determinare se l'eseguibile soggetto al vincolo deve essere eseguito o meno. Il risultato dell'esecuzione dell'eseguibile con precedenza indica se l'esecuzione ha avuto esito positivo, negativo o semplicemente che è stata completata.
- Un'espressione che viene valutata per determinare se l'eseguibile soggetto al vincolo deve essere eseguito o meno. Se l'espressione restituisce True, l'eseguibile soggetto al vincolo verrà eseguito.
- Un'espressione e un vincolo che combinano i requisiti del risultato dell'esecuzione dell'eseguibile con precedenza e del risultato restituito dalla valutazione dell'espressione.
- Un'espressione o un vincolo che utilizzano il risultato dell'esecuzione dell'eseguibile con precedenza o il risultato restituito dalla valutazione dell'espressione.
L'espressione deve essere un'espressione SSIS valida e può includere funzioni, operatori e variabili personalizzate e di sistema. Per ulteriori informazioni, vedere Guida di riferimento alle espressioni in Integration Services e Variabili in Integration Services.
Risultati di esecuzione
I vincoli di precedenza possono utilizzare i risultati di esecuzione seguenti, singolarmente o in combinazione con un'espressione.
- Il vincolo Completion richiede solo che l'eseguibile con precedenza abbia completato l'esecuzione, indipendentemente dall'esito, affinché l'eseguibile soggetto al vincolo venga eseguito.
- Il vincolo Success richiede che l'eseguibile con precedenza abbia completato correttamente l'esecuzione, affinché l'eseguibile soggetto al vincolo venga eseguito.
- Il vincolo Failure richiede che l'eseguibile con precedenza non abbia completato correttamente l'esecuzione, affinché l'eseguibile soggetto al vincolo venga eseguito.
[!NOTA] È possibile raggruppare in una condizione con AND logico solo vincoli di precedenza appartenenti allo stesso insieme Precedence Constraint. Non è ad esempio possibile combinare i vincoli di precedenza utilizzati in due contenitori Ciclo Foreach diversi.
Configurazione del vincolo di precedenza
È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.
Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic sull'argomento seguente:
Per ulteriori informazioni sulle procedure per l'impostazione di queste proprietà in Progettazione SSIS, fare clic su uno degli argomenti seguenti:
- Procedura: Impostazione delle proprietà di un vincolo di precedenza tramite Editor vincoli di precedenza
- Procedura: Impostazione delle proprietà di un vincolo di precedenza nella finestra Proprietà
- Procedura: Impostazione del valore di un vincolo di precedenza tramite il menu di scelta rapida
Configurazione del vincolo di precedenza a livello di programmazione
Per ulteriori informazioni sull'impostazione di queste proprietà a livello di programmazione, fare clic sull'argomento seguente:
Vedere anche
Attività
Impostazione di vincoli di precedenza su attività e contenitori
Concetti
Contenitori in Integration Services
Attività di Integration Services
Creazione del flusso di controllo di un pacchetto