On-Demand 템플릿 앱 만들기
On-Demand 템플릿 앱은 하나의 중요한 차이점이 있는 일반 Qlik Sense 앱입니다. 해당 로드 스크립트에는 데이터 소스에서 만들어진 쿼리를 공식화하는 데 사용되는 데이터 바인딩 표현식이 포함되어 있습니다. 이러한 데이터 바인딩 표현식은 On-demand 앱 생성 시간에 사용되어 선택 앱의 선택 상태에서 값을 읽어서 이 값을 템플릿 앱 스크립트에 바인딩하여 생성된 앱에 사용자가 제어하는 데이터 하위 집합이 로드됩니다.
템플릿 앱은 일반적으로 선택 앱과 동일한 데이터 소스에 연결됩니다. 선택 앱의 로드 스크립트는 중요한 차원 및 측정값의 대화형 시각화를 제공하면서 데이터 볼륨을 줄이기 위해 일반적으로 집계된 데이터를 로드합니다. 템플릿 앱의 로드 스크립트는 보다 세밀한 데이터의 제어된 하위 집합을 로드하는 쿼리를 사용합니다.
템플릿 앱은 다른 사용자가 On-Demand 앱을 생성할 수 있도록 시트를 공개해야 합니다. 자세한 내용은 시트, 시트 그룹, 북마크 및 스토리에 대한 액세스 권한 부여을 참조하십시오.
템플릿 앱의 구조
템플릿 앱은 On-Demand 앱 탐색 링크를 사용하여 선택 앱에 연결됩니다. 앱 탐색 링크에는 On-demand 앱에 데이터가 로드될 때 쿼리되는 레코드 수를 제어하는 속성이 포함되어 있습니다. 템플릿 앱의 로드 스크립트에는 On-demand 앱에 데이터가 로드될 때 실행되는 쿼리를 공식화하는 데 사용되는 선택 앱의 필드 데이터를 지정하는 데이터 바인딩 표현식이 포함되어 있습니다.
데이터 바인딩 표현식의 새로운 구문은 2020년 6월에 도입되었습니다. 수량 제약 조건, _n 접미사 및 서식 사양을 포함하여 이전 구문 및 접두사 od_, ods_, odo_, odso_ 및 odb_는 전과 마찬가지로 동작합니다. 앱이 2020년 6월 이전의 Qlik Sense 버전에서 작동해야 하는 경우 이전 구문을 사용합니다. 이전 구문의 경우 On-Demand 템플릿 앱 만들기(이전 버전)를 참조하십시오.
새 접두사를 사용할 때 _n 접미사는 지원되지 않습니다.
기본 데이터 바인딩 표현식의 양식은 다음과 같습니다:
$(odag_FIELDNAME)
odag_ 접두사는 템플릿 앱을 복사하여 생성되는 On-demand 앱의 로드 스크립트에 선택 앱의 선택 상태를 바인딩하는 데 사용됩니다. 데이터 바인딩 표현식에서 odag 접두사를 팔로우하는 부분은 선택 앱의 필드와 일치하는 이름이어야 합니다. On-demand 앱이 생성될 때, 각 필드에 바인딩할 원하는 값을 얻기 위해 선택 앱의 현재 선택 상태가 사용됩니다. 새로 만든 On-Demand 앱의 로드 스크립트에 있는 $(odag_FIELDNAME) 표현식은 발생할 때마다 선택 앱의 선택 상태에서 해당 필드에 대해 선택된 값 목록으로 대체됩니다.
더 전문화된 데이터 바인딩을 위한 다른 접두사도 사용할 수 있습니다. 특수 사례에 맞게 조정하는 방법 및 로드 문 최적화에 대해 자세히 알아보려면 On-Demand 템플릿 앱의 바인딩 표현식을(를) 참조하십시오.
On-Demand 바인딩을 로드 스크립트의 SELECT 및 WHERE 문에 직접 삽입할 수 있습니다. 바인딩을 WHERE 문에 직접 추가하면 문에서 다른 조건과 함께 조합하기가 더 쉽습니다.
로드 스크립트를 만들 때 자리 표시자 변수 $(odagActive)를 추가할 수 있습니다. 이렇게 하면 모든 데이터를 로드하지 않고 동적 보기에 대한 마스터 차트를 만들 수 있도록 샘플 데이터를 템플릿 앱에 로드할 수 있습니다.
템플릿 앱의 스크립트를 변경하고 새로운 바인딩 변수를 삽입하는 경우 기존 앱 탐색 링크를 바꾸기 위해 새로운 On-Demand 앱 탐색 링크를 만들어야 합니다. 그렇지 않으면 해당 템플릿 앱을 사용하는 기존 On-Demand 앱에 해당 필드에 대한 선택 항목이 전송되지 않습니다.
다음 예에서 샘플 On-Demand 템플릿 로드 스크립트를 설명합니다.
몇 가지 샘플 데이터 추가
이 예에서는 바인딩이 완료되지 않은 경우에도 앱을 로드할 수 있도록 샘플 값을 추가합니다.
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;
템플릿 앱에서 데이터 로드
다음은 샘플 데이터를 로드하고 생성된 odag_FIELDNAME 바인딩으로 필터링하기 위한 샘플 로드 스크립트입니다. odagn_<필드 이름> 바인딩은 이중 값에서 숫자를 선택하고 기본적으로 인용 부호를 사용하지 않습니다.
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를 지원하는 데이터 소스와 함께 단일 사인온(SSO)을 사용할 수 있습니다. 엔진 및 데이터 소스는 SSO를 허용하도록 구성해야 합니다.
SSO에 대해 엔진 및 데이터 소스를 구성한 후 템플릿 앱은 템플릿 앱 스크립트에 다음 구문을 추가하여 SSO를 활성화해야 합니다.
///!ODAG_SSO
On-demand 앱 서비스는 On-demand 앱이 생성될 때 및 On-demand 앱이 다시 로드될 때마다 스크립트를 구문 분석합니다.
On-Demand 앱이 SSO에서 로드되면 최종 사용자의 ID가 데이터 소스로 전송됩니다. 최종 사용자는 템플릿 앱의 데이터 연결에서 사용되는 소스에 대한 액세스 권한이 있어야 합니다. 더 큰 데이터 집합이 선택된 경우에도 사용자가 해당 소스에서 액세스할 수 있는 데이터만 로드됩니다.