Delen via


Foreach Loop-container

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

De Foreach Loop-container definieert een herhalende controlestroom in een pakket. De lus-implementatie is vergelijkbaar met de Foreach-lusstructuur in programmeertalen. In een pakket wordt herhalen ingeschakeld met behulp van een Foreach-Enumerator. De Foreach Loop-container herhaalt de controlestroom voor elk lid van een opgegeven enumerator.

SQL Server Integration Services biedt de volgende enumeratortypen:

  • Foreach ADO enumerator om rijen in tabellen op te sommen. U kunt bijvoorbeeld de rijen in een ADO-recordset ophalen.

    De doelrecordset slaat gegevens op in het geheugen in een recordset die is opgeslagen in een pakketvariabele van het gegevenstype Object . Doorgaans gebruikt u een Foreach Loop-container met de Foreach ADO-enumerator om één rij van de recordset tegelijk te verwerken. De variabele die is opgegeven voor de Foreach ADO-enumerator moet van het gegevenstype Object zijn. Zie Een recordset-bestemming gebruiken voor meer informatie over de Recordset-bestemming.

  • Foreach ADO.NET Schema Rowset enumerator om de schemagegevens over een gegevensbron op te sommen. U kunt bijvoorbeeld een lijst met de tabellen in de SQL Server-database AdventureWorks2022 opsommen en ophalen.

  • Foreach File enumerator om bestanden in een map op te sommen. De enumerator kan submappen doorlopen. U kunt bijvoorbeeld alle bestanden met de bestandsextensie *.log lezen in de Windows-map en de bijbehorende submappen. Houd er rekening mee dat de volgorde waarin de bestanden worden opgehaald, niet kan worden opgegeven.

  • Foreach From Variable enumerator om het enumerable object te inventariseren dat een opgegeven variabele bevat. Het enumerable-object kan een matrix zijn, een ADO.NET DataTable, een Integration Services-opsomming, enzovoort. U kunt bijvoorbeeld de waarden opsommen van een matrix die de naam van servers bevat.

  • Foreach Item enumerator voor het inventariseren van items die verzamelingen zijn. U kunt bijvoorbeeld de namen opsommen van uitvoerbare bestanden en werkmappen die door een taak Proces uitvoeren worden gebruikt.

  • Foreach Nodelist enumerator om de resultatenset van een XPath-expressie (XML Path Language) op te sommen. Deze expressie bevat bijvoorbeeld een opsomming en haalt een lijst op van alle auteurs in de klassieke periode: /authors/author[@period='classical'].

  • Foreach SMO enumerator om SMO-objecten (SQL Server Management Objects) op te sommen. U kunt bijvoorbeeld een lijst met weergaven in een SQL Server-database inventariseren en ophalen.

  • Foreach HDFS File Enumerator om HDFS-bestanden op te sommen op de opgegeven HDFS-locatie.

  • Foreach Azure Blob enumerator om blobs op te sommen in een blobcontainer in Azure Storage.

  • Foreach ADLS File enumerator voor het inventariseren van bestanden in een map in Azure Data Lake Store.

  • Foreach Data Lake Storage Gen2 File enumerator voor het inventariseren van bestanden in een map in Azure Data Lake Store Gen2.

In het volgende diagram ziet u een Foreach Loop-container met een bestandssysteemtaak. De Foreach-lus maakt gebruik van de Foreach-bestands-enumerator en de taak Bestandssysteem is geconfigureerd om een bestand te kopiëren. Als de map die door de enumerator wordt opgegeven vier bestanden bevat, herhaalt de lus vier keer en kopieert de lus vier bestanden.

Een Foreach Loop-container die een map opsommen

U kunt een combinatie van variabelen en eigenschapsexpressies gebruiken om de eigenschap van het pakketobject bij te werken met de verzamelingswaarde enumerator. Eerst wijst u de verzamelingswaarde toe aan een door de gebruiker gedefinieerde variabele en implementeert u vervolgens een eigenschapsexpressie op de eigenschap die gebruikmaakt van de variabele. De verzamelingswaarde van de Foreach File-enumerator wordt bijvoorbeeld toegewezen aan een variabele met de naam MyFile en de variabele wordt vervolgens gebruikt in de eigenschapsexpressie voor de eigenschapseigenschap Onderwerp van een verzendtaak. Wanneer het pakket wordt uitgevoerd, wordt de eigenschap Onderwerp bijgewerkt met de naam van een bestand telkens wanneer de lus wordt herhaald. Zie Eigenschapsexpressies gebruiken in pakkettenvoor meer informatie.

Variabelen die zijn toegewezen aan de verzamelingswaarde enumerator, kunnen ook worden gebruikt in expressies en scripts.

Een Foreach Loop-container kan meerdere taken en containers bevatten, maar er kan slechts één type enumerator worden gebruikt. Als de Foreach Loop-container meerdere taken bevat, kunt u de verzamelingswaarde van de enumerator toewijzen aan meerdere eigenschappen van elke taak.

U kunt een transactiekenmerk instellen op de Foreach Loop-container om een transactie te definiëren voor een subset van de pakketbeheerstroom. Op deze manier kunt u transacties beheren op het niveau van de Foreach-lus in plaats van het pakketniveau. Als een Foreach Loop-container bijvoorbeeld een controlestroom herhaalt die dimensies en feitentabellen in een stervormig schema bijwerkt, kunt u een transactie configureren om ervoor te zorgen dat alle feitentabellen correct worden bijgewerkt of dat er geen worden bijgewerkt. Zie Integration Services Transactionsvoor meer informatie.

