[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.

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’
Colonne ‘last Results’ dans le manager de souscription
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).
    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 = ‘’
      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 = ‘’
  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’


Arnaud

Webmaster & Administrateur de UIOP.

View Comments

Share
Published by
Arnaud

Recent Posts

[Agile] De l’importance d’écrire des taches claires pour vos User Stories

Dans le monde de l'agilité, le Product Owner se doit d'écrire des user stories simples,… Read More

4 ans ago

[Actu] Printemps des poètes

Parce que, contrairement à ce que l'on pourrait penser ce soir qu'il pleut des cordes,… Read More

5 ans ago

[Actu] Élections présidentielles 2017

Un peu d’humour en attendant le résultat des élections présidentielles françaises. Read More

7 ans ago

[Linux] Activer/Désactiver l’UTC en ligne de commande

Si vous n'avez pas accès à l'interface graphique de votre Linux, vous pouvez modifier l'horloge… Read More

8 ans ago

[Actu] Ces fous qui attaquent Paris

Si quelqu'un m'avait dit en Janvier que je réécrirais un article dans l'année sur des… Read More

8 ans ago

[Actu] Fin des vacances, c’est la rentrée 2015 !

Il y a quelques semaines, mois, voire années (tout est subjectif) nos enfants (et nos… Read More

9 ans ago