Определение вычисляемых полей

 

Опубликовано: Февраль 2017

Применимо к: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

В Microsoft Dynamics 365вычисляемые поля позволяют автоматизировать выполняемые вручную вычисления, которые используются в ваших бизнес-процессах. Например, продавцу может потребоваться узнать взвешенный доход по возможной сделке, основанный на значении предполагаемого дохода от возможной сделки, умноженного на вероятность. Либо требуется автоматически применить скидку на заказы стоимостью более 500 долларов. Вычисляемое поле может содержать значения, полученные по результатам простых математических операций или условных операций, например "больше чем" или "если, то" и т. д. Для достижения этого нужно воспользоваться пользовательским интерфейсом Dynamics 365, нет необходимости создавать код.


Возможности вычисляемых полей:

  • Вычисляемые поля содержит вычисления, в которых используются поля из текущей сущности или связанных дочерних сущностей.

  • Поддержка выражения доступна в полях текущей сущности и связанных полях родительской сущности в разделах Условие и Действие. К встроенным функциям относятся:

    ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS, SUBTRACTDAYS, SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS, DIFFINHOURS, DIFFINMINUTES, DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, CONCAT, TRIMLEFT и TRIMRIGHT.

  • Мощная условная поддержка обеспечивает ветвление и возможность работы с большим количеством условий. Логические операции включают операторы И и ИЛИ.

  • Возможности визуального редактирования включают современный пользовательский интерфейс и элементы Intellisense в разделе ДЕЙСТВИЕ.

  • Беспроблемная интеграция вычисляемых полей в формы, представления, диаграммы и отчеты осуществляется в реальном времени.

  • Если вы обновили сетевую организацию до Обновление для Microsoft Dynamics 365 (онлайн-версия), декабрь 2016 г., вы можете настроить вычисляемые поля для использования настраиваемых элементов управления.

    Дополнительные сведения:Визуальные элементы управления в Dynamics 365 для телефонов и планшетов

Несколько примеров вычисляемых полей

  • Взвешенный доход: предполагаемый доход, умноженный на вероятность

  • Чистая стоимость: активы за минусом обязательств для данной организации

  • Стоимость труда: базовая ставка до 40 часов и доп. переработка

  • Номер контакта: номер телефона для возможной сделки на основе данных организации или контакта

  • Балл интереса: одно поле, которое предоставляет сведения о качестве данного интереса

  • Дальнейшие действия: дальнейшие действия за указанное количество дней с учетом приоритета

System_CAPS_importantВажно

Для создания вычисляемого поля необходимо иметь привилегию записи в сущности профиля безопасности полей. Если вычисляемое поле использует защищенные поля в вычислении, необходимо подумать о целесообразности защиты и вычисляемого поля, чтобы не дать пользователям возможность осуществлять доступ к данным без достаточных разрешений. Редактор вычисляемого поля отображает предупреждение, если создается вычисляемое поле, использующее безопасные поля в вычислении, и предлагает обеспечить безопасность вычисляемого поля.Дополнительные сведения:Безопасность на уровне полей.

Рассмотрим подробнее примеры вычисляемых полей. Определим вычисляемые поля в редакторе полей. Чтобы открыть редактор полей:

  1. Перейдите в раздел Параметры > Настройки.

  2. Выберите Настройка системы > Компоненты > Сущности.

  3. Выберите требуемую сущность и щелкните Поля. Нажмите кнопку Создать.

В редакторе введите обязательные сведения для поля, включая Тип поля и Тип данных.Тип поляВычисляемое. Доступные типы данных для вычисляемого поля.

  • Строка текста

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

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

  • Целое число

  • Десятичное число

  • Валюта

  • Дата и время

Кнопка Изменить рядом с Тип поля позволяет открыть редактор определений вычисляемого поля, где создается новое вычисляемое поле для которого, однако, не задается никакая формула. Определение вычисляемого поля состоит из двух разделов: УСЛОВИЕ и ДЕЙСТВИЕ.

  • В разделе Условие можно задать сущность, поле, оператор, вид и значение. В раскрывающемся списке для Сущность можно выбрать текущую сущность или связанную сущность. В раскрывающемся списке Поле можно выбрать все доступные поля для сущности. В зависимости от выбранного оператора может потребоваться указать тип и значение. Можно выбрать несколько условий с помощью операторов AND или OR.

  • В разделе Действие указывается формула для вычисляемого поля.

System_CAPS_noteПримечание

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

Обратите внимание, что безопасность на уровне полей для связанной сущности учитываться не будет, поэтому если поле, к которому производится доступ, содержит конфиденциальные данные, рекомендуется также защитить и создаваемое вами вычисляемое поле.

В этом примере мы используем поля сущностей возможной сделки, чтобы рассчитать взвешенный доход по вероятности закрытия возможной сделки. В редакторе поля для сущностей возможной сделки создадим поле "Взвешенный доход" и укажем тип поля — Вычисляемое, а тип данных — Валюта. В редакторе определения вычисляемого поля в разделе Условие определим возможную сделку со статусом = открытая. В разделе ДЕЙСТВИЕ формула вычисляет взвешенный доход на основе рассчитанного дохода от возможной сделки, умноженного на вероятность ее заключения. На следующих снимках экрана изображена пошаговая инструкция по определению вычисляемого поля взвешенного дохода.

Создайте вычисляемое поле с названием "Взвешенный доход":

Weighted revenue of Opportunity in Dynamics CRM

Укажите условие в возможных сделках:

Set Weighted Revenue in Dynamics CRM

Укажите формулу для расчета взвешенного дохода:

Set Weighted Revenue estimated value Dynamics CRM

Вместе:

Weighted revenue to est. revenue in Dynamics CRM

В этом примере мы используем поля полученного интереса из возможной сделки для вычисления оптимальной даты дальнейших действий по возможной сделке. В редакторе поля для сущностей возможной сделки создадим поле "Дата дальнейших действий" и укажем тип поля — Вычисляемое, а тип данных — Дата и время. В редакторе определения вычисляемого поля в разделе Условие будет определяться два условия: интервал времени покупки и предполагаемая стоимость интереса. В разделе ДЕЙСТВИЕ укажем две формулы: одна для дальнейших действий на той же неделе непосредственно в связи с возможной сделкой, а другая для дальнейших действий в течение месяца, если возможная сделка не будет реализована мгновенно. На следующих снимках экрана изображена пошаговая инструкция по определению вычисляемого поля "Дата дальнейших действий".

Создайте вычисляемое поле с названием "Дата дальнейших действий":

Follow up date on an opportunity in Dynamics CRM

Задаем два условия для появившегося интереса:

Follow up date on an opportunity in Dynamics CRM

Follow up date on an opportunity in Dynamics CRM

Предоставляем формулу для определения дальнейших действий в течение недели:

Follow up date on an opportunity in Dynamics CRM

Предоставляем формулу для дальнейших действий в течение месяца:

Set Follow up date in Dynamics CRM

Вместе:

Set Follow up date If-Then & Else in Dynamics CRM

В этом примере мы используем функциюDIFFINDAYS, чтобы вычислить разницу в днях между временем создания записи и текущей датой.

Создайте вычисляемое поле с именем "Вычисленная разница в днях":

Create calculated field in Dynamics CRM

Введите формулу для вычисления разницы в днях:

Calculated field, DIFFINDAYS function

Вместе:

Difference in days since record creation

В следующей таблице приводятся сведения о синтаксисе функций, предоставленных в разделе ДЕЙСТВИЕ вычисляемого поля.

System_CAPS_tipСовет

Имена функций указываются заглавными буквами.

Синтаксис функций

Описание

Возвращаемый тип

ADDDAYS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени плюс определенное количество дней.

Дата и время

ADDHOURS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени плюс определенное количество часов.

Дата и время

ADDMONTHS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени плюс определенное количество месяцев.

Дата и время

ADDWEEKS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени плюс определенное количество недель.

Дата и время

ADDYEARS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени плюс определенное количество лет.

Дата и время

SUBTRACTDAYS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени минус определенное количество дней.

Дата и время

SUBTRACTHOURS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени минус определенное количество часов.

Дата и время

SUBTRACTMONTHS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени минус определенное количество месяцев.

Дата и время

