Déploiement De Reporting Services
J'ai besoin de créer un processus reproductible pour le déploiement de SQL Server Reporting Services de rapports. Je ne suis pas en faveur de l'aide de Visual Studio et ou Business Development Studio pour ce faire. L'rs.exe méthode de script déploiements semble également plutôt maladroit. Quelqu'un aurait-il un moyen très élégant qui ils ont été en mesure de déployer des rapports. La clé ici est que je veux que le processus entièrement automatisé.
Vous devez vous connecter pour publier un commentaire.
Nous utilisons rs.exe une fois nous avons développé le script, nous n'avons pas besoin de toucher plus, ça fonctionne, tout simplement.
Voici la source (j'ai légèrement modifié à la main pour supprimer des données sensibles sans une chance de le tester, j'espère ne pas freiner quoi que ce soit), il déploie des rapports et des images à partir des sous-répertoires pour les différentes langues. Également source de données est créée.
Ici est le lot de l'appel rs.exe:
J'ai utilisé le script @David fourni, mais j'ai dû ajouter un peu de code (je suis en train de taper ceci comme réponse, car ce serait trop long pour un commentaire.
Le problème est: si il existe déjà un "shared source de données", qui est joint à un rapport dans la définition de rapport, ce n'est jamais la même source de données que celui qui est créé dans le script.
Cela devient évident à partir de l'avertissement émis par le "CreateReport" méthode:
Donc la source de données doit être définie de manière explicite par la suite. J'ai fait les modifications de code suivantes:
J'ai ajouté une variable globale:
À la fin de la méthode CreateDataSource, que la variable est rempli:
Et dans le PublishReport méthode, la source de données devient explicitement défini (après CreateReport a été appelé):
Noter que ce dernier appel est seulement RS 2005 ou plus. Si vous souhaitez charger vos rapports sur une RS 2000 server, vous devez utiliser SetRapportSources de données dans la place:
Bien pas vraiment élégant. Nous avons créé notre propre outil qui utilise la reportingservices2005 service web. Nous avons trouvé cet être le moyen le plus fiable d'obtenir ce que nous voulons.
Ce n'est pas vraiment difficile et vous permet de les agrandir pour faire d'autres choses comme la création de sources de données et des dossiers que nécessaire.
Je recommande fortement RSScripter. Comme noté dans l'aperçu:
Je sais que vous dites que vous n'êtes pas en faveur du Développement des Affaires de Studio, pour ce faire, mais j'ai trouvé les outils intégrés pour être très fiable et facile à utiliser.
Avez-vous regardé dans toutes les solutions d'Intégration Continue comme CruiseControl.NET? Si vous êtes en mesure de déployer des Rapports à l'aide de rs.exe ensuite, vous pouvez configurer un processus automatisé dans CruiseControl de construire et de déployer vos Rapports sur une minuterie ou chaque fois qu'un rapport est modifié.
Dans notre environnement, nous développons en VS avec le contrôle de version de la déployer à DEV SSRS. Une fois que le rapport est validé, nous utilisons ReportSync programme de déployer des rapports de
ReportServer DEV
àReportServer PROD
. L'RS.EXE les scripts ont toujours leur place, mais j'ai trouvé ReportSync à être beaucoup plus simple et agile de manière à promouvoir un rapport.ReportSync:
ReportSync
est un programme open source gratuit à télécharger et à utiliser. Il fonctionne très bien pour télécharger des rapports en vrac, et il peut même pousser un rapport à partir d'un serveur vers un autre serveur.Comment obtenir de télécharger le programme?
Télécharger les fichiers de code source à partir de Github: Phires/ReportSynch, Run VS, Ouvrez le fichier de solution (.SLN), compiler le programme, recherchez le fichier exécutable (.EXE) à partir de la C:\Temp\reportsync-master\bin\Release dossier. Enfin, enregistrés l' .EXE quelque part pour vous de les utiliser régulièrement
Comment puis-je copier des rapports SSRS vers un nouveau serveur si je ne suis pas le propriétaire de l'rapports --> ReportSync réponse par nunespascal
Comment déployer un rapport?
SOURCE
etDESTINATION
dialogues de choisir unsingle report
,multiple reports
, ou unentire folder of reports
. Vous pouvez tout dossier cible que vous souhaitez. (ASTUCE: Vous pouvez même cibler le même serveur si vous êtes désireux de dupliquer un rapport sur le même serveur).Sync button
Cet outil a été très pratique, mais j'ai remarqué quelques bizarreries. Par exemple
when I want to update just one report that already exists in the destination
, voici ce que j'ai pour sélectionner-- [Source:Report> Target:Folder> Sync
]. AVERTISSEMENT: Vous pourriez penser que vous devez sélectionner le serveur cible rapport à la mettre à jour, mais j'ai essayé et le rapport n'est pas actualisé.Quoi d'autre peut ReportSync faire?
Il y a aussi un
Export
fonction, qui fonctionne à merveille tout simplement le dumping, toute la RDL fichiers dans un dossier, pour moi à l'accès. Ceci est utile dans le cas où vous avez besoin de migrer le serveur, ajoutez les fichiers à VS Projet de Solution, ou faire autre chose avec tous les fichiers.Dans mes tests de ce programme ne pas migrer d'autres le contenu, les abonnements, les sources de données partagées, les ensembles de données partagées. C'est seulement applicable pour les fichiers de rapport.
Je sais que ce post est vieux, mais je suis tombé sur elle lors de la recherche RS.EXE les scripts, j'ai donc pensé que je pourrais fournir une réponse à cette question.