Створення обчислюваних полів для автоматизації ручних розрахунків

Цей розділ стосується Dynamics 365 Customer Engagement (on-premises). Версію цього розділу для Power Apps див. за посиланням: Визначення обчислюваних полів для автоматизації обчислень вручну

Обчислювані поля дають змогу автоматизувати обчислення, що раніше виконувалися в бізнес-процесах вручну. Наприклад, продавець, можливо, захоче знати зважений прибуток від потенційної угоди, який визначається як прогнозований прибуток від потенційної угоди помножений на ймовірність. Або він може захотіти, щоб знижка застосовувалась автоматично, якщо сума замовлення перевищує 500 грн. Обчислюване поле може містити значення, отримані в результаті виконання простих математичних операцій або умовних операцій, таких як «Більше ніж» або «Якщо, то», і багато інших. Усе це можна виконати за допомогою функції обчислюваних полів; немає необхідності писати код.

Обчислені можливості поля:

  • Обчислювані поля містять обчислення, які використовують поля з поточної сутності або пов’язаних батьківських сутностей.

  • Підтримка виразів доступна для поточної сутності та пов’язаних із нею батьківських полів у розділах «Умова» та « Дія ». Вбудовано такі функції:

    ADDHOURS,ADDDAYS,ADDWEEK,ADDMONTH,ADDYEARS,SUBTRACTHOURS,SUBTRACTDAYS,SUBTRACTWEEK,SUBTRACTMONTH,SUBTRIMYEARS,DIFFINDAYS,DIFFINHOURS,DIFFINMINUTES,DIFFINMONTH,DIFFINWEEKS,DIFFINYEARS,CONCAT,TRIMLEFTі TRIMRIGHT.

  • Широка підтримка умовних операторів дає змогу використовувати розгалуження та декілька умов. До логічних операцій належать оператори AND та OR .

  • Можливості візуального редагування включають сучасний інтерфейс користувача та intellisense у розділі ДІЯ .

  • Прозора інтеграція обчислюваних полів з формами, поданнями, діаграмами та звітами доступна в режимі реального часу.

  • Якщо ви оновили онлайн-організацію до оновлення за Dynamics 365 (online) грудень 2016 р., можна настроїти обчислювані поля для використання настроюваних елементів керування.

Кілька прикладів обчислюваних полів

  • Зважений прибуток — прогнозований прибуток, помножений на ймовірність.

  • Чиста вартість активів: активи за винятком зобов’язань для певного рахунку

  • Вартість праці: базова ставка, помножена на 40 годин, з додаванням додаткових понаднормових

  • Контактний телефон: номер телефону для потенційної угоди, що визначається на основі бізнес-партнера або контактної особи

  • Оцінка інтересу: одне поле, що дає змогу оцінити якість певного інтересу

  • Доповнити: подальші дії у зв’язку зі справою через указану кількість днів, залежно від пріоритету

Важливо

Для створення обчислюваного поля потрібне право на записування в сутності «Профіль безпеки поля». Якщо в обчислюваному полі під час розрахунків використовуються захищені поля, слід передбачити належний рівень безпеки, а також запобігти отриманню користувачами доступу до даних, для використання яких їм не вистачає дозволів. Якщо створити обчислюване поле, у якому під час розрахунків використовуються захищені поля, редактор обчислюваного поля генерує попередження й пропонує захистити обчислюване поле. Додаткові відомості: Безпека на рівні поля.

Приклади обчислюваних полів

