Lezione 2: 2: aggiunta e configurazione del contenitore ciclo ForeachLesson 2-2 - Adding and Configuring the Foreach Loop Container

In questa attività verrà aggiunta la capacità di creare un ciclo in una cartella di file flat e applicare la stessa trasformazione del flusso di dati utilizzata nella lezione 1 a ognuno di questi file flat.In this task, you will add the ability to loop through a folder of flat files and apply the same data flow transformation used in Lesson 1 to each of those flat files. Ciò si ottiene tramite l'aggiunta e la configurazione di un contenitore Ciclo Foreach al flusso di controllo.You do this by adding and configuring a Foreach Loop container to the control flow.

Il contenitore Ciclo Foreach che si aggiunge deve essere in grado di collegarsi a ogni file flat della cartella.The Foreach Loop container that you add must be able to connect to each flat file in the folder. Dal momento che tutti i file della cartella hanno lo stesso formato, il contenitore Ciclo Foreach può utilizzare la stessa gestione connessione file flat per la connessione a tali file.Because all the files in the folder have the same format, the Foreach Loop container can use the same Flat File connection manager to connect to each of these files. La gestione connessione file flat utilizzata dal contenitore è la stessa creata nella lezione 1.The Flat File connection manager that the container will use is the same Flat File connection manager that you created in Lesson 1.

Al momento, la gestione connessione file flat della lezione 1 si connette a un solo file flat specifico.Currently, the Flat File connection manager from Lesson 1 connects to only one, specific flat file. Per ottenere la connessione in modo iterativo a ogni file flat della cartella, sarà necessario configurare il contenitore Ciclo Foreach e la gestione connessione file flat come segue:To iteratively connect to each flat file in the folder, you will have to configure both the Foreach Loop container and the Flat File connection manager as follows:

  • Contenitore Ciclo Foreach: sul valore enumerato del contenitore verrà eseguito il mapping a una variabile di pacchetto definita dall'utente.Foreach Loop container: You will map the enumerated value of the container to a user-defined package variable. Il contenitore userà poi questa variabile definita dall'utente per modificare in modo dinamico la proprietà ConnectionString della gestione connessione file flat e connettersi in modo iterativo a ogni file flat della cartella.The container will then use this user-defined variable to dynamically modify the ConnectionString property of the Flat File connection manager and iteratively connect to each flat file in the folder.

  • Gestione connessione file flat: la gestione connessione creata nella lezione 1 verrà modificata usando una variabile definita dall'utente per popolare la proprietà ConnectionString di gestione connessione.Flat File connection manager: You will modify the connection manager that was created in Lesson 1 by using a user-defined variable to populate the connection manager's ConnectionString property.

Le procedure di questa attività mostrano come creare e modificare il contenitore Ciclo Foreach per utilizzare una variabile di pacchetto definita dall'utente ed aggiungere l'attività flusso di dati al ciclo.The procedures in this task show you how to create and modify the Foreach Loop container to use a user-defined package variable and to add the data flow task to the loop. Si imparerà a modificare la gestione connessione file flat per utilizzare una variabile definita dall'utente nella successiva attività.You will learn how to modify the Flat File connection manager to use a user-defined variable in the next task.

Dopo aver apportato tali modifiche al pacchetto, quando questo viene eseguito, il contenitore Ciclo Foreach si ripete attraverso la raccolta di dati nella cartella Sample Data.After you have made these modifications to the package, when the package is run, the Foreach Loop Container will iterate through the collection of files in the Sample Data folder. Ogni volta che viene individuato un file che corrisponde ai criteri, il contenitore Ciclo Foreach popola la variabile definita dall'utente con il nome file, esegue il mapping della variabile definita dall'utente alla proprietà ConnectionString della gestione connessione file flat per i dati della valuta di esempio e quindi esegue il flusso di dati su tale file.Each time a file is found that matches the criteria, the Foreach Loop Container will populate the user-defined variable with the file name, map the user-defined variable to the ConnectionString property of the Sample Currency Data Flat File connection manager, and then run the data flow against that file. Di conseguenza, in ogni iterazione del Ciclo Foreach, l'attività Flusso di dati consuma un file flat diverso.Therefore, in each iteration of the Foreach Loop the Data Flow task will consume a different flat file.

Nota

Poiché MicrosoftMicrosoft Integration ServicesIntegration Services separa flusso di controllo dal flusso di dati, i cicli aggiunti al flusso di controllo non richiedono modifiche al flusso di dati.Because MicrosoftMicrosoft Integration ServicesIntegration Services separates control flow from data flow, any looping that you add to the control flow will not require modification to the data flow. Di conseguenza, non è necessario modificare il flusso di dati creato nella lezione 1.Therefore, the data flow that you created in Lesson 1 does not have to be changed.