** Typen enumeratoren

Enumerators kunnen worden geconfigureerd en u moet verschillende informatie opgeven, afhankelijk van de enumerator.

De volgende tabel bevat een overzicht van de informatie die elk type enumerator vereist.

Enquêteur Configuratievereisten
Foreach ADO Geef de ADO-objectbronvariabele en de enumeratormodus op. De variabele moet van het gegevenstype Object zijn.
Foreach ADO.NET schemarijset Geef de verbinding met een database en het schema op om te inventariseren.
Foreach-bestand Geef een map en de bestanden op die moeten worden opgesomd, de indeling van de bestandsnaam van de opgehaalde bestanden en of er submappen moeten worden doorlopen.
Foreach van variabele Geef de variabele op die de objecten bevat die moeten worden opgesomd.
Foreach-item Definieer de items in de foreach-itemverzameling, inclusief kolommen en kolomgegevenstypen.
Foreach Nodelist Geef de bron van het XML-document op en configureer de XPath-bewerking.
Foreach SMO Geef de verbinding met een database en de SMO-objecten op om te inventariseren.
Foreach HDFS-bestandsenumerator Geef een map en de bestanden op die moeten worden opgesomd, de indeling van de bestandsnaam van de opgehaalde bestanden en of er submappen moeten worden doorlopen.
Foreach Azure Blob Geef de Azure Blob Storage-container op die blobs bevat die moeten worden geïnventariseerd.
Foreach ADLS-bestand Geef de Azure Data Lake Store-map op die de bestanden bevat die moeten worden geïnventariseerd.
Foreach Data Lake Storage Gen2-bestand Geef de Azure Data Lake Storage Gen2-map op die de bestanden bevat die moeten worden geïnventariseerd, samen met andere opties.

Opsomming toevoegen aan een besturingsstroom met een Foreach Loop-container

Integration Services bevat de Foreach Loop-container, een besturingsstroomelement waarmee u eenvoudig een lusconstructie kunt opnemen die bestanden en objecten in de controlestroom van een pakket opsommen. Zie Foreach Loop Container voor meer informatie.

De Foreach Loop-container biedt geen functionaliteit; het biedt alleen de structuur waarin u de herhaalbare controlestroom bouwt, een enumeratortype opgeeft en de enumerator configureert. Als u containerfunctionaliteit wilt bieden, moet u ten minste één taak opnemen in de Foreach-luscontainer. Zie Integration Services Tasksvoor meer informatie.

De Foreach Loop-container kan een controlestroom bevatten met meerdere taken en andere containers. Het toevoegen van taken en containers aan een Foreach Loop-container is vergelijkbaar met het toevoegen ervan aan een pakket, behalve dat u de taken en containers naar de Foreach Loop-container sleept in plaats van naar het pakket. Als de Foreach Loop-container meer dan één taak of container bevat, kunt u deze verbinden met behulp van prioriteitsbeperkingen, net zoals in een pakket. Zie prioriteitsbeperkingenvoor meer informatie.

Een Foreach Loop-container toevoegen en configureren

  1. Voeg de Foreach Loop-container toe aan het pakket. Zie Een taak of een container toevoegen of verwijderen in een besturingsstroom voor meer informatie.

  2. Voeg taken en containers toe aan de Foreach Loop-container. Zie Een taak of een container toevoegen of verwijderen in een besturingsstroom voor meer informatie.

  3. Verbind taken en containers in de Foreach Loop-container met behulp van prioriteitsbeperkingen. Zie Taken en containers verbinden met behulp van een standaardprioriteitsbeperking voor meer informatie.

  4. Configureer de Foreach Loop-container.

Een Foreach-luscontainer configureren

