Écrire des informations dans le journal des applications
Vous pouvez inclure une tâche de script dans le package Microsoft SQL Server Integration Services (SSIS) pour exécuter une tâche. Par exemple, la tâche peut écrire une collection d’informations sur les variables dans le journal des applications Windows. Vous pouvez créer un package SSIS qui contient une tâche Data Flow. Cette tâche Data Flow comprend une transformation du nombre de lignes. Vous pouvez utiliser une tâche de script pour écrire les données qui ont été remplies par la transformation du nombre de lignes dans le journal des applications Windows.
Cet article explique comment utiliser une tâche de script pour écrire des informations dans le journal des applications Windows.
Version d’origine du produit : SQL Server
Numéro de la base de connaissances d’origine : 906560
Description
Cet exemple suppose que vous avez créé les éléments suivants dans le package SSIS :
- tâche Data Flow
- tâche de script
- connecteur de la tâche Data Flow à la tâche de script.
- Dans la tâche Data Flow, vous avez créé une transformation du nombre de lignes dans le flux de données.
Lorsque vous exécutez le package, la transformation du nombre de lignes retourne les données du nombre de lignes que vous souhaitez écrire dans le journal des applications Windows.
Configurer la tâche de script
Pour configurer l’exemple de code de tâche de script, procédez comme suit dans le concepteur SSIS :
Lorsque l’onglet Flux de contrôle est actif, cliquez avec le bouton de droite sur la surface de conception, puis sélectionnez Variables. La fenêtre Variables s’affiche sur le volet de gauche.
Dans la fenêtre Variables, sélectionnez Ajouter une variable, puis indiquez le nom de la variable en tant que mycount. Par défaut, le type de données de la nouvelle variable mycount est
Int32
.Notes
Les noms des variables respectent la casse.
Double-cliquez sur la Tâche Data Flow. La fenêtre active bascule vers l’onglet Data Flow.
Utilisez les propriétés de la transformation du nombre de lignes pour définir la valeur de la propriété VariableName sur mycount.
Sélectionnez l'onglet Flux de contrôle, puis double-cliquez sur la Tâche de script. La boîte de dialogue Éditeur de tâches de script s’affiche.
Dans le volet de gauche, sélectionnez l’élément Script, puis remplacez la valeur de la propriété ReadOnlyVariables par la valeur suivante :
PackageName,StartTime,ExecutionInstanceGUID,mycount
Notes
Les éléments PackageName, StartTime et ExecutionInstanceGUID sont des variables système. Ces variables système sont utilisées pour écrire les informations du package dans le journal des applications Windows.
Dans la boîte de dialogue Éditeur de tâches de script, sélectionnez Modifier le script.
Lorsqu’une nouvelle fenêtre Microsoft Visual Studio pour Applications (VSTA) s’affiche, procédez comme suit :
Assurez-vous que les espaces de noms suivants sont inclus dans votre code avant toute autre déclaration.
Imports System Imports System.Data Imports System.Math Imports System.Diagnostics Imports Microsoft.SqlServer.Dts.Runtime
Remplacez l’exemple de code suivant par le code de la méthode
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) End If Dim ELog As New EventLog(sLog, sMachine, sSource) Dim category As Short = 2 ' ELog.WriteEntry("Write from third source", 4, 777, 2) ELog.WriteEntry(sEventMessage, EventLogEntryType.Information, 777, category) '############################### Dts.TaskResult = ScriptResults.Success
Une fois le package exécuté, l’entrée suivante s’affiche dans le journal des applications Windows.
Log Name: Application Source: RowCountReporting from SSIS Date: 12/20/2022 11:21:38 AM Event ID: 777 Task Category: (2) Level: Information Keywords: Classic User: N/A Computer: <hostname> Description: Rows Processed: case Rows:0 ============================================= The Package: Package Started: 12/20/2022 11:21:37 AM Current Time:12/20/2022 11:21:38 AM ============================================= Package Run Duration in seconds: 1 Execution GUID: {9DF22831-E608-47F7-BD62-F9BD3C2F9C77} Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="RowCountReporting from SSIS" /> <EventID Qualifiers="0">777</EventID> <Version>0</Version> <Level>4</Level> <Task>2</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2022-12-20T17:21:38.5070621Z" /> <EventRecordID>122603</EventRecordID> <Correlation /> <Execution ProcessID="41588" ThreadID="0" /> <Channel>Application</Channel> <Computer><hostname>/Computer> <Security /> </System> <EventData> <Data>Rows Processed: case Rows:0 ============================================= The Package: Package Started: 12/20/2022 11:21:37 AM Current Time:12/20/2022 11:21:38 AM ============================================= Package Run Duration in seconds: 1 Execution GUID: {9DF22831-E608-47F7-BD62-F9BD3C2F9C77}</Data> </EventData> </Event>
Références
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour