Дефиниране на сборни колони, които агрегират стойности

Сборните колони помагат на потребителите да получават аналитични данни, като наблюдават ключовите бизнес показатели. Сборните полета съдържат агрегирана стойност, изчислена на базата на редовете, свързани с определен ред. Това включва обикновени таблици и таблици на дейност, като например имейли и ангажименти.

В по-сложните сценарии може да агрегирате данни, базирани на йерархията на редовете. Като администратор или персонализатор можете да дефинирате сборни колони с помощта на инструментите за персонализиране в Power Apps, без да се налага да пишете код.

Предимства и възможности на сборните колони

Предимствата и възможностите на сборните колони включват:

  • Визуалното редактиране е лесно. Можете да създадете сборни колони чрез редактора на колони, точно както правите, когато създавате обикновена колона.
  • Богат избор от агрегатни функции. Можете да агрегирате данни, като използвате следните функции: SUM,, COUNTMIN,, MAX и AVG.
  • Поддръжка на пълен филтър за сумиране. Можете да зададете различни филтри за таблицата източник или свързана таблица при задаване на множество условия.
  • Цялостна интеграция с потребителския интерфейс. Можете да включите сборните колони във формуляри, изгледи, диаграми и отчети.
  • Сборните колони са компоненти на решения. Можете лесно да транспортирате сборните колони като компоненти между среди и да ги разпространявате в решения.
  • Сборните колони и изчисляемите колони са взаимно допълващи се. Можете да използвате сборна колона като част от изчисляема колона и обратното.
  • Можете да конфигурирате сборни колони да използват персонализирани контроли.

Някои примери за сборни колони включват:

  • Общата прогнозна стойност на приходите на отворени възможности на акаунт
  • Общата прогнозна стойност на приходите на отворени възможности на всички акаунти в йерархия
  • Общата прогнозна стойност на приходите от възможност, включително свързани възможности
  • Общата прогнозна стойност на квалифицирани потенциални клиенти, генерирани в дадена кампания
  • Брой отворени случаи с висок приоритет за всички акаунти в дадена йерархия
  • Часът на най-рано създаване на всички отворени случаи с висок приоритет за даден акаунт

Всяка rollup колона създава две аксесоарни колони с <модел за име>_date на колона и <име>_state на колона. Колоната _date съдържа данни за дата и час, а _state колоната съдържа целочислени данни. Колоната _state има следните стойности:

Стойност Област Описание
0 NotCalculated Стойността на колоната предстои да бъде изчислена.
1 Изчислено Стойността на колоната е изчислена въз основа на последния час на актуализация в колоната _date.
2 OverflowError Изчисляването на стойността на колоната е довело до грешка поради препълване.
3 OtherError Изчисляването на стойността на колоната е неуспешно поради вътрешна грешка. Следните изпълнения на задача за изчисления вероятно ще я оправят.
4 RetryLimitExceeded Изчисляването на стойността на колоната е неуспешно, защото максималният брой повторни опити за изчисляване на стойността е надхвърлен поради високия брой конфликти при паралелна обработка и заключване.
5 HierarchicalRecursionLimitReached Изчисляването на стойността на колоната е неуспешно, защото е достигнато ограничението за максимална дълбочина на йерархия за изчисляването.
6 LoopDetected Изчисляването на стойността на колоната е неуспешно, защото е открит рекурсивен цикъл в йерархията на реда.
7 CurrencyMissing Изчисляването на стойността на колоната не е успешно, защото липсва необходимата валута на полето.

Изчисления с усреднен брой

Усредненият брой се изчислява чрез редовни системни задачи, които се изпълняват асинхронно във фонов режим. Трябва да сте администратор, за да преглеждате и управлявате задачи за усреднен брой.

Вижте rollup работни места

За преглед на задачи на усреднен сбор:

  1. влезте в Power Apps него и след това изберете желаната среда.
  2. Изберете Настройки (зъбно колело) >Разширени настройки.
  3. В лявата навигационна панел изберете System Jobs.
  4. В селектора на изглед изберете Повтарящи се системни задачи.
  5. За бързо намиране на релевантна работа, можете да филтрирате по типа на системната задача: Масово изчисляне на полето за събиране или Изчисли полето за събиране.

Групово изчисляване на сборно поле

Групово изчисляване на сборно поле е повтаряща се задача, създадена за всяка сборна колона. Изпълнява се веднъж, след като сте създали или актуализирали дадена сборна колона. Задачата преизчислява указаната стойност на сборна колона във всички съществуващи редове, които съдържат тази колона. По подразбиране задачата ще се изпълни 12 часа, след като сте създали или актуализирали колона. Когато колоната бъде променена, задачата се нулира, за да се изпълни отново 12 часа след актуализацията. 12-часовото забавяне е необходимо, за да се гарантира, че полето за масово изчисляване на натрупване работи по време на неработните часове на околната среда.

Препоръчваме администраторът да коригира началния час на задача за масово изчисляване на сборно поле, след като сборната колона е създадена или модифицирана, по такъв начин, че да се изпълнява в неработно време. Например добре е задачата да се стартира в полунощ, за да се осигури ефективна обработка на сборните колони.

Забележете, че когато възникне ситуация, при която сборната колона никога не се актуализира, задачата за масово изчисляване на сборно поле няма да се изпълни отново за тази колона, докато не изминат 10 години. Това поведение е замислено така. Когато няма актуализации в основните колони, свързани с сборното поле, няма причина да се изпълнява задачата по-често.

Изчислете полето за rollup

Изчисляване на сборно поле е повтаряща се задача, която извършва поетапни изчисления на всички сборни колони в съществуващите редове за определена таблица. Има само едно задание за изчисляване на сборно поле на таблица. Допълнителните изчисления означават, че задачата Изчисляване на сборно поле обработва редовете, които са били създадени, актуализирани или изтрити след приключване на изпълнението на последната задача за масово изчисляване на сборно поле . Минималното повторение по подразбиране е един час. Задачата се създава автоматично, когато се създаде първата сборна колона в таблица, и се изтрива, когато се изтрие последната сборна колона.

Опция за онлайн преизчисляване

Сборната колона във формуляра показва изображение на калкулатор, стойност на усреднен сбор и часа на последното изчисление. За да преизчислите, изберете изображението на калкулатора и след това изберете бутона Преизчисляване , който се показва.

Сборна колона във формуляра на акаунта.

Има няколко съображения, които трябва да имате предвид, когато използвате опцията за онлайн преизчисляване (ръчно обновяване на формуляр):

  • Трябва да имате права за запис на таблицата и права за достъп до запис на реда за изходен код, на който заявявате обновяването. Ако например изчислявате прогнозните приходи от отворените възможности на даден акаунт, не е необходимо да имате привилегии за писане в таблицата с възможности, а само в таблицата на акаунта.
  • Тази опция е достъпна единствено в онлайн режим. Не можете да го използвате, докато работите офлайн.
  • Максималният брой редове по време на обновяване на усреднен сбор е ограничен до 50 000 реда. В случай на йерархичен усреднен сбор това се отнася за свързаните редове в йерархията. Ако ограничението е надвишено, ще видите съобщение за грешка: Изчисленията не могат да се извършват онлайн, тъй като е достигнат лимитът за изчисление от 50 000 свързани реда. Това ограничение не се прилага, когато сборният сбор се преизчислява автоматично от системните задачи.
  • Максималната дълбочина на йерархията е ограничена до 10 за реда източник. Ако ограничението е надвишено, ще видите съобщение за грешка: Изчисленията не могат да се извършват онлайн, тъй като е достигната границата на дълбочината на йерархията от 10 за реда източник.Това ограничение не се прилага, когато сборният сбор се преизчислява автоматично от системните задачи.

Промяна на повторението на задача за усреднен сбор

Като системен администратор можете да променяте схемата на повторяемост на задача за усреднен сбор, както и да я отлагате, да я спирате временно и да я възобновявате. Не можете обаче да отмените или изтриете сборна задача.

За да спрете временно, отложите, възобновите или промените схемата на повторяемост, трябва да прегледате системните задачи. Повече информация Преглед на сборни задания

В навигационната лента изберете Действия и изберете желаното действие.

За задачата Масово изчисляване на сборно поле наличните избори са: Възобновяване, Отлагане и Пауза.

За задачата Изчисляване на сборно поле наличните избори са: Промяна на повторението, Възобновяване, Отлагане и Пауза.

Примери

Нека да разгледаме няколко примера за сборни колони. Ще агрегираме данни за ред от свързаните редове със и без използване на йерархия. Също така ще обобщаваме данни за ред от свързани дейности и дейности, косвено свързани с ред, чрез таблицата ActivityParty. Във всеки пример дефинираме сборната колона с помощта на редактора на колони. За да отворите редактора на колони, отворете прозореца на решение и разгънете Таблици с компоненти>. Изберете таблицата, която искате, и изберете Колони. Изберете Нова. В редактора предоставете необходимата информация за колоната, включително Тип колона и Тип данни. В Тип колона изберете Сборен сбор, след като сте избрали типа данни. Типовете данни включват десетични или цели числа, валута и дата/час. Изберете бутона Редактиране до Тип колона. Това ще ви отведе до редактора за дефиниране на сборни колони. Дефиницията на сборната колона се състои от три секции: Изходна таблица, ** Свързана таблица и Агрегиране.

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

  • В секцията Свързана таблица зададете таблицата, върху която агрегирате. Този раздел не е задължителен, когато изберете да навивате йерархията на таблицата източник. Можете да добавите филтри с множество условия, за да зададете кои редове да използвате при изчисляването. Например включвате приходи от отворени възможности с годишен приход над 1000 щ.д.

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

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

Събиране на очаквания приход за акаунт.

Агрегиране на данни за ред от дъщерни редове въз основа на йерархията

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

Сборен очакван приход, йерархия на възможност.

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

Агрегиран очакван приход въз основа на йерархията на акаунт.

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

В по-ранните версии можехте да дефинирате сборна колона за индивидуална дейност, като например телефонно обаждане, факс или ангажимент. Но за да се постигне резултатът в показания по-долу пример, трябваше да сумирате данните с помощта на изчисляеми колони. Сега можете да го направите в една стъпка чрез дефиниране на една сборна колона за таблицата „Дейност“.

Усреднен сбор от всички дейности за акаунт.

В този пример преброяваме общия брой имейли, изпратени до акаунт, където акаунтът е посочен на реда "До получателя" или "Ред на получателя на копия". Това става чрез задаване на типа участие във FILTERS за таблицата Страна по дейност в дефиницията на сборната колона. Ако не използвате филтриране, при изчислението се използват всички налични типове участие за дадена дейност.

За повече информация относно таблицата Activity Party и типовете участие, налични за конкретна дейност, вижте Таблица ActivityParty.

Дейности, свързани с усреднен сбор, и страна по дейността.

В този пример изчисляваме средния очакван приход от всички възможности, свързани с акаунт.

Среден очакван приход в Dynamics 365.

Следващият пример показва как да се изчисли средният очакван приход от свързани възможности въз основа на йерархия на акаунти. Средният очакван приход може да се види на всяко ниво в йерархията.

Среден очакван приход въз основа на йерархия в Dynamics 365.

Съображения за сборната колона

Трябва да сте наясно за определени условия и ограничения при работа със сборни колони:

  • По подразбиране можете да дефинирате максимум 200 сборни колони за средата и до 50 сборни колони на таблица. Повече информация: Дефиниране на максималния брой сборни колони в среда или таблица
  • Работен поток не може да бъде задействан от актуализациите на сборната колона.
  • Условието за изчакване на работен поток не може да използва сборна колона.
  • Сборен сбор върху сборната колона не се поддържа.
  • Усредненият сбор не може да се отнася до изчисляема колона, която използва друга изчисляема колона, дори ако всички колони на другата изчисляема колона са в текущата таблица.
  • Сборната колона не се актуализира автоматично, ако използва колона с формула, която зависи от обвързаните с времето функции Now() и IsUTCToday(). Опцията за онлайн преизчисляване (ръчно обновяване на формуляра) или бутон Преизчисляване трябва да се използва за изчисляване на последната стойност на сборната колона.
  • Сборният сбор може да прилага филтри само към таблицата източник или свързани таблици, прости колони или несложни изчисляеми колони.
  • Усреднен сбор може да бъде получен само въз основа на свързани таблици с релацията 1:N. Сборът не може да се направи върху релациите N:N.
  • Сборен сбор не може да се извърши върху релацията 1:N за таблицата "Дейност" или таблицата "Група по дейността".
  • Бизнес правилата, работните потоци или изчисляемите колони винаги използват последната изчисляема стойност на сборната колона.
  • Сборна колона се агрегира в контекста на потребителя на системата. Всички потребители могат да виждат една и съща стойност на сборната колона. Можете да контролирате видимостта на сборната колона със защита на ниво колона, като посочите кой да има достъп до сборната колона. Повече информация Защита на ниво колона за контрол на достъпа.

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

По подразбиране можете да дефинирате максимум 200 сборни колони за средата и до 50 сборни колони на таблица.

За да промените максималните стойности, изпълнете следните стъпки:

  1. Отидете на Power Apps (make.powerapps.com), изберете Таблица в левия навигационен екран и след това отворете Таблица Организация .
  2. Изберете списъка с ощеn и след това въведете maxr в полето Търсене . Изберете колоните MaxRollupFieldsPerOrg и MaxRollupFieldsPerEntity и след това изберете Запиши. Изберете максимално сборни колони, за да увеличите стойностите
  3. Променете стойностите за MaxRollupFieldsPerOrg (до 200) и MaxRollupFieldsPerEntity (до 50), които искате.

Важно

Наличието на повече от 100 сборни колони за дадена среда може да доведе до влошена производителност на сборните колони и повишена консумация на място за съхранение.

Закръгляване на точност

Ако точността на агрегираната колона е по-голяма от точността на сборната колона, точността на агрегираната колона се закръглява надолу до точността на сборната колона, преди извършване на агрегирането. За да илюстрираме това поведение, нека разгледаме конкретен пример. Да приемем, че сборната колона в таблицата на акаунта, за изчисляване на общите прогнозни приходи от свързаните възможности, има точност от два знака след десетичната запетая. Полето Колоната за приходи в таблицата на възможност е агрегираната колона с точност до четири знака след десетичната запетая. В нашия пример акаунтът има две свързани възможности. Сборната сума на очаквания приход се изчислява, както следва:

  1. Очакван приход за първата възможност: 1000,0041 щ.д.
  2. Очакван приход за втората възможност: 2000,0044 щ.д.
  3. Сборна сума от очакван Приход: 1000,00 щ.д. + 2000,00 щ.д. = 3000,00 щ.д.

Както можете да видите, закръгляването с точност до два знака след десетичната запетая в агрегираната колона се извършва преди извършване на агрегирането.

Различно поведение спрямо свързаните мрежи

Някои формуляри на таблица, като например „Акаунт“ или „Контакт“, стандартно съдържат свързаните мрежи. Например формуляр за акаунт включва контакти, случаи, възможности и други мрежи. Някои от редовете, показани в мрежите на формуляра „Акаунт“, са пряко свързани с реда на акаунта; други – непряко – чрез релации с други редове. За сравнение, агрегирането на сборна колона използва единствено директни релации, изрично определени в дефиницията на сборна колона. Не се вземат предвид други релации. За да илюстрираме разликата в поведението, нека разгледаме следния пример.

  1. Акаунт A1 има основен контакт Р1. Случаят С1 е свързан с сметката А1 (С1. Колона на клиента = A1) и случаят C2 е свързан с контакта P1 (C2. Колона "Клиент" = P1).
  2. Мрежата "Случаи " във формуляра "Сметка " за реда А1 показва два случая, В1 и В2.
  3. Сборната колона в таблицата на акаунт, наречена „Общ брой случаи“, се използва за преброяване на случаите, свързани с акаунта.
  4. В дефиницията на сборна колона на акаунт указваме случаите, които имат „Взаимоотношения с клиент“ с акаунта. След сумиране общият брой случаи е равен на 1 (случай C1). Случаят C2 не е включен в общата сума, тъй като е пряко свързан с контакта, а не с акаунта, и не може да бъде изрично дефиниран в дефиницията на сборната колона на акаунта. В резултат на това общият брой случаи, върнати чрез сборна операция, не съвпада с броя на случаите, показани в мрежата за случаи .

Вижте също

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