Описывает параметры для настройки синхронизации данных. Содержит конфигурационный объект со свойствами, представленными в таблице.
Свойства конфигурационного объекта для настроек синхронизации
Количество страниц, импортируемых в одном потоке.
Количество потоков импорта.
Массив импортируемых системных настроек.
Массив импортируемых системных справочников.
Массив моделeй, для которых будут загружаться данные при синхронизации.
В массиве моделeй ModelDataImportConfig для каждой модели можно указать дополнительные параметры синхронизации, список загружаемых колонок, а также условия фильтрации загружаемых данных модели. Если при синхронизации должна загружаться полная модель, в массиве просто указывается объект с именем модели. Если к модели должны применяться дополнительные условия при синхронизации, в массив ModelDataImportConfig добавляется конфигурационный объект со свойствами.
Свойства конфигурационного объекта для настройки синхронизации модели
Название модели (см. свойство Models конфигурационного объекта манифеста).
Массив колонок модели, для которых импортируются данные. Помимо явно перечисленных колонок, при синхронизации в обязательном порядке будут импортироваться системные колонки (CreatedOn, CreatedBy, ModifiedOn, ModifiedBy) и колонка, первичная для отображения.
Фильтр, накладываемый на модель при импорте модели.
Фильтр SyncFilter, накладываемый на модель при импорте модели представляет собой конфигурационный объект со свойствами.
Свойства конфигурационного объекта фильтра модели
Тип фильтра. Задается значением перечисления Terrasoft.FilterTypes. Необязательное свойство. По умолчанию Terrasoft.FilterTypes.Simple.
Simple | фильтр с одним условием |
Group | групповой фильтр с несколькими условиями |
Логическая операция объединения коллекции фильтров (для фильтров с типом Terrasoft.FilterTypes.Group). Задается значением перечисления Terrasoft.FilterLogicalOperations. Значение по умолчанию - Terrasoft.FilterLogicalOperations.And.
Or | логическая операция ИЛИ |
And | логическая операция И |
Коллекция фильтров, применяемых к модели. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Group. Фильтры между собой объединяются логической операцией, указанной в свойстве logicalOperation. Каждый фильтр представляет собой конфигурационный объект фильтра.
Название колонки модели, по которой выполняется фильтрация. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple.
Признак, определяющий, является ли значение для фильтрации макросом. Необязательное свойство. Может принимать значения: true, если для фильтрации используется макрос, иначе — false.
Значение для фильтрации колонки, указанной в свойстве property. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple. Может задаваться непосредственно значением для фильтрации (в том числе, может быть null) либо макросом (для этого свойство valueIsMacrosType должно иметь значение true). Макросы, которые можно использовать в качестве значения свойства, содержатся в перечислении Terrasoft.ValueMacros.
CurrentUserContactId | идентификатор текущего пользователя |
CurrentDate | текущая дата |
CurrentDateTime | текущие дата и время |
CurrentDateEnd | полная дата окончания текущей даты |
CurrentUserContactName | имя текущего контакта |
CurrentUserContact | идентификатор и имя текущего контакта |
SysSettings | значение системной настройки. Имя системной настройки передается в свойстве macrosParams |
CurrentTime | текущее время |
CurrentUserAccount | идентификатор и имя контрагента текущего пользователя |
GenerateUId | сгенерированный идентификатор |
Значения, которые передаются в макрос в качестве параметра. Необязательное свойство. В настоящее время используется только для макроса Terrasoft.ValueMacros.SysSettings.
Определяет, применяется к фильтру оператор отрицания. Необязательное свойство. Принимает значение true, если к фильтру применяется оператор отрицания, иначе — false.
Тип функции, которая применяется к колонке модели, заданой в свойстве property. Необязательное свойство. Может принимать значения перечисления Terrasoft.FilterFunctions. Значения аргументов для функций фильтрации задаются в свойстве funcArgs. Значение, с которым сравнивается результат функции, задается свойством value.
SubStringOf | определяет, является ли строка, переданная в качестве аргумента, подстрокой колонки property |
ToUpper | приводит значения колонки, заданной в property, к верхнему регистру |
EndsWith | проверяет, оканчивается ли значение колонки property значением, переданным в качестве аргумента |
StartsWith | проверяет, начинается ли значение колонки property значением, переданным в качестве аргумента |
Year | возвращает год по значению колонки property |
Month | возвращает месяц по значению колонки property |
Day | возвращает день по значению колонки property |
In | проверяет вхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции |
NotIn | проверяет невхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции |
Like | определяет, совпадает ли значение колонки property с заданным шаблоном |
Массив значений аргументов для функции фильтрации, заданной в свойстве funcType. Порядок значений в массиве funcArgs должен соответствовать порядку параметров функции funcType.
Имя фильтра или группы фильтров. Необязательное свойство.
Название модели, для которой выполняется фильтрация. Необязательное свойство. Указывается, если фильтрация выполняется по колонкам связанной модели.
Колонка связанной модели, по которой осуществляется связь с основной моделью. В качестве колонки для связи у основной модели выступает первичная колонка.
Тип операции фильтрации. Необязательный параметр. Может принимать значения из перечисления Terrasoft.FilterOperation. По умолчанию имеет значение Terrasoft.FilterOperation.General.
General | стандартная фильтрация |
Any | фильтрация с применением фильтра exists |
Тип операции сравнения в фильтре. Необязательный параметр. Принимает значения из перечисления Terrasoft.ComparisonType. По умолчанию — Terrasoft.ComparisonType.Equal.
Equal | равно |
LessOrEqual | меньше или равно |
NotEqual | не равно |
Greater | больше |
GreaterOrEqual | больше или равно |
Less | меньше |
Свойство SyncOptions.ModelDataImportConfig.QueryFilter
Доступно в приложении, начиная с версии 7.12.1, и в мобильном приложении, начиная с версии 7.12.3.
Свойство синхронизации QueryFilter позволяет настроить фильтрацию данных указанной модели при импорте с помощью сервиса работы с данными DataService. Ранее для фильтрации данных использовалось свойство SyncFilter, а импорт выполнялся с помощью сервиса работы с данными OData.
Формат фильтра QueryFilter представляет собой набор параметров в виде JSON-объекта, передаваемых в запросе к сервису работы с данными DataService.
При просмотре страницы раздела мобильного приложения Creatio на планшете по умолчанию срабатывает режим отображения реестра раздела в левой области экрана.
Реализация примера
Для отображения страницы раздела во весь экран необходимо внести изменения в манифест мобильного приложения, добавив в него свойство TabletViewMode со значением "SinglePage".
После сохранения схемы и перезагрузки мобильного приложения страница раздела на планшете будет отображаться во весь экран.
Для добавления детали в раздел мобильного приложения Creatio необходимо использовать мастер мобильного приложения.
Однако, если объект детали не является объектом какого-либо раздела мобильного приложения Creatio, то на странице детали вместо значений будет отображаться идентификатор связанной записи раздела. Для отображения значений необходимо выполнить конфигурирование схемы страницы детали.
Алгоритм реализации примера
1. Добавить деталь Карьера с помощью мастера мобильного приложения
Чтобы добавить деталь на страницу записи, используйте мастер мобильного приложения. Для этого:
- Откройте нужное рабочее место, например, Основное рабочее место (Main workplace) и нажмите кнопку Настроить разделы (Set up sections).
- Выберите раздел Контакты и нажмите кнопку Настроить детали (Details setup).
- Настройте деталь Карьера (Job experience).
После сохранения результатов настройки детали, раздела и рабочего места в мобильном приложении отобразится деталь Карьера (Job experience).
Однако, поскольку объект детали Карьера не является объектом раздела мобильного приложения Creatio, то на странице детали отображается значение основной колонки Контакт (идентификатор связанной записи контакта).
2. Создать схему модуля, в которой выполнить конфигурирование реестра детали
В разделе Конфигурация приложения Creatio в пользовательском пакете создайте клиентский модуль со следующими свойствами:
- Заголовок (Title) — "Настройки карьеры контакта" ("Contact Career Configuration").
- Название (Name) — "UsrContactCareerModuleConfig".
Добавьте в схему модуля исходный код.
Здесь:
- ContactCareer — название таблицы, которая соответствует детали (как правило оно совпадает с названием объекта детали).
- Job Title — название колонки, которую требуется отобразить на странице.
3. Подключить схему модуля в манифесте мобильного приложения
Для применения настроек реестра детали, выполненный в модуле UsrContactCareerModuleConfig, выполните следующие шаги:
- Откройте в дизайнере клиентского модуля схему манифеста мобильного приложения MobileApplicationManifestDefaultWorkplace. Эта схема создается в пользовательском пакете мастером мобильного приложения.
- Добавьте модуль UsrContactCareerModuleConfig в секцию PagesExtensions модели ContactCareer.
- Сохраните схему манифеста мобильного приложения.
В результате выполнения примера на странице детали Карьера (Job experience) будут отображаться записи по колонке Должность.
В приложении версии 7.10.3 (версия 7.10.5 мобильного приложения) добавлена поддержка итогов в мобильном приложении. Для получения настроек и данных итогов используется сервис AnalyticsService. Поддерживаются следующие дашборды — график, показатель, список и шкала.
Для добавления пользовательского типа дашборда в мобильное приложение необходимо:
- Реализовать интерфейс настройки дашборда в приложении Creatio.
- Добавить экземпляр реализованного пользовательского дашборда в приложение.
- Реализовать отображение дашборда в мобильном приложении.
Чтобы пользовательский тип дашборда отображался в мобильном приложении необходимо:
- Реализовать получение данных пользовательского типа дашборда.
- Добавить реализацию отображения дашборда в мобильном приложении.
Алгоритм реализации примера
1. Реализация получения данных пользовательского типа дашборда
Чтобы осуществить получение данных каждого пользовательского типа дашборда необходимо создать класс, который должен реализовать интерфейс IDashboardItemData или наследоваться от базового класса BaseDashboardItemData. Также для этого класс должен быть декорирован атрибутом DashboardItemData. Для реализации класса необходимо в пользовательский пакет добавить схему Исходный код.
Реализовать класс получения данных для пользовательского типа дашборда CustomDashboardItem.
2. Реализация отображения пользовательского типа дашборда
2.1. Добавить класс отображения данных
Для этого необходимо в пользовательском пакете создать клиентский модуль (например, UsrMobileCustomDashboardItem). В созданном модуле необходимо реализовать класс, расширяющий базовый класс Terrasoft.configuration.controls.BaseDashboardItem.
2.2. Добавить новый тип и реализующий его класс в перечисление Terrasoft.DashboardItemClassName
Для этого в модуле, созданном на предыдущем шаге, необходимо добавить исходный код.
2.3. Добавить название созданной клиентской схемы в манифест мобильного приложения
В файле манифеста мобильного приложения необходимо в массив CustomSchemas добавить название созданной схемы модуля.
После сохранения всех изменений дашборд будет отображаться в разделе Итоги мобильного приложения.
Алгоритм реализации примера
1. Создать пользовательский класс-наследник Terrasoft.RecordPanelItem
В разделе Конфигурация приложения Creatio в пользовательском пакете создайте клиентский модуль со следующими свойствами:
- Заголовок (Title) — "Класс пользовательского элемента управления" ("Custom control class").
- Название (Name) — "UsrCustomRecordPanelItem".
В модуль добавьте исходный код.
В классе описан конфигурационный объект созданного элемента управления и два метода:
- initialize() - метод-обработчик события нажатия кнопки;
- onClickMeButtonClick() - метод, который инициализует созданный элемент и присваивает событию нажатия на кнопку ссылку на метод-обработчик.
2. Создать схему модуля, в которой выполнить конфигурирование страницы раздела
В разделе Конфигурация приложения Creatio в пользовательском пакете создайте клиентский модуль со следующими свойствами:
- Заголовок (Title) — "Конфигурация раздела контактов" ("Contact module config").
- Название (Name) — "UsrMobileContactModuleConfigDefaultWorkplace".
Добавьте в схему модуля исходный код.
Здесь вызывается метода addPanelItem() класса Terrasoft.sdk.RecordPage, с помощью которого созданный элемент добавляется на страницу раздела.
3. Подключить схемы модулей в манифесте мобильного приложения
Для применения настроек страницы раздела, выполненных в модуле UsrMobileContactModuleConfigDefaultWorkplace, выполните следующие шаги:
- Откройте в дизайнере клиентского модуля схему манифеста мобильного приложения MobileApplicationManifestDefaultWorkplace. Эта схема создается в пользовательском пакете мастером мобильного приложения.
- Добавьте модуль UsrCustomRecordPanelItem в секцию CustomSchemas, а модуль UsrContactCareerModuleConfig в секцию PagesExtensions модели Contact.
- Сохраните схему манифеста мобильного приложения.
В результате выполнения примера на странице контакта появится элемент управления, при нажатии на который отобразится сообщение с полным именем контакта.
Модули мобильного приложения. Модуль представляет собой раздел приложения. Каждый модуль в свойстве Modules конфигурационного объекта манифеста описывается конфигурационным объектом со свойствами, приведенными в таблице. Имя конфигурационного объекта раздела должно совпадать с названием модели, которая предоставляет данные раздела.
Свойства конфигурационного объекта
Группа меню приложения, в которой размещается раздел. Задается строкой с названием соответствующего раздела меню из свойства ModuleGroups конфигурационного объекта манифеста.
Название модели, которая предоставляет данные раздела. Задается строкой с названием одной из моделей, объявленных в свойстве Models конфигурационного объекта манифеста.
Позиция раздела в группе главного меню. Задается числовым значением, начиная с 0.
Заголовок раздела. Строка с названием локализованного значения заголовка раздела. Локализованное значение заголовка раздела должно быть добавлено в блок LocalizableStrings схемы манифеста.
Свойство, предназначенное для подключения пользовательского изображения к разделу в меню пользовательского интерфейса версии 1.
Свойство, предназначенное для подключения пользовательского изображения к разделу в меню пользовательского интерфейса версии 2.
Признак, отображается ли данный раздел в меню (true — скрыт, false — отображается). Необязательное свойство. По умолчанию — false.
Свойство предназначено для подключения к мобильному приложению пользовательских изображений.
Задается массивом конфигурационных объектов, каждый из которых имеет свойства, приведенные в таблице.
Свойства предназначены для установки уникальных идентификаторов изображений по умолчанию для вновь создаваемых разделов или для разделов, у которых не указаны идентификаторы изображений в свойствах Icon или IconV2 свойства Modules конфигурационного объекта манифеста.
Содержит импортируемые модели приложения. Каждая модель в свойстве описывается конфигурационным объектом с соответствующим именем. Свойства конфигурационного объекта модели представлены в таблице.
Свойства конфигурационного объекта
Название схемы страницы реестра модели. Cтраница будет сгенерирована автоматически с именем Mobile[Название_модели][Тип_страницы]Page. Не обязателен для заполнения.
Название схемы страницы просмотра элемента модели. Cтраница будет сгенерирована автоматически с именем Mobile[Название_модели][Тип_страницы]Page. Не обязателен для заполнения.
Название схемы страницы элемента модели. Cтраница будет сгенерирована автоматически с именем Mobile[Название_модели][Тип_страницы]Page. Не обязателен для заполнения.
Названия моделей, от которых зависит данная модель. Необязательное свойство. Здесь перечисляются все модели, колонки которых добавляются в текущую модель, а также колонки, на которые у текущей модели есть внешние ключи.
Расширения модели. Необязательное свойство. Представляет собой массив названий схем, в которых реализуются дополнительные настройки для модели (например, добавление в модель бизнес-правил, событий, значений по умолчанию для полей и т.д.).
Расширения страниц модели. Необязательное свойство. Представляет собой массив названий схем, в которых реализуются дополнительные настройки для различных типов страниц модели (добавление деталей, установка заголовков и т.д.).
Свойство предназначено для явного определения операции, которая будет использоваться при поиске и фильтрации данных в реестре (в разделах, деталях, справочниках). Значение для свойства задается перечислением Terrasoft.FilterFunctions.
Функции фильтрации (Terrasoft.FilterFunctions)
Определяет, является ли строка, переданная в качестве аргумента, подстрокой колонки property.
Приводит значения колонки, заданной в property, к верхнему регистру.
Проверяет, оканчивается ли значение колонки property значением, переданным в качестве аргумента.
Проверяет, начинается ли значение колонки property значением, переданным в качестве аргумента.
Возвращает год по значению колонки property.
Возвращает месяц по значению колонки property.
Возвращает день по значению колонки property.
Проверяет вхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции.
Проверяет невхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции.
Определяет, совпадает ли значение колонки property с заданным шаблоном.
Если данное свойство явно не инициализировано в манифесте, то по умолчанию для поиска и фильтрации данных используется функция Terrasoft.FilterFunctions.StartWith, так как это обеспечивает использование соответствующих индексов в таблицах базы данных SQLite.
Свойство предназначено для подключения к мобильному приложению дополнительных схем (пользовательских схем с исходным кодом, написанным на JavaScript), расширяющих возможности приложения. Это могут быть, например, дополнительные классы, реализованные разработчиком в рамках проекта, либо утилитные классы, реализующие служебную функциональность, упрощающую работу разработчика, и т.д.
Значение свойства задается массивом с именами подключаемых пользовательских схем.
Описывает параметры для настройки синхронизации данных. Содержит конфигурационный объект со свойствами, представленными в таблице.
Свойства конфигурационного объекта для настроек синхронизации
Количество страниц, импортируемых в одном потоке.
Количество потоков импорта.
Массив импортируемых системных настроек.
Массив импортируемых системных справочников.
Массив моделeй, для которых будут загружаться данные при синхронизации.
В массиве моделeй ModelDataImportConfig для каждой модели можно указать дополнительные параметры синхронизации, список загружаемых колонок, а также условия фильтрации загружаемых данных модели. Если при синхронизации должна загружаться полная модель, в массиве просто указывается объект с именем модели. Если к модели должны применяться дополнительные условия при синхронизации, в массив ModelDataImportConfig добавляется конфигурационный объект со свойствами.
Свойства конфигурационного объекта для настройки синхронизации модели
Название модели (см. свойство Models конфигурационного объекта манифеста).
Массив колонок модели, для которых импортируются данные. Помимо явно перечисленных колонок, при синхронизации в обязательном порядке будут импортироваться системные колонки (CreatedOn, CreatedBy, ModifiedOn, ModifiedBy) и колонка, первичная для отображения.
Фильтр, накладываемый на модель при импорте модели.
Фильтр SyncFilter, накладываемый на модель при импорте модели представляет собой конфигурационный объект со свойствами.
Свойства конфигурационного объекта фильтра модели
Тип фильтра. Задается значением перечисления Terrasoft.FilterTypes. Необязательное свойство. По умолчанию Terrasoft.FilterTypes.Simple.
Simple | Фильтр с одним условием. |
Group | Групповой фильтр с несколькими условиями. |
Логическая операция объединения коллекции фильтров (для фильтров с типом Terrasoft.FilterTypes.Group). Задается значением перечисления Terrasoft.FilterLogicalOperations. Значение по умолчанию - Terrasoft.FilterLogicalOperations.And.
Or | Логическая операция ИЛИ. |
And | Логическая операция И. |
Коллекция фильтров, применяемых к модели. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Group. Фильтры между собой объединяются логической операцией, указанной в свойстве logicalOperation. Каждый фильтр представляет собой конфигурационный объект фильтра.
Название колонки модели, по которой выполняется фильтрация. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple.
Признак, определяющий, является ли значение для фильтрации макросом. Необязательное свойство. Может принимать значения: true, если для фильтрации используется макрос, иначе — false.
Значение для фильтрации колонки, указанной в свойстве property. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple. Может задаваться непосредственно значением для фильтрации (в том числе, может быть null) либо макросом (для этого свойство valueIsMacrosType должно иметь значение true). Макросы, которые можно использовать в качестве значения свойства, содержатся в перечислении Terrasoft.ValueMacros.
CurrentUserContactId | Идентификатор текущего пользователя. |
CurrentDate | Текущая дата. |
CurrentDateTime | Текущие дата и время. |
CurrentDateEnd | Полная дата окончания текущей даты. |
CurrentUserContactName | Имя текущего контакта. |
CurrentUserContact | Идентификатор и имя текущего контакта. |
SysSettings | Значение системной настройки. Имя системной настройки передается в свойстве macrosParams. |
CurrentTime | Текущее время. |
CurrentUserAccount | Идентификатор и имя контрагента текущего пользователя. |
GenerateUId | Сгенерированный идентификатор. |
Значения, которые передаются в макрос в качестве параметра. Необязательное свойство. В настоящее время используется только для макроса Terrasoft.ValueMacros.SysSettings.
Определяет, применяется к фильтру оператор отрицания. Необязательное свойство. Принимает значение true, если к фильтру применяется оператор отрицания, иначе — false.
Тип функции, которая применяется к колонке модели, заданой в свойстве property. Необязательное свойство. Может принимать значения перечисления Terrasoft.FilterFunctions. Значения аргументов для функций фильтрации задаются в свойстве funcArgs. Значение, с которым сравнивается результат функции, задается свойством value.
SubStringOf | Определяет, является ли строка, переданная в качестве аргумента, подстрокой колонки property. |
ToUpper | Приводит значения колонки, заданной в property, к верхнему регистру. |
EndsWith | Проверяет, оканчивается ли значение колонки property значением, переданным в качестве аргумента. |
StartsWith | Проверяет, начинается ли значение колонки property значением, переданным в качестве аргумента. |
Year | Возвращает год по значению колонки property. |
Month | Возвращает месяц по значению колонки property. |
Day | Возвращает день по значению колонки property. |
In | Проверяет вхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции. |
NotIn | Проверяет невхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции. |
Like | Определяет, совпадает ли значение колонки property с заданным шаблоном. |
Массив значений аргументов для функции фильтрации, заданной в свойстве funcType. Порядок значений в массиве funcArgs должен соответствовать порядку параметров функции funcType.
Имя фильтра или группы фильтров. Необязательное свойство.
Название модели, для которой выполняется фильтрация. Необязательное свойство. Указывается, если фильтрация выполняется по колонкам связанной модели.
Колонка связанной модели, по которой осуществляется связь с основной моделью. В качестве колонки для связи у основной модели выступает первичная колонка.
Тип операции фильтрации. Необязательный параметр. Может принимать значения из перечисления Terrasoft.FilterOperation. По умолчанию имеет значение Terrasoft.FilterOperation.General.
General | Стандартная фильтрация. |
Any | Фильтрация с применением фильтра exists. |
Тип операции сравнения в фильтре. Необязательный параметр. Принимает значения из перечисления Terrasoft.ComparisonType. По умолчанию — Terrasoft.ComparisonType.Equal.
Equal | Равно. |
LessOrEqual | Меньше или равно. |
NotEqual | Не равно. |
Greater | Больше. |
GreaterOrEqual | Больше или равно. |
Less | Меньше. |
Свойство SyncOptions.ModelDataImportConfig.QueryFilter
Доступно в приложении, начиная с версии 7.12.1, и в мобильном приложении, начиная с версии 7.12.3.
Свойство синхронизации QueryFilter позволяет настроить фильтрацию данных указанной модели при импорте с помощью сервиса работы с данными DataService. Ранее для фильтрации данных использовалось свойство SyncFilter, а импорт выполнялся с помощью сервиса работы с данными OData.
Формат фильтра QueryFilter представляет собой набор параметров в виде JSON-объекта, передаваемых в запросе к сервису работы с данными DataService.