跳到主要內容

建立 On-demand template 應用程式

On-demand template 應用程式是一項常規 Qlik Sense 應用程式,但具有一項重大差異:其載入指令碼包含用於闡明其對資料來源之查詢的繫結運算式。On-demand 應用程式產生時會使用這些資料繫結運算式來從 selection 應用程式的選取狀態讀取值,並將其繫結至 template 應用程式指令碼,以便產生的應用程式載入使用者控制的資料子集。

template 應用程式通常連接至與 selection 應用程式相同的資料來源。Selection 應用程式的載入指令碼通常會載入彙總後的資料以減少資料量,同時仍提供重要維度和量值的互動性視覺化。Template 應用程式的載入指令碼使用查詢來載入更細微資料的控制子集。

備註: On-Demand template 應用程式不會直接載入資料。template 本應用程式連接必須有效,但若要測試連接是否正確運作,您必須產生 on-demand 應用程式。產生 on-demand 應用程式時,on-demand 應用程式服務會修改載入指令碼,以載入 on-demand selection 應用程式的選取狀態。若 on-demand 應用程式產生時沒有發生錯誤,就能確定 template 應用程式中的連接正確運作。
備註: 開發 on-demand 範本應用程式時,請考慮應用程式大小。根據您的部署,可能會有儲存空間限制,或者使用大量儲存空間可能會造成雲端部署調整大小。如需詳細資訊,請聯絡您的系統管理員。

Template 應用程式的結構

Template 應用程式使用 On-demand 應用程式導覽連結連結至 selection 應用程式。應用程式導覽連結包含的屬性,可在 On-demand 應用程式載入資料時控制查詢的記錄數。Template 應用程式的載入指令碼包含資料繫結運算式,這些運算式將指定來自 selection 應用程式的哪些欄位資料用於闡明載入資料到 On-demand 應用程式時發出的查詢。

備註:

June 2020 中採用了新的資料繫結運算式語法。先前的語法和前置詞 od_ods_odo_odso_odb_ 的作用與之前相同,包括數量限制式 _n suffix 和格式規格。若應用程式在早於 June 2020 的 Qlik Sense 版本上運作,請使用舊語法。關於舊語法,請參閱建立 On-demand template 應用程式

使用新的前置詞時不支援 _n suffix。

基本資料繫結運算式具有以下形式:

$(odag_FIELDNAME)

odag_ 前置詞用來將 selection 應用程式的選取狀態繫結到 on-demand 應用程式的載入指令碼,其建立方式是複製 template 應用程式。遵循 odag 前置詞的部分資料繫結運算式必須是符合 selection 應用程式中欄位的名稱。產生 on-demand 應用程式時,selection 應用程式的目前選取狀態會用來取得所需值,以繫結每個欄位。在新建立的 on-demand 應用程式的載入指令碼中,$(odag_FIELDNAME) 運算式的每個出現項目均取代為針對 selection 應用程式選取狀態中對應欄位選取的值清單。

可以使用其他用於更特別之資料繫結的前置詞。若要進一步瞭解為特殊案例量身打造和最佳化 load 陳述式,請參閱 On-Demand template 應用程式中的繫結運算式

On-demand 繫結可直接插入載入指令碼中的 SELECTWHERE 陳述式。將繫結直接新增至 WHERE 陳述式時,與陳述式中的其他條件合併十分簡單。

製作載入指令碼時,您可以新增預留位置變數 $(odagActive)。這可讓您將樣本資料載入 template 應用程式,以便在沒有載入所有資料的情況下建立用於動態檢視的主要圖表。

下列範例說明樣本 on-demand template 載入指令碼。

Example: 新增一些樣本資料

此範例新增樣本值,即使在沒有完成繫結時也能載入應用程式。

IF '$(odagActive)'='' THEN trace ODAG variables not inserted! Loading sample data.; SET 'odag_Origin Code' = '''LAX'''; SET 'odag_Destination Code' = '''JFK'''; SET odagn_Year = 2015; SET odag_Quarter = '''1'''; SET 'odag_Ticket Carrier Code' = '''CA'''; SET 'odag_Fare Class' = '''X'''; END IF; 

Example: 在 template 應用程式中載入資料

以下是用於載入樣本資料和透過產生的 odag_FIELDNAME 繫結所篩選的樣本載入指令碼。odagn_<Field Name> 繫結以雙值選取數字並依預設沒有使用任何引號。

SQL SELECT * FROM FlightDB.Flights WHERE "Origin Code" IN ($(odag_Origin Code)) AND "Destination Code" IN ($(odag_Destination Code)) AND "Year" IN ($(odagn_Year)) AND "Quarter" IN ($(odag_Quarter)) AND "Ticket Carrier Code" IN ($(odag_Ticket Carrier Code)) AND "Fare Class" IN ($(odag_Fare Class)); 

單一登入 (SSO)

On-demand 應用程式可透過支援 SSO 的資料來源使用 single sign-on (SSO)。引擎和資料來源必須設定為允許 SSO

備註: 此功能無法用於 Qlik Sense Enterprise on Kubernetes

如需詳細資訊,請參閱使用 Qlik Sense 設定 SAML 單一登入的 SAP HANA (僅提供英文版)設定單一登入的 Cloudera Impala (僅提供英文版)

引擎和資料來源設定了 SSO 後,template 應用程式必須將下列語法新增至 template 應用程式指令碼,以啟用 SSO:

///!ODAG_SSO

On-Demand App Service 在產生 on-demand 應用程式以及每次載入時剖析指令碼。

on-demand 應用程式透過 SSO 載入時,使用者的身分識別會傳送至資料來源。使用者必須能夠存取用於 template 應用程式資料連線的來源。在這些來源中,只能載入使用者能夠存取的資料,即使選取了較大的資料集仍是如此。

載入 template 應用程式的節點

管理員可以設定 template 應用程式上的載入平衡規則,以在多節點環境中控制 on-demand 應用程式載入的位置。載入平衡規則設定後,從前往 template 應用程式的連結產生的所有應用程式將會根據套用至 template 應用程式的規則載入。如需詳細資訊,請參閱管理 on-demand 應用程式 (僅提供英文版)

備註: 此功能無法用於 Qlik Sense Enterprise on Kubernetes