Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Общие сведения

Glossary Item Box

С точки зрения логических уровней взаимодействия архитектура системы Creatio может быть представлена следующим образом (рис. 1):

Рис. 1. — Логические уровни взаимодействия

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

База данных

Это уровень физического хранения данных. В базе данных хранятся не только пользовательские данные, но и настройки приложения, а также настройки прав доступа к приложению.

Как правило, в процессе разработки на платформе Creatio не возникает необходимости работы с объектами базы данных напрямую. В системе есть инструменты, которые позволяют работать с данными непосредственно из интерфейса системы.

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

Существуют задачи, которые логичнее и быстрее реализуются именно на уровне базы данных.

Ядро

Ядро является неизменяемой частью системы. Это набор библиотек, которые реализуют базовую функциональность приложения.

Back-end библиотеки реализованы на языке C# с использованием классов платформы .NET Framework. У разработчика есть возможность создавать экземпляры back-end классов и использовать функциональность back-end библиотек, но при этом нельзя вносить изменения в эти классы и библиотеки.

Основные back-end компоненты ядра:

  • ORM-модель данных и методы работы с ней. В большинстве случаев для доступа к данным рекомендуется использовать именно объектную модель, хотя прямой доступ к базе данных также реализован в back-end компонентах ядра.
  • Пакеты и механизм замещения.
  • Библиотеки серверных элементов управления. К таким элементам управления относятся страницы, построенные на технологии ASP.NET, которые формируются на сервере, например, страницы раздела [Конфигурация] ([Configuration]).
  • Системные веб-сервисы.
  • Функциональность основных дизайнеров и системных разделов.
  • Библиотеки для интеграции с внешними сервисами.
  • Движок бизнес-процессов (ProcessEngine). Это важный элемент системы, который умеет выполнять настроенные в виде диаграмм алгоритмы.

Основной задачей front-end компонентов ядра является обеспечение работы клиентских модулей. Front-end классы ядра реализованы на языке JavaScript с использованием различных фреймворков. Они предназначены для создания пользовательского интерфейса и реализации других бизнес-задач на стороне браузера.

Основные front-end компоненты ядра:

  • Внешние библиотеки клиентских фреймворков.
  • Песочница (sandbox) — специальный компонент клиентского ядра, предназначенный для обеспечения взаимодействия между различными клиентскими модулями путем обмена сообщениями.
  • Базовые модули — файлы на языке JavaScript, в которых реализована функциональность основных объектов системы.

Конфигурация

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

  • Серверная логика.
  • Автогенерируемые классы, являющиеся продуктом работы настроек системы.
  • Клиентская логика — страницы, кнопки, действия, отчеты, бизнес-процессы и прочие настраиваемые конфигурационные элементы.

Конфигурация является легко изменяемой частью системы. Конкретную конфигурацию формируют такие типы элементов:

  • Объекты — сущности, предназначенные для хранения данных, которые объединяют таблицу в базе данных и класс на серверной стороне.
  • Бизнес-процессы — настраиваемые элементы, которые представляют собой визуальный алгоритм пользовательских действий.
  • Клиентские модули.

Все элементы конфигурации сгруппированы в пакеты.

Пакет — это конечный набор функциональности, который может быть добавлен в конфигурацию и удален из нее.

Окончательная функциональность системы формируется набором пакетов в конфигурации (рис. 2).

Рис. 2. — Конфигурация в Creatio

Механизм пакетов Creatio основан на принципе открытости/закрытости ООП, согласно которому все сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для изменения. Это означает, что новая функциональность должна реализовываться путем добавления новых сущностей, а не путем изменения старых.

Любой продукт Creatio представляет собой конечный набор пакетов. Чтобы расширить или изменить функциональность системы, нужно установить пакет, в котором реализованы все необходимые изменения.

Пакеты Creatio условно можно разделить на два вида:

  • Предустановленные пакеты. К таким относятся пакеты с базовой функциональностью (например, Base, NUI), пакеты, расширяющие функциональность системы (например, пакеты интеграции с 1С, телефонией и т.д.), а также пакеты, созданные сторонними разработчиками. Такие пакеты поставляются вместе с приложением или устанавливаются из zip-архивов как приложения marketplace.
  • Пользовательские пакеты — пакеты, создаваемые пользователями системы. Они могут быть привязаны к хранилищу SVN.

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

Изменения существующей функциональности реализуются с помощью механизма замещения. Если возникает необходимость изменения поведения элемента базового пакета, то в пользовательском пакете создается новый элемент, унаследованный от предустановленного. У созданного пользовательского элемента устанавливается признак замещения родителя в иерархии. Все модификации, которые требуется применить к предустановленному элементу, реализуются в созданном замещающем элементе. В дальнейшем при обращении к предустановленному элементу система будет выполнять логику объекта, который его замещает.

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

Чтобы в одном пакете использовать функциональность другого пакета, необходимо указать зависимость от этого пакета.

В зависимом пакете расширяется или изменяется функциональность того пакета, от которого он зависит. Таким образом, строится иерархия зависимостей и пакетов, в которой пакеты более низкого уровня могут дополнять или изменять функциональность любого пакета выше по иерархии. Подробное описание иерархии пакетов и их зависимостях содержится в статье "Зависимости пакетов".

Полный список всех установленных в рабочее пространство пакетов отображается на вкладке [Пакеты] раздела [Конфигурация].

Состав пакетов:

  1. Схемы — конфигурационные единицы системы, которые определяют либо новые, либо существующие конфигурационные элементы.
  2. Внешние сборки — сторонние библиотеки, которые необходимы для разработки и интеграции с внешними системами. После установки могут использоваться в схемах исходных кодов.
  3. SQL-скрипты — произвольные SQL-скрипты, которые выполняются в БД при установке пакета. SQL-скрипты могут использоваться для переноса пакета в другие конфигурации, если с ним связаны изменения в базе данных.
  4. Данные — записи разделов, значения справочников и системных настроек, которые разработаны в пакете. Могут понадобиться для переноса пакета на другие среды разработки, если с ним связаны определенные записи и значения базы данных.

Подробнее о работе с пакетами можно узнать из статьи "Работа с пакетами".

Функциональность, доступная для конфигурирования:

С помощью инструментов разработки в Creatio можно настроить приложение под решение конкретных бизнес-задач пользователя:

  1. Добавить новые или изменить существующие объекты системы, а также разделы, страницы и детали приложения.
  2. Создать или отредактировать бизнес-процессы.
  3. Реализовать необходимую бизнес-логику работы компонентов системы.
  4. Реализовать интеграционные решения с внешними приложениями.

Для разработки решений в Creatio могут использоваться следующие инструменты:

  1. Low-code и no-code инструменты (мастера разделов, страниц, процессов).
  2. Front-end разработка во встроенной или внешней IDE с использованием функциональности ядровых front-end компонентов (изменение бизнес-логики компонентов интерфейса, создание новых пользовательских компонентов).
  3. Back-end разработка во встроенной или внешней IDE с использованием функциональности ядровых back-end компонентов (обработка данных, реализация интеграционных решений, внутренняя пользовательская логика бизнес-процессов).

Смотрите также

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?