고급 기술: 변수에 저장된 값 참조

제목에 현재 사용자의 이름이 표시되는 분석을 생성할 수 있습니다. 변수를 참조하여 이 작업을 수행할 수 있습니다.

분석, 대시보드 및 작업에서 여러 다양한 변수 유형(세션, 의미 모델(저장소), 프리젠테이션, 요청전역)을 참조할 수 있습니다. 콘텐츠 작성자는 프리젠테이션, 요청 및 전역 변수를 스스로 정의할 수 있지만 기타 유형(세션 및 의미 모델 저장소)은 의미 모델에서 정의됩니다.

참고: Oracle Analytics는 데이터 소스 접속 인증서에서 :user 및 :password 변수를 지원하지 않습니다.

변수 유형 정의 위치 정의자 추가 정보

세션

  • 시스템

  • 비시스템

의미 모델

데이터 모델 작성자

세션 변수 정보

의미 모델(저장소)

  • 동적

  • 정적

의미 모델

데이터 모델 작성자

의미 모델(저장소) 변수 정보

프리젠테이션

분석 및 대시보드 프롬프트

콘텐츠 작성자

프리젠테이션 변수 정보

요청

분석 및 대시보드 프롬프트

콘텐츠 작성자

요청 변수 정보

전역

분석

관리자

전역 변수 정보전역 변수 생성

세션 변수 정보

세션 변수는 사용자가 사인인할 때 초기화됩니다.

이러한 변수는 탐색 세션 동안 각 사용자마다 존재하며 사용자가 브라우저를 닫거나 사인아웃할 때 만료됩니다. 세션 변수는 두 가지 유형(시스템 및 비시스템)이 있습니다.

시스템 세션 변수

보고서 및 대시보드에서 사용할 수 있는 여러 시스템 세션 변수가 있습니다.

시스템 세션 변수의 이름은 예약되었기 때문에 다른 변수에 이 이름을 사용할 수 없습니다.

시스템 세션 변수 설명 SQL 질의 값 예제(변수 대화상자)

PORTALPATH

사용자가 사인인할 때 표시되는 기본 대시보드를 식별합니다(사인인 후 이 환경설정을 무효화할 수 있음).

사용자가 사인인할 때 ‘mydashboard’가 표시되도록 하려면 다음을 수행합니다.

 select ‘/shared/_portal/mydashboard’ from dual;

TIMEZONE

사용자가 사인인할 때 기본 시간대를 지정합니다.

사용자의 시간대는 일반적으로 사용자의 프로파일에서 채워집니다. 사용자는 환경설정([내 계정])을 통해 기본 시간대를 변경할 수 있습니다.

사용자가 사인인할 때 시간대를 설정하려면 다음을 수행합니다.

select ‘(GMT-08:00) Pacific Time (US & Canada)’ from dual;

DATA_TZ

데이터의 기존 시간대로부터 오프셋을 지정합니다.

이 변수는 사용자가 시간을 변환하여 적합한 시간대를 표시할 수 있도록 합니다.

시간 데이터를 미국 동부 표준시(EST)로 변환하려면 다음을 수행합니다.

select ‘GMT-05:00’ from dual;

이 예는 그리니치 표준시(GMT) -5시간을 의미합니다.

DATA_DISPLAY_TZ

데이터를 표시할 시간대를 지정합니다.

동부 표준시(EST)를 표시하려면 다음을 수행합니다.

select ‘GMT-05:00’ from dual;

이 예는 그리니치 표준시(GMT) -5시간을 의미합니다.

비시스템 세션 변수

비시스템 세션 변수는 의미 모델에서 이름이 지정되고 생성됩니다.

예를 들어 Data Modeler는 사용자가 사인인할 때 사용자의 판매 지역 이름으로 초기화하는 SalesRegion 변수를 생성할 수 있습니다.

의미 모델(저장소) 변수 정보

의미 모델(저장소) 변수란 임의의 한 시점에 단일 값을 갖는 변수입니다.

의미 모델(저장소) 변수는 정적 또는 동적일 수 있습니다. 정적 의미 모델(저장소) 변수는 지속되는 값을 가지며 관리자가 변경할 때까지 변경되지 않습니다. 동적 의미 모델(저장소) 변수에는 질의로부터 반환된 데이터로 새로고침되는 값이 포함됩니다.

