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

Работа с клиентскими модулями в файловой системе

Glossary Item Box

Разработка на платформе bpm'online может проводиться встроенными средствами в разделе [Управление конфигурацией]. С их помощью можно добавлять новые и редактировать существующие схемы и модули, бизнес-процессы и скрипты баз данных. Подробнее о встроенных средствах разработки можно узнать из главы "Встроенные средства разработки".

Однако для удобства разработчика предусмотрена также возможность выгрузки клиентских модулей из базы данных в файлы *.js для работы с ними в интегрированной среде разработки (Integrated Development Environment, IDE), например, WebStorm.

Последовательность выгрузки клиентских модулей в файловую систему

1. Внести изменения в файл ConectionStrings.config

Файл настройки строк подключения ConnectionStrings.config находится в корневом каталоге с развернутым приложением.

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

<add name="clientUnitContentPath" connectionString="C:\JSProjects\BpmOnline\ClientUnitSrc" />

2. Внести изменения в файл конфигурации Web.config загрузчика приложения

Файл конфигурации Web.Config загрузчика приложения, так называемый "внешний" Web.Config, находится в корневом каталоге с развернутым приложением. В этом файле необходимо найти группу секций <resources> и в секции <clientUnits> установить значение true для атрибута useFileContent.

<resources>
...
<clientUnits useFileContent="true" />
</resources>

3. Обновить клиентские модули из базы данных

Для этого необходимо перейти в [Дизайнер системы] > [Управление конфигурацией]. В открывшемся окне перейти в раздел [Конфигурация].

НА ЗАМЕТКУ

Если действия, описанные в п.1 и п.2 производились при уже открытом разделе [Конфигурация], то необходимо просто обновить страницу.

После выполнения настроек, описанных на предыдущем шаге, на вкладке [Действия] боковой панели раздела [Конфигурация] появятся два дополнительных действия (рис.1):

  • [Обновить клиентские модули из базы данных] — действие, которое выгружает клиентские модули из базы данных в локальную папку в виде набора *.js файлов.
  • [Зафиксировать клиентские модули в базе данных] — действие, которое загружает клиентские модули из локальной папки файловой системы в базу данных.

Рис. 1. — Действия, необходимые для работы с клиентскими модулями в файловой системе

Для первоначальной выгрузки модулей необходимо выбрать действие [Обновить клиентские модули из базы данных].

Последовательность работы с новыми клиентскими модулями в файловой системе

1. Настроить приложение для выгрузки клиентских модулей в файловую систему

Для этого необходимо повторить пункты 1 и 2 вышеприведенной последовательности выгрузки клиентских модулей в файловую систему.

2. Создать новый клиентский модуль

Для этого необходимо перейти в [Дизайнер системы] > [Управление конфигурацией]. В открывшемся окне перейти в раздел [Конфигурация]. Затем на вкладке [Пакеты] боковой панели раздела [Конфигурация] нужно выбрать необходимый пользовательский пакет, в котором будет создан новый клиентский модуль. По умолчанию для этого предусмотрен пользовательский пакет Custom (рис. 2). Подробнее о пользовательских пакетах изложено в статье "Создание пользовательского пакета".

Рис. 2. — Выбор пользовательского пакета

После этого на вкладке [Схемы] из выпадающего меню кнопки [Добавить] необходимо выбрать нужный тип клиентского модуля (рис. 3).

Рис. 3. — Создание нового клиентского модуля

Для создания клиентских модулей используется две стандартных команды меню кнопки [Добавить]:

Модуль — используется при создании новых клиентских модулей.

Замещающий клиентский модуль — используется для расширения функциональности существующих клиентских схем из других пакетов.

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

3. Обновить клиентские модули из базы данных

Для этого необходимо выполнить действие [Обновить клиентские модули из базы данных] на вкладке [Действия] боковой панели раздела [Конфигурация] (рис .1). После окончания обновления созданный модуль появится в локальной папке, указанной в настройках системы (см. п. 1 последовательности выгрузки клиентских модулей в файловую систему). Название модуля будет соответствовать шаблону [Название пакета].[Название модуля].js. Например, для замещающей схемы модели представления раздела [Контрагенты], созданной в пакете [Custom], название выгруженного в файловую систему модуля будет следующим: Custom.AccountSectionV2.js.

4. Добавить исходный код