In deze procedure wordt beschreven hoe u een Foreach Loop-container configureert, inclusief eigenschapsexpressies op de enumerator- en containerniveaus.

  1. Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het gewenste pakket bevat.

  2. Klik op het tabblad Controlestroom en dubbelklik op de Foreach-lus.

  3. Klik in het dialoogvenster Foreach Loop Editor op Algemeen en wijzig desgewenst de naam en beschrijving van de Foreach-lus.

  4. Klik op Verzameling en selecteer een enumeratortype in de lijst Enumerator .

  5. Geef een enumerator op en stel de opties voor opsomming als volgt in:

    • Als u de Foreach File-opsomming wilt gebruiken, geeft u de map op die de bestanden bevat die u wilt inventariseren, geeft u een filter op voor de bestandsnaam en het type en geeft u op of de volledig gekwalificeerde bestandsnaam moet worden geretourneerd. Geef ook aan of er door submappen moet worden gelopen voor meer bestanden.

    • Als u de Foreach-item-opsomming wilt gebruiken, klikt u op Kolommen en klikt u in het dialoogvenster Kolommen voor elk item op Toevoegen om kolommen toe te voegen. Selecteer een gegevenstype in de lijst Gegevenstype voor elke kolom en klik op OK.

      Typ waarden in de kolommen of selecteer waarden in lijsten.

      Opmerking

      Als u een nieuwe rij wilt toevoegen, klikt u ergens buiten de cel waarin u hebt getypt.

      Opmerking

      Als een waarde niet compatibel is met het kolomgegevenstype, wordt de tekst gemarkeerd.

    • Als u de Foreach ADO-opsomming wilt gebruiken, selecteert u een bestaande variabele of klikt u op Nieuwe variabele in de lijst met ADO-objectbronnen om de variabele op te geven die de naam van het ADO-object bevat om te inventariseren en selecteert u een opsommingsmodusoptie.

      Als u een nieuwe variabele maakt, stelt u de eigenschappen van de variabele in het dialoogvenster Variabele toevoegen in.

    • Als u de Foreach-ADO.NET schemarijset-enumerator wilt gebruiken, selecteert u een bestaande ADO.NET-verbinding of klikt u op Nieuwe verbinding in de lijst Verbinding en selecteert u vervolgens een schema.

      Klik desgewenst op Beperkingen instellen en selecteer schemabeperkingen, selecteer de variabele die de beperkingswaarde bevat of typ de beperkingswaarde en klik op OK.

    • Als u de Foreach From Variable-opsomming wilt gebruiken, selecteert u een variabele in de lijst Met variabelen .

    • Als u de Foreach NodeList-opsomming wilt gebruiken, klikt u op DocumentSourceType en selecteert u het brontype in de lijst en klikt u op DocumentSource. Afhankelijk van de waarde die is geselecteerd voor DocumentSourceType, selecteert u een variabele of een bestandsverbinding in de lijst, maakt u een nieuwe variabele of bestandsverbinding of typt u de XML-bron in de documentbroneditor.

      Klik vervolgens op EnumerationType en selecteer een opsommingstype in de lijst. Als EnumerationType Navigator, Node of NodeText is, klikt u op OuterXPathStringSourceType en selecteert u het brontype en klikt u vervolgens op OuterXPathString. Afhankelijk van de waarde die is ingesteld voor OuterXPathStringSourceType, selecteert u een variabele of een bestandsverbinding in de lijst, maakt u een nieuwe variabele of bestandsverbinding of typt u de tekenreeks voor de XPath-expressie (Outer XML Path Language).

      Als EnumerationType ElementCollection is, stelt u OuterXPathStringSourceType en OuterXPathString in zoals hierboven beschreven. Klik vervolgens op InnerElementType en selecteer een opsommingstype voor de binnenste elementen en klik vervolgens op InnerXPathStringSourceType. Afhankelijk van de waarde die is ingesteld voor InnerXPathStringSourceType, selecteert u een variabele of een bestandsverbinding, maakt u een nieuwe variabele of bestandsverbinding of typt u de tekenreeks voor de binnenste XPath-expressie.

    • Als u de Foreach SMO-enumerator wilt gebruiken, selecteert u een bestaande ADO.NET verbinding of klikt u op Nieuwe verbinding in de lijst Met verbindingen en typt u vervolgens de tekenreeks die u wilt gebruiken of klikt u op Bladeren. Als u op Bladeren klikt, selecteert u in het dialoogvenster SMO-opsomming selecteren het objecttype dat u wilt opsommen en het opsommingstype en klikt u op OK.

  6. Klik eventueel op de bladerknop (...) in het tekstvak Expressies op de pagina Verzameling om expressies te maken waarmee eigenschapswaarden worden bijgewerkt. Zie Een eigenschapsexpressie toevoegen of wijzigen voor meer informatie.

    Opmerking

    De eigenschappen die in de lijst Eigenschappen worden vermeld, variëren per enumerator.

  7. Klik optioneel op Variabelekoppelingen om objecteigenschappen toe te wijzen aan de verzamelingswaarde en voer vervolgens de volgende stappen uit:

    1. Selecteer een variabele in de lijst Variabelen of klik op <Nieuwe variabele> om een nieuwe variabele te maken.

    2. Als u een nieuwe variabele toevoegt, stelt u de eigenschappen van de variabele in het dialoogvenster Variabele toevoegen in en klikt u op OK.

    3. Als u de enumerator voor elk item gebruikt, kunt u de indexwaarde in de lijst Index bijwerken.

      Opmerking

      De indexwaarde geeft aan welke kolom in het item moet worden toegewezen aan de variabele. Alleen de enumerator voor elk item kan een andere indexwaarde dan 0 gebruiken.

  8. Klik eventueel op Expressies en maak op de pagina Expressies eigenschapsexpressies voor de eigenschappen van de Foreach Loop-container. Zie Een eigenschapsexpressie toevoegen of wijzigen voor meer informatie.

  9. Klik op OK.

Algemene pagina - Foreach Loop Editor

Gebruik de pagina Algemeen van het dialoogvenster Editor voor Foreach Loop om een naam te geven en een Foreach Loop-container te beschrijven die gebruikmaakt van een opgegeven enumerator om een werkstroom voor elk lid in een verzameling te herhalen.

Opties

Naam
Geef een unieke naam op voor de Foreach Loop-container. Deze naam wordt gebruikt als het label in het taakpictogram en in de logboeken.

Opmerking

Objectnamen moeten uniek zijn binnen een pakket.

Beschrijving
Typ een beschrijving van de Foreach Loop-container.

Verzamelingspagina - Foreach Loop Editor

Gebruik de pagina Verzameling van het dialoogvenster Foreach Loop Editor om het type enumerator op te geven en de enumerator te configureren.

Zie Foreach Loop-container en een Foreach-luscontainer configureren voor meer informatie over de Foreach-luscontainer en hoe u deze configureert.

Statische opties

Enumerator-
Selecteer het type enumerator in de lijst. Deze eigenschap bevat de opties in de volgende tabel:

Waarde Beschrijving
Foreach File Enumerator Bestanden opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach File Enumerator weergegeven.
Foreach-item enumerator Waarden in een item opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach Item Enumerator weergegeven.
Foreach ADO Enumerator Tabellen of rijen in tabellen opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach ADO Enumerator weergegeven.
Foreach ADO.NET Schema Rowset Enumerator Een schema opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach ADO.NET Enumerator weergegeven.
Foreach vanuit variabele-enumerator De waarde in een variabele opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach From Variable Enumerator weergegeven.
Foreach Nodelist Enumerator Knooppunten in een XML-document opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach Nodelist Enumerator weergegeven.
Foreach SMO Enumerator Een SMO-object opsommen. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach SMO Enumerator weergegeven.
Foreach HDFS File Enumerator HDFS-bestanden opsommen op de opgegeven HDFS-locatie. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach HDFS File Enumerator weergegeven.
Foreach Azure Blob Enumerator Opsommen van blob-bestanden op de opgegeven bloblocatie. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach Azure Blob Enumerator weergegeven.
Foreach ADLS File Enumerator Bestanden opsommen in de opgegeven Data Lake Store-map. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach ADLS File Enumerator weergegeven.
Foreach Data Lake Storage Gen2 File Enumerator Inventariseer bestanden in de opgegeven Data Lake Storage Gen2-map. Als u deze waarde selecteert, worden de dynamische opties in de sectie Foreach Data Lake Storage Gen2 File Enumerator weergegeven.

Uitdrukkingen
Klik of vouw Expressies uit om de lijst met bestaande eigenschapsexpressies weer te geven. Klik op de knop met het beletselteken (...) om een eigenschapsexpressie toe te voegen voor een enumerator-eigenschap of om een bestaande eigenschapsexpressie te bewerken en te evalueren.

Verwante onderwerpen:SSIS-expressies (Integration Services),Editor voor eigenschapsexpressies, Opbouwfunctie voor expressies

Dynamische opties voor enumerator

Enumerator = Bestandsherhalingsenumerator

U gebruikt de Foreach File-enumerator om bestanden in een map op te sommen. Als de Foreach-lus bijvoorbeeld een SQL-taak uitvoeren bevat, kunt u de Foreach-bestandsumerator gebruiken om bestanden te inventariseren die SQL-instructies bevatten die door de SQL-taak worden uitgevoerd. De enumerator kan worden geconfigureerd voor het opnemen van submappen.

De inhoud van de mappen en submappen die door de Foreach File enumerator worden opgesomd, kan veranderen terwijl de lus wordt uitgevoerd, omdat externe processen of taken in de lus bestanden toevoegen, hernoemen of verwijderen terwijl de lus wordt uitgevoerd. Deze wijzigingen kunnen een aantal onverwachte situaties veroorzaken:

  • Als bestanden worden verwijderd, kunnen de acties van één taak in de Foreach-lus van invloed zijn op een andere set bestanden dan de bestanden die door volgende taken worden gebruikt.

  • Als de naam van bestanden wordt gewijzigd en een extern proces automatisch bestanden toevoegt om de hernoemde bestanden te vervangen, kunnen de acties van taken in de Foreach-lus twee keer van invloed zijn op dezelfde bestanden.

  • Als er bestanden worden toegevoegd, kan het lastig zijn om te bepalen welke bestanden de Foreach-lus heeft beïnvloed.

Map
Geef het pad van de hoofdmap op om te inventariseren.

navigeren
Blader om de hoofdmap te lokaliseren.

bestanden
Geef de bestanden op die moeten worden opgesomd.

Opmerking

Gebruik jokertekens (*) om de bestanden op te geven die in de verzameling moeten worden opgenomen. Als u bijvoorbeeld bestanden wilt opnemen met namen die 'abc' bevatten, gebruikt u het volgende filter: *abc*.

Wanneer u een bestandsnaamextensie opgeeft, retourneert de enumerator ook bestanden met dezelfde extensie waaraan extra tekens zijn toegevoegd. (Dit is hetzelfde gedrag als die van de dir-opdracht in het besturingssysteem, waarmee ook 8.3 bestandsnamen worden vergeleken voor achterwaartse compatibiliteit.) Dit gedrag van de enumerator kan onverwachte resultaten veroorzaken. U wilt bijvoorbeeld alleen Excel 2003-bestanden opsommen en '*.xls' opgeven. De enumerator retourneert echter ook Excel 2007-bestanden omdat deze bestanden de extensie hebben, ".xlsx".

U kunt een expressie gebruiken om de bestanden op te geven die moeten worden opgenomen in een verzameling door expressies uit te vouwen op de pagina Verzameling, de eigenschap FileSpec te selecteren en vervolgens op de knop met het beletselteken (...) te klikken om de eigenschapsexpressie toe te voegen.

Volledig gekwalificeerde
Selecteer deze optie om het volledig gekwalificeerde pad van bestandsnamen op te halen. Als jokertekens zijn opgegeven in de optie Bestanden, komen de volledig gekwalificeerde paden overeen met het filter.

Alleen naam
Selecteer deze optie om alleen de bestandsnamen op te halen. Als jokertekens zijn opgegeven in de optie Bestanden, komen de bestandsnamen overeen met het filter.

Naam en extensie
Selecteer deze optie om de bestandsnamen en de bijbehorende bestandsnaamextensies op te halen. Als jokertekens zijn opgegeven in de optie Bestanden, komen de naam en extensie van de geretourneerde bestanden overeen met het filter.

Submappen doorlopen
Selecteer deze optie om de submappen in de opsomming op te nemen.

Enumerator = Voor elk Item-Enumerator

