2010-09-02 8 views
0

J'ai une table avec deux colonnes et deux enregistrements comme suit.envoyer des enregistrements en tant que liens par l'intermédiaire de la tâche d'envoi de courrier dans SSIS?

TypeOfReport Liens

InvalidRecords http://ReportInvalid

MissingRecords http://ReportMissing


J'ai un paquet avec tâche d'exécution sql sélectionner * à partir du tableau ci-dessus, un ensemble complet de résultat sélectionné et une variable d'objet créé, ça fonctionne bien. mais maintenant quand je le connecte avec la tâche d'envoi de courrier, je veux envoyer des courriels comme

Objet: Rapports sur InvalidRecords et MissingRecords

MessageText: Liens pour les rapports: http://ReportInvalid

: http://ReportMissing

Can quelqu'un m'aide avec ça.

REMARQUE: j'ai essayé de créer une variable utilisateur et objet, mais c'est bon si je n'ai qu'un seul enregistrement dans la table. J'ai essayé de créer 2 variables d'utilisateur et 2 d'objet aussi bien mais n'ai pas fonctionné.

Merci

Répondre

0

Votre Execute retourne plusieurs lignes de tâches SQL et vous avez raison d'avoir les résultats vont à une variable de type d'objet. Maintenant, il peut être difficile d'obtenir des valeurs de plusieurs lignes de données dans des valeurs variables dans SSIS, mais ce n'est pas impossible. Toutefois, pour votre situation, vous souhaiterez peut-être modifier votre instruction SQL pour retourner une ligne. Commencez par créer deux variables, une pour le lien des enregistrements invalides et une pour le lien des enregistrements manquants. Modifier votre tâche d'exécution SQL et remplacer votre instruction SQL avec les éléments suivants:

SELECT MAX(CASE TypeOfReport WHEN 'InvalidRecords' 
       THEN links ELSE NULL END) AS InvalidRecords, 
     MAX(CASE TypeOfReport WHEN 'MissingRecords' 
       THEN links ELSE NULL END) AS MissingRecords 
FROM mytable 

Cette requête renverra une ligne avec deux colonnes, une pour chaque lien. Ceci est connu comme un pivot (vous pouvez utiliser la clause PIVOT pour produire les mêmes résultats.) Le gros avantage pour vous est qu'il y a une ligne.

De même, remplacez la propriété ResultSet par Single row.

Sélectionnez l'onglet Résultat et ajoutez deux éléments à la liste. La première ligne doit avoir 0 pour le nom du résultat et votre variable InvalidRecords pour le nom de la variable. La deuxième ligne doit avoir 1 pour le nom du résultat et votre variable MissingRecords pour le nom de la variable. Cela devrait obtenir vos valeurs de lien dans des variables et prêt pour votre tâche d'email.

+0

Merci encore. très bonne réponse. – User7354632781