프리젠테이션 변수 정보

열 프롬프트 또는 변수 프롬프트를 생성할 때 프리젠테이션 변수를 생성합니다.

유형 설명

열 프롬프트

열 프롬프트의 일부로 생성된 프리젠테이션 변수는 열과 연관되며 사용할 수 있는 값이 열 값에서 제공됩니다.

열 프롬프트의 일부로 프리젠테이션 변수를 생성하려면 [새 프롬프트] 대화상자의 변수 설정 필드에서 프리젠테이션 변수를 선택해야 합니다. 변수 이름 필드에 변수 이름을 입력합니다.

변수 프롬프트

변수 프롬프트의 일부로 생성된 프리젠테이션 변수는 열과 연관되지 않으며 사용할 수 있는 값을 사용자가 정의합니다.

변수 프롬프트의 일부로 프리젠테이션 변수를 생성하려면 [새 프롬프트] 대화상자의 프롬프트 필드에서 프리젠테이션 변수를 선택해야 합니다. 변수 이름 필드에 변수 이름을 입력합니다.

프리젠테이션 변수 값은 변수를 생성할 때 사용된 열 또는 변수 프롬프트에 의해 채워집니다. 즉, 사용자가 열 또는 변수 프롬프트에서 하나 이상의 값을 선택할 때마다 프리젠테이션 변수 값이 사용자가 선택한 값으로 설정됩니다.

요청 변수 정보

요청 변수를 사용하면 세션 변수 값을 무효화할 수 있지만 열 프롬프트에서 시작된 데이터베이스 요청 기간에만 지속됩니다. 열 프롬프트를 생성하는 프로세스의 일부로 요청 변수를 생성할 수 있습니다.

다음 유형의 대시보드 프롬프트 중 하나를 생성하는 프로세스의 일부로 요청 변수를 생성할 수 있습니다.

  • 열 프롬프트의 일부로 생성된 요청 변수는 열과 연관되며 사용할 수 있는 값이 열 값에서 제공됩니다.

    [새 프롬프트] 대화상자에서 열 프롬프트의 일부로 요청 변수를 생성하려면 변수 설정 필드에서 요청 변수를 선택해야 합니다. 변수 이름 필드에 무효화할 세션 변수 이름을 입력합니다.

  • 변수 프롬프트의 일부로 생성된 요청 변수는 열과 연관되지 않으며 사용할 수 있는 값을 사용자가 정의합니다.

    변수 프롬프트의 일부로 요청 변수를 생성하려면 [새 프롬프트] 대화상자(또는 [프롬프트 편집] 대화상자)의 프롬프트 필드에서 요청 변수를 선택해야 합니다. 변수 이름 필드에 무효화하려는 세션 변수 이름을 입력합니다.

요청 변수 값은 변수를 생성할 때 사용된 열 프롬프트에 의해 채워집니다. 즉, 사용자가 열 프롬프트에서 값을 선택할 때마다 요청 변수 값이 사용자가 선택한 값으로 설정됩니다. 하지만 사용자가 프롬프트에 대해 실행 단추를 누를 때부터 분석 결과가 대시보드로 반환될 때까지만 값이 적용됩니다.

특정 시스템 세션 변수(예: USERGUID 또는 ROLES)는 요청 변수에 의해 무효화될 수 없습니다. 다른 시스템 세션 변수(예: DATA_TZ 및 DATA_DISPLAY_TZ(시간대))는 모델 관리 툴에 구성된 경우 무효화될 수 있습니다.

문자열 및 숫자 요청 변수에만 다중 값이 지원됩니다. 다른 모든 데이터 유형은 첫번째 값만 전달합니다.

전역 변수 정보

전역 변수는 특정 데이터 유형을 값과 조합하여 생성된 열입니다. 값은 날짜, 날짜 및 시간, 숫자, 텍스트, 시간일 수 있습니다.

전역 변수는 분석을 실행할 때 평가되고, 전역 변수 값은 적절히 대체됩니다.

