Hoe u informatie naar het toepassingslogboek geschreven met behulp van een Script-taak in een pakket van SQL Server 2005 Integration Services


Samenvatting


Wanneer u Microsoft SQL Server Business Intelligence Development Studio voor het maken van een pakket van Microsoft SQL Server 2005 Integration Services (SSIS), kunt u de taak van een Script opnemen in het pakket SSI's voor het uitvoeren van een taak.

De taak kan bijvoorbeeld een verzameling variabele gegevens schrijven naar het gebeurtenislogboek van Windows. U kunt een SSIS-pakket met een gegevensstroom taak maken. Deze taak gegevensstroom bevat een aantal rijen transformatie. U kunt een taak Script schrijven van de gegevens die door de transformatie van het aantal rijen in het gebeurtenislogboek van Windows-toepassing is gevuld.

In dit artikel wordt beschreven hoe gegevens worden geschreven naar het gebeurtenislogboek van Windows-toepassing met een taak van het Script.

Meer informatie


In dit voorbeeld wordt ervan uitgegaan dat u de volgende elementen in het pakket SSIS hebt gemaakt:
  • Een gegevensstroom taak
  • De taak van een Script
  • Een connector van de gegevensstroom taak aan de taak van het Script
  • In de taak van de gegevensstroom, kunt u een transformatie van het aantal rijen in de gegevensstroom gemaakt.
Wanneer u het pakket hebt uitgevoerd, retourneert de transformatie van het aantal rijen rij aantal gegevens dat u wilt schrijven naar het gebeurtenislogboek van Windows.

Ga hiervoor als volgt te werk in SQL Server Business Intelligence Development Studio:
  1. Als het tabblad Controlestroom actief is, klik met de rechtermuisknop in het ontwerpgebied en klik vervolgens op variabelen. Het venster variabelen verschijnt in het linkerdeelvenster.
  2. Klik in het venster variabelen variabele toevoegen als u wilt toevoegen van een variabele met de naam mycount. Het gegevenstype van de nieuwe mycount-variabele is standaard, Int32.

    Opmerking Verwijzingen naar namen van variabelen zijn hoofdlettergevoelig.
  3. Dubbelklik op de taak Gegevensstroom . De
    Tabblad Gegevensstroom wordt weergegeven.
  4. Dubbelklik op de transformatie van het Aantal rijen . Het dialoogvenster Geavanceerde Editor wordt geopend.
  5. Stel de waarde van de eigenschap variabelenaam
    mycount.
  6. Klik op het tabblad Controlestroom en dubbelklik vervolgens op de Taak van Script. Het dialoogvenster Taak scripteditor wordt weergegeven.
  7. Klik op het Script -item in het linkerdeelvenster en wijzig vervolgens de waarde van de eigenschap ReadOnlyVariables de volgende waarde:
    PackageName,StartTime,ExecutionInstanceGUID,mycount
    Opmerking De pakketnaam StartTime en ExecutionInstanceGUID artikelen zijn systeemvariabelen. Deze variabelen worden gebruikt voor het pakketgegevens schrijven naar het gebeurtenislogboek van Windows.
  8. In het
    Dialoogvenster Taak scripteditor Klik op Script ontwerpen.
  9. Zorg ervoor dat de volgende naamruimten worden opgenomen in uw code vóór alle andere declaraties:
    Imports System
    Imports System.Data
    Imports System.Math
    Imports System.Diagnostics
    Imports Microsoft.SqlServer.Dts.Runtime
  10. Wanneer het wordt weergegeven in een nieuw venster van Microsoft Visual Studio for Applications vervangen door de volgende voorbeeldcode de code in de methode Main() .
    Dim varMyCount As Variable = Dts.Variables("mycount") '
    Dim varPackageName As Variable = Dts.Variables("PackageName")
    Dim varStartTime As Variable = Dts.Variables("StartTime")
    Dim varInstanceID As Variable = Dts.Variables("ExecutionInstanceGUID")
    Dim PackageDuration As Long

    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    ' Event log needs
    '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Dim sSource As String
    Dim sLog As String
    Dim sEventMessage As String
    Dim sMachine As String
    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    PackageDuration = DateDiff("s", varStartTime.Value, Now())

    sSource = "RowCountReporting from SSIS"

    ' We need the message posted to the Application event log.

    sLog = "Application"
    sEventMessage = "Rows Processed: " & Chr(10) _
    & " case Rows:" + varMyCount.Value().ToString + Chr(10) _
    & "=============================================" & Chr(10) _
    & "The Package: " + varPackageName.Value().ToString _
    & Chr(10) _
    & "Started: " & varStartTime.Value().ToString _
    & Chr(10) _
    & "Current Time:" & System.DateTime.Now _
    & Chr(10) _
    & "=============================================" _
    & Chr(10) _
    & "Package Run Duration in seconds: " & PackageDuration _
    & Chr(10) _
    & "Execution GUID: " & varInstanceID.Value().ToString
    sMachine = "."

    If Not EventLog.SourceExists(sSource, sMachine) Then
    EventLog.CreateEventSource(sSource, sLog, sMachine)
    End If

    Dim ELog As New EventLog(sLog, sMachine, sSource)

    ELog.WriteEntry(sEventMessage, EventLogEntryType.Information, 777, 2)

    '###############################
    Dts.TaskResult = Dts.Results.Success
  11. Sluit het venster van Microsoft Visual Studio voor toepassing .
  12. In het
    Taak scripteditor dialoogvenster op OK.
  13. Druk op F5 om de uitvoering van het pakket.
Wanneer het pakket met succes wordt uitgevoerd, wordt informatie die vergelijkbaar is met het volgende weergegeven in het toepassingslogboek van Windows:

Referenties


Zie de volgende onderwerpen in Microsoft SQL Server 2005 Books Online voor meer informatie:
  • Script-taak
  • De taak van het Script programmeren
  • Procedure: eigenschappen van de taak met de Editor voor een taak instellen
Ga naar de volgende website van Microsoft Developer Network (MSDN) voor meer informatie over het schrijven naar het gebeurtenislogboek van Windows-toepassing met behulp van Microsoft Visual Basic: