Flusso di controlloControl Flow

Un pacchetto è costituito da un flusso di controllo e, facoltativamente, da uno o più flussi di dati.A package consists of a control flow and, optionally, one or more data flows. SQL ServerSQL Server Integration ServicesIntegration Services fornisce gli elementi del flusso di tre diversi tipi di controllo: contenitori che definiscono le strutture nei pacchetti, attività che forniscono funzionalità e i vincoli di precedenza che connettono eseguibili, contenitori e attività in un flusso di controllo ordinato. Integration ServicesIntegration Services provides three different types of control flow elements: containers that provide structures in packages, tasks that provide functionality, and precedence constraints that connect the executables, containers, and tasks into an ordered control flow.

Per altre informazioni, vedere Vincoli di precedenza, Contenitori in Integration Servicese Attività di Integration Services.For more information, see Precedence Constraints, Integration Services Containers, and Integration Services Tasks.

Nella figura seguente viene illustrato un flusso di controllo con un contenitore e sei attività,The following diagram shows a control flow that has one container and six tasks. di cui cinque definite a livello di pacchetto e una a livello di contenitore.Five of the tasks are defined at the package level, and one task is defined at the container level. Tale attività è all'interno di un contenitore.The task is inside a container.

Controllare il flusso con sei attività e un contenitoreControl flow with six tasks and a container

L'architettura di Integration ServicesIntegration Services supporta la nidificazione dei contenitori e un flusso di controllo può includere più livelli di contenitori nidificati.The Integration ServicesIntegration Services architecture supports the nesting of containers, and a control flow can include multiple levels of nested containers. Un pacchetto può ad esempio includere un contenitore quale Ciclo Foreach, che a sua volta può includere un altro contenitore Ciclo Foreach e così via.For example, a package could contain a container such as a Foreach Loop container, which in turn could contain another Foreach Loop container and so on.

Anche i gestori di eventi includono flussi di controllo, che vengono compilati utilizzando gli stessi tipi di elementi del flusso di controllo.Event handlers also have control flows, which are built using the same kinds of control flow elements.

Implementazione del flusso di controlloControl Flow Implementation

Il flusso di controllo in un pacchetto viene creato tramite la scheda Flusso di controllo di Progettazione SSISSSIS .You create the control flow in a package by using the Control Flow tab in SSISSSIS Designer. Quando la scheda Flusso di controllo è attiva, nella Casella degli strumenti sono elencati i contenitori e le attività che è possibile aggiungere al flusso di controllo.When the Control Flow tab is active, the Toolbox lists the tasks and containers that you can add to the control flow.

Nella figura seguente viene illustrato il flusso di controllo di un semplice pacchetto nella finestra di progettazione del flusso di controllo.The following diagram shows the control flow of a simple package in the control flow designer. Il flusso di controllo illustrato nella figura è composto da tre attività a livello di pacchetto e da un contenitore a livello di pacchetto contenente tre attività.The control flow shown in the diagram is made up of three package-level tasks and one package-level container that contains three tasks. Le attività e il contenitore sono connessi tramite vincoli di precedenza.The tasks and container are connected by using precedence constraints.

Schermata di progettazione del flusso di controllo con pacchettoScreenshot of control flow designer with package

Per creare un flusso di controllo è necessario eseguire i passaggi seguenti:Creating a control flow includes the following tasks:

  • Aggiungere contenitori che implementano flussi di lavoro ripetuti in un pacchetto o suddividono il flusso di controllo in subset.Adding containers that implement repeating workflows in a package or divide a control flow into subsets.

  • Aggiungere attività che supportano il flusso di dati, preparano i dati, implementano script ed eseguono funzioni di flusso di lavoro e Business Intelligence.Adding tasks that support data flow, prepare data, perform workflow and business intelligence functions, and implement script.

    In Integration ServicesIntegration Services è disponibile un'ampia gamma di attività che è possibile utilizzare per creare un flusso di controllo in grado di soddisfare i requisiti aziendali del pacchetto. Integration ServicesIntegration Services includes a variety of tasks that you can use to create control flow that meets the business requirements of the package. Se il pacchetto deve gestire dati, il flusso di controllo dovrà includere almeno un'attività Flusso di dati.If the package has to work with data, the control flow must include at least one Data Flow task. Un pacchetto può ad esempio estrarre dati, aggregarne i valori e quindi scrivere i risultati in un'origine dei dati.For example, a package might have to extract data, aggregate data values, and then write the results to a data source. Per altre informazioni, vedere Attività di Integration Services e Aggiunta o eliminazione di un'attività o un contenitore in un flusso di controllo.For more information, see Integration Services Tasks and Add or Delete a Task or a Container in a Control Flow.

  • Connettere contenitori e attività tramite vincoli di precedenza, in modo da formare un flusso di controllo ordinato.Connecting containers and tasks into an ordered control flow by using precedence constraints.

    Dopo l'aggiunta di un'attività o un contenitore all'area di progettazione della scheda Flusso di controllo , Progettazione SSISSSIS aggiunge automaticamente un connettore a tale elemento.After you add a task or container to the design surface of the Control Flow tab, SSISSSIS Designer automatically adds a connector to the item. Se in un pacchetto sono inclusi due o più elementi, attività o contenitori, sarà possibile crearne un join in modo da formare un flusso di controllo trascinandone i connettori da un elemento all'altro.If a package includes two or more items, tasks or containers, you can join them into a control flow by dragging their connectors from one item to another.

    Il connettore tra due elementi rappresenta un vincolo di precedenza,The connector between two items represents a precedence constraint. che definisce la relazione tra i due elementi connessi.A precedence constraint defines the relationship between the two connected items. Specifica infatti l'ordine in cui attività e contenitori devono essere eseguiti in fase di esecuzione, nonché le condizioni in cui tali attività e contenitori devono essere eseguiti.It specifies the order in which tasks and containers are executed at run time and the conditions under which tasks and containers run. Un vincolo di precedenza può ad esempio specificare che una determinata attività deve essere completata, affinché sia possibile eseguire l'attività successiva nel flusso di controllo.For example, a precedence constraint can specify that a task must succeed for the next task in the control flow to run. Per altre informazioni, vedere Vincoli di precedenza.For more information, see Precedence Constraints.

  • Aggiunta di gestioni connessioni.Adding connection managers.

    Molte attività richiedono una connessione a un'origine dei dati ed è pertanto necessario aggiungere al pacchetto le gestioni connessioni richieste dalle attività.Many tasks require a connection to a data source, and you have to add the connection managers that the task requires to the package. A seconda del tipo di enumeratore utilizzato, anche il contenitore Ciclo Foreach può richiedere una gestione connessione.Depending on the enumerator type it uses, the Foreach Loop container may also require a connection manager. È possibile aggiungere le gestioni connessioni durante la costruzione del flusso di controllo elemento per elemento oppure prima di iniziare la costruzione del flusso di controllo.You can add the connection managers as you construct the control flow item by item or before you start to construct the control flow. Per altre informazioni, vedere Connessioni in Integration Services (SSIS) e Creazione di gestioni connessioni.For more information, see Integration Services (SSIS) Connections and Create Connection Managers.

    SSISSSISFinestra di progettazione include inoltre molte funzionalità di progettazione che è possibile utilizzare per gestire l'area di progettazione e creare il controllo del flusso autodocumentato. Designer also includes many design-time features that you can use to manage the design surface and make the control flow self-documenting.