Creare un campo di rollup per aggregare i valori
Questo argomento si applica a Dynamics 365 Customer Engagement (on-premises). Per la versione Power Apps di questo argomento, vedi: Definire i campi di rollup in Power Apps
I campi di rollup sono progettati per consentire agli utenti di ottenere informazioni approfondite sui dati tramite il monitoraggio delle principali metriche aziendali. Un campo di rollup contiene un valore di aggregazione calcolato sui record correlati a un record specificato, ad esempio le opportunità aperte di un account. Inoltre, puoi aggregare i dati dagli impegni direttamente correlati a un record, ad esempio i messaggi e-mail e gli appuntamenti, e gli impegni correlati indirettamente un record tramite l'entità Partecipante impegno. In scenari più complessi, è possibile aggregare i dati nella gerarchia dei record. Come amministratore o responsabile della personalizzazione, puoi definire i campi di rollup utilizzando la funzionalità senza dover sviluppare codice.
Vantaggi e funzionalità dei campi di rollup
I vantaggi e le funzionalità dei campi di rollup sono:
La modifica visiva è semplice. È possibile creare i campi di rollup tramite l'editor dei campi, proprio come quando si crea un campo normale.
Ampia selezione di funzioni di aggregazione. È possibile aggregare i dati tramite le seguenti funzioni:
SUM
,COUNT
,MIN
,MAX
eAVG
.Supporto filtro completo per l'aggregazione. È possibile configurare i vari filtri per l'entità di origine o l'entità correlata e impostare più condizioni.
Integrazione ottimale con l'interfaccia utente. È possibile includere i campi di rollup nei moduli, nelle visualizzazioni, nei grafici e nei report.
I campi di rollup sono componenti di soluzione. È possibile trasportare facilmente i campi di rollup come componenti tra le organizzazioni e distribuirli nelle soluzioni.
I campi di rollup e i campi calcolati sono reciprocamente complementari. È possibile utilizzare un campo di rollup come parte del campo calcolato e viceversa.
Alcuni esempi di campi di rollup sono riportati di seguito:
Ricavi previsti totali delle opportunità aperte di un account
Ricavi previsti totali delle opportunità aperte di tutti gli account in una gerarchia
Ricavi previsti totali di un'opportunità, incluse le opportunità figlio
Valore previsto totale dei lead qualificati generati da una campagna
Numero di casi aperti con alta priorità di tutti gli account in una gerarchia
L'ora di creazione meno recente di tutti i casi aperti con alta priorità di un account
Ogni campo di rollup crea due campi accessori con il modello di suffisso <fieldname
>_date e <fieldname>
_state. Il campo _date è del tipo di dati Datetime e il campo _state è del tipo di dati Integer.
Il campo _date è un campo creato dal sistema, utilizzato per memorizzare l'ultima data e ora in cui è stato calcolato il valore di un campo rollup.
Di seguito sono riportati i valori del campo _state:
Provincia | Descrzione |
---|---|
0 => NotCalculated | Il valore del campo deve ancora essere calcolato. |
1 => Calculated | Il valore del campo è stato calcolato secondo l'ora dell'ultimo aggiornamento nel campo _date. |
2 => OverflowError | Il calcolo dei valori di campo ha restituito un errore di overflow. |
3 => OtherError | Il calcolo dei valori di campo non è riuscito a causa di un errore interno. Probabilmente l'errore verrà corretto alla successiva esecuzione del processo di calcolo. |
4 => RetryLimitExceeded | Il calcolo dei valori di campo non è riuscito perché è stato superato il numero massimo di tentativi di calcolo dei valori a causa del numero elevato di conflitti di blocchi e di concorrenza. |
5 => HierarchicalRecursionLimitReached | Il calcolo dei valori di campo non è riuscito perché è stato raggiunto il limite massimo di profondità gerarchica per il calcolo. |
6 => LoopDetected | Il calcolo dei valori di campo non è riuscito perché un ciclo ricorsivo è stato rilevato nella gerarchia del record. |
Calcoli di rollup
I rollup vengono calcolati da processi di sistema pianificati che vengono eseguiti in modalità asincrona in background. È necessario essere un amministratore per visualizzare e gestire i processi di rollup. Per visualizzare i processi di rollup passa a Impostazioni>Processi di sistema>Visualizza>Processi di sistema ricorrenti. Per individuare rapidamente un processo pertinente, è possibile filtrare in base al tipo di processo di sistema: Calcolo di massa campo di rollup o Calcola campo di rollup.
Calcolo di massa campo di rollup è un processo ricorrente creato per un campo di rollup. Viene eseguito una sola volta, quando si crea o si aggiorna un campo di rollup. Il processo ricalcola il valore del campo di rollup specificato in tutti i record esistenti che contengono il campo. Per impostazione predefinita, il processo verrà eseguito 12 ore dopo aver creato o aggiornato un campo. Al termine, il processo viene automaticamente pianificato per l'esecuzione in un futuro lontano, dopo circa 10 anni. Se il campo viene modificato, il processo viene reimpostato per essere nuovamente eseguito trascorse 12 ore dall'aggiornamento. Il ritardo di 12 ore è necessario per garantire che Calcolo di massa campo di rollup venga eseguito durante le ore non operative dell'organizzazione. È consigliabile che un amministratore regoli l'ora di inizio del processo di Calcolo di massa campo di rollup dopo la modifica o la creazione del campo di rollup, in modo da eseguirlo durante le ore non operative. Ad esempio, un buon momento per eseguire il processo è a mezzanotte, per assicurare un'elaborazione efficiente dei campi di rollup.
Calcola campo di rollup è un processo ricorrente che esegue calcoli incrementali di tutti i campi di rollup nei record esistenti per una specifica entità. È disponibile un solo processo Calcola campo di rollup per ogni entità. I calcoli incrementali indicano che il processo Calcola campo di rollup elabora i record creati, aggiornati o eliminati terminata l'esecuzione dell'ultimo processo Calcolo di massa campo di rollup. L'impostazione di ricorrenza massima predefinita è di un'ora. Il processo viene automaticamente creato quando il primo campo di rollup di un'entità viene creato ed eliminato quando l'ultimo campo di rollup viene eliminato.
Opzione di ricalcolo online. Se si passa il puntatore del mouse sul campo di rollup nel modulo, viene visualizzata l'ora dell'ultimo rollup ed è possibile aggiornare il valore di rollup facendo clic sull'icona Aggiorna accanto al campo, come illustrato di seguito:
Vi sono alcune considerazioni da tenere presenti quando si utilizza l'opzione di ricalcolo online (aggiornamento manuale nel modulo):
È necessario disporre dei privilegi di scrittura per l'entità e dei diritti di accesso in lettura per il record di origine per cui si richiede l'aggiornamento. Ad esempio, se si calcolano i ricavi previsti delle opportunità aperte di un account, non è necessario disporre dei privilegi di scrittura per l'entità opportunità, ma solo per l'entità account.
Questa opzione è disponibile solo in modalità online. Non è possibile utilizzarla in modalità offline.
Il numero massimo di record per l'aggiornamento del rollup è limitato a 50.000 record. Nel caso del rollup gerarchico, il limite si applica ai record correlati della gerarchia. Se si supera il limite, viene visualizzato il messaggio di errore "I calcoli non possono essere eseguiti online perché è stato raggiunto il limite di 50.000 record correlati". Questo limite non si applica quando il rollup viene ricalcolato automaticamente dai processi di sistema.
La profondità massima della gerarchia è limitata a 10 per il record di origine. Se si supera il limite, viene visualizzato il messaggio di errore "I calcoli non possono essere eseguiti online perché è stato raggiunto il limite di profondità di 10 della gerarchia di record master". Questo limite non si applica quando il rollup viene ricalcolato automaticamente dai processi di sistema.
L'amministratore di sistema può modificare il modello di ricorrenza del processo di rollup, posticipare, sospendere o riprendere il processo di rollup. Tuttavia, non può annullare o eliminare un processo di rollup. Per sospendere, posticipare, riprendere o modificare un modello di ricorrenza, passare a Impostazioni>Processi di sistema. In Visualizza, seleziona Processi di sistema ricorrenti. Sulla barra di spostamento, scegliere Azioni e selezionare l'azione desiderata. Per il processo Calcolo di massa campo di rollup, le opzioni disponibili sono Riprendi, Posticipa e Sospendi. Per il processo Calcola campo di rollup, le opzioni disponibili sono Modifica ricorrenza, Riprendi, Posticipa e Sospendi.
Scenari aziendali di campi di rollup
Si prendano in considerazione diversi scenari di campi di rollup. Si aggregheranno i dati per un record dai record correlati, con e senza utilizzare una gerarchia. Si aggregheranno anche i dati per un record dagli impegni correlati e gli impegni indirettamente correlati a un record tramite l'entità Partecipante impegno. In ogni esempio, si definisce il campo di rollup tramite l'editor dei campi. Per aprire l'editor del campo, aprire Esplora soluzioni ed espandere Componenti>Entità. Selezionare l'entità desiderata e selezionare Campi. Scegliere Nuovo. Nell'editor immettere le informazioni richieste per il campo, ad esempio Tipo di campo e Tipo di dati. In Tipo di campo, selezionare Rollup dopo aver selezionato il tipo di dati. I tipi di dati includono numeri decimali o interi, valuta e data/ora. Scegliere il pulsante Modifica accanto a Tipo di campo. Viene visualizzato l'editor delle definizioni di campi di rollup. La definizione del campo di rollup è composta da tre sezioni: Entità di origine, Entità correlata e Aggregazione.
Nella sezione Entità di origine, specificare l'entità per cui il campo di rollup viene definito e se si desidera eseguire l'aggregazione in una gerarchia. È possibile aggiungere filtri con diverse condizioni per specificare i record della gerarchia da utilizzare per il rollup.
Nella sezione Entità correlata, specificare l'entità in cui eseguire l'aggregazione. Questa sezione è facoltativa quando si sceglie di eseguire il rollup nella gerarchia nell'entità di origine. È possibile aggiungere filtri con diverse condizioni per specificare i record correlati da utilizzare nel calcolo. Ad esempio, si possono includere i ricavi delle opportunità aperte ai ricavi annuali maggiori di € 1000.
Nella sezione Aggregazione, si specifica la metrica che si desidera calcolare. È possibile scegliere tra le funzioni di aggregazione disponibili, ad esempio SUM, COUNT, MIN, MAX o AVG.
Aggregazione dei dati per un record da record correlati
In questo esempio, non è utilizzata una gerarchia. I ricavi previsti totali vengono calcolati per un account, dalle opportunità aperte correlate.
Dati di aggregazione per un record dai record figlio nella gerarchia
In questo esempio, si calcolano i ricavi previsti totali di un'opportunità incluse le opportunità figlio nella gerarchia.
Dati di aggregazione per un record dai record correlati nella gerarchia
In questo esempio, si calcolano i ricavi previsti totali delle opportunità aperte di tutti gli account nella gerarchia.
Aggregazione dei dati per un record da tutti gli impegni correlati
In questo esempio, viene calcolato il tempo totale speso e fatturato da tutti gli impegni correlati a un account. Può includere il tempo dedicato al telefono, agli appuntamenti o agli impegni personalizzati.
Nei rilasci precedenti, era possibile definire un campo di rollup per un singolo impegno, ad esempio una telefonata, un fax o un appuntamento. Tuttavia, per ottenere il risultato dell'esempio riportato di seguito, il totale dei dati è stato conteggiato utilizzando i campi calcolati. Ora, è possibile utilizzare un'unica operazione definendo un campo di rollup per l'entità Impegno.
Aggregare i dati per un record da tutti gli impegni correlati e gli impegni indirettamente correlati tramite l'entità Partecipante impegno
In questo esempio, si conteggia il numero totale di messaggi e-mail inviati a un account, dove l'account è elencato nella riga "Destinatario principale" o "Destinatario Cc" dei messaggi e-mail. A tale scopo specificare il Tipo partecipazione in FILTRI per l'entità Partecipante impegno nella definizione del campo di rollup. Se non si utilizza il filtro, tutti i tipi di partecipanti disponibili per un impegno vengono impiegati nel calcolo. Per ulteriori informazioni sui tipi di partecipante e sull'entità Partecipante impegno disponibili per un impegno specifico, vedere Entità ActivityParty.
Aggregazione dei dati per un record dai record correlati tramite l'operatore AVG
In questo esempio, si calcola la media dei ricavi previsti di tutte le opportunità correlate a un account.
Nell'esempio seguente viene illustrato come calcolare la media dei ricavi previsti dalle opportunità correlate in una gerarchia di account. I ricavi previsti medi possono essere osservati a ogni livello della gerarchia.
Considerazioni sui campi di rollup
È opportuno tenere presenti alcune condizioni e limitazioni quando si utilizzano i campi di rollup:
È possibile definire un massimo di 100 campi di rollup per l'organizzazione e fino a 10 campi di rollup per ogni entità.
Un flusso di lavoro non può essere attivato dagli aggiornamenti del campo di rollup.
Una condizione di attesa del flusso di lavoro non può utilizzare un campo di rollup.
Il rollup del campo di rollup non è supportato.
Un rollup non può fare riferimento a un campo calcolato che utilizza un altro campo calcolato, anche se tutti i campi dell'altro campo calcolato si trovano sull'entità corrente.
Un campo di rollup non si aggiorna automaticamente se utilizza un campo formula che dipende da funzioni con limite temporale, ad esempio
NOW()
,UTCNOW()
,ISUTCTODAY()
oppureUTCTODAY()
. L'opzione di ricalcolo online (aggiornamento manuale del modulo) o Ricalcola deve essere utilizzato per calcolare l'ultimo valore del campo di rollup.Il rollup può applicare i filtri solo all'entità di origine e alle entità correlate, ai campi semplici o ai campi calcolati non complessi.
Un rollup può essere eseguito solo nelle entità correlate con la relazione 1:N. Un rollup non può essere eseguito su relazioni N:N.
Un rollup non può essere eseguito sulla relazione 1:N per l'entità Impegno o l'entità Partecipante impegno.
Le regole di business, i flussi di lavoro o i campi calcolati utilizzano sempre l'ultimo valore calcolato del campo di rollup.
Un campo di rollup viene aggregato nel contesto utente di sistema. Tutti gli utenti possono visualizzare lo stesso valore del campo di rollup. È possibile impostare la visibilità del campo di rollup con la sicurezza a livello di campo, limitando gli utenti che possono accedere al campo di rollup. Per ulteriori informazioni, vedere Sicurezza a livello di campo.
Se la precisione del campo aggregato è maggiore della precisione del campo di rollup, la precisione del campo aggregato è arrotondata per difetto alla precisione del campo di rollup prima dell'esecuzione dell'aggregazione. Per illustrare tale comportamento, esaminiamo un esempio specifico. Supponiamo che il campo di rollup nell'entità account, per il calcolo dei ricavi previsti totali delle opportunità correlate, abbia una precisione di due cifre decimali. Il campo Ricavi prev. sull'entità opportunità è il campo aggregato con la precisione di quattro cifre decimali. In questo esempio, un account ha due opportunità correlate. La somma aggregata dei ricavi previsti viene calcolato nel modo seguente:
Est. Ricavi per la prima opportunità: $ 1000,0041.
Est. Ricavi per la seconda opportunità: $ 2000,0044.
Somma aggregata dei Ricavi: $1000,00 + $2000,00 = $3000,00
Come puoi vedere, l'arrotondamento di precisione di due cifre decimali nel campo aggregato viene eseguito prima dell'esecuzione dell'aggregazione.
Determinati moduli di entità predefiniti, ad esempio Account o Contatto, contengono le griglie associate. Ad esempio, un modulo Account include contatti, casi, opportunità e altre griglie. Alcuni record visualizzati nelle griglie del modulo Account sono direttamente correlati al record di account, mentre altri vengono correlati indirettamente con altri record. In confronto, l'aggregazione dei campi di rollup usa solo le relazioni dirette definite in modo esplicito nella definizione del campo di rollup. Non vengono considerate altre relazioni. Per illustrare la differenza del comportamento, esaminiamo l'esempio seguente.
L'account A1 ha un contatto primario, P1. Il caso C1 è associato all'account A1 (C1.Customer field = A1) e il caso C2 è associato a contatto P1 (campo C2.Cliente = P1).
Nella griglia Casi del modulo Account per il record A1 vengono mostrati due casi, C1 e C2.
Il campo di rollup nell'entità account, chiamato Numero complessivo di casi, è utilizzato per contare i casi associati all'account.
Nella definizione del campo di rollup dell'account specifichiamo i casi con la relazione con il cliente associata all'account. Dopo l'aggregazione, il numero totale di casi è uguale a 1 (caso C1). Il caso C2 non verrà incluso nel totale poiché è direttamente correlato al contatto, non all'account, e non può essere definito in modo esplicito nella definizione del campo di rollup dell'account. Di conseguenza, il numero totale di casi restituiti dall'operazione di rollup non corrisponde al numero di casi mostrati nella griglia Casi.
Vedi anche
Creare e modificare campi
Definire campi calcolati
Comportamento e formato del campo Data e ora
Eseguire una query e visualizzare i dati gerarchici