U gebruikt de Foreach-item-opsomming om items in een verzameling op te sommen. U definieert de items in de verzameling door kolommen en kolomwaarden op te geven. De kolommen in een rij definiëren een item. Een item dat bijvoorbeeld de uitvoerbare bestanden aangeeft die een uitvoeringsprocestaak uitvoert en de werkmap die door de taak wordt gebruikt, heeft twee kolommen, een met de namen van uitvoerbare bestanden en één met de werkmap. Het aantal rijen bepaalt het aantal keren dat de lus wordt herhaald. Als de tabel 10 rijen heeft, wordt de lus 10 keer herhaald.

Als u de eigenschappen van de taak Proces uitvoeren wilt bijwerken, wijst u variabelen toe aan itemkolommen met behulp van de index van de kolom. De eerste kolom die in het enumerator-item is gedefinieerd, heeft de indexwaarde 0, de tweede kolom 1, enzovoort. De variabelewaarden worden bijgewerkt met elke herhaling van de lus. De eigenschappen Uitvoerbaar en WorkingDirectory van de taak Proces uitvoeren kunnen vervolgens worden bijgewerkt door eigenschapsexpressies die gebruikmaken van deze variabelen.

De items definiëren in de verzameling Voor elk item
Geef een waarde op voor elke kolom in de tabel.

Opmerking

Er wordt automatisch een nieuwe rij aan de tabel toegevoegd nadat u waarden in rijkolommen hebt ingevoerd.

Opmerking

Als de opgegeven waarden niet compatibel zijn met het gegevenstype kolom, is de tekst rood gekleurd.

Kolomgegevenstype
Geeft het gegevenstype van de actieve kolom weer.

verwijderen
Selecteer een item en klik vervolgens op Verwijderen om het uit de lijst te verwijderen.

Kolommen
Klik hier om het gegevenstype van de kolommen in het item te configureren.

Verwante onderwerpen: Naslaginformatie over de gebruikersinterface voor elk itemkolommen

Enumerator = Foreach ADO Enumerator

U gebruikt de Foreach ADO-enumerator om rijen of tabellen op te sommen in een ADO- of ADO.NET-object dat is opgeslagen in een variabele. Als de Foreach-lus bijvoorbeeld een scripttaak bevat waarmee een gegevensset naar een variabele wordt geschreven, kunt u de Foreach ADO-opsomming gebruiken om de rijen in de gegevensset op te sommen. Als de variabele een ADO.NET gegevensset bevat, kan de enumerator worden geconfigureerd om rijen in meerdere tabellen op te sommen of om tabellen op te sommen.

ADO-objectbronvariabele
Selecteer een door de gebruiker gedefinieerde variabele in de lijst of klik op <Nieuwe variabele...> om een nieuwe variabele te maken.

Opmerking

De variabele moet het gegevenstype Object hebben, anders treedt er een fout op.

Verwante onderwerpen:SSIS-variabelen (Integration Services),variabele toevoegen

Rijen in eerste tabel
Selecteer deze optie om alleen rijen in de eerste tabel op te sommen.

Rijen in alle tabellen (alleen ADO.NET gegevensset)
Selecteer deze optie om rijen in alle tabellen op te sommen. Deze optie is alleen beschikbaar als de objecten die moeten worden opgesomd, alle leden van dezelfde ADO.NET gegevensset zijn.

Alle tabellen (alleen ADO.NET gegevensset)
Selecteer deze optie om alleen tabellen op te sommen.

Enumerator = Foreach ADO.NET Schema Rowset Enumerator

U gebruikt de Foreach-ADO.NET Schema Rowset-enumerator om een schema voor een opgegeven gegevensbron op te sommen. Als de Foreach-lus bijvoorbeeld een SQL-taak uitvoeren bevat, kunt u de Foreach-ADO.NET schemarijset-opsommingsfunctie gebruiken om schema's op te sommen, zoals de kolommen in de AdventureWorks-database , en de SQL-taak Uitvoeren om de schemamachtigingen op te halen.

Verbinding
Selecteer een ADO.NET verbindingsbeheer in de lijst of klik op <Nieuwe verbinding...> om een nieuwe ADO.NET verbindingsbeheer te maken.

Belangrijk

Het ADO.NET-verbindingsbeheer moet een .NET-provider voor OLE DB gebruiken. Als u verbinding maakt met SQL Server, is de aanbevolen provider die u wilt gebruiken de systeemeigen SQL Server-client, die wordt vermeld in de sectie .Net-providers voor OleDb van het dialoogvenster Verbindingsbeheer .

Verwante onderwerpen:ADO-verbindingsbeheer, ADO.NET Verbindingsbeheer configureren

Schema
Selecteer het schema dat u wilt inventariseren.

Beperkingen instellen
Verwante onderwerpen: Het dialoogvenster Schemabeperkingen; het ADO.NET verbindingsbeheer configureren; en werken met SSIS-variabelen (Integration Services) en het dialoogvenster Variabele toevoegen.

Enumerator = Foreach Van Variabele Enumerator

U gebruikt de Foreach From Variable Enumerator om de opsombare objecten in de opgegeven variabele op te sommen. Als de Foreach-lus bijvoorbeeld een SQL-taak uitvoeren bevat waarmee een query wordt uitgevoerd en het resultaat in een variabele wordt opgeslagen, kunt u de Foreach From Variable-enumerator gebruiken om de queryresultaten op te sommen.

Veranderlijk
Selecteer een variabele in de lijst of klik op <Nieuwe variabele...> om een nieuwe variabele te maken.

Verwante onderwerpen:SSIS-variabelen (Integration Services),variabele toevoegen

Enumerator = Foreach NodeList Enumerator

