Ссылки на другие пакеты
Этот механизм применяется для использования объектов и/или получения наборов данных из других пакетов. В качестве таких объектов могут выступать узлы сценария, подключения, производные компоненты. Чтобы эти объекты были доступны в других пакетах, для них должна быть задана область видимости «Открытый (доступен во всех пакетах)», которая задается параметром объекта «Модификатор доступа».
Для создания ссылки следует выполнить следующие операции:
- на панели «Навигация» выбрать элемент «Ссылки»;
- в контекстном меню элемента «Ссылки» выбрать пункт «Добавить». Откроется окно «Добавление ссылки на пакет»;
- в параметре «Путь к файлу пакета» задать путь к пакету, доступ к объектам которого необходимо получить;
- нажать «Применить».
После создания Ссылки на внешний Пакет можно:
- обратиться к его объектам при помощи узлов Узел-ссылка, Выполнение узла;
- использовать созданные в нем Производные компоненты.
Первые два используются если не требуется изменение логики обработки данных, последний, — если алгоритм требует корректировки.
Дополнительная информация
Внутри компонентов подключенного Пакета могут встречаться повторяющиеся фрагменты. По отдельности они не представляют интереса и предназначены для использования внутри подключенного Пакета. Это служебные компоненты. Как правило, они являются вложенными относительно основных компонентов подключенного Пакета и в их названии содержится префикс в виде двойного нижнего подчеркивания. Возможности отключить их видимость нет.
Общий пакет
При открытии пакета, ссылающегося на другой пакет (далее — внешний пакет), и который не открыт в данной сессии, последний будет загружен как Общий пакет. Это можно увидеть в Администрировании на странице Диспетчер. Пакет будет находится в Общих пока будет активна хотя бы одна ссылка из других пакетов.
Важно: При работе с Узлом-ссылкой, ссылающейся на узел другого пакета, следует помнить, что запрошенные в общем пакете данные будут загружены/рассчитаны один раз.
- При этом, все соответствующие узлы будут заблокированы до тех пор, пока расчеты не завершатся!
- При повторном запросе будут возвращены ранее полученные данные, то есть пересчет производится не будет!
Если необходимо произвести пересчет данных, можно:
- Закрыть все пакеты, ссылающиеся на внешний и загруженный как общий пакет.
- Либо изменить дату создания внешнего пакета (например, сохранив его). Это приведет к появлению второй, но уже обновленной копии в Общих пакетах.
- Либо открыть внешний пакет в текущей пользовательской сессии. Тогда он не будет открыт как общий.
После этого рабочий пакет необходимо открыть заново.
Здесь у нескольких пользователей открыты пакеты ссылающиеся на внешний пакет lib.
Первый пользователь (Albert) открыл внешний пакет lib и, следом, рабочий. Его внешний пакет будет работать с данными в своей сессии, независимо от открытых пакетов других пользователей.
Другие пользователи (Alisa и Jeanette) открыли лишь рабочие пакеты в своих сессиях. Поэтому внешний пакет lib загрузился как общий (счетчик отображает количество сессий, которые ссылаются на данный пакет), и все обращения этих пользователей будут направлены к общему пакету. Результаты в соответствующих Узлах-ссылках будут идентичными у данных пользователей в их сессиях.