Erstellen eines dynamischen Betreffs oder einer dynamischen Nachricht für den Task "E-Mail senden" in SQL Server Integration Services

In diesem Artikel wird gezeigt, wie Sie die -Eigenschaft eines SQL Server Integration Services-Objekts (SSIS) zur Laufzeit aktualisieren, indem Sie einen Eigenschaftsausdruck erstellen.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 906547

Einführung

Sie können ein SSIS-Paket mit SQL Server Business Intelligence Development Studio erstellen. Wenn Sie dieses Paket erstellen, können Sie einen Ausdruck für eine Eigenschaft des SSIS-Pakets erstellen, um die Eigenschaft zur Laufzeit zu aktualisieren oder aufzufüllen. Wenn das SSIS-Paket beispielsweise eine Aufgabe E-Mail senden enthält, können Sie einen Ausdruck für die Subject-Eigenschaft und für die MessageSource -Eigenschaft erstellen. Sie können den Subject-Eigenschaftsausdruck verwenden, um den Betreff einer E-Mail-Nachricht dynamisch zu aktualisieren. Sie können den Eigenschaftsausdruck MessageSource verwenden, um Variablen in der E-Mail-Nachricht dynamisch zu aktualisieren, z. B. Variablen, die von einer Transformation für die Zeilenanzahl aufgefüllt werden.

In diesem Artikel wird erläutert, wie Sie einen dynamischen Betreff oder eine dynamische Nachricht für den Task E-Mail senden erstellen.

Weitere Informationen

Es folgt ein Beispiel für einen Eigenschaftenausdruck für die Subject-Eigenschaft in einem Task "E-Mail senden".

"Package>>> " + @[System::PackageName] +" was executed at>>> " + (DT_WSTR, 40) @[System::StartTime] + " by user>>> "
+ @[System::UserName] + " on Machine>>> " + @[System::MachineName]

Wenn Sie diesen Beispieleigenschaftsausdruck verwenden, wird der Betreff einer E-Mail-Nachricht dynamisch aktualisiert. Der Betreff enthält die folgenden Informationen:

  • Textinformationen In diesem Beispiel enthält der Betreff der E-Mail-Nachricht die Package>>> Textinformationen.
  • Systemvariablen
    Die E-Mail-Nachricht enthält die folgenden Systemvariablen:
    • PackageName
      Der Paketname.
    • StartTime
      Die Zeit, zu der das Paket ausgeführt wurde.
    • UserName
      Der Benutzer, der das Paket ausgeführt hat.
    • MachineName
      Der Name des Computers, auf dem das Paket ausgeführt wurde.

Sie können auch weitere Informationen in den Ausdruck einschließen, z. B. eine benutzerdefinierte Variable. Beispielsweise kann eine Datenfluss Aufgabe eine Transformation für zeilenanzahl vor dem Task E-Mail senden enthalten. (Die Transformation zeilenanzahl wird verwendet, um Zeilen zu zählen.) Die Transformation für Zeilenanzahl füllt eine benutzerdefinierte Variable mit dem Namen @myrowcount auf. Diese Variable speichert die Zählungsinformationen im Datenfluss.

Um anzugeben, dass eine E-Mail-Nachricht nur gesendet werden soll, wenn die Zeilenanzahl kleiner als ein bestimmter Wert ist, ändern Sie die Ablaufsteuerung mithilfe von Rangfolgeneinschränkungen. Gehen Sie dazu wie folgt vor:

  1. Klicken Sie SQL Server Business Intelligence Development Studio mit der rechten Maustaste auf Datenfluss Aufgabe, und klicken Sie dann auf Rangfolgeneinschränkung hinzufügen.

  2. Doppelklicken Sie auf die Rangfolgeneinschränkung, die Sie erstellt haben.

  3. Klicken Sie im Dialogfeld Rangfolgeneinschränkung Editor im Auswertungsvorgang auf Ausdruck und Einschränkung.

  4. Geben Sie im Feld Ausdruck den Ausdruck ein: @myrowcount < 2

  5. Klicken Sie im Dialogfeld Rangfolgeneinschränkung Editor auf OK.

Wenn weniger als zwei Zeilen im Datenfluss verarbeitet werden, wird eine E-Mail-Nachricht gesendet.

Darüber hinaus können Sie den Task E-Mail senden als Teil eines Fehlerhandlers verwenden. Beispielsweise können Sie eine E-Mail-Nachricht an Administratoren senden, wenn ein SSIS-Paket nicht ausgeführt wird. Erstellen Sie dazu einen OnError-Ereignishandler für das Paket, und fügen Sie dann dem Ereignishandler eine Aufgabe E-Mail senden hinzu. Erstellen Sie einen Subject-Eigenschaftsausdruck, der die Ausführungszeit des Pakets, die Startzeit des Containers oder die Startzeit des Ereignishandlers aus den relevanten Systemvariablen erfasst. Erstellen Sie beispielsweise einen Ausdruck, der dem folgenden ähnelt:

"Error in the task: " + @[System::SourceName] + "with the ID: " + @[System::SourceID]
+ " has failed at: " + (DT_WSTR, 20) @[System::ContainerStartTime] + "."

Dieser Beispielausdruck verwendet die folgenden Systemvariablen:

  • StartTime: Der Zeitpunkt, zu dem das Paket ausgeführt wurde.
  • ContainerStartTime: Der Zeitpunkt, zu dem der Container gestartet wurde.
  • EventHandlerStartTime: Die Zeit, zu der der Ereignishandler gestartet wurde.

References

Weitere Informationen finden Sie in den folgenden Themen in der SQL Server-Onlinedokumentation:

  • Verwenden von Eigenschaftsausdrücken in Paketen
  • Vorgehensweise: Erstellen eines Eigenschaftsausdrucks
  • Erweiterte Integration Services-Ausdrücke
  • Rangfolgeneinschränkungen
  • Festlegen von Rangfolgeneinschränkungen für Aufgaben und Container
  • Integration Services-Ereignishandler