Поделиться через


Создание поля свертки для агрегирования значений

Эта тема относится к Dynamics 365 Customer Engagement (on-premises). Версию этой темы для Power Apps см. по адресу: Определение полей свертки в Power Apps

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

Преимущества и возможности полей свертки

Преимущества и возможности полей свертки:

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

  • Широкий выбор функций статистической обработки. Можно суммировать данные с помощью следующих функций: SUM, COUNT, MIN, MAX и AVG.

  • Полная поддержка фильтра для статистической обработки. Можно настроить различные фильтры для исходной сущности или связанной сущности при задании нескольких условий.

  • Полная интеграция с пользовательским интерфейсом. Можно включать поля свертки в формы, представления, диаграммы и отчеты.

  • Поля свертки — это компоненты решения. Можно легко переносить поля свертки как компоненты между организациями и распространять их в решения.

  • Поля свертки и вычисляемые поля дополняют друг друга. Можно использовать поле свертки как часть вычисляемого поля и наоборот.

    Вот некоторые примеры полей свертки:

  • Общий предполагаемый доход от открытых возможных сделок организации.

  • Общий предполагаемый доход от открытых возможных сделок по всем организациям в иерархии.

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

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

  • Количество высокоприоритетных открытых обращений по все организациям в иерархии.

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

Каждое поле свертки создает два дополнительных поля с шаблоном суффикса <fieldname>_date и <fieldname>_state. Поле _date имеет тип даты и времени, а поле _state имеет целочисленный тип данных.

Поле _date — это поле, созданное системой, которое используется для хранения последней даты и времени расчета значения поля свертки.

Поле _state имеет следующие значения:

State Description
0 => NotCalculated Значение поля предстоит рассчитать.
1 => Calculated Значение поля рассчитано согласно данным последнего обновления в поле _date.
2 => OverflowError В результате расчета значения поля возникла ошибка.
3 => OtherError Сбой при расчете значения поля в связи со внутренней ошибкой. При следующем запуске задания расчета, скорее всего, эта ошибка будет исправлена.
4 => RetryLimitExceeded Сбой при расчете значения поля из-за превышения максимального числа попыток выполнить повторный расчет значения в результате большого количества совпадений и конфликтов блокировки.
5 => HierarchicalRecursionLimitReached Сбой при расчете значения поля по причине достижения максимальной глубины иерархии для расчета.
6 => LoopDetected Сбой при расчете значения поля из-за обнаружения рекурсивного цикла в иерархии записи.

Расчеты свертки

Свертки рассчитываются с помощью запланированных системных заданий, выполняемых асинхронно в фоновом режиме. Для просмотра заданий свертки и управления ими необходимо обладать правами администратора. Чтобы просмотреть задания свертки, перейдите в раздел Параметры>Системные задания>Представление>Повторяющиеся системные задания. Чтобы быстро найти необходимое задание, можно отфильтровать задания по типу системного задания: "Массовый расчет поля свертки" или "Расчет поля свертки".

  • Массовый расчет поля свертки — это повторяющееся задание, создаваемое для каждого поля свертки. Оно выполняется один раз после создания или обновления поля свертки. Задание пересчитывает указанное значение поля свертки во всех существующих записях, содержащих это поле. По умолчанию задание выполняется спустя 12 часов после создания или обновления поля. По завершении выполнения задания оно автоматически планируется для выполнения в отдаленном будущем, приблизительно через 10 лет. При изменении поля задание сбрасывается для повторного выполнения через 12 часов после обновления. Задержка в 12 часов необходима для гарантии того, что задание массового расчета поля свертки будет выполняться в нерабочее время организации. Рекомендуется, чтобы администратор настраивал время начала задания массового расчета поля свертки после создания или изменения поля свертки таким образом, чтобы задание выполнялось в нерабочее время. Например, рекомендуется выполнять задание в полночь, чтобы обеспечить эффективную обработку полей свертки.

  • Расчет поля свертки — это повторяющееся задание, которое позволяет выполнять инкрементные расчеты всех полей свертки в существующих записях определенной сущности. Для каждой сущности доступно только одно задание расчета поля свертки. Инкрементные расчеты — это расчеты, при которых задание расчета поля свертки обрабатывает записи, которые были созданы, обновлены или удалены по завершении выполнения задания массового расчета поля свертки. По умолчанию максимальный период повтора задания составляет один час. Задание автоматически создается при создании первого поля свертки в сущности и удаляется при удалении последнего поля свертки.

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

    Поле свертки в форме организации в Dynamics 365 for Customer Engagement.

    Необходимо учитывать несколько моментов при использовании параметра пересчета в интерактивном режиме (обновление в форме вручную):

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

    • Этот параметр доступен только в интерактивном режиме. Он недоступен в автономном режиме.

    • Максимальное число записей во время обновления свертки составляет 50000. При иерархической свертке это ограничение применяется к связанным записям в иерархии. При превышении предельного значения отобразится сообщение: "Невозможно выполнить расчеты в интерактивном режиме, так как достигнут предел расчета в 50000 связанных записей". Это ограничение не применяется, если свертка пересчитывается автоматически при выполнении системных заданий.

    • Максимальное значение глубины иерархии равно 10 для исходной записи. При превышении предельного значения отобразится сообщение: "Невозможно выполнить расчеты в интерактивном режиме, так как достигнут предел глубины иерархии 10 для исходной записи". Это ограничение не применяется, если свертка пересчитывается автоматически при выполнении системных заданий.

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

Бизнес-сценарии полей свертки

Рассмотрим несколько сценариев полей свертки. Мы суммируем данные для записи из связанных записей с использованием иерархии и без нее. Мы также суммируем данные для записи из связанных действий и действий, косвенно связанных с записью через сущность "Сторона действия". В каждом примере поле свертки определяется с помощью редактора полей. Чтобы открыть редактор полей откройте обозреватель решений и разверните Компоненты>Сущности. Выберите требуемую сущность и выберите Поля. Нажмите кнопку Создать. В редакторе введите обязательные сведения для поля, включая Тип поля и Тип данных. В поле Тип поля выберите Свертка после выборе типа данных. Типы данных включают десятичные или целые числа, валюту и дату/время. Нажмите кнопку Изменить рядом с полем Тип поля. Откроется редактор определения поля свертки. Определение поля свертки состоит из трех разделов: Исходная сущность, Связанная сущность и Статистическая обработка.

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

  • В разделе Связанная сущность укажите сущность, по которой будет выполняться статистическая обработка. Этот раздел необязателен при выборе свертки на основании иерархи в исходной сущности. Можно добавить фильтры с несколькими условиями для определения связанных записей, которые будут использоваться при расчете. Например, можно включить доход от открытых возможных сделок с годовым доходом более 1000 долларов США.

  • В разделе Статистическая обработка укажите показатель для расчета. Можно выбрать доступные функции статистической обработки, такие как SUM, COUNT, MIN, MAX или AVG.

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

Сводка предполагаемого дохода для организации Dynamics 365 for Customer Engagement.

Статистическая обработка данных для записи из дочерних записей на основании иерархии

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

Сводка предполагаемого дохода, иерархия возможных сделок.

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

Сводка предполагаемого дохода в иерархии организаций.

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

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

Свертка всех действий по организации.

В этом примере мы вычисляем общее число сообщений электронной почты, отправленных в организацию, когда организация указана в поле "Кому" или "Копия" в сообщении. Для этого следует указать Тип участия в разделе ФИЛЬТРЫ для сущности "Сторона действия" в определении поля свертки. Если фильтрация не используется, при расчете будут использоваться все доступные типы участия для действия. Дополнительные сведения о сущности "Сторона действия" и типах участия для определенного действия см. в разделе Сущность "Сторона действия".

Связанные действия и сторона действия свертки.