Розгляньмо докладніше приклади обчислюваних полів. Ми будемо визначати обчислювані поля за допомогою редактора полів. Щоб відкрити редактор полів:

  1. Відкрийте провідник рішень

  2. Розгорніть сутності> компонентів.

  3. Виберіть потрібну сутність і виберіть Поля. Виберіть Новий.

    У редакторі надайте необхідну інформацію для поля, включно з типом поля та типом даних. Тип поля обчислюється. Ось які типи доступних даних доступні для обчислюваного поля:

  • Один текстовий рядок

  • Набір параметрів

  • Два параметри

  • Ціле число

  • Десяткове число

  • Валюта

  • Дата та час

    Кнопка Редагувати поруч із пунктом Тип поля переведе вас до редактора визначень обчислюваного поля, де створено нове обчислюване поле, але не встановлено жодної формули. Визначення обчислюваного поля складається з двох розділів: УМОВА і ДІЯ.

  • У розділі «Умова » можна вказати сутність, поле, оператор, тип і значення. У розкривному списку сутності можна вибрати поточну сутність або пов’язану сутність. У розкривному списку Поле ви можете вибрати всі доступні поля для сутності. Залежно від вибраного оператора вам, можливо, знадобиться задати тип і величину. Ви можете вказати кілька умов за допомогою AND операторів or OR .

  • У розділі Дія вводиться формула для обчислюваного поля.

Нотатка

Ви можете використовувати дані із записів підстановок у своїй справі. Спочатку ви повинні вибрати поле підстановки, а потім ввести період. Після цього можете вибрати одне з полів, доступних у пов’язаній сутності. Наприклад, у випадку з <LookupFieldName>.<RelatedFieldName>, ви можете вибрати: ParentAccountId.AccountNumber.

Зауважте, що захист на рівні полів буде проігноровано в пов’язаній сутності, тому якщо поле містить конфіденційні дані рекомендуємо також захистити обчислюване поле.

Зважений прибуток від потенційної угоди

У цьому прикладі ми використовуємо поля сутності потенційної угоди для обчислення зваженого прибутку на основі ймовірності фактичної реалізації потенційної угоди. У редакторі полів для сутності потенційної угоди створюємо поле під назвою «Зважений дохід» і вказуємо тип поля як Обчислюваний , а тип даних – Валюта. У редакторі визначень обчислюваного поля в розділі Умова вказуємо можливість з Статус = Відкрити. У ACTION формула обчислює зважений дохід на основі передбачуваного доходу можливості, помноженого на ймовірність можливості. На показаних нижче знімках екрана зображено покрокові інструкції визначення обчислюваного поля «Зважений прибуток».

Створіть обчислюване поле під назвою "Зважений дохід":

Зважений дохід від потенційної угоди в Dynamics 365 for Customer Engagement.

Задайте умову щодо можливостей:

Установіть зважений дохід у Dynamics 365 for Customer Engagement.

Наведіть формулу зваженого доходу:

Установіть оціночне значення зваженого доходу Dynamics 365 for Customer Engagement.

Взагалі:

Зважений дохід до приблизного доходу в Dynamics 365 for Customer Engagement.

Дата подальших дій для потенційної угоди

У цьому прикладі ми використовуємо поля інтересу, що став підставою для потенційної угоди, для обчислення відповідної дати виконання подальших дій із потенційною угодою. У редакторі полів для сутності потенційної угоди ми створюємо поле під назвою «Дата виконання» та вказуємо тип як «Обчислюваний», а тип даних — « Дата й час». У редакторі визначення обчислюваних полів у розділі «Умова » вказуємо дві умови: тимчасовий проміжок покупки та оціночну вартість ліда. У ДІЇ ми наводимо дві формули: одна — доповнити за один тиждень за негайної можливості, інша — за доповнити за один місяць, якщо така можливість не з’явиться відразу. На показаних нижче знімках екрана зображено покрокові інструкції визначення обчислюваного поля «Дата подальших дій».

Створіть обчислюване поле під назвою "Дата виконання":

Створіть обчислюване поле з назвою доповнити date.

Встановіть дві умови для вихідного ліда:

Задайте першу умову для обчислюваного поля.

Задайте другу умову для обчислюваного поля.

Надайте формулу доповнити за один тиждень:

Укажіть формулу для обчислюваного поля.

Надайте формулу доповнити за один місяць:

Наведіть другу формулу.

Взагалі:

Встановіть доповнити date If-then & Else у Dynamics 365 for Customer Engagement.

Днів від створення запису

У цьому прикладі ми використовуємо функцію DIFFINDAYS , щоб обчислити різницю в днях від часу створення запису до поточної дати.

Створіть обчислюване поле під назвою "Обчислена різниця в днях":

Створіть обчислюване поле в Dynamics 365 for Customer Engagement.

Наведіть формулу для обчислення різниці в днях

Обчислюване поле, функція DIFFINDAYS.

Взагалі:

Різниця в днях з моменту створення запису.

Синтаксис функціЙ обчислюваного поля

Наведена нижче таблиця містить відомості про синтаксис функцій, наведених у розділі ДІЯ обчислюваного поля.

Порада

Назви функцій набрано великими літерами.

Синтаксис функції Опис Тип повернення функції
ADDDAYS( ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, до якого додана певна кількість днів. Дата та час
ADDHOURS( ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, до якого додана певна кількість годин. Дата та час
ADDMONTH (ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, до якого додана певна кількість місяців. Дата та час
ADDWEEK( ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, до якого додана певна кількість тижнів. Дата та час
ADDYEARS( ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, до якого додана певна кількість років. Дата та час
ВІДНЯТИДНІ( ціле число, дата і час) Повертає нову дату і час, що дорівнює певній даті й часу, від якого віднята певна кількість днів. Дата та час
ВІДНЯТИГОДИНИ( ціле число, дата та час) Повертає нову дату і час, що дорівнює певній даті й часу, від якого віднята певна кількість годин. Дата та час
ВІДНЯТИМІСЯЦІ (ціле число, дата і час) Повертає нову дату і час, що дорівнює певній даті й часу, від якого віднята певна кількість місяців. Дата та час
ВІДНЯТИТИЖНІ (ціле число, дата і час) Повертає нову дату і час, що дорівнює певній даті й часу, від якого віднята певна кількість тижнів. Дата та час
ВІДНЯТИРОКИ( ціле число, дата і час) Повертає нову дату і час, що дорівнює певній даті й часу, від якого віднята певна кількість років. Дата та час
DIFFINDAYS (дата і час, дата і час) Повертає різницю в днях між двома полями «Дата» і «Час ». Якщо обидва поля дати й часу співпадають, різниця дорівнює нулю. Ціле число
DIFFINHOURS (дата і час, дата і час) Повертає різницю в годинах між двома полями «Дата» і «Час ». Ціле число
DIFFINMINUTES( дата і час, дата і час) Повертає різницю в хвилинах між двома полями «Дата» і «Час ». Ціле число
DIFFINMONTH (дата і час, дата і час) Повертає різницю в місяцях між двома полями «Дата» і «Час ». Якщо обидва поля дати й часу співпадають, різниця дорівнює нулю. Ціле число
DIFFINWEEK (дата і час, дата і час) Повертає різницю в тижнях між двома полями «Дата» і «Час ». Якщо обидва поля дати й часу співпадають, різниця дорівнює нулю. Ціле число
DIFFINYEARS (дата і час, дата і час) Повертає різницю в роках між двома полями «Дата» і «Час ». Якщо обидва поля дати й часу співпадають, різниця дорівнює нулю. Ціле число
CONCAT (один рядок тексту, один рядок тексту, ... один рядок тексту) Повертає рядок, який є результатом об'єднання двох або кількох рядків. Рядок
TRIMLEFT( один рядок тексту, ціле число) Повертає рядок, що містить копію вказаного рядка без перших N-знаків. Рядок
TRIMRIGHT( один рядок тексту, ціле число) Повертає рядок, що містить копію вказаного рядка без останніх N-знаків. String

Нотатка

Усі функції DIFF вимагають, щоб перше поле «Дата й час» і друге поле «Дата й час » мали однакову поведінку: «Локальний користувач», «Лише дата» або «Незалежний від часового поясу». Якщо поведінка другого поля не співпадає з поведінкою першого поля, відображається повідомлення про помилку з відомостями про те, що друге поле не можна використовувати в поточній функції. Додаткові відомості: Поведінка та формат поля «Дата й час».

Нотатка

Не можна вводити дату, наприклад, 01/01/2015 як значення дати в обчислюване поле. Значення дати і дати та часу можуть бути встановлені або порівняні тільки за допомогою інших полів Дати та часу.

У функції CONCAT можна використовувати літеральні рядки як окремі рядки тексту, поля сутностей, які містять один рядок тексту, або їх комбінацію. Наприклад: CONCAT (FirstName, LastName, "є менеджером."). Якщо в текстовому рядку є лапки, що передують кожному знаку переходу у вигляді зворотної скісної риски (\), наприклад: "цей рядок містить \"лапки. \"", це гарантує, що лапки всередині рядка не розглядатимуться як спеціальні символи, які відділяють рядки.

У наведених нижче прикладах показано, як використовувати функції TRIMLEFT і TRIMRIGHT . Вони містять початкові рядки та результуючі рядки, які повертаються функціями TRIMLEFT та TRIMRIGHT :

TRIMLEFT ("RXX10-3456789", 3), повертає рядок "10-3456789"
TRIMRIGHT(" 20-3456789RXX", 3), повертає рядок "20-3456789"

Зауваження щодо обчислюваних полів

Ви повинні знати про певні умови й обмеження під час роботи з обчислюваними полями.

  • Збережені запити, діаграми та графічні відображення можуть мати максимум 10 унікальних обчислюваних полів.

  • Обчислювані значення полів не відображаються в автономному режимі Outlook Customer Engagement у поданнях плиток або в основних формах сутностей.

  • Максимальна кількість зв’язаних обчислюваних полів – 5.

  • Обчислюване поле не може посилатися на себе або містити циклічні ланцюги.

  • У разі зміни одного з операторів умови у виразі з кількома умовами всі оператори умови буде оновлено відповідно до цієї умови. Наприклад, у блоці IF (x > 50) OR (y ==10) OR (z < 5), якщо змінити OR оператор на оператор, AND то всі OR оператори в реченні стануть AND операторами.

  • Батьківські поля можна отримати через поле підстановки до батьківської сутності, наприклад <LookupFieldName>.<FieldName>. Це неможливо з полями підстановки з кількома сутностями, подібними Customer до яких може бути Account або Contact. Однак деякі сутності мають окремі поля підстановки для певної сутності, наприклад ParentAccountid.<FieldName> або ParentContactid.<FieldName>.

  • Сортування вимкнуто для таких полів:

    • Обчислюване поле, яке містить поле з батьківського запису.

    • Обчислюване поле, яке містить логічне поле (наприклад, поле адреси).

    • Обчислюване поле, яке містить інше обчислюване поле.

  • Обчислювані поля можуть містити лише дві сутності.

    • Обчислюване поле може містити поле з іншої сутності (вміщувати дві сутності – поточну сутність і батьківський запис).

    • Обчислюване поле не може містити обчислюване поле іншої сутності, яке також містить ще одне поле з різними сутностями (охоплює три особи):
      (Поточна сутність) Обчислені поля <-(батьківський запис) розраховункове поле 1 <-(батьківський запис) розраховункове поле 2.

  • Для обчислюваного поля не можна викликати робочі цикли або компоненти plug-in.

  • Наявне просте поле не можна перетворити на обчислюване поле. Якщо ваша поточна програма використовує JavaScript або компоненти plug-in для обчислення поля, ви не зможете використовувати функцію обчислюваних полів без створення нового поля.

  • Правила пошуку повторів не спрацьовують на обчислюваних полях.

  • Зведення не можна зв’язувати з обчислюваним полем, яке використовує інше обчислюване поле, навіть якщо всі поля іншого обчислюваного поля походять із поточної сутності.

Див. також

Створення та редагування полів
Визначення полів зведення
Відео: Зведені та обчислювані поля в Dynamics CRM 2015