Например у Активности есть поле Участок (справочник) и у Контакта есть такое поле Участок. Нужно чтобы Активность загружалась если её участок совпадает с участком указанным в Активности
Здравствуйте.
Вы пишите "Нужно чтобы Активность загружалась если её участок совпадает с участком указанным в Активности" - это как понимать?
Опишите пожалуйста детальней - что ожидается увидеть на выходе. какой бизнес-кейс решается?
Есть Пользователь П1 (торговый представитель), с ним связан Контакт К1, у которого есть кастомное поле Участок (типа справочник) со значением У1. Есть задачки (простите Активности!) З1, З2, ...., З99999, у которых кроме всего прочего так же есть кастомное поле Участок из того же справочника. Так вот если нет надобности грузить 99999 задачек, а только те у которых поля Участок совпадают с одноименным полем Контакта, то как построить данный фильтр типа Пользователь.Контакт.Участок = Задачка.Участок.
Понимаю, что для Активности можно обойтись корректной настройкой прав доступа. Но для интеграции деталей (на которые не хочется включать права доступа) такой механизм удобнее.
В етом случае Вас тоит вносить код в секцию ModelDataImportConfig Манифеста мобильного приложения.
Пример фильтрации данных для загрузки описан в документе, приведенном Вами выше:
Активность. Загружаются все колонки. Выполняется фильтрация модели - загружаются только те активности, у которых участником является текущий пользователь.
Николай, спасибо за Ваши ответы, но к сожалению нужной информации в них нет, возможно потому, что я плохо изложил задачу.
Нужно понимание как сделать фильтры по полям и в левой и в правой части выражения сравнения, что-то типа (ActivityAccount - деталь Контрагенты в Активностях):
В Вашем случае необходимо применить вариант решения с использоваием view
1. Создать View (например VwActivityAreaByContactArea) с колонками Активности и Контакта
2. Добавить в конфигурацию скрипт (Подразумевается колонка Участок = Area) и установить
------------------------------------------------------------------------
IF EXISTS (SELECT 1 FROM sys.views WHERE name = 'VwActivityAreaByContactArea')
DROP VIEW dbo.VwActivityAreaByContactArea
go
------------------------------------------------------------------------
CREATE VIEW dbo.VwActivityAreaByContactArea AS
SELECT
a.Id,
a.CreatedOn,
a.CreatedById,
a.ModifiedOn,
a.ModifiedById,
a.ProcessListeners,
a.Id as ActivityId,
c.Id as ContactId
FROM Activity a
JOIN Contact c ON c.Area = a.Area
Where c.Area <> ''
Извините за некропостинг, но может найдется кто, чтобы немного мне объяснить.
Мне надо отфильтровать Обращения, по состоянию, которые НЕ закрыты. Или хотя бы для примера SolutionOverdue, который означает "закрытие".
Добавляю в манифест фильтр:
"SyncFilter":{"property":"Status",
// Название модели, для которой выполняется фильтрация.//"modelName": "Case",// Колонка связанной модели, по которой осуществляется связь с основной моделью.//"assocProperty": "Id",//"operation": "Terrasoft.FilterOperations.Any","compareType":"Terrasoft.ComparisonType.NotEqual",
//"value": {//"value": "3e7f420c-f46b-1410-fc9a-0050ba5d6c38",//"displayValue": "Закрыт"}"value":"3e7f420c-f46b-1410-fc9a-0050ba5d6c38"},
Пробовал и так и сяк, при синхронизации в мобиле выдает ошибку.
Пробовал еще такой фильтр:
В данном случае ошибок при синхронизации не выдает, но и он тупо не работает.
Подскажите что не так делаю, и вообще объясните моменты с modelName и assocProperty - для чего эти значения. Коммент в примере совсем не понятно что имеется ввиду.
Пробовал и так и сяк, при синхронизации в мобиле выдает ошибку.
Пробовал еще такой фильтр:
"SyncFilter": {
"type:" "Terrasoft.FilterTypes.Simple",
"property": "SolutionOverdue",
"compareType": "Terrasoft.ComparisonType.Equal",
"value": true
},
В данном случае ошибок при синхронизации не выдает, но и он тупо не работает.
Подскажите что не так делаю, и вообще объясните моменты с modelName и assocProperty - для чего эти значения. Коммент в примере совсем не понятно что имеется ввиду.
Добрый день, Илья!
Примеры описаны для версии 7.6.
Уточните, пожалуйста, версию системы и мобильного приложения.
Пробовал и так и сяк, при синхронизации в мобиле выдает ошибку.
Пробовал еще такой фильтр:
"SyncFilter": {
"type:" "Terrasoft.FilterTypes.Simple",
"property": "SolutionOverdue",
"compareType": "Terrasoft.ComparisonType.Equal",
"value": true
},
В данном случае ошибок при синхронизации не выдает, но и он тупо не работает.
Подскажите что не так делаю, и вообще объясните моменты с modelName и assocProperty - для чего эти значения. Коммент в примере совсем не понятно что имеется ввиду.
Добрый день, Илья!
Примеры описаны для версии 7.6.
Уточните, пожалуйста, версию системы и мобильного приложения.
7.8
Я уже сделал, но через модуль, создал с именем UsrMobileCaseModelConfig со след кодом: