.. _content_transformation: Трансформация содержимого документов ===================================== .. note:: Доступно только в enterprise версии. Трансформации выполняются в микросервисе :ref:`ecos-transformations `. Spring настройки для микросервиса трансформаций: .. code-block:: yaml ecos: webapp: task: executors: transformations: corePoolSize: 10 # количество потоков трансформации **Конвертация** - частный случай трансформации, который подразумевает изменение содержимого из одного формата в другой. Для конвертации между типами документов используется OnlyOffice. OnlyOffice ------------ Настройки: .. code-block:: yaml ecos: integrations: onlyoffice: host: only-office-app # хост, на котором доступен сервер OnlyOffice port: 80 # http порт для работы с OnlyOffice Типы источников контента (input) -------------------------------- .. list-table:: :widths: 10 50 30 :header-rows: 1 :class: tight-table * - Идентификатор - Конфигурация - Описание * - **entity-content** - | **entityRef: String** // Сущность, из которой нужно загрузить контент | **attribute: String** // Атрибут с контентом. По умолчанию - основной контент документа - Загрузка контента из свойства документа * - **template** - | **entityRef: EntityRef** // ссылка на сущность, на основе которой будет вычислен шаблон | **templateRef: EntityRef** // ссылка на шаблон - Генерация содержимого на основе шаблона Типы трансформаций (transformations) ------------------------------------ .. list-table:: :widths: 10 50 30 :header-rows: 1 :class: tight-table * - Идентификатор - Конфигурация - Описание * - **convert** - | **converter: String** // идентификатор конкретного конвертера. Если не задан, то вычисляется автоматически | **toMimeType: String** // MIME type, содержимого, которое мы хотим получить по итогу конвертации - Конвертирование содержимого из одного MIME type в другой. * - **barcode** - | - Добавление баркода на документ Типы целей трансформации (output) --------------------------------- .. list-table:: :widths: 10 50 30 :header-rows: 1 :class: tight-table * - Идентификатор - Конфигурация - Описание * - **temp-file** - - Загрузка результата во временный файл. Как правило используется если результат требуется скачать. * - **mutate** - | **entityRef: EntityRef** // ссылка на мутируемую сущность | **attribute: String** // целевой атрибут для содержимого. По умолчанию **_content** | **additionalAttributes: Map** // дополнительные атрибуты для мутации - Выполнить мутацию с итоговым содержимым. Может быть использован как для создания новых сущностей, так и для изменения существующих. Общий вид конфигурации для трансформации ---------------------------------------- Общий вид описания трансформации состоит из трех частей: * **input** - описание источника контента; * **transformations** - список трансформаций в порядке очереди; * **output** - описание цели для итогового контента. Пример: 1. Берем основное содержимое у сущности emodel/anysrc@123-123-123; 2. Преобразовываем его в pdf; 3. Добавляем баркод; 4. Загружаем результат во временный файл. .. code-block:: json { "input": { "type": "entity-content", "config": { "entityRef": "emodel/anysrc@123-123-123" } }, "transformations": [ { "type": "convert", "config": { "toMimeType": "application/pdf" } }, { "type": "barcode" } ], "output": { "type": "temp-file" } } UI Действие ----------- Действие для трансформации описано в разделе UI действий с ID ``transform`` :ref:`здесь`