Ссылки на другие пакеты Скачать в PDF
Этот механизм применяется для использования объектов и/или получения наборов данных из других пакетов. В качестве таких объектов могут выступать узлы сценария, подключения, производные компоненты. Чтобы эти объекты были доступны в других пакетах, для них должна быть задана область видимости Открытый (доступен во всех пакетах), которая задается параметром объекта Модификатор доступа.
Для создания ссылки следует выполнить следующие операции:
- На панели Навигация выбрать элемент Ссылки.
- В контекстном меню элемента Ссылки выбрать пункт Добавить. Откроется окно Добавление ссылки на пакет.
- В параметре Путь к файлу пакета задать путь к пакету, доступ к объектам которого необходимо получить.
- Нажать Применить.
После создания Ссылки на внешний Пакет можно:
- обратиться к его объектам при помощи узлов Узел-ссылка, Выполнение узла;
- использовать созданные в нем Производные компоненты.
Первые два используются если не требуется изменение логики обработки данных, последний, — если алгоритм требует корректировки.
Свойства ссылки на пакет
Ссылка на пакет содержит следующие параметры:
- Имя — имя Пакета, соответствующее имени файла без расширения, приведенному к правильному идентификатору.
- Путь — путь до сохраненного Пакета. В серверных редакциях путь указывается от корневого каталога файлового хранилища. В настольных редакциях указывается абсолютный или относительный путь.
- Версия — версия сохраненного Пакета.
Параметр Версия предназначен для проверки соответствия пакета, расположенного по указанному пути, пакету, указанному в ссылке. В случае несоответствия версии внешнего пакета и версии, указанной в свойствах ссылки на пакет, Loginom выдаст сообщение об ошибке. Параметр можно настроить в окне Свойства ссылки на пакет.
Открыть окно Свойства ссылки на пакет можно следующими способами:
- Команда Настроить на панели инструментов.
- В контекстном меню пункт Настроить.
- Двойной клик по добавленной ссылке.
В качестве значения параметра Версия задается маска. По умолчанию используется ^1.0.0
.
Поддерживаются следующие способы задания маски:
- Точное указание версии
1.2.3
или1.0.0-beta.1
. - С использованием символа
^
. Включает конкретную версию и версии, которые не превосходят первую не нулевую часть маски. Например:^1.2.3
соответствует диапазону>=1.2.3 <2.0.0-0
^0.2.5
соответствует диапазону>=0.2.5 <0.3.0-0
^0.0.4
соответствует только версии0.0.4
^1.2.3-beta.2
соответствует диапазону>=1.2.3-beta.2 <2.0.0-0
^0.0
соответствует диапазону>=0.0.0 <0.1.0-0
^0
соответствует диапазону>=0.0.0 <1.0.0-0
- С использованием символа
~
. Включает конкретную версию и версии, которые больше указанной, в том же минорном диапазоне. Для случаев~0
,~1
и т.п. маска работает так же, как и маска с символом^
. Например:~1
соответствует диапазону>=1.0.0 <2.0.0-0
~1.2
соответствует диапазону>=1.2.0 <1.3.0-0
~1.2.3
соответствует диапазону>=1.2.3 <1.3.0-0
~1.2.3-beta.1
соответствует диапазону>=1.2.3-beta.1 <1.3.0-0
~0.2
соответствует диапазону>=0.2.0 <0.3.0-0
~0
соответствует диапазону>=0.0.0 <1.0.0-0
- С использованием символа
*
. Используется для «замены» одного из числовых значений маски. Например:*
соответствует диапазону>=0.0.0
(то есть включает в себя любые версии пакета)1.*
соответствует диапазону>=1.0.0 <2.0.0-0
1.2.*
соответствует диапазону>=1.2.0 <1.3.0-0
Общий пакет
При открытии пакета, ссылающегося на другой пакет (далее — внешний пакет), и который не открыт в данной сессии, последний будет загружен как Общий пакет. Это можно увидеть в Администрировании на странице Диспетчер. Пакет будет находится в Общих пока будет активна хотя бы одна ссылка из других пакетов.
Важно: При работе с Узлом-ссылкой, ссылающейся на узел другого пакета, следует помнить, что запрошенные в общем пакете данные будут загружены/рассчитаны один раз.
- При этом, все соответствующие узлы будут заблокированы до тех пор, пока расчеты не завершатся!
- При повторном запросе будут возвращены ранее полученные данные, то есть пересчет производится не будет!
Если необходимо произвести пересчет данных, можно:
- Закрыть все пакеты, ссылающиеся на внешний и загруженный как общий пакет.
- Либо изменить дату создания внешнего пакета (например, сохранив его). Это приведет к появлению второй, но уже обновленной копии в Общих пакетах.
- Либо открыть внешний пакет в текущей пользовательской сессии. Тогда он не будет открыт как общий.
После этого рабочий пакет необходимо открыть заново.

Здесь у нескольких пользователей открыты пакеты ссылающиеся на внешний пакет lib.
Первый пользователь (Albert) открыл внешний пакет lib и, следом, рабочий. Его внешний пакет будет работать с данными в своей сессии, независимо от открытых пакетов других пользователей.
Другие пользователи (Alisa и Jeanette) открыли лишь рабочие пакеты в своих сессиях. Поэтому внешний пакет lib загрузился как общий (счетчик отображает количество сессий, которые ссылаются на данный пакет), и все обращения этих пользователей будут направлены к общему пакету. Результаты в соответствующих Узлах-ссылках будут идентичными у данных пользователей в их сессиях.
Дополнительная информация
Внутри компонентов подключенного Пакета могут встречаться повторяющиеся фрагменты. По отдельности они не представляют интереса и предназначены для использования внутри подключенного Пакета. Это служебные компоненты. Как правило, они являются вложенными относительно основных компонентов подключенного Пакета и в их названии содержится префикс в виде двойного нижнего подчеркивания. Возможности отключить их видимость нет.