Exécuter un abonnement SSRS avec SSIS

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 :

2016-12-20_21h13_45

Dans le package SSIS, ajoutez un Execute SQL Task.

2016-12-20_21h17_13

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

Leave a Reply

Your email address will not be published. Required fields are marked *