Добрый день, уважаемые коллеги!
Прошу оказать методическую помощь по правильным шагам при реализации нового бизнес-правила в мобильном приложении. Что имеется:
Задача - на страницу редактирования Активности в мобильном приложении добавить бизнес-правило (доступность). В какой схеме необходимо прописать новое бизнес-правило?
Есть образованные при настройке мастером мобильного приложения кастомные
MobileApplicationManifestFieldForceWorkplace и MobileActivityRecordPageSettingsFieldForceWorkplace.
Правильно ли я понимаю, что шаги должны быть следующие:
- Создать схему клиентского модуля, в которой прописать новое бизнес-правило. Схема должна расширить кастомную MobileActivityRecordPageSettingsFieldForceWorkplace? Как правильно связать новую схему с MobileActivityRecordPageSettingsFieldForceWorkplace?
- Подключить созданную схему модуля в манифесте мобильного приложения MobileApplicationManifestFieldForceWorkplace
И еще вопрос: в каком случае следует использовать классы бизнес-правил , а в каком пользовательские бизнес-правила.
Благодарю за помощь
Нравится
Вообще, бизнес-правила для разных разделов добавляют в схемы с названиями ...ModelConfig, вроде MobileActivityModelConfig. Например, в ней стандартно такое:
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Requirement,
triggeredByColumns: ['Number'],
position: 0
});
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Requirement,
triggeredByColumns: ['CommunicationType'],
position: 1
});
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Filtration,
triggeredByColumns: ['CommunicationType'],
position: 2,
filters: Ext.create('Terrasoft.Filter', {
type: Terrasoft.FilterTypes.Group,
subfilters: [
Ext.create('Terrasoft.Filter', {
property: 'UseforContacts',
value: true
}),
Ext.create('Terrasoft.Filter', {
property: 'Id',
funcType: Terrasoft.FilterFunctions.NotIn,
funcArgs: [Terrasoft.GUID.Twitter, Terrasoft.GUID.Facebook, Terrasoft.GUID.LinkedIn]
})
],
name: 'a4265c53-b393-4e16-be5f-ee0e5a7faa8c'
})
});
По базовым бизнес-правилам можно тут документацию с примерами почитать
https://academy.terrasoft.ru/documents/technic-sdkmob/7-16/biznes-pravila-mobilnogo-prilozheniya
А тут по кастомным
Базовые правила очень простые, и ничего особо сложного на них не сделаешь. Для сложной логики нужны уже пользовательские правила.
Бершеда Д. Н.,
Благодарю за информацию и помощь, но правильно ли я понимаю порядок работы со схемами для добавления бизнес-правила? Если нет возможности наследования, я должна создать клиентский модуль для своего бизнес-правила, который прописать в манифесте?
Вообще, бизнес-правила для разных разделов добавляют в схемы с названиями ...ModelConfig, вроде MobileActivityModelConfig. Например, в ней стандартно такое:
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Requirement,
triggeredByColumns: ['Number'],
position: 0
});
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Requirement,
triggeredByColumns: ['CommunicationType'],
position: 1
});
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
ruleType: Terrasoft.RuleTypes.Filtration,
triggeredByColumns: ['CommunicationType'],
position: 2,
filters: Ext.create('Terrasoft.Filter', {
type: Terrasoft.FilterTypes.Group,
subfilters: [
Ext.create('Terrasoft.Filter', {
property: 'UseforContacts',
value: true
}),
Ext.create('Terrasoft.Filter', {
property: 'Id',
funcType: Terrasoft.FilterFunctions.NotIn,
funcArgs: [Terrasoft.GUID.Twitter, Terrasoft.GUID.Facebook, Terrasoft.GUID.LinkedIn]
})
],
name: 'a4265c53-b393-4e16-be5f-ee0e5a7faa8c'
})
});
Зверев Александр,
Александр, спасибо за пояснения. Но никак не разберусь).
Имеется решение Sales Enterprise + Field Force. Цель изменить поведение стандартного бизнес-правила Активности заполнения Результата, применив сверху стандартного правила и внешнего пакета. Стандартное бизнес-правило прописано в MobileActivityModelConfig (пакет Mobile) - разрешать редактирование поля Result , если состояние активности имеет признак Конечное. Стандартное правило не именовано,т.е. просто отключить его нельзя
Есть FieldForceMobileActivityModelConfig (пакет FieldForceMobile), где изменяется стандартное бизнес-правило в отношении поля DetailedResult.
Есть MobileApplicationManifestFieldForceWorkplace (пакет FieldMobile), где для модели Activity прописаны "ModelExtensions":
["MobileActivityModelConfig" (стандартные правила),
"FieldForceMobileActivityModelConfig" (добавленные правила внешнего пакета)]
Есть MobileApplicationManifestFieldForceWorkplace (пакет Custom), создан автоматически с признаком «замещать родителя» да.
Создаю свой модуль UsrFieldForceMobileActivityModelConfig, где прописываю свое бизнес-правило, и затем в MobileApplicationManifestFieldForceWorkplace (пакет Custom), добавляю в "ModelExtensions" свой модуль UsrFieldForceMobileActivityModelConfig
И никак не могу добиться работы своего бизнес-правила (либо работает стандартное, либо ничего не работает :)). Т.е. каким образом можно переопределить стандартное неименованное бизнес-правило на свое?