BI 서비스 관리자 롤이 있는 사용자만 전역 변수를 관리(추가, 편집, 삭제)할 수 있습니다.

전역 값은 [열 공식 편집] 대화상자를 사용하여 분석을 생성하는 중에 생성합니다. 전역 변수는 카탈로그에 저장되며 특정 테넌트 시스템 내의 다른 모든 분석에 사용할 수 있습니다.

전역 변수 생성

계산을 전역 변수로 저장한 후 다른 분석에서 재사용할 수 있습니다.

  1. 편집할 수 있도록 분석을 엽니다.
  2. [선택한 열] 창에서 열 이름 옆에 있는 옵션을 누릅니다.
  3. 공식 편집을 선택하여 [열 공식] 탭을 표시합니다.
  4. 변수를 누르고 전역을 선택합니다.
  5. 새 전역 변수 추가를 누릅니다.
  6. 이름에 대한 값을 입력합니다. 예: gv_region, date_and_time_global_variable 또는 rev_eastern_region_calc_gv.
    전역 변수 이름은 변수 참조 시에 전체 이름이어야 하므로 "global.variables"가 접두어로 사용됩니다. 예를 들어, 매출을 계산하도록 설정된 전역 변수는 다음과 같이 [열 공식] 대화상자에 표시됩니다.

    "Base Facts"."1- Revenue"*@{global.variables.gv_qualified}

  7. 유형에 대한 값을 입력합니다.
    • 데이터 유형으로 "날짜 및 시간"을 선택하는 경우 03/25/2004 12:00:00 AM 예에서와 같이 값을 입력합니다.
    • 표현식 또는 계산을 값으로 입력하는 경우 "Base Facts"."1- Revenue"*3.1415 예에서와 같이 텍스트 데이터 유형을 사용해야 합니다.
  8. 확인을 누릅니다. 새 전역 변수가 [전역 변수 삽입] 대화상자에 추가됩니다.
  9. 바로 전에 생성한 새 전역 변수를 선택하고 확인을 누릅니다. [열 공식 편집] 대화상자가 [열 공식] 창에 삽입된 전역 변수와 함께 표시됩니다. 사용자정의 제목 체크박스는 자동으로 선택됩니다.
  10. 더 정확하게 변수를 반영하기 위해 전역 변수를 지정한 열에 대해 새 이름을 입력합니다.
  11. 확인을 누릅니다.

변수 참조 구문

분석 및 대시보드에서 변수를 참조할 수 있습니다.

변수 참조 방법은 수행 중인 작업에 따라 달라집니다. 대화상자에 필드가 제공되는 작업(예: 필터 정의의 변수 참조)의 경우 변수의 유형과 이름만 지정해야 합니다(전체 구문 지정 안함).

제목 뷰의 변수 참조와 같은 기타 작업의 경우 변수 구문을 지정합니다. 사용하는 구문은 다음 표에 설명된 대로 변수 유형에 따라 달라집니다.

유형 구문 예제

세션

@{biServer.variables['NQ_SESSION.variablename']}

여기서 variablename은 세션 변수의 이름입니다(예: DISPLAYNAME).

