Escritura de información en el registro de aplicaciones
Puede incluir una tarea script en el paquete de Microsoft SQL Server Integration Services (SSIS) para que ejecute una tarea. Por ejemplo, la tarea puede escribir una colección de datos de variables en el registro de aplicaciones de Windows. Puede crear un paquete SSIS que contenga una tarea Flujo de datos. Esta tarea Flujo de datos incluye una transformación Recuento de filas. Puede usar una tarea Script para escribir los datos que la transformación Recuento de filas ha rellenado en el registro de aplicaciones de Windows.
En este artículo se describe cómo usar una tarea Script para escribir información en el registro de aplicaciones de Windows.
Versión de producto original: SQL Server
Número de KB original: 906 560
Descripción
En este ejemplo se da por hecho que se han creado los siguientes elementos en el paquete SSIS:
- Una tarea Flujo de datos
- Una tarea Script
- Un conector que une la tarea Flujo de datos y la tarea Script
- En la tarea Flujo de datos, una transformación Recuento de filas en el flujo de datos
Al ejecutar el paquete, la transformación Recuento de filas devuelve los datos de recuento de filas que desea escribir en el registro de aplicaciones de Windows.
Configurar la tarea Script
Para configurar el código de tarea Script de ejemplo, haga lo siguiente en el diseñador de SSIS:
Con la pestaña Flujo de control activa, haga clic con el botón derecho en la superficie de diseño y seleccione Variables. Se abre la ventana Variables en el panel izquierdo.
En la ventana Variables, seleccione Agregar variable y, a continuación, indique el nombre de variable mycount. El tipo de datos de la nueva variable mycount es
Int32
de forma predeterminada.Nota
En las referencias a nombres de variable se distingue mayúsculas de minúsculas.
Haga doble clic en Tarea Flujo de datos. La ventana activa cambia a la pestaña Flujo de datos.
Use las propiedades de la transformación Recuento de filas para establecer el valor de la propiedad VariableName en mycount.
Seleccione la pestaña Flujo de control y, a continuación, haga doble clic en Tarea Script. Se abre el cuadro de diálogo Editor de la tarea Script.
En el panel izquierdo, seleccione el elemento Script y luego cambie el valor de la propiedad ReadOnlyVariables por el siguiente valor:
PackageName,StartTime,ExecutionInstanceGUID,mycount
Nota
Los elementos PackageName, StartTime y ExecutionInstanceGUID son variables del sistema. Estas variables del sistema sirven para escribir la información del paquete en el registro de aplicaciones de Windows.
En el cuadro de diálogo Editor de la tarea Script, seleccione Editar script.
Cuando se abra una nueva ventana de Microsoft Visual Studio for Applications (VSTA), haga lo siguiente:
Asegúrese de que los siguientes espacios de nombres están incluidos en el código antes de cualquier otra declaración.
Imports System Imports System.Data Imports System.Math Imports System.Diagnostics Imports Microsoft.SqlServer.Dts.Runtime
Reemplace el ejemplo de código siguiente por el código del método
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
Cuando el paquete se ejecute correctamente, aparecerá la siguiente entrada en el registro de aplicaciones de 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>
Referencias
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de