mailbox Subscriptions Sharepoint

[SSRS – SSMS – Sharepoint] S’envoyer un mail pour obtenir les résultats d’un abonnement

Avec Sharepoint et SSRS, on peut facilement créer un rapport que l’on enverra automatiquement par mail ou que l’on enregistrera dans un dossier. C’est sympa mais encore faut-il être sûr que la génération de ses rapports se déroule bien. Je vais donc vous donner trois possibilités pour surveiller cette génération des documents via un abonnement.


Le but va être d’aller chercher le statut de la dernière exécution d’un abonnement. Par exemple : ‘Done: 4 processed of 4 total; 4 errors.

mailbox Subscriptions Sharepoint
US Mailbox

Solution 1 : Manuellement via Sharepoint

Pour cela, nous allons ouvrir les souscriptions d’un rapport. Technique longue et fastidieuse si nous devons le faire pour tous les rapports et tous les abonnements.

Dans Sharepoint :

  • Ouvrez le menu lié à votre rapport (les 3 points à côté du rapport)
  • Cliquez sur les 3 points dans la fenêtre qui s’ouvre (à côté de follow).
  • Cliquez sur ‘Manage Subscriptions’.
  • Vous trouverez les informations sur la dernière génération dans la dernière colonne ‘Last Results’
Last Results Manage subscriptions sharepoint
Colonne ‘last Results’ dans le manager de souscription
Sharepoint manage subscription
Accès au manager de souscription sharepoint

Solution 2 : Manuellement via SQL Server Management Studio

Plus rapide et plus pratique que la version manuelle via Sharepoint. Mais il n’en reste pas moins que vous devez le faire tous les jours.

  • Avec SSMS connectez-vous au serveur qui héberge votre base de données Sharepoint.
  • Recherchez la base de reporting service (Elle doit se nommer ReportingService_ suivi d’une liste de caractères illisibles).
    base reporting service SSMS
    Aperçu bdd reporting Service via SSMS
  • Et exécutez la requête suivante :

    SELECT [ModifiedDate]
          ,[Description]
          ,[LastStatus]
          ,[LastRunTime]
      FROM [ReportingService_XXXXXXX].[dbo].[Subscriptions]
      WHERE Description =<Description de votre report>ORDER BY [LastRunTime] DESC
  • Vous pouvez aussi exécuter la requête suivante si vous souhaitez obtenir les résultats des abonnements de toutes vos requêtes.
    Au passage, vous verrez que vous aurez de nombreuses informations sur votre abonnement :

    • le nom du rapport : ReportName
    • le chemin d’accès de votre rapport :ReportPath
    • le statut : [LastStatus]
    • la dernière exécution : LastRunTime
    • le type d’abonnement : DeleveryType
     SELECT R.ScheduleID AS JobName   
    	,C.NAME AS ReportName   
    	,C.[Path] AS ReportPath   
    	,S.SubscriptionID   
    	,SUBSTRING(S.DeliveryExtension   
    	, 14   
    	, len(S.DeliveryExtension)) AS DeleveryType   
    	,S.[Description] AS Subscription_Desc  
    	,S.LastStatus AS Subscription_Exec_Status  
    	,C.CreationDate  
    	,C.ModifiedDate  
    	,S.LastRunTime  
    	,[LastStatus]
    FROM dbo.[Catalog] C  
    INNER JOIN dbo.Subscriptions S   
    	ON S.Report_OID = C.ItemID  
    INNER JOIN dbo.ReportSchedule R   
    	ON R.SubscriptionID = S.SubscriptionID  
     -- WHERE C.Name like 'GenerationPDF'

Solution 3 : Via Sharepoint et un abonnement.

Ben oui, pourquoi se priver de Sharepoint alors que nous l’utilisons justement pour gérer toute sorte d’abonnement.
Donc créez un nouveau rapport SSRS qui va chercher les données de statut de dernière exécution de l’abonnement :

SELECT [ModifiedDate]
      ,[Description]
      ,[LastStatus]
      ,[LastRunTime]
  FROM [ReportingService_XXXXXXX].[dbo].[Subscriptions]
  WHERE Description =<Description de votre report>ORDER BY [LastRunTime] DESC

Puis déposez le sur votre Sharepoint et créez un abonnement de type Email sur celui-ci.

Solution 4 : Autres solutions

Il existe bien sûr plein d’autres possibilités d’envoyer un suivi de l’abonnement.
Par exemple, Via SSMS en créant un Job qui envoie un mail.
Si vous avez des solutions plus intéressantes n’hésitez pas à en parler dans les commentaires ci-dessous ou à donner des urls qui en proposent.



Pour aller plus loin et sur le même sujet je vous propose de lire aussi:

[SP2010] Message d’erreur ‘MOSS MA NOT FOUND’


2 commentaires sur « [SSRS – SSMS – Sharepoint] S’envoyer un mail pour obtenir les résultats d’un abonnement »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.