Расширенные методы: создание ссылок на сохраненные значения в переменных

Предположим, что необходимо создать анализ, в заголовке которого будет отображаться имя текущего пользователя. Для выполнения этой задачи можно использовать ссылку на переменную.

Анализ, инфопанель или действия могут ссылаться на различные типы переменных: переменные сеанса, переменные семантической модели (репозитория), переменные представления, переменные запроса и глобальные переменные. Авторы контента могут самостоятельно определять некоторые переменные (например, переменные представления, запросов и глобальные переменные), но остальные типы переменных (переменные сеанса и семантической модели (репозитория)) определяются автором семантической модели.

Примечание.. 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 часов.

Несистемные переменные сеанса

Несистемные переменные сеанса создаются и получают имена в семантической модели.

Например, построитель моделей может создать переменную SalesRegion, которая инициализируется по региону продаж пользователя при входе в систему.

Сведения о переменных семантической модели (репозитория)

Переменная семантической модели (репозитория) – это переменная, принимающая только одно значение в любой момент времени.

Переменные семантической модели (репозитория) могут быть статическими или динамическими. Статическая переменная семантической модели (репозитория) принимает постоянное значение, которое сохраняется и не меняется до тех пор, пока его не отредактирует администратор. Динамическая переменная семантической модели (репозитория) принимает значения, которые обновляются за счет данных, возвращаемых запросами.

О переменных презентации

Переменная презентации создается при создании запросов столбцов и переменных.

Тип Описание

Запрос столбца

Переменная презентации, созданная в запросе столбца, связана со столбцом, а значения, которые может принимать эта переменная, подставляются из значений столбца.

Чтобы создать переменную презентации в запросе столбца, откройте диалоговое окно "Новый запрос" и выберите Переменная презентации в поле Задать a переменную. Введите имя переменной в поле Имя переменной.

Запрос переменной

Переменная презентации, созданная в запросе переменной, не связана ни с одним столбцом, а значения, которые может принимать эта переменная, определяются пользователем.

Чтобы создать переменную презентации в запросе переменной, откройте диалоговое окно "Новый запрос" и выберите Переменная презентации в поле Запрос на ввод. Введите имя переменной в поле Имя переменной.

Значение переменной презентации подставляется из созданного запроса столбца или переменной. Это означает, что каждый раз, когда пользователь выбирает значения в запросе столбца или переменной, переменной презентации присваиваются выбранные пользователем значения.

О переменных запроса

Переменная запроса позволяет переопределить переменную сеанса, но только на время выполнения запроса к базе данных, инициированного приглашением столбца. Переменную запроса можно создать во время создания приглашения столбца.

Вы можете создать переменную запроса во время создания одного из следующих типов приглашений информационной панели:

  • Переменная запроса, созданная в приглашении столбца, связывается со столбцом. Значения, которые может принимать эта переменная, извлекаются из значений столбца.

    Чтобы создать переменную запроса в приглашении столбца, откройте диалоговое окно "Новое приглашение" и выберите Переменная запроса в поле Задать переменную. В поле Имя переменной введите имя переопределяемой переменной сеанса.

  • Переменная запроса, созданная в приглашении переменной, не связывается ни с одним столбцом. Значения, которые может принимать эта переменная, определяются пользователем.

    Чтобы создать переменную запроса в приглашении переменной, откройте диалоговое окно "Новое приглашение" (или диалоговое окно "Редактировать приглашение") и выберите Переменная запроса в поле Диалог выбора для. Затем в поле "Имя переменной" введите имя переопределяемой переменной сеанса.

Значение переменной запроса подставляется из приглашения столбца, в котором она была создана. Это означает, что каждый раз, когда пользователь выбирает значение в приглашении столбца, переменная запроса принимает значение, выбранное пользователем. Однако это значение действует только после нажатия на кнопку Начать в окне запроса и до тех пор, пока на информационной панели не появятся результаты анализа.

