Запись сведений в журнал приложений
Вы можете включить задачу «Скрипт» в пакет Microsoft SQL Server Integration Services (SSIS) для выполнения задачи. Например, задача может записать коллекцию сведений об переменных в журнал приложений Windows. Вы можете создать пакет служб SSIS, содержащий Поток данных задачу. Эта задача Поток данных включает преобразование "Число строк". Задачу "Скрипт" можно использовать для записи данных, которые были заполнены преобразованием "Число строк", в журнал приложений Windows.
В этой статье описывается, как использовать задачу скрипта для записи сведений в журнал приложений Windows.
Исходная версия продукта: SQL Server
Оригинальный номер базы знаний: 906560
Описание
В этом примере предполагается, что вы создали следующие элементы в пакете служб SSIS:
- Задача Поток данных.
- Задача скрипта.
- Соединитель из задачи Поток данных в задачу «Скрипт».
- В задаче Поток данных вы создали преобразование "Число строк" в потоке данных.
При запуске пакета преобразование "Число строк" возвращает данные о количестве строк, которые необходимо записать в журнал приложений Windows.
Настройка задачи «Скрипт»
Чтобы настроить пример кода задачи "Скрипт", выполните следующие действия в конструкторе служб SSIS:
Пока вкладка Поток управления активна, щелкните правой кнопкой мыши область конструктора и выберите Переменные. В левой области появится окно Переменные .
В окне Переменные выберите Добавить переменную, а затем укажите имя переменной в качестве mycount. По умолчанию типом данных новой переменной mycount является
Int32
.Примечание
В ссылках на имена переменных учитывается регистр.
Дважды щелкните задачу Поток данных. Активное окно переключается на вкладку Поток данных.
Используйте свойства преобразования "Число строк", чтобы задать для свойства VariableName значение mycount.
Перейдите на вкладку Поток управления и дважды щелкните задачу «Скрипт». Откроется диалоговое окно Редактор задачи «Скрипт ».
В левой области выберите элемент Скрипт , а затем измените значение свойства ReadOnlyVariables на следующее:
PackageName,StartTime,ExecutionInstanceGUID,mycount
Примечание
Элементы PackageName, StartTime и ExecutionInstanceGUID являются системными переменными. Эти системные переменные используются для записи сведений о пакете в журнал приложений Windows.
В диалоговом окне Редактор задачи "Скрипт " выберите Изменить скрипт.
При появлении нового окна Microsoft Visual Studio для приложений (VSTA) выполните следующие действия.
Убедитесь, что следующие пространства имен включены в код перед любыми другими объявлениями.
Imports System Imports System.Data Imports System.Math Imports System.Diagnostics Imports Microsoft.SqlServer.Dts.Runtime
Замените следующий пример кода кодом в методе
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
После успешного выполнения пакета в журнале приложений 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>
Ссылки
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по