Comment créer un objet ou un message dynamique pour la tâche d’envoi de courrier dans SQL Server 2005 Integration Services


INTRODUCTION


Vous pouvez créer un package Microsoft SQL Server 2005 Integration Services (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 pour remplir la propriété lors de l’exécution. Par exemple, si le package SSIS contient une tâche Send mail, vous pouvez créer une expression pour la propriété Subject et pour la propriété MessageSource . Vous pouvez utiliser l’expression de propriété Subject pour mettre à jour dynamiquement le sujet d’un message électronique. Vous pouvez utiliser l’expression de propriété MessageSource pour mettre à jour dynamiquement les variables du message électronique, telles que les variables remplies par une transformation de comptage de lignes. Cet article explique comment créer un objet ou un message dynamique pour la tâche d’envoi de courrier.

Informations supplémentaires


Voici un exemple d’expression de propriété pour la propriété Subject dans une tâche Send mail.
"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é, le sujet d’un message électronique est mis à jour de façon dynamique. Le sujet inclut les informations suivantes :
  • Informations de texteDans cet exemple, l’objet du message électronique inclut les informations de texte « package>>>  ».
  • Variables systèmeLe 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 des informations supplémentaires dans l’expression, telles qu’une variable définie par l’utilisateur. Par exemple, une tâche de flux de données peut inclure une transformation de nombre de lignes avant la tâche d’envoi de courrier. (La transformation du comptage de lignes est utilisée pour compter les lignes.) La transformation du comptage de lignes remplit une variable définie par l’utilisateur nommée @myrowcount. Cette variable stocke les informations de compte dans le flux de données. Pour indiquer qu’un message électronique doit être envoyé uniquement si le nombre de lignes est inférieur à une valeur donnée, modifiez le flux de contrôle à l’aide de contraintes de précédence. Pour cela, procédez comme suit :
  1. Dans le studio de développement décisionnel SQL Server, cliquez avec le bouton droit sur tâche du flux de données, puis cliquez sur Ajouter une contrainte de priorité.
  2. Double-cliquez sur la contrainte de précédence que vous venez de créer.
  3. Dans la boîte de dialogue éditeur de contrainte de priorité , cliquez sur expression et contrainte dans opération d’évaluation.
  4. Dans la zone expression , tapez l’expression suivante :
    @myrowcount < 2
  5. Dans la boîte de dialogue éditeur de contrainte de priorité , cliquez sur OK.
Si moins de deux lignes sont traitées dans le flux de données, un message électronique est envoyé. Par ailleurs, vous pouvez utiliser la tâche Send mail 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 Send mail au gestionnaire d’événements. Créez une expression de propriété objet qui capture la durée 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 similaire à 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 :
  • StartTimeHeure à laquelle le package a été exécuté.
  • ContainerStartTimeHeure de début du conteneur.
  • EventHandlerStartTimeHeure de début du gestionnaire d’événements.

Références


Pour plus d’informations, reportez-vous aux rubriques suivantes dans la documentation en ligne de SQL Server 2005:
  • "Utilisation des expressions de propriété dans les packages"
  • « Procédure : création d’une expression de propriété »
  • "Expressions de services d’intégration avancée"
  • "Contraintes de précédence"
  • "Définition de contraintes de précédence sur les tâches et les conteneurs"
  • "Gestionnaires d’événements d’intégration de services"