Всім привіт, дана стаття присвячена побудові бізнес логіки за допомогою бізнес правил в додатках типу Model – Driven app на платформі Microsoft PowerApps/Dynamics 365.
Давайте почнемо з відповіді на питання: що таке бізнес- логіка?
Ось, що каже нам Вікіпедія:
Бізнес логіка або доменна логіка — система зв’язків та залежностей елементів бізнес-даних та правил обробки цих даних відповідно до особливостей ведення окремої діяльності (бізнес-правил), яка встановлюється при розробці програмного забезпечення, призначеного для автоматизації цієї діяльності. Бізнес логіка описує бізнес-правила реального світу, які визначають способи створення, представлення та зміни даних. Бізнес логіка контрастує з іншими частинами програми, які мають відношення до низького рівня: управління базою даних, відображення інтерфейсу користувача, інфраструктура і т.д.
Бізнес-логіка визначається робочими процесами, відображається у впорядковані у часі задачі, структури інформаційних моделей та потоків даних від одного учасника робочих процесів (людини або програмного забезпечення) до іншого.
У відносно простих системах бізнес логіка визначається алгоритмами обробки даних відповідно до вимог предметної області, у більш складних системах бізнес-логіка переноситься на рівень даних (опис бізнес логіки), які у той чи інший спосіб визначають правила обробки даних.
Як ми бачимо бізнес правила є частиною бізнес логіки, тому правильно спочатку описати процес, візуалізувати його у вигляді блок схеми, вже коли ви впевнені, що весь процес виглядає завершеним ви можете переходити до створення бізнес правил в системі.
Що можуть робити бізнес правила?
- Встановити значення в полі
- Очистити значення в полі
- Встановити вимоги до поля
- Показати або сховати поля
- Увімкнути або вимкнути поле (lock/unlock)
- Перевірка даних і показ повідомлень про помилки
- Створення бізнес-рекомендацій на основі бізнес-аналітики.
З якими типами полів не працюють бізнес правила:
- Випадаючі списки з можливістю мультивибору (multiselect choice)
- Файл
Якщо вам нудно читати про якісь там описи процесів, а руки просто прагнуть вже понатискати кнопки на клавіатурі та миші, то давайте дивитись, як це виглядає в системі.
Перше, ми маємо з вами відкрити налаштування будь-якої таблиці в системі, оскільки бізнес правила – це частина блоку Customizations в таблицях Dataverse.

Важливо розуміти, що бізнес правила будуть застосовані виключно до полів в обраній вами таблиці, тобто якщо ми хочемо, щоб при оновленні даних в таблиці Контакти, оновились якісь дані в таблиці Компанії, то бізнес правила нам тут не допоможуть, для цього нам потрібні або Workflow або PowerAutomate Flow (але це вже, звісно, зовсім інша історія).
Давайте почнемо з опису кейсу, уявимо з вами, що в нас є потреба робити деякі поля на формі таблиці Контакту – обовʼязковими.
Нижче подивіться на вже працююче правило на формі таблиці Контакти.

Давайте спільно відтворимо цей кейс.
Наша умова: поле Посада (Job Title) має стати обовʼязковим за умови заповнення поля Компанія (Account name), якщо поле Компанія (Account name) пусте, Посада має бути необовʼязковим полем.
Створюємо нове бізнес правило

Давайте по крокам:
1. Треба дати нашому правилу зрозумілу назву, це дуже важливо, цим нехтувати не можна, оскільки уявіть у вас 20 правил створено і треба внести зміни в існуючу логіку, кожне правило відкривати, щоб зрозуміти, що воно робить, ще те задоволення.
2. Додайте опис
3. Оберіть Scope – тут треба трошки пояснити: обираючи конкретну форму, ви обмежуєте дію цього правила виключно в рамках обраної форми, всі форми або Entity – правило спрацює незалежно від конкретної форми.
4. Задайте умови спрацювання правила.
В моєму випадку я обираю умову, поле Назва компанії – оператор “Містить дані”.

5. Оберіть дії, які мають відбутись, якщо умова виконується.
Обираємо дію з типом “Встановити вимоги до поля” (Set Business Required) та задаємо поле та тип вимоги.


Задаємо, ще одну дію до умови, у гілку коли умова не виконується (для передбачення сценарію, якщо користувач очистив поле Компанія, щоб знялась вимога до поля).

6. Збережіть та активуйте правило
7. Протестуйте на записі в робочій системі.

Кейсів для яких використовуються бізнес правила насправді багато, це може бути, переніс значення з одного поля в інше, наприклад у вас 2 поля з Контактною особою, ви можете за умови наявності контакту в першому полі, перенести значення в друге.
Іноді розмістивши текстове поле на формі ви можете за допомогою бізнес правил комунікувати з користувачем вписавши туди різні текстові повідомлення, в залежності від умови.
Важливий нюанс: всі поля які ви використовуєте в бізнес правилі, мають знаходитись на формі, інакше ви можете зіткнутись з непрацюючим бізнес правилом.
В цьому звʼязку винесіть поля на форму та приховайте їх, якщо непотрібно показувати ці поля користувачеві.

Багато нюансів описано в офіційній документації від Майкрософт, рекомендую ознайомитись.
https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-create-business-rule
Якщо вам цікава тема бізнес логіки та її можливості, ділюсь наступним посиланням.
https://learn.microsoft.com/en-us/power-apps/maker/data-platform/processes
P.S. Якщо у вас є труднощі з читанням документації англійською, користуйтесь вбудованим перекладачем в браузері, ну і звісно вчіть англійську)
