Un post rapide pour voir comment lancer un abonnement SSRS à partir de SSIS.
Ça peut servir comme dans mon cas par exemple à envoyer par mail un rapport sur l’état d’exécution d’un package SSIS. Bien sûre après avoir insérer les logs de ce package dans une table, créer un rapport de restitution de ces logs ainsi un abonnement qui envoi le rapport par mail.
Alors comment faire ?
C’est simple ☻, connectez-vous sur l’instance du reporting services et exécuter la requête suivante pour récupérer l’id du job qui lance l’abonnement :
SELECT b.NAME AS JobName ,a.SubscriptionID ,e.NAME ,e.Path ,d.Description ,d.LastStatus ,d.EventType ,d.LastRunTime ,b.date_created ,b.date_modified FROM ReportServer.dbo.ReportSchedule AS a INNER JOIN msdb.dbo.sysjobs AS b ON CAST(a.ScheduleID AS SYSNAME) = b.NAME INNER JOIN ReportServer.dbo.ReportSchedule AS c ON b.NAME = CAST(c.ScheduleID AS SYSNAME) INNER JOIN ReportServer.dbo.Subscriptions AS d ON c.SubscriptionID = d.SubscriptionID INNER JOIN ReportServer.dbo.CATALOG AS e ON d.Report_OID = e.ItemID WHERE e.NAME LIKE '%Monitoring Sales Integration%'
Résultat :
Dans le package SSIS, ajoutez un Execute SQL Task.
Il nous reste juste à copier le code suivant dans l’éditeur de requêtes en mettant le Job id récupéré:
EXEC [ServerName].msdb.dbo.sp_start_job 'EFA0F359-B968-4FF4-95B6-8DE0C60A9008'
It’s done !
Leave a comment