U gebruikt de Foreach Nodelist-opsomming om de set XML-knooppunten op te sommen die het resultaat zijn van het toepassen van een XPath-expressie op een XML-bestand. Als de Foreach-lus bijvoorbeeld een scripttaak bevat, kunt u de Foreach NodeList-enumerator gebruiken om een waarde door te geven die voldoet aan de XPath-expressiecriteria van het XML-bestand naar de scripttaak.

De XPath-expressie die van toepassing is op het XML-bestand is de buitenste XPath-bewerking die is opgeslagen in de eigenschap OuterXPathString. Als het XPath-opsommingstype is ingesteld op ElementCollection, kan de Enumerator van Foreach NodeList een interne XPath-expressie toepassen, opgeslagen in de eigenschap InnerXPathString, op een verzameling elementen.

Zie 'XML gebruiken in .NET Framework' in de MSDN-bibliotheek voor meer informatie over het werken met XML-documenten en -gegevens.

DocumentSourceType
Selecteer het brontype van het XML-document. Deze eigenschap bevat de opties in de volgende tabel:

Waarde Beschrijving
Directe invoer Stel de bron in op een XML-document.
Bestandsverbinding Selecteer een bestand dat het XML-document bevat.
Veranderlijk Stel de bron in op een variabele die het XML-document bevat.

Documentbron
Als DocumentSourceType is ingesteld op Directe invoer, geeft u de XML-code op of klikt u op het beletselteken (...) om XML op te geven met behulp van het dialoogvenster Documentbroneditor .

Als DocumentSourceType is ingesteld op Bestandsverbinding, selecteert u een bestandsverbindingsbeheer of klikt u op <Nieuwe verbinding...> om een nieuw verbindingsbeheer te maken.

Verwante onderwerpen:Bestandsverbindingsbeheer, Editor voor Bestandsverbindingsbeheer

Als DocumentSourceType is ingesteld op Variabele, selecteert u een bestaande variabele of klikt u op <Nieuwe variabele...> om een nieuwe variabele te maken.

Verwante onderwerpen:SSIS-variabelen (Integration Services),variabele toevoegen.

Opsommingstype
Selecteer een opsommingstype in de lijst. Deze eigenschap bevat de opties in de volgende tabel:

Waarde Beschrijving
Zeevaarder Inventariseer met behulp van een XPathNavigator.
Knoop Knooppunten opsommen die een XPath-bewerking retourneert.
NodeText Tekstknooppunten opsommen die worden geretourneerd door een XPath-bewerking.
ElementCollection Opsomming van elementknooppunten die worden geretourneerd door een XPath-bewerking.

OuterXPathStringSourceType
Selecteer het brontype van de XPath-tekenreeks. Deze eigenschap bevat de opties in de volgende tabel:

Waarde Beschrijving
Directe invoer Stel de bron in op een XML-document.
Bestandsverbinding Selecteer een bestand dat het XML-document bevat.
Veranderlijk Stel de bron in op een variabele die het XML-document bevat.

OuterXPathString
Als OuterXPathStringSourceType is ingesteld op Directe invoer, geeft u de XPath-tekenreeks op.

Als OuterXPathStringSourceType is ingesteld op Bestandsverbinding, selecteert u een bestandsverbindingsbeheer of klikt u op <Nieuwe verbinding...> om een nieuw verbindingsbeheer te maken.

Verwante onderwerpen:Bestandsverbindingsbeheer, Editor voor Bestandsverbindingsbeheer

Als OuterXPathStringSourceType is ingesteld op Variabele, selecteert u een bestaande variabele of klikt u op <Nieuwe variabele...> om een nieuwe variabele te maken.

Verwante onderwerpen:SSIS-variabelen (Integration Services),variabele toevoegen.

InnerElementType
Als EnumerationType is ingesteld op ElementCollection, selecteert u het type binnenste element in de lijst.

InnerXPathStringSourceType
Selecteer het brontype van de binnenste XPath-tekenreeks. Deze eigenschap bevat de opties in de volgende tabel:

Waarde Beschrijving
Directe invoer Stel de bron in op een XML-document.
Bestandsverbinding Selecteer een bestand dat het XML-document bevat.
Veranderlijk Stel de bron in op een variabele die het XML-document bevat.

InnerXPathString
Als InnerXPathStringSourceType is ingesteld op Directe invoer, geeft u de XPath-tekenreeks op.

Als InnerXPathStringSourceType is ingesteld op Bestandsverbinding, selecteert u een bestandsverbindingsbeheer of klikt u op <Nieuwe verbinding...> om een nieuw verbindingsbeheer te maken.

Verwante onderwerpen:Bestandsverbindingsbeheer, Editor voor Bestandsverbindingsbeheer

Als InnerXPathStringSourceType is ingesteld op Variabele, selecteert u een bestaande variabele of klikt u op <Nieuwe variabele...> om een nieuwe variabele te maken.

Verwante onderwerpen:SSIS-variabelen (Integration Services),variabele toevoegen.

Enumerator = Foreach SMO-Enumerator

U gebruikt de Foreach SMO-enumerator om SMO-objecten (SQL Server Management Object) op te sommen. Als de Foreach-lus bijvoorbeeld een SQL-taak uitvoeren bevat, kunt u de Foreach SMO-enumerator gebruiken om de tabellen in de AdventureWorks-database op te sommen en query's uit te voeren waarmee het aantal rijen in elke tabel wordt geteld.

Verbinding
Selecteer een bestaand ADO.NET verbindingsbeheer of klik op <Nieuwe verbinding...> om een nieuw verbindingsbeheer te maken.

Verwante onderwerpen: ADO.NET Verbindingsbeheer, ADO.NET Verbindingsbeheer configureren