SUBTRACTWEEKS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени минус определенное количество недель.

Дата и время

SUBTRACTYEARS (целое число, дата и время)

Возвращает новую дату и время, равные дате и времени минус определенное количество лет.

Дата и время

DIFFINDAYS (дата и время, дата и время)

Возвращает разницу в днях между двумя полями Дата и время. Если оба момента во времени припадают на один и тот же день, разница равна нулю.

Целое число

DIFFINHOURS (дата и время, дата и время)

Возвращает разницу в часах между двумя полями Дата и время.

Целое число

DIFFINMINUTES (дата и время, дата и время)

Возвращает разницу в минутах между двумя полями Дата и время.

Целое число

DIFFINMONTHS (дата и время, дата и время)

Возвращает разницу в месяцах между двумя полями Дата и время. Если оба момента во времени припадают на один и тот же месяц, разница равна нулю.

Целое число

DIFFINWEEKS (дата и время, дата и время)

Возвращает разницу в неделях между двумя полями Дата и время. Если оба момента во времени припадают на одну и ту же неделю, разница равна нулю.

Целое число

DIFFINYEARS (дата и время, дата и время)

Возвращает разницу в годах между двумя полями Дата и время. Если оба момента во времени припадают на один и тот же год, разница равна нулю.

Целое число

CONCAT (одна строка текста, одна строка текста, одна строка текста, ... одна строка текста)

Возвращает строку, которая является результатом объединения двух и более строк.

String

TRIMLEFT (одна строка текста, целое число)

Возвращает строку, содержащую копию указанной строки без указанного количества первых символов.

String

TRIMRIGHT (одна строка текста, целое число)

Возвращает строку, содержащую копию указанной строки без указанного количества последних символов.

String

System_CAPS_noteПримечание

Все функции DIFF требуют, чтобы первое поле Дата и время и второе поле Дата и время имел и одинаковое поведение: Часовой пояс пользователя, Только дата или Независимо от часового пояса. Если поведение второго поля не соответствует поведению первого поля, то отображается сообщение об ошибке с указанием того, что второе поле нельзя использовать в текущей функции.Дополнительные сведения:Поведение и формат поля "Дата и время".

System_CAPS_noteПримечание

Невозможно ввести дату, например 01.01.2015, в качестве значения Date в вычисляемое поле. Значения Date и DateTime можно задать или сравнить только с помощью других полей DateTime.

В функции CONCAT можно использовать буквенные строки как отдельные строки текста, поля сущности, содержащие отдельную строку текста, или и то, и другое. Например, CONCAT ("Имя", "Фамилия", "является руководителем"). Если буквенная строка содержит прямые кавычки, перед каждой меткой добавьте символ наклонной черты (\), например «Эта строка содержит \"прямые кавычки\"». Это гарантирует, что прямые кавычки в строке не будут рассматриваться как специальные символы, разделяющие строки.

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

TRIMLEFT ("RXX10-3456789", 3) возвращает строку "10-3456789"
TRIMRIGHT ("20-3456789RXX", 3) возвращает строку "20-3456789"

При работе с вычисляемыми полями следует учитывать ряд определенных условий и ограничений:

  • Сохраненные запросы, диаграммы и визуализации могут иметь не более 10 уникальных вычисляемых полей.

  • Значения вычисляемых полей не отображаются в автономном режиме Outlook в Dynamics 365 для представлений плитки и в основных формах сущностей.

  • Максимальное число объединенных в цепь вычисляемых полей — 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.

  • Невозможно инициировать бизнес-процессы или подключаемые модули в вычисляемых полях.

  • Невозможно изменить существующее простое поле на вычисляемое поле. Если текущее приложение использует JavaScript или подключаемый модуль для вычисления поля, вы не сможете использовать функцию вычисляемых полей без создания нового поля.

  • Правила поиска повторяющихся данных для вычисляемых полей не запускаются.

  • Свертка не может ссылаться на вычисляемое поле, использующее другое вычисляемое поле, даже если все поля другого вычисляемого поля находятся в текущей сущности.

© Корпорация Майкрософт (Microsoft Corporation), 2017. Все права защищены. Авторские права

Добавления сообщества

ДОБАВИТЬ
Показ: