J’ai du recouper beaucoup d’article sur le sujet pour trouver cette recette, c’est super simple, voici le truc :

1. Extraire avec la requête suivante le résultat du “Report Path” depuis la liste de toutes les cédules

SELECT SUB.ModifiedDate
,SUB.[Description] , SUB.SubscriptionID , rs.ScheduleID
,SUB.DeliveryExtension ,SUB.LastStatus
,SUB.LastRunTime ,SCH.NextRunTime
,SCH.Name AS ScheduleName ,CAT.[Path] AS ReportPath
,CAT.[Description] AS ReportDescription
FROM dbo.Subscriptions AS SUB
INNER JOIN dbo.Users AS USR ON SUB.OwnerID = USR.UserID
INNER JOIN dbo.[Catalog] AS CAT ON SUB.Report_OID = CAT.ItemID
INNER JOIN dbo.ReportSchedule AS RS ON SUB.Report_OID = RS.ReportID
AND SUB.SubscriptionID = RS.SubscriptionID
INNER JOIN dbo.Schedule AS SCH ON RS.ScheduleID = SCH.ScheduleID

2. Ensuite on reprend la même requête et on rajoute un filtre le sur “Report Path” pour aller chercher les “SubscriptionID”


SELECT SUB.ModifiedDate
,SUB.[Description] , SUB.SubscriptionID , rs.ScheduleID
,SUB.DeliveryExtension ,SUB.LastStatus
,SUB.LastRunTime ,SCH.NextRunTime
,SCH.Name AS ScheduleName ,CAT.[Path] AS ReportPath
,CAT.[Description] AS ReportDescription
FROM dbo.Subscriptions AS SUB
INNER JOIN dbo.Users AS USR ON SUB.OwnerID = USR.UserID
INNER JOIN dbo.[Catalog] AS CAT ON SUB.Report_OID = CAT.ItemID
INNER JOIN dbo.ReportSchedule AS RS ON SUB.Report_OID = RS.ReportID
AND SUB.SubscriptionID = RS.SubscriptionID
INNER JOIN dbo.Schedule AS SCH ON RS.ScheduleID = SCH.ScheduleID

where CAT.[Path] like '/MyFirstReport/Report1'

3. Le prochain truc est une feuille excel, collez la liste des “SubscriptionID” dans la première colonne puis cette chaine dans la seconde :
“EXEC dbo.AddEvent @EventType=’TimedSubscription’, @EventData =”

4. Dans la troisième colonne on va utiliser la fonction “Concatener” pour fusioner les deux et obtenir notre résultat :
`

=CONCATENER(B1 & "'" & A1 &"'")

5. Copiez le résultat dans une requête sur votre serveur SSRS et executez la !

Ref : http://www.randallkent.com/2011/10/06/trigger-ssrs-subscription-manually/ pour le code pour l’executer, merci mec !

 

Comments are closed.