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

Статический клиентский контент в файловой системе

Glossary Item Box

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

До версии 7.11 при запросе клиентского контента (*.js и *.css файлов) сервер приложения формировал его динамически, основываясь на текущей структуре связей между пакетами и зависимостями между схемами. Сформированные данные кэшировались и отправлялись клиентскому приложению.

Начиная с версии 7.11 весь клиентский контент предварительно генерируется в специальном каталоге приложения — становится статическим. При запросе клиентского контента сервер IIS ищет запрашиваемый контент в этом каталоге и сразу же отправляет его клиентскому приложению. Таким образом повышается общая производительность приложения и снижается нагрузка на сервер.

Преимущества и недостатки

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

Табл. 1. — Преимущества и недостатки использования статического клиентского контента

Преимущества Недостатки

Генерация клиентского контента "на лету"

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

Использование предварительно сгенерированного клиентского контента

Минимальная нагрузка на процессор (CPU) Необходимо предварительно генерировать клиентский контент
Отсутствуют запросы в базу данных
Клиентский контент кешируется средствами IIS

Генерация статического клиентского контента

Клиентский контент генерируется в специальный каталог .\Terrasoft.WebApp\conf. В нем содержатся *.js-файлы с исходным кодом схем, *.css-файлы стилей и *.js-файлы ресурсов для всех культур приложения.

ВАЖНО

Начиная с версии 7.11.1 в каталоге .\Terrasoft.WebApp\conf также содержатся изображения.

ВАЖНО

Для каталога .\Terrasoft.WebApp\conf должны быть установлены права на модификацию (чтение и запись файлов и вложенных каталогов, а также удаление каталога) для пользователя пула IIS, в котором запущено приложение. В противоположном случае приложение bpm'online не сможет сгенерировать статический контент.

Имя пользователя пула IIS устанавливается в свойстве [Identity]. Доступ к этому свойству можно получить через команду меню [Advanced Settings] на вкладке [Application Pools] менеджера IIS.

Действия, при которых выполняется генерация клиентского контента

Первичная или повторная генерация статического клиентского контента выполняется при следующих действиях в системе:

  • Сохранение схемы через дизайнеры клиентских схем и объектов.
  • Сохранение через мастера разделов и деталей.
  • Установка и удаление приложений из Marketplace и zip-архива.
  • Применение переводов.
  • Действия [Компилировать все] и [Компилировать измененное] в разделе [Конфигурация].

ВАЖНО

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

При установке или обновлении пакета из SVN также необходимо выполнить действие  [Компилировать все].

К СВЕДЕНИЮ

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

Генерация клиентского контента с помощью утилиты WorkspaceConsole

В утилиту WorkspaceConsole была добавлена операция BuildConfiguration, которая выполняет генерацию клиентского контента. Параметры операции приведены в таблице 2.

Табл. 2. — Параметры операции BuildConfiguration

Параметр Описание
workspaceName Название рабочего пространства. По умолчанию Default.
destinationPath Каталог, в который будет сгенерирован статический контент
webApplicationPath

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

Необязательный параметр. Если значение не указано, то соединение будет установлено с базой данных, указанной в строке соединения в файле Terrasoft.Tools.WorkspaceConsole.config. Если значение указано, то соединение будет установлено с базой данных из файла ConnectionStrings.config веб-приложения.

force

Если установлено значение true, то выполняется генерация контента по всем схемам. Если false, то выполняется генерация для измененных схем.

Необязательный параметр. По умолчанию установлено значение false.

Примеры использования:

Terrasoft.Tools.WorkspaceConsole.exe -operation=BuildConfiguration -workspaceName=Default -destinationPath="C:\WebApplication\BPMOnline\Terrasoft.WebApp" -force=true -logPath=C:\wc\log

Terrasoft.Tools.WorkspaceConsole.exe -operation=BuildConfiguration -workspaceName=Default -webApplicationPath="C:\WebApplication\BPMOnline" -destinationPath="C:\WebApplication\BPMOnline\Terrasoft.WebApp" -force=true -logPath=C:\wc\log

Совместимость с режимом разработки в файловой системе

На текущий момент режим разработки в файловой системе (РФС) не совместим с получением клиентского контента из предварительно сгенерированных файлов. Для корректной работы с РФС необходимо отключить получение статического клиентского контента из файловой системы. Для отключения данной функциональности нужно установить значение false для флага UseStaticFileContent в файле Web.config.

<fileDesignMode enabled="true" />
...
<add key="UseStaticFileContent" value="false" />

Генерация клиентского контента при добавления новой культуры

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

ВАЖНО

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

Изменения в объекте параметров, необходимом для формирования URL изображения (версия 7.11.1)

Изображения в клиентской части bpm'online всегда запрашиваются браузером по определенному URL, который устанавливается в атрибуте src html-элемента img. Для формирования этого URL в bpm'online используется специальный модуль Terrasoft.ImageUrlBuilder (imageurlbuilder.js), в котором реализован публичный метод получения URL изображения — getUrl(config). Этот метод принимает специальный конфигурационный JavaScript-объект config, в свойстве params которого содержится объект параметров, на основе которого формируется URL изображения для вставки на страницу.

До версии 7.11.0 включительно структура объекта params была следующей:

config: {
    params: {
        schemaName: "",
        resourceItemName: "",
        hash: ""
    }
}

Здесь:

  • schemaName — название схемы (строка);
  • resourceItemName — название изображения в bpm'online (строка);
  • hash — хэш изображения (строка).

Начиная с версии 7.11.1 в перечень параметров добавлено строковое свойство resourceItemExtension, содержащее расширение файла изображения (например, ".png". Новая структура объекта params:

config: {
    params: {
        schemaName: "",
        resourceItemName: "",
        hash: "",
        resourceItemExtension: ""
    }
}

ВАЖНО

Если объект params формируется в пользовательском программном коде (а не получен из ресурсов), то, начиная с версии bpm’online 7.11.1, в него необходимо добавлять свойство resourceItemExtension. В противоположном случае изображение будет получено из базы данных, а не из статического контента. В следующих версиях возможность получения изображения из базы данных планируется отключить. Следовательно, отсутствие свойства resourceItemExtension приведет к возникновению ошибок с загрузкой изображений на страницу.

Пример корректного формирования конфигурационного объекта параметров для получения URL статического изображения:

var localizableImages = {
    AddButtonImage: {
        source: 3,
        params: {
            schemaName: "ActivityMiniPage",
            resourceItemName: "AddButtonImage",
            hash: "c15d635407f524f3bbe4f1810b82d315",
            resourceItemExtension: ".png"
        }
    }
}

 

 

 

© Terrasoft 2002-2019.

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

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