Une des différences entre la version Standard et la version Entreprise de Reporting Services (2000 et 2005) est la possibilité de piloter les abonnements par des données.
« Un abonnement piloté par les données constitue un moyen d’utiliser des données d’abonnement dynamiques extraites à partir d’une source de données externe au moment de l’exécution » (MSDN)
March Spilich s’est inspiré de l’article de Jason Selburg « Data Driven Subscriptions for Reporting Services (2000 and 2005) » pour développer une procédure stockée permettant de piloter un abonnement par les données.
Cette procédure stockée ne fonctionne que sous SQL Server 2005.
Pour la version 2000, il faut se référer à l’article initial de Jason Selburg. Toutefois, la version originale ne permet pas le passage de plusieurs paramètres, ni le dépot du rapport sur un serveur de fichier.
Procédure de la méthode de March Spilich
1 – Création d’une table d’historique
2 – Création d’une fonction : fn_Split
3 – Création d’une procédure stockée : Custom_data_driven_subscription
Il faut ensuite créer un abonnement standard via l’interface web de Reporting Services, récupérer l’id de l’abonnement créer (champ SubscriptionID de la table Subscriptions dans la base de données ReportServer)
Exemple d’appel de la procédure stockée pour déposer le rapport sur un dossier partagé
exec [Custom_data_driven_subscription]
@SubscriptionID = '7EAB32BA-BEB2-4066-B0FC-BB7691E6ED38',
@parameterNameLIST = 'STARTDATE|ENDDATE|PARAM_INT',
@parameterValueLIST = '1/1/2007|1/1/2008|100',
@ExtensionSettingNameLIST = 'PATH|FILENAME',
@ExtensionSettingValueLIST = '\\servername\fileshare\subfolder|Report_Name',
@exitCode = @exitCD out,
@exitMessage = @exitMSG out
select @exitCD, @exitMSG
Exemple d’appel de la procédure pour envoyer le rapport par mail
exec [Custom_data_driven_subscription]
@SubscriptionID = '56YB32BA-BEB2-4066-B0FC-BB7691E6ED38',
@parameterNameLIST = 'STARTDATE|ENDDATE|PARAM_INT',
@parameterValueLIST = '1/1/2007|1/1/2008|100',
@ExtensionSettingNameLIST = 'TO|Subject',
@ExtensionSettingValueLIST = 'myemail@mydomain.com|@ReportName was executed at @ExecutionTime',
@exitCode = @exitCD out,
@exitMessage = @exitMSG out
select @exitCD, @exitMSG
1 commentaire reçu(s)
Laisser une réponse