Erstellen einer On-Demand-Vorlage-App
Bei einer On-Demand-Vorlage-App handelt es sich um eine gewöhnliche Qlik Sense-App mit einem wesentlichen Unterschied: Ihr Ladeskript enthält Datenbindungsformeln, die verwendet werden, um die Anfragen bei den Datenquellen zu formulieren. Diese Datenbindungsformeln werden bei der Generierung von On-Demand-Apps verwendet, um Werte vom Auswahlstatus der Auswahl-App zu lesen und sie an das Skript der Vorlage-App zu binden, sodass die generierte App mit einer benutzerdefinierten Teilmenge von Daten geladen wird.
Die Vorlage-App stellt in der Regel eine Verbindung zur gleichen Datenquelle wie die Auswahl-App her. Das Ladeskript einer Auswahl-App lädt normalerweise aggregierte Daten, um das Datenvolumen zu reduzieren und nach wie vor interaktive Visualisierungen von wichtigen Dimensionen und Kennzahlen bieten zu können. Das Ladeskript einer Vorlagen-App verwendet Abfragen, die eine definierte Teilmenge detaillierter Daten laden.
Struktur einer Vorlagen-App
Eine Vorlage-App ist mit einer Auswahl-App über einen Navigationslink für On-Demand-Apps verknüpft. Der App-Navigationslink umfasst Eigenschaften, die die Anzahl der abgefragten Datensätze steuern, wenn die On-Demand-App mit Daten geladen wird. Das Datenladeskript der Vorlagen-App enthält Datenbindungsformeln, die angeben, welche Felddaten aus der Auswahl-App zur Formulierung der Abfragen verwendet werden, die beim Laden von Daten in die On-Demand-App ausgegeben werden.
Die Datenbindungsformeln haben folgende Form:
$(od_FIELDNAME)
Das Präfix od_ wird verwendet, um den Auswahlstatus der Auswahl-App an das Ladeskript der On-Demand-App zu binden, die durch Kopieren der Vorlage-App erstellt wird. Der Teil des Datenbindungsausdrucks nach dem Präfix od_ muss ein Name sein, der einem Feld in der Auswahl-App entspricht. Wenn die On-Demand-App erstellt wird, wird der aktuelle Auswahlstatus der Auswahl-App verwendet, um die gewünschten Werte zum Binden der einzelnen Felder zu erhalten. Jede Instanz eines $(od_FIELDNAME)-Ausdrucks im Datenladeskript einer neu erstellten On-Demand-App wird durch eine Liste von Werten ersetzt, die für das entsprechende Feld im Auswahlstatus der Auswahl-App ausgewählt wurden.
Weitere Informationen zum Binden von Werten mithilfe von INLINE-load-Anweisungen finden Sie unter Bindungsformeln in On-Demand-Vorlage-Apps.
Für eine gültige
SUB ExtendWhere(Name, ValVarName) LET T = Name & '_COLNAME'; LET ColName = $(T); LET Values = $(ValVarName); IF len(Values) > 0 THEN IF len(WHERE_PART) > 0 THEN LET WHERE_PART = '$(WHERE_PART) AND $(ColName) IN ( $(Values) )'; ELSE LET WHERE_PART = ' WHERE $(ColName) IN ( $(Values) )'; ENDIF ENDIF END SUB;
Vor dem Aufruf der
Wenn die SQL-Anweisung zusätzlich zu den Bedingungen, die durch die Auswahl-App eingefügt werden, über eine unveränderte WHERE-Bedingung verfügen soll, fügen Sie eine
Im folgenden Beispiel wird gezeigt, wie die
FOR EACH fldname IN 'ORIGIN', 'DEST', 'YEAR', 'QUARTER', 'ORIGIN_STATE_ABR', 'DEST_STATE_ABR' LET vallist = $(fldname); WHEN (IsNull(vallist)) LET vallist = ''; IF len(vallist) > 0 THEN CALL ExtendWhere('$(fldname)','vallist'); ENDIF NEXT fldname
Die Liste der Feldnamen muss den Namen der Felder entsprechen, die in jeder von Ihnen erstellten Feldbindung verwendet wird.
Sobald die Werteliste für jedes Feld erstellt wurde, kann eine SELECT-Anweisung erstellt werden. Hier ein Beispiel:
SQL SELECT "MKT_ID", "YEAR", "QUARTER", "ORIGIN", "ORIGIN_STATE_ABR", "DEST", "DEST_STATE_ABR", "TICKET_CARRIER", "FARE_CLASS", "PASSENGERS", "DISTANCE", 1 AS "FLIGHT_COUNT" FROM "SAPH7T"."/QT/AIRPORT_FACT" $(WHERE_PART);
Der
Single Sign-on (SSO)
On-Demand-Apps können single sign-on (SSO) mit Datenquellen verwenden, die SSO unterstützen. Die Engine und die Datenquelle müssen so konfiguriert werden, dass SSO zulässig ist.
Weitere Informationen finden Sie unter Konfigurieren von SAP HANA für SAML Single Sign-On mit Qlik Sense (nur auf Englisch) und Konfigurieren von Cloudera Impala für Single Sign-On (nur auf Englisch).
Nachdem die Engine und die Datenquelle für SSO konfiguriert wurden, muss die Vorlagen-App SSO aktivieren. Dazu wird dem Skript der Vorlagen-App folgende Syntax hinzugefügt:
///!ODAG_SSO
Der On-Demand App Service analysiert das Skript beim Generieren einer On-Demand-App und bei jeder erneuten Ausführung des Skripts.
Wird eine On-Demand-App mit SSO geladen, so wird die Identität des Endbenutzers an die Datenquelle gesendet. Der Endbenutzer muss Zugriff auf die in den Datenverbindungen der Vorlagen-App verwendeten Quellen haben. Es werden nur die Daten geladen, auf die dieser Benutzer zugreifen kann, selbst wenn ein größerer Satz von Daten ausgewählt wird.
Neuladen von Knoten für Vorlage-Apps
Administratoren können steuern, wo On-Demand-Apps in einer Umgebung mit mehreren Knoten neu geladen werden, indem Lastenausgleichsregeln für Vorlage-Apps festgelegt werden. Wenn eine Lastenausgleichregel festgelegt wird, werden alle über Links zur Vorlage-App erstellten Apps gemäß der Regel erstellt, die auf die Vorlage-App zutrifft.