В этом примере мы вычисляем средний предполагаемый доход ото всех возможных сделок, связанных с организацией.

Предполагаемый средний доход в Dynamics 365 for Customer Engagement.

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

Предполагаемый средний доход.

Рекомендации по полям свертки

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

  • Можно указать не более 100 полей свертки для организации и не более 10 полей свертки на сущность.

  • Бизнес-процесс не может быть запущен в результате обновления поля свертки.

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

  • Свертка на основании поля свертки не поддерживается.

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

  • Поле свертки не обновляется автоматически, если оно использует поле формулы, которое зависит от функций с привязкой ко времени, например NOW(), UTCNOW(), ISUTCTODAY() или UTCTODAY(). Возможность онлайн-перерасчета (ручное обновление формы) или кнопка Пересчитать должны использоваться для расчета последнего значения поля свертки.

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

  • Свертку можно выполнять только на основании связанных сущностей с отношением 1: N. Невозможно выполнить свертку при использовании отношений N:N.

  • Невозможно выполнить свертку при использовании отношения 1: N для сущности "Действие" или сущности "Сторона действия".

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

  • Статистическая обработка поля свертки выполняется в контексте пользователя системы. Все пользователи могут просматривать одно и то же значение поля свертки. Можно управлять видимостью поля свертки с помощью безопасности на уровне полей (FLS), ограничив пользователей, имеющих доступ к полю свертки. Дополнительные сведения см. в разделе Безопасность на уровне полей.

  • Если точность агрегируемого поля превышает точность поля свертки, точность агрегируемого поля округляется до точности поля свертки перед началом статистической обработки. Обратимся к примеру, который иллюстрирует это поведение. Предположим, что поле свертки для сущности организации, имеет точность в два знака после запятой для расчета общего предполагаемого дохода по связанным возможным сделкам. Поле "Предполагаемый доход" для сущности возможности — агрегируемое поле с точностью 4 знака после запятой. В этом примере у организации имеется 2 связанных возможных сделки. Общая сумма предполагаемого дохода рассчитывается следующим образом:

    1. Предполаг. доход по первой возможной сделке: $1000.0041

    2. Предполаг. доход по второй возможной сделке: $2000.0044

    3. Агрегируемая сумма предполагаемого Доход: $1000,00 + $2000,00 = $3000,00
      Как видно, для агрегируемого поля до выполнения статистической обработки производится округление до двух знаков после запятой.

  • Некоторые формы сущности, например Организация или Контакт, содержат готовые связанные таблицы. Например, форма организации содержит "Контакты", "Обращения", "Возможные сделки" и другие таблицы. Некоторые записи, отображаемые в таблицах формы организации, напрямую связаны с записью организации, другие — косвенно, через связи с другими записями. С другой стороны, статистическая обработка поля свертки использует только прямые связи, явно определенные в определении поля свертки. Другие отношения не рассматриваются. Обратимся к следующему примеру, который иллюстрирует разницу в поведении.

    1. Организация A1 имеет основной контакт, P1. Обращение C1, связанное с организацией A1 (поле C1.Customer = A1), и обращение C2, связанное с контактом P1 (поле C2.Customer = P1).

    2. В таблице Обращения формы Организация для записи A1 отображаются 2 обращения, C1 и C2.

    3. Поле свертки в сущности организации под названием "Общее число обращений" используется для подсчета обращений, связанных с организацией.

    4. В определении поля свертки организации указываются обращения, которые имеют с организацией отношения клиента. После статистической обработки общее число обращений равно 1 (обращение C1). Обращение C2 не включено в итоги, так как оно непосредственно связано с контактом, а не с организацией, и не может быть явно определено в определении поля свертки организации. В результате общее число обращений, возвращенных операцией свертки, не совпадает с числом обращений, отображаемых в таблице Обращения.

См. также

Создание и изменение полей
Определение вычисляемых полей
Поведение и формат поля "Дата и время"
Запрос и визуализация иерархических данных