@{biServer.variables['NQ_SESSION.SalesRegion]}

의미 모델(저장소)

@{biServer.variables.variablename}

또는

@{biServer.variables['variablename']}

여기서 variablename은 변수의 이름(예: prime_begin)입니다.

@{biServer.variables.prime_begin}

또는

@{biServer.variables['prime_begin']}

프리젠테이션 또는 요청

@{variables.variablename}[format]{defaultvalue}

또는

@{scope.variables['variablename']}

설명:

variablename은 프리젠테이션 또는 요청 변수의 이름입니다(예: MyFavoriteRegion).

(선택사항) format은 변수의 데이터 유형에 종속된 형식 마스크입니다(예: #,##0, MM/DD/YY hh:mm:ss). 기본값에는 형식이 적용되지 않습니다.

(선택사항) defaultvaluevariablename이 참조하는 변수가 채워지지 않은 경우 사용할 값을 나타내는 상수 또는 변수 참조입니다.

scope는 변수의 식별자를 나타냅니다. 변수를 여러 레벨(분석, 대시보드 페이지 및 대시보드)에서 사용하며 특정 값에 액세스하려는 경우 범위를 지정해야 합니다. 범위를 지정하지 않으면 우선순위는 분석, 대시보드 페이지, 대시보드 순이 됩니다.

다중 값을 가질 수 있는 프리젠테이션 변수에 대시보드 프롬프트를 사용할 때 구문은 열 유형에 따라 달라집니다. 다중 값은 콤마로 구분된 값으로 형식이 지정되므로 콤마를 추가하기 전에 각 값에 모든 형식 절이 적용됩니다.

@{variables.MyFavoriteRegion}{EASTERN REGION}

또는

@{MyFavoriteRegion}

또는

@{dashboard.variables['MyFavoriteRegion']}

또는

(@{myNumVar}[#,##0]{1000})

또는

(@{variables.MyOwnTimestamp}[YY-MM-DD hh:mm:ss]{)

또는

(@{myTextVar}{A, B, C})

전역

@{global.variables.variablename}

여기서 variablename은 전역 변수의 이름입니다(예: gv_region). 전역 변수를 참조할 때는 예에 표시된 대로 전체 이름을 사용해야 합니다.

전역 변수의 이름 지정 규칙은 JavaScript에 대한 EMCA 스크립팅 언어 사양을 따라야 합니다. 이름은 200 자를 초과하지 않아야 하며, 공백, 예약어 및 특수 문자를 포함하지 않아야 합니다. JavaScripting 언어 요구사항에 익숙하지 않은 경우 타사 참조 문서를 참조하십시오.

@{global.variables.gv_date_n_time}

표현식에서 변수를 참조할 수도 있습니다. 표현식에서 변수 참조 지침은 다음 항목에서 설명합니다.

세션 변수

다음 지침에 따라 표현식에서 세션 변수를 참조할 수 있습니다.

  • 세션 변수를 VALUEOF 함수의 인수로 포함합니다.
  • 변수 이름을 큰 따옴표로 묶습니다.
  • 세션 변수 앞에 NQ_SESSION과 마침표를 추가합니다.
  • NQ_SESSION 부분과 세션 변수 이름을 괄호로 묶습니다.

예:

"Market"."Region"=VALUEOF(NQ_SESSION."SalesRegion")

프리젠테이션 변수

다음 지침에 따라 표현식에서 프리젠테이션 변수를 참조할 수 있습니다.

프리젠테이션 변수를 참조할 때는 다음 구문을 사용합니다.

@{variablename}{defaultvalue}

여기서 variablename은 프리젠테이션 변수의 이름이고 defaultvalue(선택사항)는 variablename이 참조하는 변수가 채워지지 않은 경우 사용할 값을 나타내는 상수 또는 변수 참조입니다.

변수를 문자열로 typecast(즉, 변환)하거나 여러 변수를 포함하려면 전체 변수를 작은 따옴표로 묶습니다. 예를 들면 다음과 같습니다.

'@{user.displayName}'

@ 기호 뒤에 {가 오지 않을 경우에는 @ 기호로 처리됩니다. 다중 값을 가질 수 있는 프리젠테이션 변수를 사용할 때 구문은 열 유형에 따라 달라집니다.

적합한 SQL 문을 생성하려면 지정된 열 유형에 대해 다음 SQL 구문을 사용합니다.

  • 텍스트 — (@{variablename}['@']{'defaultvalue'})

  • 숫자 — (@{variablename}{defaultvalue})

  • 날짜-시간 — (@{variablename}{timestamp 'defaultvalue'})

  • 날짜(날짜만) — (@{variablename}{date 'defaultvalue'})

  • 시간(시간만) — (@{variablename}{time 'defaultvalue'})

예:

'@{user.displayName}'

의미 모델(저장소) 변수

다음 지침에 따라 표현식에서 의미 모델(저장소) 변수를 참조할 수 있습니다.

  • 변수를 VALUEOF 함수의 인수로 포함합니다.
  • 변수 이름을 큰 따옴표로 묶습니다.
  • 정적 의미 모델(저장소) 변수를 이름으로 참조합니다.
  • 동적 의미 모델(저장소) 변수를 전체 이름으로 참조합니다.

예:

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END