Hi,
ich habe mit dem Report Server ein paar Reports erstellt, die ich den Benutzern im Matrix so zur Verfügung stellen wollte, dass sie die Reports direkt für ihre eigenen Daten (z.B. Tickets verknüpft mit XYZ) angezeigt bekommen und nur ihre Daten. Ausserhalb von Matrix funktioniert das auch sehr gut, wenn man im Report die UserID abfragt. Wenn ich den Report aber im Matrix verknüpfe und von dort ausführe ist der User natürlich erstmal nicht mehr der Logon-User, sondern der Matrix-Systemuser und somit ist der Weg über die UserID versperrt.
Hat jemand sowas ähnliches schon mal probiert und hierzu eine Lösung?
Danke und Gruß,
Martin
Logon User im Report abfragen
-
Christian.Mosdziel
- Posts: 9
- Joined: 11. Jul 2013, 10:37
- Contact:
Re: Logon User im Report abfragen
Hallo Martin,
du kannst das relativ einfach "bauen".
Ich schreibe das hier alles mal so, wie wir das ganze gemacht haben. Die Parameter etc kannst du natürlich so benennen, wie du lustig bist
Du erstellst zunächst im Report einen Parameter "DomainAccount".
Unter Allgemein bleibt der datentyp auf Text und es werden NULL-Werte zugelassen. Unter Sichtbarkeit haben wir "Ausgeblendet".
Unter Standardwerte stellst du auf "Werte angeben". Bei Wert trägst du ein [&UserID], darauf müsste unterhalb der fx Funktion folgendes stehen: "=User!UserID".
Danach erstellst du ein neues Dataset "DomainAccount_UserFragmentID" mit folgender Abfrage:
Als "UserFragmentID" hast du nun die ID des angemeldeten Users aus der UserClassBase.
Wenn du dir noch einen Parameter "UserFragmentID" erstellst und dort folgendes einstellst:
Allgemein
NULL-Werte zulassen
und "Ausgeblendet"
Standardwerte
Werte aus Abfrage abrufen
Dataset "DomainAccount_UserFragmentID"
Wertfeld "UserFragmentID"
kannst du diesen Parameter in deiner eigentlichen Abfrage für die Anzeige der Daten verwenden und danach einschränken.
Ich hoffe ich konnte dir damit helfen!?
LG
Christian
du kannst das relativ einfach "bauen".
Ich schreibe das hier alles mal so, wie wir das ganze gemacht haben. Die Parameter etc kannst du natürlich so benennen, wie du lustig bist
Du erstellst zunächst im Report einen Parameter "DomainAccount".
Unter Allgemein bleibt der datentyp auf Text und es werden NULL-Werte zugelassen. Unter Sichtbarkeit haben wir "Ausgeblendet".
Unter Standardwerte stellst du auf "Werte angeben". Bei Wert trägst du ein [&UserID], darauf müsste unterhalb der fx Funktion folgendes stehen: "=User!UserID".
Danach erstellst du ein neues Dataset "DomainAccount_UserFragmentID" mit folgender Abfrage:
wenn du nun auf Parameter klickst sollte dort der Parameter @DomainAccount auftauchen. Unter Parameterwert musst du nun den im ersten Schritt angelegten Parameter dazu auswählen.SELECT distinct
ucb.LastName + IsNull(', ' + ucb.FirstName,'') UserName,
ucb.ID UserFragmentID
FROM
SPSUserClassBase ucb
INNER JOIN SPSAccountClassBase acb ON acb.Owner = ucb.ID
INNER JOIN SPSAccountClassAD acad ON acb.UsedInTypeSPSAccountTypeAD = acad.UsedInTypeSPSAccountTypeAD
WHERE
@DomainAccount = acad.NBDomainName + '\' + acad.NBAccountName
Als "UserFragmentID" hast du nun die ID des angemeldeten Users aus der UserClassBase.
Wenn du dir noch einen Parameter "UserFragmentID" erstellst und dort folgendes einstellst:
Allgemein
NULL-Werte zulassen
und "Ausgeblendet"
Standardwerte
Werte aus Abfrage abrufen
Dataset "DomainAccount_UserFragmentID"
Wertfeld "UserFragmentID"
kannst du diesen Parameter in deiner eigentlichen Abfrage für die Anzeige der Daten verwenden und danach einschränken.
Ich hoffe ich konnte dir damit helfen!?
LG
Christian
Christian Mosdziel
Senior IT Consultant Matrix42
Bechtle GmbH & Co. KG
IT-Systemhaus Bonn
Pennefeldsweg 10, DE-53177 Bonn
Senior IT Consultant Matrix42
Bechtle GmbH & Co. KG
IT-Systemhaus Bonn
Pennefeldsweg 10, DE-53177 Bonn
Re: Logon User im Report abfragen
Hallo Christian,
vielen Dank! Probiere ich aus und werde meine Ergebnisse dann hier festhalten.
VG
Martin
vielen Dank! Probiere ich aus und werde meine Ergebnisse dann hier festhalten.
VG
Martin
Re: Logon User im Report abfragen
Hallo Christian,
erst noch mal vielen Dank für den Lösungsansatz. Leider wird hier mit das Kernproblem nicht behoben. Du refferenzierst über die User!UserID. Dadurch bekommt man aber nur außerhalb vom Matrix einen brauchbaren Wert zurück. Innerhalb der Matrix Umgebung übernimmt der Matrix Service Account das Kommando und steht dann in der UserID. Der Login-Account muss dann irgendwie anders geholt werden.
Gruß,
Martin
erst noch mal vielen Dank für den Lösungsansatz. Leider wird hier mit das Kernproblem nicht behoben. Du refferenzierst über die User!UserID. Dadurch bekommt man aber nur außerhalb vom Matrix einen brauchbaren Wert zurück. Innerhalb der Matrix Umgebung übernimmt der Matrix Service Account das Kommando und steht dann in der UserID. Der Login-Account muss dann irgendwie anders geholt werden.
Gruß,
Martin
Who is online
Users browsing this forum: No registered users and 1 guest