Podnoszenie i definiowanie zdarzeń w danych przepływu składnika
Deweloperzy składników można podnieść podzbiór zdarzeń zdefiniowanych w IDTSComponentEvents interfejs przez wywołanie metody narażone na ComponentMetaData właściwość.Można także zdefiniować zdarzeń niestandardowych za pomocą EventInfos kolekcja i podnieść je podczas wykonywania za pomocą FireCustomEvent metoda.W tej sekcji opisano sposób tworzenia i wygenerować zdarzenie i zawiera wskazówki dotyczące kiedy powinna podnieść zdarzenia projekt czas.
Podnoszenie zdarzenia
Składniki wywołania zdarzeń za pomocą Fire<X> metody IDTSComponentMetaData100 interfejs.Zdarzenia można podnieść podczas projektowania składników i wykonywania.Zazwyczaj podczas projektowania składnika FireError i FireWarning są wywoływane podczas sprawdzania poprawności.Te zdarzenia, wyświetlanie komunikatów w Lista błędów okienku Business Intelligence Development Studio i wyraź swoją opinię użytkowników składnika, gdy składnik jest niepoprawnie skonfigurowany.
Składniki można również podnieść zdarzenia w dowolnym punkcie podczas wykonywania.Zdarzenia umożliwiają projektantom składnika informacje zwrotne dla użytkowników składnika, jak je wykonuje.Wywołanie FireError Metoda podczas wykonywania jest prawdopodobne niepowodzenie pakiet.
Definiowanie i podnoszenie zdarzenia niestandardowego
Definiowanie zdarzenia niestandardowego
Zdarzenia niestandardowe są tworzone przez wywołanie Add metoda EventInfos kolekcja.Jest to kolekcja zestaw przez dane przepływu zadań i dostarczane jako właściwość deweloper składnika poprzez PipelineComponent klasy podstawowejTa klasa zawiera niestandardowe zdarzenia zdefiniowane przez zadanie przepływ danych i niestandardowych zdarzeń zdefiniowanych przez składnik podczas RegisterEvents metoda.
Zdarzenia niestandardowego składnika nie są zachowywane w pakiet XML.Dlatego RegisterEvents wywoływana jest metoda podczas zarówno zaprojektowanie oraz wykonanie składnika umożliwiają zdefiniowanie zdarzenia go raises.
allowEventHandlers Parametr Add Metoda określa, czy składnik umożliwia DtsEventHandler obiekty utworzone dla zdarzenie.Należy zauważyć, że DtsEventHandlers są synchroniczne.Dlatego składnik nie wznawia wykonanie aż do DtsEventHandler dołączyć niestandardowe zdarzenie zakończył wykonywanie.If the allowEventHandlers parameter is true, each parameter of the event is automatically made available to any DtsEventHandler objects through variables that are created and populated automatically by the SQL Server Integration Services runtime.
Podnoszenie zdarzenia niestandardowego
Składniki podnieść niestandardowe zdarzenies wywołując FireCustomEvent metoda i podanie nazwy, tekstu i parametry zdarzenie.Jeśli allowEventHandlers parametr jest true, wszelkie DtsEventHandlers tworzonych dla niestandardowych zdarzeń są wykonywane przez SSIS run -czas silnika.
Przykładowe niestandardowe zdarzenie
Poniższy przykład kodu pokazuje składnik, który definiuje zdarzenie niestandardowego podczas RegisterEvents metodę, a następnie wywołuje zdarzenie przy uruchomieniu czas przez wywołanie FireCustomEvent metoda.
public override void RegisterEvents()
{
string [] parameterNames = new string[2]{"RowCount", "StartTime"};
ushort [] parameterTypes = new ushort[2]{ DtsConvert.VarTypeFromTypeCode(TypeCode.Int32), DtsConvert.VarTypeFromTypeCode(TypeCode.DateTime)};
string [] parameterDescriptions = new string[2]{"The number of rows to sort.", "The start time of the Sort operation."};
EventInfos.Add("StartingSort","Fires when the component begins sorting the rows.",false,ref parameterNames, ref paramterTypes, ref parameterDescriptions);
}
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
while (buffer.NextRow())
{
// Process buffer rows.
}
IDTSEventInfo100 eventInfo = EventInfos["StartingSort"];
object []arguments = new object[2]{buffer.RowCount, DateTime.Now };
ComponentMetaData.FireCustomEvent("StartingSort", "Beginning sort operation.", ref arguments, ComponentMetaData.Name, ref FireSortEventAgain);
}
Public Overrides Sub RegisterEvents()
Dim parameterNames As String() = New String(2) {"RowCount", "StartTime"}
Dim parameterTypes As System.UInt16() = New System.UInt16(2) {DtsConvert.VarTypeFromTypeCode(TypeCode.Int32), DtsConvert.VarTypeFromTypeCode(TypeCode.DateTime)}
Dim parameterDescriptions As String() = New String(2) {"The number of rows to sort.", "The start time of the Sort operation."}
EventInfos.Add("StartingSort", "Fires when the component begins sorting the rows.", False, parameterNames, paramterTypes, parameterDescriptions)
End Sub
Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer)
While buffer.NextRow
End While
Dim eventInfo As IDTSEventInfo100 = EventInfos("StartingSort")
Dim arguments As Object() = New Object(2) {buffer.RowCount, DateTime.Now}
ComponentMetaData.FireCustomEvent("StartingSort", _
"Beginning sort operation.", arguments, _
ComponentMetaData.Name, FireSortEventAgain)
End Sub
|
Zobacz także
Bieżąco z usług integracji