Logon User im Report abfragen

Post Reply
MartinP
Posts: 3
Joined: 05. Sep 2013, 15:35
Contact:

Logon User im Report abfragen

Post by MartinP » 06. Sep 2013, 14:48

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

User avatar
Christian.Mosdziel
Posts: 9
Joined: 11. Jul 2013, 10:37
Contact:

Re: Logon User im Report abfragen

Post by Christian.Mosdziel » 09. Sep 2013, 16:03

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

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

MartinP
Posts: 3
Joined: 05. Sep 2013, 15:35
Contact:

Re: Logon User im Report abfragen

Post by MartinP » 11. Sep 2013, 10:39

Hallo Christian,

vielen Dank! Probiere ich aus und werde meine Ergebnisse dann hier festhalten.

VG
Martin

MartinP
Posts: 3
Joined: 05. Sep 2013, 15:35
Contact:

Re: Logon User im Report abfragen

Post by MartinP » 19. Sep 2013, 21:28

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

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 1 guest