Стандартные ссылки
Стандартные ссылки могут указывать на:
Таблицы данных, содержащие значения переменных контекста, ввод/вывод функций контекста или другие данные.
Отдельные ячейки вышеуказанных таблиц.
Свойства определений переменных/функций/событий контекста (их описания или флажки, указывающие доступна ли переменная для чтения/записи).
Свойства полей таблиц данных (например, тексты их описания и "справки").
И другие элементы единой модели данных.
Полный синтаксис стандартной ссылки: context:entity(parameter_list)$field[row]#property
В большинстве случаев использование ссылок может быть заменено на использование функций для работы с контекстами и таблицами. Ссылки будут в большинстве случае выглядеть короче и проще, но их использование не принесет никакой выгоды во время вычисления выражения по сравнению с использованием функций. |
Варианты синтаксиса
Таблица показывает и описывает различные возможные варианты синтаксиса стандартных ссылок:
Синтаксис | Описание | Аналог на базе функций |
| Возвращает значение ячейки таблицы данных, указанной field и рядом по умолчанию. |
|
| Возвращает значение ячейки таблицы данных по умолчанию, указанной field и row. |
|
| Возвращает таблицу данных, представляющую значение variable в контексте по умолчанию. |
|
| Вызывает function контекста по умолчанию с параметрами, указанными в parameter_list. Возвращает таблицу данных, представляющую выход функции. |
|
| Получает таблицу данных, представляющую значение variable из контекста по умолчанию. Возвращает значение ячейки этой таблицы данных, указанной field и рядом по умолчанию. |
|
| Получает таблицу данных, представляющую значение variable из контекста по умолчанию. Возвращает значение ячейки этой таблицы данных, указанной field и row. |
|
| Получает таблицу данных, представляющую выходное значение, возвращаемое function контекста по умолчанию, которая вызывается с параметрами из parameter_list. Возвращает значение ячейки этой таблицы, указанной field и рядом по умолчанию. |
|
| Получает таблицу данных, представляющую выходное значение, возвращаемое function контекста по умолчанию, которая вызывается с параметрами из parameter_list. Возвращает значение ячейки этой таблицы данных, указанной field и row. |
|
| Возвращает таблицу данных, представляющую значение variable в контексте (context). |
|
| Вызывает function в контексте (context) с параметрами, указанными в parameter_list. Возвращает таблицу данных, представляющую выход функции. |
|
| Возвращает таблицу данных, представляющую значение variable в контексте (context). Возвращает значение ячейки этой таблицы данных, указанной field и рядом по умолчанию. |
|
| Получает таблицу данных, представляющую значение variable из context. Возвращает значение ячейки этой таблицы данных, указанной field и row. |
|
| Получает таблицу данных, представляющую выходное значение, возвращаемое function контекста (context), которая вызывается с параметрами из parameter_list. Возвращает значение ячейки этой таблицы, указанной field и рядом по умолчанию. |
|
| Получает таблицу данных, представляющую выходное значение, возвращаемое function контекста (context) которая вызывается с параметрами из parameter_list. Возвращает значение ячейки этой таблицы данных, указанной field и row. |
|
| Возвращает путь контекста по умолчанию. |
|
| Возвращает таблицу по умолчанию. |
|
Ряд по умолчанию
Если ряд не задан, значение берется из:
текущего ряда, если обрабатывается каждый ряд таблицы данных в текущей среде;
ряда 0 (первый ряд в Таблице данных) в остальных случаях.
Полный синтаксис: context:entity(parameter_list)$field
Значение из Контекста по умолчанию: entity(parameter_list)$field
Значение из Таблицы данных по умолчанию: field
Контекст по умолчанию
Если в ссылке задан контекст, то данные берутся из него.
Если контекст не определен, данные берутся из контекста по умолчанию.
Контекст по умолчанию автоматически определяется согласно тому, что вы сейчас делаете. Например, при фильтрации событий, контекстом по умолчанию станет контекст, в котором появилось данное событие (с которым мы работаем). Можно сказать, что контекстом по умолчанию является "текущий контекст".
Пример: При работе с виджетами, контекстом по умолчанию является тот, из которого запускается виджет. |
Относительные пути контекстов (например, devices.device1
) разрешаются, начиная с данного контекста по умолчанию.
Пример: |
|
Таблица данных по умолчанию
Подобно тому, что вы можете опустить контекстную часть ссылки и всё равно она будет пригодной, вы можете пропустить объектную часть (entity part). При ее пропуске, предполагается, что вы ссылаетесь на так называемую таблицу данных "по умолчанию", которая также называется "текущая таблица данных". Например, при фильтрации событий, таблица данных по умолчанию - таблица для фильтруемого на данный момент события.
Примером использования Таблицы данных по умолчанию может стать ссылка |
|
Разрешение объекта
Часть объекта, заданная в ссылке, является именем переменной или функции в контексте, на который вы ссылаетесь. Она рассматривается в качестве функции, если ссылка содержит в скобках parameter_list, и в качестве переменной, если не содержит. Таким образом, users.admin:childInfo
ссылается на переменную, в то время как users.admin:delete()
ссылается на функцию. Если объект, на который вы ссылаетесь (например, delete()
), не существует, разрешение не будет выполнено.
Если ссылка указывает на функцию, она вызывается параметрами, заданными при помощи parameter_list во время разрешения.
Пример: Разрешение ссылки |
Список параметров функции
parameter_list используется для создания таблицы данных согласно формату передаваемых функции параметров, как описано здесь.
Обработка ошибок
Если возникает ошибка при получении значения переменной вызываемой функции, разрешение ссылки будет не выполнено.
Разрешение свойств
Иногда вам может понадобиться задать свойство для определения какого-либо свойства контекста, переменной, функции, таблицы данных или поля таблицы данных.
Возможно у вас возникнет вопрос, в чем разница между полем и свойством. Поле содержит актуальные данные, а свойство - "метаданные", то есть данные о данных. Предположим, мы работаем с переменной Та же переменная также имеет свойство Поэтому при ссылке на поле вы используете знак |
Свойства контекста
Синтаксис ссылки на свойство контекста: context:#property
Свойство | Тип | Описание |
name | String | Имя контекста |
description | String | Описание контекста. |
type | String | Тип контекста. |
icon | Image | Иконка контекста. Может использоваться компонентом виджета Изображение. |
Свойства определения переменной
Синтаксис ссылки на свойство определения переменной: context:variable#property
Свойство | Тип | Описание |
description | String | Описание переменной. |
icon | Image | Иконка свойства. Может использоваться компонентом виджета Изображение. |
readable | Boolean | True, если переменная доступна для чтения для текущего пользователя. |
writable | Boolean | True, если переменная доступна для записи для текущего пользователя. |
Свойства определения функции
Синтаксис ссылки на свойство определения функции: context:function(parameter_list)#property
Свойство | Тип | Описание |
description | String | Описание функции |
Свойства таблицы данных
Синтаксис ссылки на свойства Таблицы данных: context:entity(parameter_list)#property
Свойство | Тип | Описание |
records | Integer | Количество записей в таблице. Может быть полезным для вычисления, сколько записей было получено в ответ на вашу ссылку. Например, |
quality | Integer | Качество таблицы данных. Объясняет, насколько надежен экземпляр данных, представленный таблицей данных. |
timestamp | Date | Временная метка значения таблицы данных. Некоторые части системы предоставляют информацию о времени вместе с образцом данных. Например, некоторые типы драйверов в качестве значения для этого свойства используют временную метку физического устройства, если это предусмотрено коммуникационным протоколом. |
Свойства поля таблицы данных
Синтаксис ссылки на свойство поля Таблицы данных: context:entity(parameter_list)$field#property
Свойство | Тип | Описание |
description | String | Описание поля |
help | String | "Справка" поля (подробное описание) |
svdesc | String | Описание значения выборки, т.е. строки, используемой для представления значения текущего поля в пользовательском интерфейсе. |
Например, |
Ссылки, состоящие только из свойств
Если ссылка состоит только из свойства (например, #property
), она разрешается в следующее свойство:
Свойство | Тип | Описание |
row | Integer | Данное свойство разрешается в текущий ряд обрабатываемой Таблицы данных. Например, когда виджет график основан на пользовательских данных, его таблица Исходные данные обрабатывается построчно. Рассчитываются выражения привязки Исходных данных для каждой строки. Таким образом, мы можем использовать |
Примеры
Текст ссылки | Комментарии |
| Данная ссылка возвращает значение поля |
| То же, что и выше, но значение берется из четвертого ряда. |
| Разрешается в значение поля |
| Данный пример начинается с двоеточия. Поэтому она ссылается на контекст "" (пустую строку), что является именем корневого контекста. Таким образом, ссылка вернет описание поля переменной info корневого контекста. Имейте в виду, что "description" - имя свойства, которое также может быть именем поля. Различие заключается в том, используете ли вы # или $ для ссылки на него. |
| Разрешается в описание свойства поля |
| Разрешается в Таблицу данных, полученную в результате выполнения функции "Показать все устройства" в контексте users.test.deviceservers. Чтобы получить таблицу данных, должна быть вызвана функция "Показать все устройства", что заставит устройство ds1 Device Server моргать светодиодами. |
| Разрешается в значение поля |
| Возвращает название страны пользователя (т.е. описание значения выборки поля |
| Данная ссылка указывает на поле |
| Данная ссылка разрешится в Таблицу данных, полученную в результате выполнения функции
|
| Укажет на иконку контекста пользователя (). |