Проходите актуальную обновляемую версию этого курса на учебном портале
В прошлом занятии мы создали процедуру генерации последовательности значений через цикл. Инструмент полезный, и наверняка нам в будущем пригодится возможность использовать его во множестве сценариев. Но как нам это сделать? Копирование узла из одного пакета в другой (или его написание каждый раз с нуля) очень плохо скажется как на производительности труда, так и на сложности дальнейшей поддержки и масштабирования.
К счастью, в Loginom каждый узел можно сделать доступным для переиспользования не только внутри своего сценария. Но и в рамках других сценариев, включая сценарии других пакетов. Для практики, скачайте пакет с циклами. Или используйте свой из предыдущего занятия.
В этом пакете есть сценарий, в котором размещено 2 подмодели: генератор последовательности значений Do while, и подмодель For each, где у нас настроен цикл с фильтрацией, в которой в несколько итераций происходит фильтрация продаж на основе данных, полученных в цикле Do while.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-147.png)
Присутствие этих подмоделей является необязательным для сценария, потому что запускаются они через узлы Цикл, который по сути является ссылкой на них. При этом, порты подмодели For each еще и светятся красным. Потому что они являются обязательными, но мы не заводим в них данные за ненадобностью. Поэтому давайте спрячем их под капот.
Перейдем в раздел просмотра структуры пакета, кликнув по названию пакета в строке навигации.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-153.png)
Вы увидите содержание пакета, в т.ч. наш пока единственный модуль, содержащий в себе сценарий обработки данных.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-154.png)
Щелкните ПКМ по названию пакета, и нажмите «Добавить».
![](https://bi2business.ru/wp-content/uploads/2022/05/image-155.png)
Появится еще один модуль. В нем будут разделы, аналогичные предыдущему. В т.ч. у модуля будет собственный раздел сценария.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-156.png)
Таким образом, в одном пакете можно создавать несколько сценариев. Или использовать модули как хранилище переиспользуемых компонентов для других сценариев. Кстати, модулям через Свойства можно задавать собственные имена. Пользуйтесь этим, чтобы не заблудиться в пакете.
Давайте потренируемся с переиспользованием. Скопируйте в исходном сценарии подмодели, которые содержат сценарий циклов.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-158.png)
Перейдите в сценарий нового модуля, и вставьте там скопированные узлы.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-160.png)
Теперь, нам нужно сделать так, чтобы на эти подмодели можно было ссылаться из других сценариев. Для этого нужно щелкнуть ПКМ по подмодели, и перейти в раздел Создать производный компонент.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-161.png)
Как видите, тут есть несколько настроек доступа. Давайте установим обеим подмоделям Внутренний уровень доступа — чтобы мы могли вызывать эти узлы в любом сценарии текущего пакета.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-162.png)
Вернемся в самый первый сценарий, и удалим исходные подмодели циклов.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-163.png)
Теперь нам нужно перенастроить узлы, вызывающие циклы, на работу с производными компонентами. В настройках узла Цикл 2 выберем компонент Do while-1. Хотя он не присутствует в текущем сценарии, мы тем не менее можем сослаться на него.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-164.png)
Не забудьте в настройках сопоставления переменных протянуть связь от vStart_New к vStart.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-165.png)
Цикл, который фильтрует данные, нужно также настроить на соответствующий производный компонент.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-166.png)
Настройки цикла также надо будет восстановить.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-167.png)
После выставления этих настроек, соедините порты, как было изначально.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-168.png)
Снова зайдите в настройки фильтрующего цикла, и выставьте там поле, которое будет содержать список итераций цикла.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-169.png)
Теперь наш сценарий работает в гораздо более лаконичном виде. При этом в каждом из обращений к производному компоненту, в частности подмодели Do while-1, можно выставить собственные настройки выполнения через входной порт переменных.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-170.png)
Кстати, процесс перенастройки циклов можно было бы обойти. Если бы мы поместили его внутрь подмодели, которая просто бы передавала со входа настройки переменных и откручивала бы цикл внутри себя. Эту подмодель мы бы разместили в производный компонент, и тогда просто добавляли бы на сценарий блок, и настраивали первоначальные переменные, а не весь цикл. Имейте это в виду на будущее :).
Так же вы наверняка догадались, что при создании производных компонентов на входных портах имеет смысл отключать автосинхронизацию, т.к. чаще всего производные компоненты представляют собой операции над данными с жестко фиксированным набором полей. И потребовать при задействовании производного компонента (ПК) в явном виде указывать сопоставление входных полей и тех, что будут использоваться внутри ПК — это разумно.
Межпакетные производные компоненты. Loginom Silver Kit.
По формулировке максимально открытых прав на доступ к ПК, вы могли догадаться, что ПК можно использовать за рамками пакетов, в которых они существуют. Лучший способ познакомиться с этим функционалом — подключить библиотеку компонентов Loginom Silver Kit. Она бесплатная, и поможет снять ряд рутинных задач по обработке данных. Кроме того, вы сможете с ее помощью изучить различные механики проектирования сценариев.
Скачайте Loginom Silver Kit, и сохраните файл в удобном месте. Чтобы сделать доступными ПК из внешнего пакета внутри текущего пакета, надо добавить ссылку на внешний пакет.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-171.png)
Добавьте ссылку, указав расположение скачанного пакета на диске.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-172.png)
Перейдите в сценарий текущего приложения. В разделе «Производные компоненты» должны появиться пакеты из Loginom Silver Kit. Вы можете задействовать их в текущем сценарии. При этом сами компоненты изменить нельзя — для этого нужно будет открыть пакет Loginom Silver Kit.
![](https://bi2business.ru/wp-content/uploads/2022/05/image-173.png)
Теперь вы познакомились с одной из ключевых механик Loginom — создание собственных компонентов. Используйте ее, чтобы создавать удобные и масштабируемые решения.