#1.7 Создание переиспользуемых компонентов в Loginom. Производные компоненты

Проходите актуальную обновляемую версию этого курса на учебном портале

В прошлом занятии мы создали процедуру генерации последовательности значений через цикл. Инструмент полезный, и наверняка нам в будущем пригодится возможность использовать его во множестве сценариев. Но как нам это сделать? Копирование узла из одного пакета в другой (или его написание каждый раз с нуля) очень плохо скажется как на производительности труда, так и на сложности дальнейшей поддержки и масштабирования.

К счастью, в Loginom каждый узел можно сделать доступным для переиспользования не только внутри своего сценария. Но и в рамках других сценариев, включая сценарии других пакетов. Для практики, скачайте пакет с циклами. Или используйте свой из предыдущего занятия.

В этом пакете есть сценарий, в котором размещено 2 подмодели: генератор последовательности значений Do while, и подмодель For each, где у нас настроен цикл с фильтрацией, в которой в несколько итераций происходит фильтрация продаж на основе данных, полученных в цикле Do while.

Присутствие этих подмоделей является необязательным для сценария, потому что запускаются они через узлы Цикл, который по сути является ссылкой на них. При этом, порты подмодели For each еще и светятся красным. Потому что они являются обязательными, но мы не заводим в них данные за ненадобностью. Поэтому давайте спрячем их под капот.

Перейдем в раздел просмотра структуры пакета, кликнув по названию пакета в строке навигации.

Вы увидите содержание пакета, в т.ч. наш пока единственный модуль, содержащий в себе сценарий обработки данных.

Щелкните ПКМ по названию пакета, и нажмите «Добавить».

Появится еще один модуль. В нем будут разделы, аналогичные предыдущему. В т.ч. у модуля будет собственный раздел сценария.

Таким образом, в одном пакете можно создавать несколько сценариев. Или использовать модули как хранилище переиспользуемых компонентов для других сценариев. Кстати, модулям через Свойства можно задавать собственные имена. Пользуйтесь этим, чтобы не заблудиться в пакете.

Давайте потренируемся с переиспользованием. Скопируйте в исходном сценарии подмодели, которые содержат сценарий циклов.

Перейдите в сценарий нового модуля, и вставьте там скопированные узлы.

Теперь, нам нужно сделать так, чтобы на эти подмодели можно было ссылаться из других сценариев. Для этого нужно щелкнуть ПКМ по подмодели, и перейти в раздел Создать производный компонент.

Как видите, тут есть несколько настроек доступа. Давайте установим обеим подмоделям Внутренний уровень доступа — чтобы мы могли вызывать эти узлы в любом сценарии текущего пакета.

Вернемся в самый первый сценарий, и удалим исходные подмодели циклов.

Теперь нам нужно перенастроить узлы, вызывающие циклы, на работу с производными компонентами. В настройках узла Цикл 2 выберем компонент Do while-1. Хотя он не присутствует в текущем сценарии, мы тем не менее можем сослаться на него.

Не забудьте в настройках сопоставления переменных протянуть связь от vStart_New к vStart.

Цикл, который фильтрует данные, нужно также настроить на соответствующий производный компонент.

Настройки цикла также надо будет восстановить.

После выставления этих настроек, соедините порты, как было изначально.

Снова зайдите в настройки фильтрующего цикла, и выставьте там поле, которое будет содержать список итераций цикла.

Теперь наш сценарий работает в гораздо более лаконичном виде. При этом в каждом из обращений к производному компоненту, в частности подмодели Do while-1, можно выставить собственные настройки выполнения через входной порт переменных.

Кстати, процесс перенастройки циклов можно было бы обойти. Если бы мы поместили его внутрь подмодели, которая просто бы передавала со входа настройки переменных и откручивала бы цикл внутри себя. Эту подмодель мы бы разместили в производный компонент, и тогда просто добавляли бы на сценарий блок, и настраивали первоначальные переменные, а не весь цикл. Имейте это в виду на будущее :).

Так же вы наверняка догадались, что при создании производных компонентов на входных портах имеет смысл отключать автосинхронизацию, т.к. чаще всего производные компоненты представляют собой операции над данными с жестко фиксированным набором полей. И потребовать при задействовании производного компонента (ПК) в явном виде указывать сопоставление входных полей и тех, что будут использоваться внутри ПК — это разумно.

Межпакетные производные компоненты. Loginom Silver Kit.

По формулировке максимально открытых прав на доступ к ПК, вы могли догадаться, что ПК можно использовать за рамками пакетов, в которых они существуют. Лучший способ познакомиться с этим функционалом — подключить библиотеку компонентов Loginom Silver Kit. Она бесплатная, и поможет снять ряд рутинных задач по обработке данных. Кроме того, вы сможете с ее помощью изучить различные механики проектирования сценариев.

Скачайте Loginom Silver Kit, и сохраните файл в удобном месте. Чтобы сделать доступными ПК из внешнего пакета внутри текущего пакета, надо добавить ссылку на внешний пакет.

Добавьте ссылку, указав расположение скачанного пакета на диске.

Перейдите в сценарий текущего приложения. В разделе «Производные компоненты» должны появиться пакеты из Loginom Silver Kit. Вы можете задействовать их в текущем сценарии. При этом сами компоненты изменить нельзя — для этого нужно будет открыть пакет Loginom Silver Kit.

Теперь вы познакомились с одной из ключевых механик Loginom — создание собственных компонентов. Используйте ее, чтобы создавать удобные и масштабируемые решения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.