Crear una app de plantilla a demanda
EN ESTA PÁGINA
Crear una app de plantilla a demanda
Una app de plantilla a demanda es una app Qlik Sense normal pero con una importante diferencia: su script de carga contiene expresiones de enlace a los datos utilizadas para formular las consultas efectuadas en las fuentes de datos. Estas expresiones de enlace a los datos se utilizan en el tiempo de generación de una app a demanda para leer valores del estado de selección de la app de selección y vincularlas al script de la app de plantilla para que la aplicación generada se cargue con un subconjunto de datos controlado por el usuario.
La app de plantilla normalmente se conecta a la misma fuente de datos que la app de selección. El script de carga de una app de selección generalmente carga datos agregados para reducir los volúmenes de datos y al mismo tiempo ofrece visualizaciones interactivas de dimensiones y medidas importantes. El script de carga de una app de plantilla utiliza consultas que cargan un subconjunto controlado de datos más granulares.
Estructura de una app de plantilla
Una app de plantilla está vinculada a una app de selección que utiliza un enlace de navegación de app a demanda. El enlace de navegación de aplicaciones incluye propiedades que controlan el número de registros consultados cuando la app a demanda se carga con datos. El script de carga de la app de plantilla contiene expresiones de enlace de datos que especifican qué datos de campos de la app de selección se utilizan para formular las consultas emitidas al cargar datos en la app a demanda.
Las expresiones de enlace de datos tienen la forma siguiente:
$(od_FIELDNAME)
El prefijo od_ se utiliza para vincular el estado de selección de la app de selección con el script de carga de la app a demanda, el cual se crea al copiar la app de la plantilla. La parte de la expresión de enlace de datos que sigue al prefijo od_ debe ser un nombre que coincida con un campo en la app de selección. Cuando se genera la app a demanda, el estado de selección actual de la app de selección se usa para obtener los valores deseados para enlazar para cada campo. Cada instancia de una expresión $(od_FIELDNAME) en el script de carga de la app a demanda recién creada se reemplaza por la lista de valores seleccionados para el campo correspondiente en el estado de selección de la app de selección.
Para más información sobre cómo enlazar valores usando sentencias de carga INLINE, vea Expresiones de enlace en apps de plantilla a demanda.
Para ser una sintaxis
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;
Antes de llamar a la subrutina
Si desea que la sentencia SQL tenga una cláusula WHERE inmutable además de las cláusulas que la app de selección insertará, inserte una cláusula
A continuación un ejemplo de cómo se utiliza la subroutina
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
La lista de nombres de campo debe coincidir con los nombres de los campos utilizados en cada enlace de campo creado.
Una vez que se ha generado la lista de valores para cada campo, se puede escribir una sentencia SELECT. Por ejemplo:
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);
La parte
Inicio de sesión único (SSO)
Las apps a demanda pueden utilizar single sign-on (SSO) con fuentes de datos compatibles con SSO. El motor y la fuente de datos deben configurarse para permitir SSO.
Para más información, vea Configurar SAP HANA para SAML Single Sign-On con Qlik Sense (solo en inglés) y Configurar Cloudera Impala para Single Sign-On (solo en inglés).
Una vez que el motor y la fuente de datos se han configurado para SSO, la app de plantilla debe habilitar SSO agregando la sintaxis siguiente al script de la app de plantilla:
///!ODAG_SSO
El servicio On-Demand App Service analiza el script cuando se genera una app a demanda y cada vez que se vuelve a cargar.
Cuando una app a demanda se carga con SSO,la identidad del usuario final se envía a la fuente de datos. El usuario final debe tener acceso a las fuentes utilizadas en las conexiones de datos de la app de plantilla. Solo se cargan los datos a los que el usuario tiene acceso en esas fuentes, incluso si se selecciona un conjunto de datos más grande.
Cargar nodos para apps de plantilla
Los administradores pueden controlar dónde se cargan las apps a demanda en un entorno de varios nodos estableciendo reglas de equilibrio de carga en apps de plantilla. Cuando se establece una regla de equilibrio de carga, todas las apps generadas a partir de enlaces a la app de plantilla se cargarán de acuerdo con la regla que se aplica a la app de plantilla.