Предположим, что необходимо создать анализ, в заголовке которого будет отображаться имя текущего пользователя. Для выполнения этой задачи можно использовать ссылку на переменную.
Анализ, инфопанель или действия могут ссылаться на различные типы переменных: переменные сеанса, переменные семантической модели (репозитория), переменные представления, переменные запроса и глобальные переменные. Авторы контента могут самостоятельно определять некоторые переменные (например, переменные представления, запросов и глобальные переменные), но остальные типы переменных (переменные сеанса и семантической модели (репозитория)) определяются автором семантической модели.
Примечание.. 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 часов. |
Переменная семантической модели (репозитория) – это переменная, принимающая только одно значение в любой момент времени.
Переменные семантической модели (репозитория) могут быть статическими или динамическими. Статическая переменная семантической модели (репозитория) принимает постоянное значение, которое сохраняется и не меняется до тех пор, пока его не отредактирует администратор. Динамическая переменная семантической модели (репозитория) принимает значения, которые обновляются за счет данных, возвращаемых запросами.
Переменная презентации создается при создании запросов столбцов и переменных.
Тип | Описание |
---|---|
Запрос столбца |
Переменная презентации, созданная в запросе столбца, связана со столбцом, а значения, которые может принимать эта переменная, подставляются из значений столбца. Чтобы создать переменную презентации в запросе столбца, откройте диалоговое окно "Новый запрос" и выберите Переменная презентации в поле Задать a переменную. Введите имя переменной в поле Имя переменной. |
Запрос переменной |
Переменная презентации, созданная в запросе переменной, не связана ни с одним столбцом, а значения, которые может принимать эта переменная, определяются пользователем. Чтобы создать переменную презентации в запросе переменной, откройте диалоговое окно "Новый запрос" и выберите Переменная презентации в поле Запрос на ввод. Введите имя переменной в поле Имя переменной. |
Значение переменной презентации подставляется из созданного запроса столбца или переменной. Это означает, что каждый раз, когда пользователь выбирает значения в запросе столбца или переменной, переменной презентации присваиваются выбранные пользователем значения.
Переменная запроса позволяет переопределить переменную сеанса, но только на время выполнения запроса к базе данных, инициированного приглашением столбца. Переменную запроса можно создать во время создания приглашения столбца.
Вы можете создать переменную запроса во время создания одного из следующих типов приглашений информационной панели:
Переменная запроса, созданная в приглашении столбца, связывается со столбцом. Значения, которые может принимать эта переменная, извлекаются из значений столбца.
Чтобы создать переменную запроса в приглашении столбца, откройте диалоговое окно "Новое приглашение" и выберите Переменная запроса в поле Задать переменную. В поле Имя переменной введите имя переопределяемой переменной сеанса.
Переменная запроса, созданная в приглашении переменной, не связывается ни с одним столбцом. Значения, которые может принимать эта переменная, определяются пользователем.
Чтобы создать переменную запроса в приглашении переменной, откройте диалоговое окно "Новое приглашение" (или диалоговое окно "Редактировать приглашение") и выберите Переменная запроса в поле Диалог выбора для. Затем в поле "Имя переменной" введите имя переопределяемой переменной сеанса.
Значение переменной запроса подставляется из приглашения столбца, в котором она была создана. Это означает, что каждый раз, когда пользователь выбирает значение в приглашении столбца, переменная запроса принимает значение, выбранное пользователем. Однако это значение действует только после нажатия на кнопку Начать в окне запроса и до тех пор, пока на информационной панели не появятся результаты анализа.
Некоторые системные переменные сеанса (например, USERGUID или ROLES) невозможно переопределить с помощью переменных запроса. Другие системные переменные сеанса, например DATA_TZ и DATA_DISPLAY_TZ (часовой пояс), можно переопределить при условии, что в средстве администрирования модели настроены соответствующие параметры.
Несколько значений могут принимать только строковые и числовые переменные запроса. Все остальные типы данных передают только первое значение.
Глобальная переменная — это столбец, созданный путем объединения данных специального типа со значением. Возможные значения: "Дата", "Дата и время", "Число", "Текст" и "Время".
Во время выполнения анализа глобальная переменная вычисляется и, соответственно, подставляется ее значение.
Только пользователь с ролью "Администратор сервиса BI" может управлять глобальными переменными (добавлять, редактировать и удалять их).
Глобальная переменная создается в процессе создания анализа с помощью диалогового окна "Редактирование формулы столбца". Затем глобальная переменная сохраняется в каталоге и делается доступной во всех остальных анализах в рамках конкретной системы участников.
Вы можете сохранить вычисление как глобальную переменную для повторного использования в различных анализах.
Вы можете создавать ссылки на переменные в анализах и на информационных панелях.
Тип ссылки на переменную зависит от выполняемой задачи. Для задач, где пользователю предлагается заполнить поля в диалоговом окне, необходимо указывать только тип и имя переменной (не полный синтаксис). В качестве примера можно привести ссылку на переменную в определении фильтра.
Для других задач, таких как создание ссылки на переменную в представлении заголовка, указывается синтаксис переменной. Используемый синтаксис зависит от типа переменной (см. нижеприведенную таблицу).
Тип | Синтаксис | Пример |
---|---|---|
Сеанс |
@{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} |
Также можно ссылаться на переменные в выражениях. Инструкции по созданию ссылок на переменные в выражениях приведены в последующих разделах.
Ссылаясь на переменные сеанса в выражениях, можно использовать следующие рекомендации.
Пример:
"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}'
Ссылаясь на переменные семантической модели (репозитория) в выражениях, можно использовать следующие рекомендации.
Пример:
CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END