Skip to main content
Announcements
See why Qlik was named a Leader in the 2024 Gartner® Magic Quadrant™ for Data Integration Tools for the ninth year in a row: Get the report
cancel
Showing results for 
Search instead for 
Did you mean: 
ST-TEMPLIN
Contributor III
Contributor III

Benutzeranmeldung soll Wert in Filterfenster setzen

Hallo zusammen,

ich suche bei der folgenden Arbeitsvorgabe nach einer Lösung:

Wir möchten unserem Außendienst QLIK Sense zur Verfügung stellen. Dafür bekommt jeder Außendienstmitarbeiter eine  QLIK Analyser Lizenz. Der Mitarbeiter darf in QLIK Sense aber nur den Auftragsbestand von seinen Kunden sehen.

Meine Überlegung ist jetzt folgende:

Durch die Anmeldung des Mitarbeiter wird über die QMC eine Variable mit übergeben, in dem der Name des Mitarbeiters steht. Diese Variable wird in der App benutzt, um hart und nicht änderbar, den Name in das Filterfeld "Sachbearbeiter" zu übertragen.

Ist das möglich oder gibt es noch andere Varianten, um einen Benutzer nur Zugriff auf seine Daten zu geben?

Vielen Dank im Voraus. 

  

Labels (1)
1 Solution

Accepted Solutions
canerkan
Partner - Creator III
Partner - Creator III

Hallo ST-TEMPLIN,

aus dem Bauch heraus, ohne das zu recherchieren, würde ich empfehlen, hier den Spaltennamen sowie den Inhalt groß zu schreiben. Auch als Kennzeichnung, damit du weißt, worum es sich bei dieser Spalte handelt. Du kannst aber gerne mit Kopien der App probieren, ob das auch mit kleingeschriebenen Wörtern oder Zahlen funktioniert. Ich denke, da sollte an sich nichts dagegen sprechen.

View solution in original post

5 Replies
canerkan
Partner - Creator III
Partner - Creator III

Hi ST-TEMPLIN,

das hört sich für mich nach einem Fall für Section Access an. Damit kannst du anhand des Benutzernamens den Zugriff auf gewisse Daten beschränken. Lies dir dazu vielleicht mal den Post von Marcus Sommer durch. Er hat hier eine ganz gute Sammlung von Informationsbeiträgen erstellt:

https://community.qlik.com/t5/QlikView-Documents/Section-Access/ta-p/1493681

Lass mich wissen, ob es dir geholfen hat.

Grüße,

Can

 

ST-TEMPLIN
Contributor III
Contributor III
Author

Hallo Can,

vielen Dank für deine Information.

Ich werde mich da einmal versuchen durch zu arbeiten.

Da ich mich noch als Anfänger sehe und ich das Datenmodell von meinem ERP- Hersteller erstellt bekommen habe, ist die Umsetzung für mich nicht so einfach.

Für meinen gedachten Lösungsansatz siehst du keine Möglichkeit??

  

 

 

canerkan
Partner - Creator III
Partner - Creator III

Im Prinzip ist Section Access genau das was du hier beschrieben hast. Nur ist es nicht notwendig, hierfür eine Variable zu erstellen, die den Benutzernamen übergibt, da der Benutzername schon beim Öffnen der App abgefragt wird. Bei uns im Unternehmen synchronisiert Qlik Sense die User mit unserer Active Directory. Qlik filtert dann automatisch nur die Daten heraus, die dem jeweiligen Kundenbetreuer zugewiesen wurden.

Was du jetzt deinem Datenmodell hinzufügen müsstest, wäre folgendes:

  1. In der Kundentabelle eine weitere Spalte, in der der zuständige Betreuer steht (am besten in Großbuchstaben) oder irgendein anderes Merkmal wodurch sich ein Betreuer eindeutig identifizieren lässt
  2. Einen Abteil im Skript, der aussieht wie folgt:
Section Access;

AUTHORIZATION:
Load * Inline [
ACCESS, USERID, SPALTENNAME_AUS_KUNDENTABELLE
ADMIN, domain\DU,
ADMIN, domain\qlik,
ADMIN, domain\sa_scheduler
USER, domain\BetreuerA, MERKMAL_AUS_KUNDENTABELLE
USER, domain\BetreuerB, MERKMAL_AUS_KUNDENTABELLE
USER, domain\BetreuerC, MERKMAL_AUS_KUNDENTABELLE
USER, domain\BetreuerD, MERKMAL_AUS_KUNDENTABELLE
USER, domain\BetreuerE, MERKMAL_AUS_KUNDENTABELLE
USER, domain\BetreuerF, MERKMAL_AUS_KUNDENTABELLE

];

Section Application;

 

Die Spalte ACCESS wird verwendet, um den Zugriffstyp zu definieren. ADMIN hat logischer Weise Vollzugriff, USER hat nur Zugriff auf die Datensätze, in denen seine Markierung steht (Damit ist die Spalte gemeint, die du der Kundentabelle hinzugefügt hast). Bei ADMIN musst du auch in der letzten Spalte nichts rein schreiben, da sie Vollzugriff haben.

In der Spalte USERID muss die der Benutzername des jeweiligen Kundenbetreuers stehen. Da unsere Qlik-User mit unser AD synchronisiert sind,  kommt die erst die domain und dann der Benutzername.

Die Spalte SPALTENNAME_AUS_KUNDENTABELLE habe ich für dieses Beispiel jetzt so benannt. In der Anwendung muss hier der identische Spaltenname stehen, wie du ihn auch der Spalte in der Kundentabelle gegeben hast, in der du die Zuweisung von Kunden und Betreuern vorgenommen hast.

Den Tabellennamen AUTHORIZATION kannst du so lassen. Besonders wichtig sind die Erste und Letzte Zeile, da hier Qlik mit der ersten Zeile gesagt wird, dass es sich bei dem nachfolgenden Load-Statement nicht um Daten handelt, die geladen werden, sondern um Zugriffsrechte.

Mit der letzten Zeile sagst du Qlik dann wieder, dass die folgenden Zeilen wieder mit Daten zu tun haben.

GANZ WICHTIG: Die user qlik und sa_scheduler müssen unbedingt als Admin hinterlegt sein. Sonst klappen die Reloads nicht mehr. Auch du und wer immer noch diese App bearbeiten will oder bspw. der Vertriebsleiter, der die App vielleicht auch benutzt, sollten hier als ADMIN gelistet sein und Vollzugriff haben. Und zieh dir ein Backup der App bevor du den Section Accesse einfügst. Wenn du dich da nämlich aussperrst, sieht's schlecht aus.

Um das etwas zu verdeutlichen ein Beispiel. Du hast folgende Kundentabelle. Die letzte Spalte enthält den Namen der zuständigen Betreuers in Großbuchstaben und ist damit für den Section Access gedacht:

Kundentabelle:

Kundennummer | Name Kunde | BETREUER

123 | Müller & Sohn | BETREUER_A

556 | Gartenpflege Stein | BETREUER_B

889 | Autohaus Meyer | BETREUER_A

 

Und mit dem oben geschriebenen Skript erstellst du folgende Section Access Tabelle

Beachte dabei, dass bei beiden Tabellen die letzte Spalte gleich heißt, damit eine Verbindung zwischen den Tabellen erstellt wird. Hier erhält dann der jeweilige User seine "Markierung" und darf in der Kundentabelle nur die Kunden sehen, die in der gleichnamigen Spalte seine "Markierung" haben.

AUTHORIZATION:

USER | USERID | BETREUER

User | domain\betreuer_a | BETREUER_A

User | domain\betreuer_b | BETREUER B

 

Damit würde jetzt der Betreuer A nur die Kunden mit der Nummer 123 und 889 sehen. Betreuer B hingegen würde nur den Kunden 556 sehen. Der Filter grenzt damit aber nicht nur die möglich sichtbaren Kunden ein, sondern auch damit verbundenen Daten, was das sein sollte, was du gesucht hast. Damit sind beispielsweise auch die Aufträge aus der Auftragstabelle gemeint, die ja über die Kundennummer mit dem jeweiligen Kunden aus der Kundentabelle verbunden sind. Das hängt aber auch von den Verbindungen in deinem Datenmodell ab.

Teste diese App auch erst darauf, ob der Section Access tatsächlich greift, bevor du sie veröffentlichst, damit du dir sicher sein kannst, dass das alles klappt.

Falls du noch Fragen hast, kannst du dich gerne melden.

Grüße,

Can

 

 

ST-TEMPLIN
Contributor III
Contributor III
Author

Hallo Can,

habe ich das richtig gelesen, dass im Feld "MERKMAL_AUS_KUNDENTABELLE" keine klein geschriebenen alphanumerische Feldinhalte stehen dürfen??

Also so etwas wie "meier" als Feldinhalt wären dann nicht erlaubt?

 

 

canerkan
Partner - Creator III
Partner - Creator III

Hallo ST-TEMPLIN,

aus dem Bauch heraus, ohne das zu recherchieren, würde ich empfehlen, hier den Spaltennamen sowie den Inhalt groß zu schreiben. Auch als Kennzeichnung, damit du weißt, worum es sich bei dieser Spalte handelt. Du kannst aber gerne mit Kopien der App probieren, ob das auch mit kleingeschriebenen Wörtern oder Zahlen funktioniert. Ich denke, da sollte an sich nichts dagegen sprechen.