Créer un objet ou un message dynamique pour la tâche Envoyer un courrier dans SQL Server Integration Services

Cet article explique comment mettre à jour la propriété d’un objet SQL Server Integration Services (SSIS) au moment de l’exécution en créant une expression de propriété.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 906547

Introduction

Vous pouvez créer un package SSIS à l’aide de SQL Server Business Intelligence Development Studio. Lorsque vous créez ce package, vous pouvez créer une expression pour une propriété du package SSIS à mettre à jour ou à remplir la propriété au moment de l’exécution. Par exemple, si le package SSIS contient une tâche Envoyer un courrier, vous pouvez créer une expression pour la propriété Subject et pour la MessageSource propriété . Vous pouvez utiliser l’expression de propriété Subject pour mettre à jour dynamiquement l’objet d’un message électronique. Vous pouvez utiliser l’expression de MessageSource propriété pour mettre à jour dynamiquement les variables dans le message électronique, telles que les variables qui sont remplies par une transformation de nombre de lignes.

Cet article explique comment créer un objet ou un message dynamique pour la tâche Envoyer un courrier.

Plus d’informations

Voici un exemple d’expression de propriété pour la propriété Subject dans une tâche d’envoi de courrier.

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

Si vous utilisez cet exemple d’expression de propriété, l’objet d’un message électronique est mis à jour dynamiquement. L’objet inclut les informations suivantes :

  • Informations sur le texte Dans cet exemple, l’objet du message électronique inclut les Package>>> informations textuelles.
  • Variables système
    Le message électronique inclut les variables système suivantes :
    • PackageName
      Nom du package.
    • StartTime
      Heure à laquelle le package a été exécuté.
    • UserName
      Utilisateur qui a exécuté le package.
    • MachineName
      Nom de l’ordinateur sur lequel le package a été exécuté.

Vous pouvez également inclure plus d’informations dans l’expression, telles qu’une variable définie par l’utilisateur. Par exemple, une tâche Data Flow peut inclure une transformation de nombre de lignes avant la tâche Envoyer un courrier. (La transformation De nombre de lignes est utilisée pour compter les lignes.) La transformation Du nombre de lignes remplit une variable définie par l’utilisateur nommée @myrowcount. Cette variable stocke les informations de comptage dans le flux de données.

Pour spécifier qu’un message électronique doit être envoyé uniquement si le nombre de lignes est inférieur à une certaine valeur, modifiez le flux de contrôle à l’aide de contraintes de précédence. Pour cela, procédez comme suit :

  1. Dans SQL Server Business Intelligence Development Studio, cliquez avec le bouton droit sur Data Flow tâche, puis cliquez sur Ajouter une contrainte de précédence.

  2. Double-cliquez sur la contrainte de précédence que vous avez créée.

  3. Dans la boîte de dialogue Contrainte de précédence Rédacteur, cliquez sur Expression et contrainte dans l’opération d’évaluation.

  4. Dans la zone Expression , tapez l’expression : @myrowcount < 2

  5. Dans la boîte de dialogue Contrainte de précédence Rédacteur, cliquez sur OK.

Si moins de deux lignes sont traitées dans le flux de données, un message électronique est envoyé.

En outre, vous pouvez utiliser la tâche Envoyer un courrier dans le cadre d’un gestionnaire d’erreurs. Par exemple, vous pouvez envoyer un message électronique aux administrateurs lorsqu’un package SSIS ne s’exécute pas. Pour ce faire, créez un gestionnaire d’événements OnError pour le package, puis ajoutez une tâche Envoyer un courrier au gestionnaire d’événements. Créez une expression de propriété d’objet qui capture l’heure d’exécution du package, l’heure de début du conteneur ou l’heure de début du gestionnaire d’événements à partir des variables système pertinentes. Par exemple, créez une expression semblable à ce qui suit :

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

Cet exemple d’expression utilise les variables système suivantes :

  • StartTime: heure à laquelle le package a été exécuté.
  • ContainerStartTime: heure à laquelle le conteneur a démarré.
  • EventHandlerStartTime: heure à laquelle le gestionnaire d’événements a démarré.

References

Pour plus d’informations, consultez les rubriques suivantes dans SQL Server documentation en ligne :

  • Utilisation d’expressions de propriété dans des packages
  • Guide pratique pour créer une expression de propriété
  • Expressions Integration Services avancées
  • Contraintes de précédence
  • Définition de contraintes de précédence sur les tâches et les conteneurs
  • Gestionnaires d’événements Integration Services