2010-08-17 1 views
0

HI Tous,envoyer tâche e-mail en cas d'erreur dans SQL

J'ai une simple transformation de recherche qui trouve les enregistrements appariées et non appariées, il crée une table pour les enregistrements appariées et non appariées. Maintenant, je veux envoyer un email quand le paquet trouve des enregistrements sans correspondance et le paquet devrait s'arrêter là.

Merci

Nick

Répondre

0

Voici quelques solutions:

  1. Dans l'écran Transformation de recherche de l'éditeur, vous pouvez définir la Spécifiez comment gérer les lignes sans entrées correspondantes champ à Échec du composant et définissez le travail qui exécute le package pour envoyer une notification en cas d'échec du travail. Les inconvénients de cette approche sont que vous devez exécuter le package à partir d'une planification de travail, que l'e-mail généré est non descriptif et que vous ne pouvez définir qu'un opérateur pour ce travail qui peut être différent de votre liste d'opérateurs notifient les utilisateurs professionnels plutôt que les informaticiens). Dans l'écran Editeur de transformation de recherche, vous pouvez définir l'échec du composant comme décrit au point 1 et configurer une contrainte de précédence sur le flux de contrôle qui entraîne l'envoi de l'e-mail en cas d'échec. Vous pouvez également définir MaximumErrorCount pour l'objet parent à 2. Parmi les inconvénients de cette approche, mentionnons le fait que d'autres erreurs peuvent se produire dans le package et que le package réussit ou qu'il peut s'agir d'une erreur sur la partie source du flux de données. vous voudrez peut-être gérer ces types d'erreurs séparément.

  2. Dans l'écran Transformation de recherche de l'éditeur, vous pouvez Rediriger lignes à aucune sortie de correspondance, créez une variable appelée RowCount du type de données Int32, diriger la Recherche Aucune correspondance Sortie à un Row Count transformation de données, envoyer Recherche Correspondance Sortie à la destination normale, dans le flux de contrôle définir une contrainte de précédence à l'étape suivante où Opérations d'évaluation est Expression et contrainte où Valeur est égal à Succès et expression est égal à @ [RowCount] == 0, ajoutez un Envoyer la tâche de messagerie au flux de contrôle qui a une contrainte de précence à l'étape précédente, où Valeur égale à Succès et Expression est égale à @ [RowCount]> 1. Cela vous permettra de laisser le package réussir et d'envoyer un seul courrier électronique . L'inconvénient de cette approche est que la destination du flux de données sera toujours remplie par les données sources correspondantes et qu'elle ne s'arrêtera pas immédiatement lorsqu'une correspondance est détectée. Il ne s'arrêtera que lorsque le flux de données lui-même sera terminé.

J'espère que cela répond à vos besoins d'affaires. Faites-moi savoir si vous avez besoin d'aide supplémentaire.

+0

Merci beaucoup pour votre aide. Je l'ai résolu en utilisant votre solution n ° 3. Appréciez-le. Nick – User7354632781

Questions connexes