Opsommen
Geef het SMO-object op dat moet worden opgesomd.

navigeren
Selecteer de SMO-inventarisatie.

Verwante onderwerpen: Dialoogvenster voor het selecteren van SMO-opsommingen

Enumerator = Voor elke HDFS Bestandsopsomming

Met de Foreach HDFS File Enumerator kan een SSIS-pakket HDFS-bestanden op de opgegeven HDFS-locatie inventariseren. De naam van elk HDFS-bestand kan worden opgeslagen in een variabele en worden gebruikt in taken in de Foreach Loop-container.

Hadoop Connection Manager
Geef een bestaand Hadoop-verbindingsbeheer op of maak een nieuwe, die verwijst naar de locatie waar de HDFS-bestanden worden gehost. Zie Hadoop Connection Manager voor meer informatie.

Mappad
Geef de naam op van de HDFS-map die de HDFS-bestanden bevat die moeten worden geïnventariseerd.

Bestandsnaamfilter
Geef een naamfilter op om bestanden te selecteren met een bepaald naampatroon. MySheet*.xls* bevat bijvoorbeeld bestanden zoals MySheet001.xls en MySheetABC.xlsx.

Bestandsnaam ophalen
Geef het bestandstype op dat is opgehaald door SSIS.

  • Volledig gekwalificeerde naam betekent de volledige naam, die het mappad en de bestandsnaam bevat.

  • Alleen naam betekent dat de bestandsnaam wordt opgehaald zonder het pad.

Door submappen gaan
Geef aan of submappen recursief moeten worden doorlopen.

Selecteer of maak op de pagina Variabeletoewijzingen van de editor een variabele om de naam van het geïnventariseerd HDFS-bestand op te slaan.

Enumerator = Foreach Azure Blob Enumerator

Met de Azure Blob Enumerator kan een SSIS-pakket blobbestanden in de opgegeven bloblocatie opsommen. U kunt de naam van het geïnventariseerd blobbestand opslaan in een variabele en deze gebruiken in taken in de Foreach Loop-container.

Azure Blob Enumerator is een onderdeel van het SSIS-functiepakket (SQL Server Integration Services) voor Azure voor SQL Server 2016 (13.x). Download hier het Feature Pack.

Azure Storage-verbindingsbeheer
Selecteer een bestaand Azure Storage-verbindingsbeheer of maak een nieuw account dat verwijst naar een Azure Storage-account.

Verwante onderwerpen: Azure Storage Connection Manager.

Naam van blobcontainer
Geef de naam op van de blobcontainer die de blobbestanden bevat die moeten worden geïnventariseerd.

Blobmap
Geef de blobmap op die de blobbestanden bevat die moeten worden geïnventariseerd. De blobmap is een virtuele hiërarchische structuur.

Recursief zoeken
Geef op of u recursief wilt zoeken in submappen.

Blobnaamfilter
Geef een naamfilter op om bestanden met een bepaald naampatroon op te sommen. Bevat bijvoorbeeld MySheet*.xls\* bestanden zoals MySheet001.xls en MySheetABC.xlsx.

Blob-tijdsbereik van/naar filter
Geef een tijdsbereikfilter op. Bestanden die zijn gewijzigd na TimeRangeFrom en voordat TimeRangeTo wordt geïnventariseerd.

Enumerator = Foreach ADLS-bestandsEnumerator

Met de ADLS-bestands-enumerator kan een SSIS-pakket bestanden in Azure Data Lake Store inventariseren. U kunt het volledige pad van het geïnventareerde bestand (voorafgegaan door een slash - /) opslaan in een variabele en het bestandspad gebruiken in taken in de Foreach Loop-container.

AzureDataLakeConnection
Hiermee geeft u een Azure Data Lake-verbindingsbeheerder op of maakt u een nieuw account dat verwijst naar een ADLS-account.

AzureDataLakeDirectory
Hiermee geeft u de ADLS-map die de bestanden bevat die moeten worden geïnventariseerd.

FileNamePattern
Hiermee geeft u een bestandsnaamfilter. Alleen bestanden waarvan de namen overeenkomen met het opgegeven patroon, worden opgesomd. De jokertekens * en ? worden ondersteund.

SearchRecursief
Hiermee geeft u op of er recursief moet worden gezocht in de opgegeven map.

Enumerator = Foreach Data Lake Storage Gen2 File Enumerator

Met de Foreach Data Lake Storage Gen2 File Enumerator kan een SSIS-pakket bestanden opsommen in Azure Data Lake Storage Gen2.

AzureStorageConnection
Hiermee geeft u een bestaand Azure Storage-verbindingsbeheer op of maakt u een nieuwe die verwijst naar een Data Lake Storage Gen2-service.

FolderPath
Hiermee geeft u het pad van de map voor het inventariseren van bestanden in.

SearchRecursief
Hiermee geeft u op of er recursief moet worden gezocht in de opgegeven map.

Opmerkingen over de machtigingsconfiguratie van de service-principal

