Im Fokus dieses Beitrags steht die Verwendung des optionalen Parameters WQRAX_USER in der anwendungsgesteuerten Authentifizierungsmethode. Zudem folgen Überlegungen zum Einsatz von WQRAX in dynamischen Laufzeitumgebungen. Außerdem gibt der Autor eine Übersicht über die wenigen Einschränkungen, die es bei WQRAX zu berücksichtigen gilt.
In der letzten Ausgabe wurde die Verwendung der anwendungsgesteuerten Authentifizierung beschrieben. Bei dieser Methode wird ein Benutzerprofil verwendet, welches für alle Endanwender gültig ist. Allerdings werden dabei die Berechtigungen der einzelnen Benutzer nicht berücksichtigt. WQRAX stellt nun eine Methode zur Verfügung, mit deren Hilfe neben der globalen Berechtigung auch eine benutzerspezifische zum Tragen kommt. Dazu wird der Parameter WQRAX_USER verwendet. Dieser Parameter ist in der WQRX-Umgebung bereits definiert und kann optional gesetzt und verwendet werden. Er wird als globale Variable im Web-Query-Synonym referenziert. Sein Wert wird „stillschweigend“ an die WQRAX-Umgebung weitergegeben. Damit ist es möglich, Reports benutzerbezogen zu filtern und dennoch das allgemeine Benutzerprofil zu verwenden.
Um diese Technik verwenden zu können, muss die Anwendung den Paramater WQRAX_USER zum selben Zeitpunkt setzen, zu dem auch der Authentifizierungs-Token angefordert wird. WQRAX verbindet dann den für WQRAX_USER angegebenen Wert als Parameterwert für die Dauer der Sitzung. Für den Einsatz von WQRAX_USER muss an die URL mit der POST-Anweisung diese als Parameter ans Ende der usprünglichen URL angehängt werden:
http://:12331/wqrax/getToken?&wqraxUser=xxxx&wqraxPassword=yyyy& WQRAX_USER=zzzz
Dabei ist zzzz der Wert, den der Report über die globale Variable WQRAX_USER empfängt. Der zurückgegebene Token umfasst den Web-Query-Benutzer, das Passwort und den Wert für WQRAX_USER. Der Wert für WQRAX_USER ist genau wie bei der Authentifizierung gültig für Drilldowns zu anderen Berichten.
Dazu ist aber eines zu beachten: Für die Verwendung von WQRAX_USER muss ein einzeiliger Pseudoreport im Ordner Common angelegt werden, der für alle WQRAX-Benutzer verfügbar ist. Eine detaillierte Beschreibung finden Sie in der Übersicht für die Konfigurationsdatei.
Dabei bestimmt der folgende Parameter, ob der Link „About“ in der Menüleiste des Browsers angezeigt werden soll.
wqraxShouldAboutLink=true
Wenn ein Report auf WQRAX_USER als Parameter referenziert, aber bei der Wertzuweisung ein Fehler auftritt, wird der Anwender aufgefordert, einen Wert für WQRAX_USER anzugeben.
Unterstützung für dynamische Laufzeitumgebung
WQRAX unterstützt die dynamische Laufzeitumgebungen (RTE = Runtime Environment) und erkennt die aktuelle aktive RTE für den angemeldeten Benutzer. Wenn also eine Bibliotheksliste oder ein Exit-Programm für die aktive RTE des Anwenders konfiguriert ist, wird diese Bibliotheksliste verwendet und das Exit-Programm aufgerufen, bevor der Report durch WQRAX ausgeführt wird.
Darüber hinaus kann der Benutzer die aktive RTE jederzeit mit Hilfe des Parameters dynamisch ändern.
qwqActiveRuntimeEnvironment
Für den Einsatz von RTE ist es erforderlich, dass die verwendeten Synonyme ohne Bibliothekszuordnung erstellt wurden.
Um dieses Verhalten demonstrieren zu können, kommen zwei Bibliotheken, QWQCENT und QWQCENTN34, zum Einsatz. QWQCENT enthält Auftragsdaten für die Jahre 2011 und 2012, und in QWQCENTN34 sind Auftragsdaten für die Jahre 2013 und 2014 enthalten. Beide Bibliotheken umfassen die Tabellen INVENTORY, ORDERS, PLANT und STORES. Es wird ein Synonym mit dem Präfix cenxx_ erstellt und „Einteiliger Name“ gewählt. Damit wird der Bibliotheksname nicht fest mit dem Tabellennamen verbunden. Für das Auffinden der Tabelle ORDERS ist eine Bibliotheksliste erforderlich. Die Zuordnung der Bibliotheksliste wird über entsprechende Laufzeitumgebungen definiert.
Für die Definition einer dynamischen Laufzeitumgebung (RTE) wird der CL-Befehl WRKWEBQRY verwendet und dann Auswahl 5 = „Mit Laufzeitumgebungen arbeiten“ gewählt (siehe Abbildung 2).
In diesem Beispiel wird eine Laufzeitumgebung RTE03 mit der Bibliotheksliste QWQCENT und eine Laufzeitumgebung RTE04 mit der Bibliotheksliste QWQCENTN34 erstellt.
Die beiden Laufzeitumgebungen RTE03 und RTE04 werden dem passenden Benutzerprofil zugeordnet (das ist nur zum Testen und nicht für den Einsatz in WQRAX erforderlich).
Dann wird ein Report mit dem Synonym cenxx_ORDERS erstellt. Im BI-Portal von Web Query lässt sich die Laufzeitumgebung jederzeit über das Menü Tools auswählen (siehe Abbildung 5).
Mit der Auswahl der Laufzeitumgebung RTE04 erhält man die Umsätze der Jahre 2010 und 2011 aus der Bibliothek QWQCENT. Entsprechend sind die Umsätze mit RTE03 für die Jahre 2013 und 2014 aus der Bibliothek QWQCENTN34 zu beziehen.
Danach werden diese Einrichtungen auf WQRAX angewendet. Der erstellte Report liegt im Hauptordner TB_Test und in dessen Unterordner WQRAX_RTE.
Bei der Auswahl des Reports wird eine URL erzeugt, an die die folgenden Parameter mit entsprechendem Wert angehängt werden:
&qwqActiveRuntimeEnvironment=RTE04
Der Report wird mit der Laufzeitumgebung und der Bibliothek QWQCENT mit den Umsatzzahlen von 2010 und 2011 erstellt.
Wenn man den Wert für die Laufzeitumgebung in RTE03 ändert, ergibt sich der folgende Report:
Einschränkungen für WQRAX
Für die Erstellung von Reports, die mit WQRAX eingesetzt werden sollen, sind einige Beschränkungen beim Design und der Implementierung zu berücksichtigen:
- Keine Unterstützung für Reports mit InfoMini: WQRAX unterstützt keine Reports, die als Ausgabe das InfoMini-Format verwenden. Reports mit InfoMini werden nicht korrekt ausgeführt.
- Keine Unterstützung für OLAP: WQRAX unterstützt keine Reports, die das OLAP-Feature verwenden. Solche Reports werden nicht korrekt ausgeführt.
- Keine Unterstützung von globalen Variablen: WQRAX unterstützt nicht die Verwendung von globalen Variablen (Variable mit zwei vorangestellten &&). Ausgenommen davon ist die Verwendung der vordefinierten globalen Variablen WQRAX_USER. Werden Reports mit globalen Variablen innerhalb von WQRAX ausgeführt, wird für diese eine Eingabe angefordert. Der Report wird nicht korrekt ausgeführt.