В файл созданного и выгруженного в файловую систему модуля нужно добавить исходный код, реализующий необходимую пользовательскую функциональность. Работу с исходным кодом можно проводить как с помощью простейших текстовых редакторов, например, Notepad ++, так и с помощью интегрированных сред разработки, например, WebStorm.

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

ВАЖНО

Не рекомендуется вносить изменения в схемы базовых пакетов. При работе через IDE эти изменения будут сохраняться в локальной папке, однако они не будут сохранены в базе данных. Более того, при обновлении клиентских модулей модули базовых пакетов обновляться не будут. В результате вы можете столкнуться с некорректной работой системы после завершения разработки и переходе на чтение клиентских модулей из базы данных.

5. Загрузить измененные модули в базу данных

После завершения работ над исходными кодами необходимо зафиксировать все изменения в базе данных с помощью действия [Зафиксировать клиентские модули в базе данных] (рис. 1).

ВАЖНО

Механизм разработки клиентских модулей в файловой системе, изложенный в данной статье, не связан с механизмом разработки с использованием SVN-системы. Если существует необходимость вести разработку с использованием SVN-системы, то сначала нужно загрузить измененные модули в базу данных, а затем, используя встроенные средства приложения, зафиксировать измененные пакеты в хранилище SVN. Подробнее о работе с хранилищем SVN изложено в статье "Как настроить хранилище SVN".

Особенности разработки c учетом режима использования bundle-схем

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

Bundle-схемой называется схема, позволяющая соединять вместе несколько схем для передачи их одним файлом в клиентскую часть приложения. Это позволяет ускорить загрузку страниц приложения за счет уменьшения количества запросов на сервер, а также за счет формирования асинхронных запросов на презагрузку схем. Схема является bundle-схемой, если в ее свойствах указан признак [Включить коды зависимых схем].

Bundle-схемы можно разделить на такие группы:

  • Bundle-схема стартовой страницы ConfigurationBootstrap. Является общей для всех проектов. Загружается при входе в приложение. Влияет на скорость первого входа в систему.
  • Bundle-схема базовых разделов и страниц SectionBundleModule. Является общей для всех проектов. Загружается асинхронно при входе в приложение. Не влияет на скорость первого входа в систему. Позволяет ускорить работу в пользовательских разделах.
  • Расширенная базовая bundle-схема пользовательских разделов и страниц. Создается пользователем путем расширения базовой бандл-схемы SectionBundleModule. Загружается асинхронно при входе в приложение.
  • Пользовательская bundle-схема пользовательских разделов и страниц. Создается пользователем, путем установки признака [Включить коды зависимых схем] для определенной схемы. Загружается в момент, определенный пользователем. При этом для большей эффективности пользователь должен убедиться, что выбранная им схема является базовой для раздела и включает в себя зависимости и от схем раздела, и от схем страниц раздела. Использование такой схемы позволит ускорить работу пользователя в пользовательских разделах и других частях системы

К СВЕДЕНИЮ

В bundle-схему базовых разделов и страниц SectionBundleModule включены схемы разделов и страниц [Контакты], [Контрагенты], [Активности], [База знаний] и др.

Режим использования bundle-схем

Включение режима использования bundle-схем регулируется ключом UseIncludeDependenciesSource, определенным в файле Web.config приложения, который размещен в каталоге Terrasoft.WebApp приложения.

По умолчанию режим использования bundle-схем включен:

<add key="UseIncludeDependenciesSource" value="true" />

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

К СВЕДЕНИЮ

Если схема не входит в bundle-схему, то изменения, внесенные в нее во время разработки в файловой системе, будут сразу же доступны в приложении вне зависимости от значения ключа UseIncludeDependenciesSource.

Кроме неудобств, связанных с внесением изменений в приложение, включенный режим использования bundle-схем может затруднять отладку схем, входящих в bundle-схему.

Для эффективной разработки клиентских схем в файловой системе рекомендуется отключить режим использования bundle-схем:

<add key="UseIncludeDependenciesSource" value="false" />

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

ВАЖНО

Отключение режима bundle-схем допускается только в среде разработки, поскольку это приводит к существенному увеличению количества HTTP-запросов и, следовательно, к уменьшению производительности приложения.

В тестовой и тем более в промышленной средах режим bundle-схем должен быть обязательно включен.

© Terrasoft 2002-2017.

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

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