De Data Lake Storage Gen2-machtiging wordt bepaald door zowel RBAC als ACL's. Let op dat ACL's zijn geconfigureerd met behulp van de object-id (OID) van de service-principal voor de app-registratie, zoals hier wordt beschreven. Dit verschilt van de toepassings-id (client) die wordt gebruikt met RBAC-configuratie. Wanneer aan een beveiligingsprincipaal RBAC-gegevensmachtigingen worden verleend via een ingebouwde rol of via een aangepaste rol, worden deze machtigingen eerst geëvalueerd na autorisatie van een aanvraag. Als de aangevraagde bewerking is geautoriseerd door de RBAC-toewijzingen van de beveiligingsprincipaal, wordt autorisatie onmiddellijk opgelost en worden er geen aanvullende ACL-controles uitgevoerd. Als de beveiligingsprincipaal geen RBAC-toewijzing heeft of de bewerking van de aanvraag niet overeenkomt met de toegewezen machtiging, worden ACL-controles uitgevoerd om te bepalen of de beveiligingsprincipaal is gemachtigd om de aangevraagde bewerking uit te voeren. Om de enumerator te laten werken, geef ten minste de machtiging Uitvoeren, startend vanaf het hoofdbestandssysteem, en geef de leesmachtigingen voor de doelmap. U kunt ook ten minste de rol Opslagblobgegevenslezer verlenen met RBAC. Zie dit artikel voor meer informatie.

Pagina voor Variabelentoewijzingen - Foreach Loop Editor

Gebruik de pagina Variabelentoewijzingen van het dialoogvenster Foreach Loop Editor om variabelen toe te wijzen aan de verzamelingswaarde. De waarde van de variabele wordt bijgewerkt met de verzamelingswaarden voor elke iteratie van de lus.

De zelfstudie over Microsoft SQL Server Integration Services, het maken van een eenvoudige ETL-pakketzelfstudie, bevat een les waarin u leert hoe u een Foreach-lus toevoegt en configureert.

Opties

Veranderlijk
Selecteer een bestaande variabele of klik op Nieuwe variabele... om een nieuwe variabele te maken.

Opmerking

Nadat u een variabele hebt toegewezen, wordt automatisch een nieuwe rij toegevoegd aan de Variabelelijst.

Verwante onderwerpen: SSIS-variabelen (Integration Services),variabele toevoegen

Index
Als u de Foreach Item-opsomming gebruikt, geeft u de index van de kolom in de verzamelingswaarde op die u wilt toewijzen aan de variabele. Voor andere enumeratietypen is de index alleen-lezen.

Opmerking

De index is gebaseerd op 0.

Verwijderen
Selecteer een variabele en klik vervolgens op Verwijderen.

Het dialoogvenster Schemabeperkingen (ADO.NET)

Gebruik het dialoogvenster Schemabeperkingen om de schemabeperkingen in te stellen die moeten worden toegepast op de Foreach ADO.NET Schema Rowset enumerator.

Opties

Beperkingen
Selecteer de beperkingen die u wilt toepassen op het schema.

Veranderlijk
Gebruik een variabele om beperkingen te definiëren. Selecteer een variabele in de lijst of klik op Nieuwe variabele... om een nieuwe variabele te maken.

Verwante onderwerpen:SSIS-variabelen (Integration Services),Variabele toevoegen

Tekst
Geef de tekst op om beperkingen te definiëren.

Dialoogvenster Voor elk item kolommen

Gebruik het dialoogvenster Voor elk itemkolommen om de kolommen in de items te definiëren die door de Opsommingsteken voor Foreach-items worden opgesomd.

Opties

kolom
Hiermee worden de kolommen weergegeven.

Gegevenstype
Selecteer het gegevenstype.

Toevoegen
Voeg een nieuwe kolom toe.

verwijderen
Selecteer een kolom en klik vervolgens op Verwijderen.

Dialoogvenster SMO-Opsomming selecteren

Gebruik het dialoogvenster SMO-inventarisatie selecteren om het SMO-object (SQL Server Management Objects) op te geven op het opgegeven exemplaar van SQL Server om te inventariseren en om het opsommingstype te selecteren.

Opties

Opsommen
Vouw de server uit en selecteer het SMO-object.

objecten
Gebruik het opsommingstype Objecten.

Vooraf ingevuld
Gebruik de optie Vooraf ingevuld met het opsommingstype Objecten.

Namen
Gebruik het opsommingstype Namen.

Urnen
Gebruik het opsommingstype URN's.

Locaties
Gebruik het opsommingstype Locaties. Deze optie is alleen beschikbaar voor bestanden.

Eigenschapsexpressies gebruiken met Foreach Loop-containers

Pakketten kunnen worden geconfigureerd om gelijktijdig meerdere uitvoerbare bestanden uit te voeren. Deze configuratie moet voorzichtig worden gebruikt wanneer het pakket een Foreach Loop-container bevat waarmee eigenschapsexpressies worden geïmplementeerd.

Het is vaak handig om een eigenschapsexpressie te implementeren om de waarde van de eigenschap ConnectionString van de verbindingsbeheerders in te stellen die de Foreach Loop-opsommingen gebruiken. De eigenschapsexpressie van ConnectionString wordt ingesteld door een variabele die wordt toegewezen aan de verzamelingswaarde van de enumerator en wordt bijgewerkt bij elke iteratie van de lus.

Om negatieve gevolgen van niet-determinatieve timing van parallelle uitvoering van taken in de lus te voorkomen, moet het pakket worden geconfigureerd om slechts één uitvoerbaar bestand tegelijk uit te voeren. Als een pakket bijvoorbeeld meerdere taken gelijktijdig kan uitvoeren, kan een Foreach Loop-container die bestanden in de map opsommen, de bestandsnamen ophalen en vervolgens een Execute SQL-taak gebruiken om de bestandsnamen in een tabel in te voegen, schrijfconflicten kunnen optreden wanneer twee exemplaren van de SQL-taak uitvoeren tegelijkertijd proberen te schrijven. Zie Eigenschapsexpressies gebruiken in pakkettenvoor meer informatie.

Zie ook

controlestroom
Integrationservicescontainers