2010-09-23 15 views
3

Question "Encore une autre fonction de chaîne" pour TSQL.Paramètres de division de ExecutionLog dans SSRS (fonctions de chaîne)

Le tableau de ExecutionLogStorage dans la base de données ReportServer $ InstanceName pour SSRS 2008 met tous les paramètres appelés au rapport dans une seule colonne -

FullName = LastName, FirstName & CalledBy = Nom, Prénom & DateSelected = MM/JJ/YY & CheeseorFries = Fries

Certains étant des valeurs nulles, l'utilisateur peut simplement avoir DateSelect ou FullName, ou CalledBy ... etc. Je dois pouvoir analyser la valeur 'CalledBy = LastName, FirstName'; mais entre le LOWER et le LTRIM et les gauches et substrings et Charindexes ... je ne vais nulle part.

Des idées? =/

Le but est d'être en mesure de récupérer une liste de qui a appelé qui rendent compte à ce moment ....

Le journal d'exécution SSRS a une colonne de nom d'utilisateur, mais en raison des rapports appelé à partir d'un En utilisant des serveurs liés, les responsables ont décidé que l'ensemble de la délégation de réseau était plus facilement contourné en utilisant simplement un compte de service de domaine. Ainsi, tous les champs 'nom d'utilisateur' sont remplis par le compte de service au lieu de l'individu.

merci!

Répondre

1
SELECT 
RTrim(Substring(ex.Parameters, Charindex('&CalledBy=',ex.Parameters, 1) + 10, 1000)) 
as 'User', 
ex.Format, ex.TimeStart, cat.Name as 'Report', 
CONVERT(varchar(max), ex.TimeStart, 100) AS rundate 
FROM ReportServer$MCSQL1.dbo.ExecutionLog AS ex, ReportServer$MCSQL1.dbo.Catalog AS cat 
where ex.ReportID = cat.ItemID 

Vous ne savez pas si cela fonctionne dans toutes les instances. Fondamentalement, tous les rapports provenant du site Web de DNN sont exécutés par un compte d'exécution, de sorte que le champ «utilisateur» du rapport d'exécution était inutile. Au lieu de cela, nous avons créé un paramètre CalledBy & pour le nom complet du profil de l'employé qui a extrait le rapport dans DNN. Euh, aussi, je pense que je brise une sorte de règle de programmation en comptant sur le fait que 'CalledBy' sera toujours le dernier paramètre de la chaîne ('1000') ..... mais nous ' re documenter, afin que les futurs puissent suivre.

Le rtrim (... code a substring ci-dessus correctement tiré le nom de la personne appelant le rapport puisque le paramètre a été mis en place il y a plusieurs mois. (Champ invisible en bas à droite du rapport)

J'espère que cela aide!