В Creatio версии 8.0 Atlas реализован новый подход к кастомизации и выделен уровень с функциональными блоками, направленными на решение бизнес-задач — приложениями. Приложения становятся основной единицей no-code разработки. Например, приложением может быть набор инструментов для управления заявками сотрудников. Приложение может состоять из одного или нескольких пакетов с наполнением. Пакет — это совокупность конфигурационных элементов, которые реализуют определенный блок функциональности. Его можно переносить между рабочими средами (экспортировать, устанавливать на другие экземпляры Creatio), предоставлять для использования другими пользователями на Creatio Marketplace. Подробнее: Общие принципы работы с пакетами (документация по разработке).
Вместе с приложением автоматически создается пакет, в который сохраняется вся разрабатываемая функциональность. Для элементов, созданных в No-code дизайнере, Freedom UI дизайнере, дизайнерах бизнес-процессов и кейсов, а также для привязок данных все необходимые зависимости добавляются в приложение автоматически.
Если в приложении использованы элементы или данные пакета, который зависит от текущего напрямую или по иерархической цепочке, то возникают циклические последовательности связей в иерархии пакетов, что приводит к ошибкам в работе приложений.
Например, в приложении есть пакеты A, B и C. Пакет B зависит от пакета A, пакет C зависит от пакета B. Если при кастомизации приложения в пакете A или B был использован элемент из пакета C, то Creatio потребуется добавить в зависимости пакет C, чтобы получить доступ к его функциональности. Данная операция не будет выполнена, поскольку возникнет циклическая последовательность(Рис. 1).
Использование приложения с такими зависимостями может привести к сбоям в работе Creatio. Поэтому при сохранении изменений в приложениях выполняется проверка использованных конфигурационных элементов и настроенных зависимостей. Если в ходе проверки были обнаружены циклические последовательности взаимосвязей, то Creatio сохранит изменения, но не добавит зависимости для пакетов автоматически. Вы получите уведомление с рекомендацией проверить и исправить настроенные зависимости, в котором содержатся подробности ошибки (Рис. 2):
- Источник — часть схемы с элементом, приводящем к ошибке. приводящий к ошибке.
- Ссылка — название элемента, приводящего к ошибке.
- Пакет — название пакета, в котором находится элемент.
Рекомендуем устранять подобные ошибки перед дальнейшей настройкой приложения, чтобы сохранить его работоспособность.
Примеры циклических последовательностей
Рассмотрим несколько примеров решений, которые приводят к возникновению циклических последовательностей.
Пример 1. Если в пользовательском приложении “UserApplication” будет использован конфигурационный элемент, созданный ранее в пакете Custom (Рис. 3), то возникает циклическая последовательность. Причина: пакет Custom по умолчанию зависим от всех пакетов конфигурации, в том числе от “UserApplication”. А “UserApplication” необходима зависимость от Custom для доступа к его элементам.
Пример 2. Созданы приложения “Application1” и “Application2”. При использовании в приложении “Application2” элементов из “Application1” Creatio автоматически сделает “Application2” зависимым от “Application1”. Если при доработках приложения “Application1” в нем будет использована функциональность приложения “Application2”, то возникнет ошибка циклической последовательности.
Предотвратить появление циклических последовательностей
Чтобы избежать появления циклических последовательностей рекомендуем:
- При настройке вашего приложения с использованием элементов из другого приложения, необходимо учитывать, что ваше приложение при этом становится зависимым. Чтобы ваше приложение корректно работало на другой среде, переносить необходимо будет оба этих приложения.
- Сохранять доработки, которые могут быть использованы в приложении, только в пакет данного приложения. После создания приложения, но перед его настройкой необходимо узнать название его пакета и изменить пакет по умолчанию. Для этого:
- В разделе Расширенные настройки No-code дизайнера найдите название пакета вашего приложения.
- Нажмите в правом верхнем углу → Системные настройки.
- Выберите системную настройку “Текущий пакет” (код “CurrentPackageId”).
- Убедитесь, что в поле Значение по умолчанию указано название пакета, полученное на шаге 1. Если в поле указано другое значение, то замените его названием пакета вашего приложения и сохраните изменения.
Устранить проблему циклических последовательностей
Способы устранения циклической последовательности:
- Если элементы, которые стали причиной циклической последовательности, были использованы ошибочно, то вы можете удалить их или заменить новыми элементами, не вызывающими циклическую последовательность. Затем необходимо сохранить изменение, чтобы все зависимости были добавлены заново.
- Если элементы, которые стали причиной циклической последовательности, не критичны для функционирования приложения или были сделаны по ошибке, то для устранения циклических зависимостей достаточно вернуть предыдущие значения и сохранить изменение.
- Если элементы, вызвавшие циклические последовательности нельзя изменить и удалить, то необходимо их переместить:
- в один пакет со схемами, от которых они зависят;
- в пакет, от которого будет зависеть пакет с этими схемами.
Чтобы переместить созданную функциональность между пакетами:
- В разделе Расширенные настройки No-code дизайнера найдите название пакета вашего приложения.
- Нажмите в правом верхнем углу → Управление конфигурацией.
- В списке пакетов выберите необходимый пакет.
- В содержимом пакета найдите схему, которая стала причиной циклической последовательности.
- Нажмите кнопку .
- Выберите “Переместить в другой пакет”.
- В открывшемся окне выберите название пакета, полученное на шаге 1, и сохраните изменения.