Манифест. Свойства синхронизации приложений
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):
|
||||||||||||||||||||
logicalOperation |
Логическая операция объединения коллекции фильтров (для фильтров с типом Terrasoft.FilterTypes.Group). Задается значением перечисления Terrasoft.FilterLogicalOperations. Значение по умолчанию - Terrasoft.FilterLogicalOperations.And. Виды логических операций (Terrasoft.FilterLogicalOperations):
|
||||||||||||||||||||
subfilters | Коллекция фильтров, применяемых к модели. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Group. Фильтры между собой объединяются логической операцией, указанной в свойстве logicalOperation. Каждый фильтр представляет собой конфигурационый объект фильтра. | ||||||||||||||||||||
property | Название колонки модели, по которой выполняется фильтрация. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple. | ||||||||||||||||||||
valueIsMacrosType | Признак, определяющий, является ли значение для фильтрации макросом. Необязательное свойство. Может принимать значения: true, если для фильтрации используется макрос, иначе — false. | ||||||||||||||||||||
value |
Значение для фильтрации колонки, указанной в свойстве property. Обязательное свойство для типа фильтра Terrasoft.FilterTypes.Simple. Может задаваться непосредственно значением для фильтрации (в том числе, может быть null) либо макросом (для этого свойство valueIsMacrosType должно иметь значение true). Макросы, которые можно использовать в качестве значения свойства, содержатся в перечислении Terrasoft.ValueMacros. Макросы значения (Terrasoft.ValueMacros):
|
||||||||||||||||||||
macrosParams | Значения, которые передаются в макрос в качестве параметра. Необязательное свойство. В настоящее время используется только для макроса Terrasoft.ValueMacros.SysSettings. | ||||||||||||||||||||
isNot | Определяет, применяется к фильтру оператор отрицания. Необязательное свойство. Принимает значенние true, если к фильтру применяется оператор отрицания, иначе — false. | ||||||||||||||||||||
funcType |
Тип функции, которая применяется к колонке модели, заданой в свойстве property. Необязательное свойство. Может принимать значения перечисления Terrasoft.FilterFunctions. Значения аргументов для функций фильтрации задаются в свойстве funcArgs. Значение, с которым сравнивается результат функции, задается свойством value. Функции фильтрации (Terrasoft.FilterFunctions):
|
||||||||||||||||||||
funcArgs | Массив значений аргументов для функции фильтрации, заданной в свойстве funcType. Порядок значений в массиве funcArgs должен соответствовать порядку параметров функции funcType. | ||||||||||||||||||||
name | Имя фильтра или группы фильтров. Необязательное свойство. | ||||||||||||||||||||
modelName | Название модели, для которой выполняется фильтрация. Необязательное свойство. Указывается, если фильтрация выполняется по колонкам связанной модели. | ||||||||||||||||||||
assocProperty | Колонка связанной модели, по которой осуществляется связь с основной моделью. В качестве колонки для связи у основной модели выступает первичная колонка. | ||||||||||||||||||||
operation |
Тип операции фильтрации. Необязательный параметр. Может принимать значения из перечисления Terrasoft.FilterOperation. По умолчанию имеет значение Terrasoft.FilterOperation.General. Операции фильтрации (Terrasoft.FilterOperation):
|
||||||||||||||||||||
compareType |
Тип операции сравнения в фильтре. Необязательный параметр. Принимает значения из перечисления Terrasoft.ComparisonType. По умолчанию — Terrasoft.ComparisonType.Equal. Операции сравнения (Terrasoft.ComparisonType):
|
Пример
При синхронизации в мобильное приложение должны загружаться данные для таких моделей:
- Активность. Загружаются все колонки. Выполняется фильтрация модели - загружаются только те активности, у которых участником является текущий пользователь.
- Тип активности — загружается полная модель.
Свойство 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": [] } ] }