Некоторые системные переменные сеанса (например, 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. Нажмите OK. Новая глобальная переменная появится в диалоговом окне "Вставить глобальную переменную".
  9. Выберите новую глобальную переменную и нажмите ОК. Отображается диалоговое окно "Редактирование формулы столбца", где на панели "Формула столбца" отображается вставленная глобальная переменная. Флажок Пользовательские заголовки устанавливается автоматически.
  10. Для более точного описания переменной введите новое имя столбца, которому была назначена глобальная переменная.
  11. Нажмите OK.

Синтаксис для создания ссылок на переменные

Вы можете создавать ссылки на переменные в анализах и на информационных панелях.

Тип ссылки на переменную зависит от выполняемой задачи. Для задач, где пользователю предлагается заполнить поля в диалоговом окне, необходимо указывать только тип и имя переменной (не полный синтаксис). В качестве примера можно привести ссылку на переменную в определении фильтра.

Для других задач, таких как создание ссылки на переменную в представлении заголовка, указывается синтаксис переменной. Используемый синтаксис зависит от типа переменной (см. нижеприведенную таблицу).

Тип Синтаксис Пример

Сеанс

@{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, ММ/DD/YY hh:mm:ss. (Обратите внимание, что формат не применяется к значению по умолчанию.)

(Не обязательно) defaultvalue – ссылка на константу или переменную, указывающая значение, которое будет использоваться, если не заполнена переменная, на которую ссылается variablename.

scope – квалификаторы переменной. Область указывается, когда переменная используется на нескольких уровнях (анализы, страницы информационной панели, информационные панели) и требуется доступ к определенному значению. (Если область не указана, при использовании переменной соблюдается следующий порядок очередности: "анализы - страницы информационной панели - информационные панели".)

При использовании запроса информационной панели с переменной презентации, которая может принимать несколько значений, синтаксис зависит от типа столбца. Несколько значений разделяются запятыми, поэтому любой оператор форматирования применяется к каждому значению до того, как значения соединяются запятыми.

@{variables.MyFavoriteRegion}{EASTERN REGION}

или

@{dashboard.MyFavoriteRegion}{EASTERN REGION}

или

@{dashboard.variables['MyFavoriteRegion']}

или

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

или

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

или

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

Глобальные

@{global.variables.variablename}

где variablename – имя глобальной переменной, например gv_region. При создании ссылки на глобальную переменную необходимо использовать полное имя, как показано в примере.

Имена глобальных переменных должны соответствовать спецификациям языка ECMA Scripting для JavaScript. Длина имени не должна превышать 200 символов. Имя не должно содержать встроенных пробелов, зарезервированных слов и специальных символов. Если вы не знакомы с требованиями языка JavaScripting, обратитесь к вспомогательной документации

@{global.variables.gv_date_n_time}

Также можно ссылаться на переменные в выражениях. Инструкции по созданию ссылок на переменные в выражениях приведены в последующих разделах.

Переменные сеанса

Ссылаясь на переменные сеанса в выражениях, можно использовать следующие рекомендации.

  • Включите переменную сеанса в функцию VALUEOF в качестве аргумента.
  • Заключите имя переменной в двойные кавычки.
  • Перед переменной сеанса поместите оператор NQ_SESSION и точку.
  • Заключите NQ_SESSION в двойные кавычки.
  • Заключите фрагмент NQ_SESSION и имя переменной сеанса в круглые скобки.

Пример:

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

Переменные презентации

Ссылаясь на переменные презентации в выражениях, можно использовать следующие рекомендации.

Ссылаясь на переменную презентации, используйте следующий синтаксис:

@{variablename}{defaultvalue}

где variablename – имя переменной презентации, defaultvalue (не обязательно) – ссылка на константу или переменную, указывающая значение, которое используется, если не заполна переменная, на которую ссылается variablename.

Чтобы преобразовать переменную в строку или включить в нее несколько переменных, заключите всю переменную в одинарные кавычки, например:

'@{user.displayName}'

Если за символом @ не следует фигурная скобка {, он расценивается как символ @. При использовании переменной презентации, которая может принимать несколько значений, синтаксис меняется в зависимости от типа столбца.

Для создания корректных инструкций 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