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

Манифест. Свойства синхронизации приложений

Glossary Item Box

Общие положения

Условная группа свойств конфигурационного объекта манифеста. Содержит единственное свойство, с помощью которого выполняются настройки синхронизации данных с основным приложением. Подробнее о манифесте мобильного приложения и всех его свойствах можно узнать в статье "Манифест мобильного приложения".

Свойство SyncOptions

Описывает параметры для настройки синхронизации данных. Содержит конфигурационный объект со свойствами, представленными в таблице 1.

Табл. 1. — Свойства конфигурационного объекта для настроек синхронизации.

Свойство Значение
ImportPageSize Количество страниц, импортируемых в одном потоке.
PagesInImportTransaction Количество потоков импорта.
SysSettingsImportConfig Массив импортируемых системных настроек.
SysLookupsImportConfig Массив импортируемых системных справочников.
ModelDataImportConfig Массив моделeй, для которых будут загружаться данные при синхронизации.

В массиве моделeй ModelDataImportConfig для каждой модели можно указать дополнительные параметры синхронизации, список загружаемых колонок, а также условия фильтрации загружаемых данных модели. Если при синхронизации должна загружаться полная модель, в массиве просто указывается объект с именем модели. Если к модели должны применяться дополнительные условия при синхронизации, в массив ModelDataImportConfig добавляется конфигурационный объект со свойствами, приведенными в таблице 2.

Табл. 2. — Свойства конфигурационного объекта для настройки синхронизации модели.

Свойство Значение
Name Название модели (см. свойство Models конфигурационного объекта манифеста).
SyncColumns Массив колонок модели, для которых импортируются данные. Помимо явно перечисленных колонок, при синхронизации в обязательном порядке будут импортироваться системные колонки (CreatedOn, CreatedBy, ModifiedOn, ModifiedBy) и колонка, первичная для отображения.
SyncFilter Фильтр, накладываемый на модель при импорте модели.

Фильтр SyncFilter, накладываемый на модель при импорте модели представляет собой конфигурационный объект со свойствами, представленными в таблице 3.

Табл. 3. — Свойства конфигурационного объекта фильтра модели.

Свойство Значение
type

Тип фильтра. Задается значением перечисления Terrasoft.FilterTypes. Необязательное свойство. По умолчанию Terrasoft.FilterTypes.Simple.

Типы фильтров (Terrasoft.FilterTypes):

Simple Фильтр с одним условием.
Group Групповой фильтр с несколькими условиями.
logicalOperation

Логическая операция объединения коллекции фильтров (для фильтров с типом Terrasoft.FilterTypes.Group). Задается значением перечисления Terrasoft.FilterLogicalOperations. Значение по умолчанию - Terrasoft.FilterLogicalOperations.And.

Виды логических операций (Terrasoft.FilterLogicalOperations):

Or Логическая операция ИЛИ.
And Логическая операция И.
subfilters Коллекция фильтров, применяемых к модели. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Group. Фильтры между собой объединяются логической операцией, указанной в свойстве logicalOperation. Каждый фильтр представляет собой конфигурационный объект фильтра.
property Название колонки модели, по которой выполняется фильтрация. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple.
valueIsMacrosType Признак, определяющий, является ли значение для фильтрации макросом. Необязательное свойство. Может принимать значения: true, если для фильтрации используется макрос, иначе — false.
value

Значение для фильтрации колонки, указанной в свойстве property. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple. Может задаваться непосредственно значением для фильтрации (в том числе, может быть null) либо макросом (для этого свойство valueIsMacrosType должно иметь значение true). Макросы, которые можно использовать в качестве значения свойства, содержатся в перечислении Terrasoft.ValueMacros.

Макросы значения (Terrasoft.ValueMacros):