Per aggiungere un contenitore Ciclo ForeachTo add a Foreach Loop container

  1. In SQL Server Data Toolsfare clic sulla scheda Flusso di controllo .In SQL Server Data Tools, click the Control Flow tab.

  2. Nella Casella degli strumenti SSISespandere Contenitori, quindi trascinare Contenitore Ciclo Foreach sulla superficie di progettazione della scheda Flusso di controllo .In the SSIS Toolbox, expand Containers, and then drag a Foreach Loop Container onto the design surface of the Control Flow tab.

  3. Fare clic con il pulsante destro del mouse sul Contenitore Ciclo Foreach appena aggiunto e scegliere Modifica.Right-click the newly added Foreach Loop Container and select Edit.

  4. Nella pagina Generale della finestra di dialogo Editor ciclo Foreach digitare Foreach File in Folderper Nome.In the Foreach Loop Editor dialog box, on the General page, for Name, enter Foreach File in Folder. Scegliere OK.Click OK.

  5. Fare clic con il pulsante destro del mouse sul contenitore Ciclo Foreach, scegliere Proprietàe verificare che la proprietà LocaleID sia impostata su Inglese (Stati Uniti)nella finestra Proprietà.Right-click the Foreach Loop container, click Properties, and in the Properties window, verify that the LocaleID property is set to English (United States).

Per configurare l'enumeratore per il contenitore Ciclo ForeachTo configure the enumerator for the Foreach Loop container

  1. Fare doppio clic su Foreach File in Folder per riaprire l' Editor ciclo Foreach.Double-click Foreach File in Folder to reopen the Foreach Loop Editor.

  2. Fare clic su Raccolta.Click Collection.

  3. Nella pagina Raccolta selezionare Enumeratore Foreach File.On the Collection page, select Foreach File Enumerator.

  4. Nel gruppo Configurazione enumeratore fare clic su Sfoglia.In the Enumerator configuration group, click Browse.

  5. Nella finestra di dialogo Sfoglia per cartelle individuare nel computer la cartella contenente i file Currency_.txt.In the **Browse for Folder* dialog box, locate the folder on your machine that contains the Currency_*.txt files.

    Questi dati di esempio sono inclusi nei pacchetti di lezioni di SSISSSIS .This sample data is included with the SSISSSIS lesson packages. Per scaricare i dati di esempio e i pacchetti di lezioni, effettuare le operazioni seguenti.To download the sample data and the lesson packages, do the following.

    1. Passare alla pagina relativa agli esempi di prodotti di Integration Services.Navigate to Integration Services Product Samples.

    2. Fare clic sulla scheda DOWNLOADS .Click the DOWNLOADS tab.

    3. Fare clic sul collegamento per il SQL2012. Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip file.Click the link for the SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip file.

  6. Nella casella File digitare Currency_*.txt.In the Files box, type Currency_*.txt.

Per eseguire il mapping dell'enumeratore a una variabile definita dall'utenteTo map the enumerator to a user-defined variable

  1. Fare clic su Mapping variabili.Click Variable Mappings.

  2. Nel mapping variabili nella pagina di variabile colonna, fare clic sulla cella vuota e selezionare <nuova variabile … >.On the Variable Mappings page, in the Variable column, click the empty cell and select <New Variable…>.

  3. Nella finestra di dialogo Aggiungi variabile digitare varFileNameper Nome.In the Add Variable dialog box, for Name, type varFileName.

    Importante

    Per i nomi delle variabili viene fatta distinzione tra maiuscole e minuscole.Variable names are case sensitive.

  4. Scegliere OK.Click OK.

  5. Fare di nuovo clic su OK per chiudere la finestra di dialogo Editor ciclo Foreach .Click OK again to exit the Foreach Loop Editor dialog box.

Per aggiungere le attività flusso di dati al cicloTo add the data flow task to the loop

  • Trascinare l'attività flusso di dati Extract Sample Currency Data nel contenitore Ciclo Foreach ora ridenominato Foreach File in Folder.Drag the Extract Sample Currency Data data flow task onto the Foreach Loop container now renamed Foreach File in Folder.

Attività della lezione successivaNext Lesson Task

Passaggio 3: Modifica della gestione connessione File FlatStep 3: Modifying the Flat File Connection Manager

Vedere ancheSee Also

Configurazione di un contenitore Ciclo ForeachConfigure a Foreach Loop Container
Utilizzo di variabili nei pacchettiUse Variables in Packages