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

Структура и использование локализуемых ресурсов

Glossary Item Box

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

Начиная с версии 7.8.3, изменилось место хранения локализуемых ресурсов пакетов. В предыдущих версиях ресурсы хранились в таблице SysSchemaResource в виде BLOB-данных. Теперь локализуемые ресурсы хранятся в текстовом виде в таблице SysLocalizableValues.

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

ВАЖНО

В bpm'online версии 7.11.1 и выше изменился подход к работе с языковыми культурами. Теперь при работе в приложении используются только те культуры, для которых установлен признак [Активен]. Это повышает скорость выполнения многих задач, например, вход в систему, открытие страницы записи и т. д. Но при настройке системы в мастерах разделов и деталей, дизайнерах процессов и кейсов, а также в разделе [Переводы] используются все культуры, которые установлены в системе.

Хранение ресурсов

Структура хранения ресурсов

Для того чтобы появилась возможность создавать пакеты переводов, ресурсы были перемещены из схем в пакет (рис. 1). Для хранения ресурсов схем с одинаковыми именами, но с разными менеджерами, например Entity и ClientUnitSchema, в имена ресурсов пакета были добавлены имена менеджеров схем с отсечением префикса "SchemaManager".

Рис. 1. — Хранение ресурсов в пакете

Пакет может содержать ресурсы для схемы, которая определена в другом пакете. Кроме того, пакет может содержать только ресурсы и не содержать схем (так называемый "пакет перевода").

Таблица SysLocalizableValue

Ресурсы хранятся в таблице SysLocalizableValue для каждой локализованной строки или изображения. Каждая запись привязана к пакету и базовому идентификатору схемы. Основные поля таблицы SysLocalizableValue приведены в таблице 1.

Табл. 1. — Основные поля таблицы SysLocalizableValue

Название колонки Описание
Id Идентификатор записи.
ImageData Значение графического ресурса.
IsChanged Признак, свидетельствующий о том, что ресурс был изменен пользователем.
Key Ключ ресурса.
ResourceManager Название менеджера ресурсов. Заполняется только для ресурсов ядра.
ResourceType Тип ресурса.
SysCultureId Идентификатор культуры.
SysPackageId Идентификатор пакета.
SysSchemaId Идентификатор базовой схемы. Заполняется только для ресурсов конфигурации.
Value Значение строкового ресурса.

Импорт и экспорт схем

В связи с изменением механизма хранения ресурсов также изменился формат хранения ресурсов в экспортированных схемах. Теперь ресурсы в экспортированных схемах хранятся в формате XML.

Работа с локализуемыми ресурсами

Обновление пакета из хранилища

Благодаря использованию нового механизма хранения ресурсов во время обновления пакета отображаются все изменения локализуемых ресурсов (рис. 2).

Рис. 2. — Отображение ресурсов при обновлении пакета

Возможные состояния ресурсов:

  • [Изменено] — ресурс был изменен.
  • [Добавлено] — добавлен новый ресурс.
  • [Удалено] — ресурс удален.
  • [Конфликт] — ресурс был изменен и залит в SVN в то время, когда с ним работал другой разработчик.

Фиксация пакета в хранилище

В процессе фиксации пакета в хранилище также отображаются все изменения локализуемых ресурсов (рис. 3).

Рис. 3. — Отображение ресурсов при фиксации пакета

Конфликты при обновлении и фиксации пакетов

При работе с ресурсами нет возможности их блокировать из приложения. В случае если разработчик меняет ресурсы схемы, а при попытке фиксации выясняется, что пакет уже изменен и в нем были изменены эти же ресурсы, то при обновлении отобразится список ресурсов с состоянием [Конфликт] (рис. 4). Это означает что версия и содержимое ресурсов, измененных разработчиком, не совпадают с той версией и содержимым, которые зафиксированы в SVN. И при следующей фиксации изменения, внесенные разработчиком, перекроют те изменения, которые были зафиксированы в SVN. Такие конфликтные ситуации необходимо решать вручную, используя SVN-клиенты, например, Tortoise.

Рис. 4. — Отображение конфликтов при обновлении пакета

Редактирование ресурсов из файловой системы.

Начиная с версии 7.8.3 появилась возможность редактирования ресурсов напрямую. Для этого необходимо выгрузить их в файловую систему, используя, например, Tortoise, а затем внести изменения и зафиксировать в SVN.

ВАЖНО

Для каждого значения ресурса в таблице SysLocalizableValue существует только одна запись с соответствующими ссылками на SysPackageId, SysSchemaId, SysCultureId и конкретным значением Key. Поэтому при фиксации ресурса с состоянием [Конфликт] в таблице будет записано последнее значение.

Обновление ресурсов прямым SQL-запросом в базу данных

При изменении значения в таблице SysLocalizableValue SQL-запросом необходимо также изменить значение колонки IsChanged в таблице SysPackageResourceChecksum для соответствующей схемы. В противном случае при обновлении пакета в приложении не будет обнаружена конфликтная ситуация.

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

© Terrasoft 2002-2019.

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

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