CurrentUserContactId Идентификатор текущего пользователя.
CurrentDate Текущая дата.
CurrentDateTime Текущие дата и время.
CurrentDateEnd Полная дата окончания текущей даты.
CurrentUserContactName Имя текущего контакта.
CurrentUserContact Идентификатор и имя текущего контакта.
SysSettings Значение системной настройки. Имя системной настройки передается в свойстве macrosParams.
CurrentTime Текущее время.
CurrentUserAccount Идентификатор и имя контрагента текущего пользователя.
GenerateUId Сгенерированный идентификатор.
macrosParams Значения, которые передаются в макрос в качестве параметра. Необязательное свойство. В настоящее время используется только для макроса Terrasoft.ValueMacros.SysSettings.
isNot Определяет, применяется к фильтру оператор отрицания. Необязательное свойство. Принимает значение true, если к фильтру применяется оператор отрицания, иначе — false.
funcType

Тип функции, которая применяется к колонке модели, заданой в свойстве property. Необязательное свойство. Может принимать значения перечисления Terrasoft.FilterFunctions. Значения аргументов для функций фильтрации задаются в свойстве funcArgs. Значение, с которым сравнивается результат функции, задается свойством value.

Функции фильтрации (Terrasoft.FilterFunctions):

SubStringOf Определяет, является ли строка, переданная в качестве аргумента, подстрокой колонки property.
ToUpper Приводит значения колонки, заданной в property, к верхнему регистру.
EndsWith Проверяет, оканчивается ли значение колонки property значением, переданным в качестве аргумента.
StartsWith Проверяет, начинается ли значение колонки property значением, переданным в качестве аргумента.
Year Возвращает год по значению колонки property.
Month Возвращает месяц по значению колонки property.
Day Возвращает день по значению колонки property.
In Проверяет вхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции.
NotIn Проверяет невхождение значения колонки property в диапазон значений, переданных в качестве аргумента функции.
Like Определяет, совпадает ли значение колонки property с заданным шаблоном.
funcArgs Массив значений аргументов для функции фильтрации, заданной в свойстве funcType. Порядок значений в массиве funcArgs должен соответствовать порядку параметров функции funcType.
name Имя фильтра или группы фильтров. Необязательное свойство.
modelName Название модели, для которой выполняется фильтрация. Необязательное свойство. Указывается, если фильтрация выполняется по колонкам связанной модели.
assocProperty Колонка связанной модели, по которой осуществляется связь с основной моделью. В качестве колонки для связи у основной модели выступает первичная колонка.
operation

Тип операции фильтрации. Необязательный параметр. Может принимать значения из перечисления Terrasoft.FilterOperation. По умолчанию имеет значение Terrasoft.FilterOperation.General.

Операции фильтрации (Terrasoft.FilterOperation):

General Стандартная фильтрация.
Any Фильтрация с применением фильтра exists.
compareType

Тип операции сравнения в фильтре. Необязательный параметр. Принимает значения из перечисления Terrasoft.ComparisonType. По умолчанию — Terrasoft.ComparisonType.Equal.

Операции сравнения (Terrasoft.ComparisonType):

Equal Равно.
LessOrEqual Меньше или равно.
NotEqual Не равно.
Greater Больше.
GreaterOrEqual Больше или равно.
Less Меньше.

Пример

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

  1. Активность. Загружаются все колонки. Выполняется фильтрация модели - загружаются только те активности, у которых участником является текущий пользователь.
  2. Тип активности — загружается полная модель.

Свойство SyncOptions конфигурационного объекта манифеста должно выглядеть следующим образом:

// Настройки синхронизации.
"SyncOptions": {
    // Количество страниц, импортируемых в одном потоке.
    "ImportPageSize": 100,
    // Количество потоков импорта.
    "PagesInImportTransaction": 5,
    // Массив импортируемых системных настроек.
    "SysSettingsImportConfig": [
        "SchedulerDisplayTimingStart", "PrimaryCulture", "PrimaryCurrency", "MobileApplicationMode", "CollectMobileAppUsageStatistics", "CanCollectMobileUsageStatistics", "MobileAppUsageStatisticsEmail", "MobileAppUsageStatisticsStorePeriod", "MobileSectionsWithSearchOnly", "MobileShowMenuOnApplicationStart", "MobileAppCheckUpdatePeriod", "ShowMobileLocalNotifications", "UseMobileUIV2"
    ],
    // Массив импортируемых системных справочников.
    "SysLookupsImportConfig": [
        "ActivityCategory", "ActivityPriority", "ActivityResult", "ActivityResultCategory", "ActivityStatus", "ActivityType", "AddressType", "AnniversaryType", "InformationSource", "MobileApplicationMode", "OppContactInfluence", "OppContactLoyality", "OppContactRole", "OpportunityStage", "SupplyPaymentDelay", "SupplyPaymentState", "SupplyPaymentType"],
    // Массив моделeй, для которых будут загружаться данные при синхронизации.
    "ModelDataImportConfig": [
        // Конфигурирование модели Activity.
        {
            "Name": "Activity",
            // Фильтр, накладываемый на модель при импорте.
            "SyncFilter": {
                // Название колонки модели, по которой выполняется фильтрация.
                "property": "Participant",
                // Название модели, для которой выполняется фильтрация.
                "modelName": "ActivityParticipant",
                // Колонка связанной модели, по которой осуществляется связь с основной моделью.
                "assocProperty": "Activity",
                // Тип операции фильтрации.
                "operation": "Terrasoft.FilterOperations.Any",
                // Для фильтрации используется макрос.
                "valueIsMacros": true,
                // Значение для фильтрации колонки — идентификатор и имя текущего контакта.
                "value": "Terrasoft.ValueMacros.CurrentUserContact"
            },
            // Массив колонок модели, для которых импортируются данные.
            "SyncColumns": [
                "Title", "StartDate", "DueDate", "Status", "Result", "DetailedResult", "ActivityCategory", "Priority", "Owner", "Account", "Contact", "ShowInScheduler", "Author", "Type"
            ]
        },
        // Модель ActivityType загружается полностью.
        {
            "Name": "ActivityType",
            "SyncColumns": []
        }
    ]
}

Свойство SyncOptions.ModelDataImportConfig.QueryFilter

Доступно в приложении, начиная с версии 7.12.1, и в мобильном приложении, начиная с версии 7.12.3.

Свойство синхронизации QueryFilter позволяет настроить фильтрацию данных указанной модели при импорте с помощью службы DataService. Ранее для фильтрации данных использовалось свойство SyncFilter, а импорт выполнялся с помощью OData (EntityDataService)

ВАЖНО

Импорт данных с помощью службы DataService доступен только для платформ Android и iOS. Для платформы Windows используется OData (EntityDataService).

Формат фильтра QueryFilter представляет собой набор параметров в виде JSON-объекта, передаваемых в запросе к службе DataService. Описание параметров DataService можно найти в статье "DataService. Фильтрация данных" документации по разработке Creatio.

Пример exists-фильтра приведен ниже:

{
  "SyncOptions": {
     "ModelDataImportConfig": [
        {
           "Name": "ActivityParticipant",
           "QueryFilter": {
              "logicalOperation": 0,
              "filterType": 6,
              "rootSchemaName": "ActivityParticipant",
              "items": {
                 "ActivityFilter": {
                    "filterType": 5,
                    "leftExpression": {
                       "expressionType": 0,
                       "columnPath": "Activity.[ActivityParticipant:Activity].Id"
                    },
                    "subFilters": {
                       "logicalOperation": 0,
                       "filterType": 6,
                       "rootSchemaName": "ActivityParticipant",
                       "items": {
                          "ParticipantFilter":{
                             "filterType": 1,
                             "comparisonType": 3,
                             "leftExpression": {
                                "expressionType": 0,
                                "columnPath": "Participant"
                             },
                             "rightExpression": {
                                "expressionType": 1,
                                "functionType": 1,
                                "macrosType": 2
                             }
                          }
                       }
                    }
                 }
              }
           }
        }
     ] 
  }
}

Смотрите также

 

 

Смотрите также

© Terrasoft 2002-2020.

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

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