기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

Constrain

Constrain 문은 스크립트 변수를 정의하기 위해 Let 또는 Set 문과 함께 사용할 수 있습니다. Constrain 문을 사용하면 이러한 변수에 대한 가능한 값에 대한 제약 조건을 정의할 수 있습니다. 변수 정의가 제약 조건을 위반하면 다시 로드가 실패합니다. 제약 조건을 사용하면 변수 값이 특정 유형과 일치하고, 특정 숫자 범위 내에 속하며, 정의한 허용 가능한 값과 일치하도록 요구할 수 있습니다.

구문:  

Constrain variablename = json

여기서:

  • variablename은 스크립트 변수입니다.

  • json은 제약 조건을 지정하는 유효한 JSON 개체입니다. 개별 제약 조건은 키-값 쌍으로 이 개체에 추가됩니다.

제약 유형
제약 유형(키) 의미 제약 조건 요구 사항(값)
"type" 변수 값을 특정 데이터 유형으로 제한합니다.

"text"는 텍스트 유형을 지정합니다.

"number"는 숫자 유형을 지정합니다.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" 변수의 최댓값을 설정합니다. 숫자만 가능합니다(정수 또는 부동 소수점). 과학적 표기법이 허용됩니다.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" 변수의 최솟값을 설정합니다. 숫자만 가능합니다(정수 또는 부동 소수점). 과학적 표기법이 허용됩니다.
CONSTRAIN vExample = {"minnum": 250}
"valuesnum" 변수에 허용되는 숫자 값 목록을 정의합니다. 대괄호로 묶인 숫자를 쉼표로 구분한 목록. 예: [1,2,3]
CONSTRAIN vExample = {"valuesnum": [1,2,3]}
"valuestext" 변수에 허용되는 텍스트 값 목록을 정의합니다. 대괄호로 묶인 문자열을 쉼표로 구분한 목록. 예: ["a","b","c"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Constrain 문을 사용하는 경우

Constrain 문을 사용하여 원하지 않는 변수 값이 분석 앱에 로드되는 것을 방지합니다. 다음 섹션에서는 이를 사용할 수 있는 구체적인 방법을 설명합니다.

다시 로드 시간 변수 업데이트

Constrain은 특히 다시 로드 시간 변수 업데이트와 함께 사용하면 유용합니다. 다시 로드 시간 변수 업데이트를 사용하면 Reloads APIvariables 속성을 사용하여 앱 다시 로드 중에 변수를 동적으로 업데이트할 수 있습니다. Constrain 문은 악의적이거나 잘못된 형식의 변수 정의가 분석 다시 로드에 통합되는 것을 방지합니다.

다시 로드 시간 변수 업데이트는 Constrain 문과 함께 다음 사용 사례를 지원합니다.

  • 고객 ID 또는 이름(로드 시 변수로 전달 가능)과 같은 조건에 따라 선택적으로 데이터를 로드하는 템플릿 앱

  • 여러 Qlik Cloud 테넌트에 분산된 앱에 대한 중앙 제어

  • QlikViewQlik Sense 클라이언트 관리에서 변수 지향 워크플로 및 작업을 클라우드로 마이그레이션

보안, 안정성 및 공동 작업

다시 로드 시간 변수 업데이트 시나리오 외부에서 사용되는 경우에도 Constrain은 로드 스크립트 작성에 대한 보안 제어를 강화합니다(예: 공동 작업 로드 스크립트 개발 중). 예를 들어, 앱 소유자는 변수 값에 대한 제약 조건을 정의하여 공동 작업자에게 앱을 성공적으로 다시 로드하기 위해 충족해야 하는 특정 조건을 알릴 수 있습니다.

고려사항

  • 변수에 대한 Constrain 정의는 유효한 JSON 개체여야 합니다.

  • 하나의 변수에 대해 두 개 이상의 제약 조건을 지정할 수 있습니다. 변수에 대한 모든 제약 조건은 단일 제약 조건 개체에 포함되어야 합니다. 예를 보려면 예 - 다중 제약 조건를 참조하십시오.

  • 특정 이름의 스크립트 변수를 앱에 이미 로드한 경우, 나중에 해당 변수에 대한 제약 조건과 값을 정의하려는 시도는 원래 변수와 다시 정의된 변수 간의 충돌로 인해 실패할 수 있습니다.

    이러한 충돌을 해결하려면 빈 정의를 삽입하여 변수 제약 조건과 값을 다시 설정합니다. 예:

    CONSTRAIN x;
    LET x;
    
    CONSTRAIN x;
    SET x;

    그런 다음 로드 스크립트의 후속 섹션에서 변수와 해당 제약 조건을 다시 정의할 수 있습니다. 긴 형식의 예는 예 - 변수 정의 충돌 해결을 참조하십시오.

  • 변수 정의와 제약 조건 정의의 순서는 중요하지 않습니다. 그러나 변수 관련 다시 로드 실패가 발생하는 경우 중단점이 발생하는 줄은 달라집니다.

  • Constrain 스크립트 문은 스크립트 변수에 대한 변수 정의만 제한합니다. 공개 API를 사용하여 스크립트 및 최종 사용자 변수(API를 사용하여 시트 보기 또는 세션 변수로 만들기 또는 업데이트된 변수)에 제약 조건을 적용할 수도 있습니다. 자세한 내용은 변수 제약 조건 정의를 위한 개발자 대안을 참조하십시오.

변수 제약 조건 정의를 위한 개발자 대안

로드 스크립트에서 Constrain 문을 사용하는 대신 공개 API를 사용하여 변수 제약 조건을 정의할 수도 있습니다. API를 통해 제약 조건을 정의하는 경우 로드 스크립트에서 직접, 시트 보기에서 또는 다시 로드 API를 통해 변수 값을 업데이트하려는 모든 시도에는 제약 조건이 적용됩니다.

공개 API를 통해 변수 제약 조건을 정의하려면 Qlik Sense Engine (qix) API의 GenericVariableConstraints 개체인 GenericVariableConstraints를 사용합니다.

예 - type

예 - maxnum

예 - minnum

예 - valuesnum

예 - valuestext

예 - SETLET

다음 예에서는 변수 정의 중에 SET 또는 LET를 사용할 때 제약 조건이 적용되는 방식의 차이점을 보여 줍니다. 모든 예에서는 type 요구 사항을 적용하는 제약 조건을 사용하지만 이러한 원칙은 일반적으로 모든 제약 조건 유형에 적용됩니다.

예 - 다중 제약 조건

예 - 변수 정의 충돌 해결

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 알려 주십시오!