Добрый день, уважаемые коллеги!
Прошу оказать методическую помощь по правильным шагам при реализации нового бизнес-правила в мобильном приложении. Что имеется:
Задача - на страницу редактирования Активности в мобильном приложении добавить бизнес-правило (доступность). В какой схеме необходимо прописать новое бизнес-правило?
Есть образованные при настройке мастером мобильного приложения кастомные
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
И никак не могу добиться работы своего бизнес-правила (либо работает стандартное, либо ничего не работает :)). Т.е. каким образом можно переопределить стандартное неименованное бизнес-правило на свое?