Regole formulate in modo non soddisfacente possono avere un impatto rilevante su tutti gli aspetti di un'applicazione. Di seguito sono riportate alcune procedure consigliate per la progettazione di regole business. L'utilizzo delle seguenti procedure consigliate può garantire vantaggi significativi a livello di performance.
Attenersi alle seguenti linee guida fondamentali durante la progettazione delle regole business.
Prime 10 migliori procedure consigliate per le regole
Attenersi alle procedure consigliate riportate di seguito durante la progettazione di regole business. Queste linee guida possono garantire vantaggi significativi a livello di performance perché regole formulate in modo non soddisfacente possono avere un impatto rilevante su tutti gli aspetti di un'applicazione.
Attenersi alle seguenti linee guida per il comando SET:
SET CREATEBLOCKONEQ ON
e SET CREATENONMISSINGBLK ON
.SET CLEARBLOCK EMPTY
SET CALCTASKDIMS
oppure sottoporle a test. In genere, Oracle Essbase esegue questa operazione automaticamente.SET COPYMISSINGBLOCK OFF
La creazione di blocchi deve essere eseguita mediante l'assegnazione di membri Copia dati o Sparsa. Le funzioni @createblockoneq
e @createblock
devono essere utilizzate come ultima soluzione all'interno di un'istruzione Fix limitata.
Evitare riferimenti a dimensioni mancanti in un'istruzione Fix, ad esempio nella regola Copia dati. Ciò può generare tempi di elaborazione eccessivi e aumentare i conflitti, nonché creare blocchi inutili per tutti i livelli delle dimensioni mancanti.
Rimuovere il calcolo parallelo nelle regole business associate ai form. Calc Parallel o Fix Parallel devono essere utilizzati solo con regole amministrative/batch.
Non creare zeri non necessari perché ciò comporta l'esplosione di blocchi e dati. Rivedere con attenzione la business logic e aggiungere le condizioni IF necessarie per controllare l'eventuale presenza di zeri. Convertire gli zeri in #missing
.
Eliminare più passaggi sugli stessi blocchi. Impostare invece un'istruzione OUTER FIX adeguata e spostarli, se necessario. Combinare le istruzioni IF anziché utilizzare e riutilizzare IF nelle stesse intersezioni.
Evitare di utilizzare riferimenti incrociati tra dimensioni sul lato sinistro di un'equazione. Ciò può avere un impatto rilevante sulle performance.
Nello script aggregare le dimensioni in base all'ordine di creazione dei blocchi, dai blocchi con il maggior numero di accessi a quelli con il minor numero di accessi, ad esempio Agg (dimensione 1a dimensione con più blocchi, 2a dimensione con più blocchi, 3a dimensione con più blocchi). Il comando AGG è più veloce del comando CALC DIM ed è il metodo preferito per l'aggregazione. L'aggregazione con @ancestors
nelle regole utente finale fino al livello superiore della dimensione può generare conflitti a livello di blocchi.
Utilizzare prompt runtime invece di creare più regole all'interno della stessa logica sottostante. Un maggior numero di regole comporta un maggiore impegno a livello di manutenzione.
Utilizzare i template per suddividere e riutilizzare la business logic. Tuttavia, i template non devono essere regole completamente operative contenenti Fix, EndFix. La regola in cui sono combinati vari template deve includere un'istruzione OUTER FIX adeguata e lo spostamento di parti più piccole se necessario.
Aggiunta della business logic mediante i calcoli
Per incorporare la business logic nell'applicazione, è possibile creare calcoli utilizzando Calculation Manager. Ciò consente di creare, convalidare, distribuire e amministrare calcoli sofisticati in grado di risolvere i problemi aziendali.
Di norma, l'utente crea le regole e i set di regole business per effettuare le operazioni riportate di seguito:
Eseguire la modellazione dei ricavi
Eseguire la modellazione delle spese
Calcolare gli indicatori KPI
Eseguire le allocazioni
Calculation Manager include gli oggetti riportati di seguito.
Regole, che contengono componenti e template
Componenti, che assistono l'utente durante la creazione delle regole
Set di regole, che contengono regole che è possibile calcolare contemporaneamente o sequenzialmente
Template: includere i template di sistema che eseguono i calcoli, nonché i template customizzati che possono essere progettati dagli amministratori
Componenti: assistono l'utente durante la creazione delle regole
Per ulteriori informazioni sulla creazione dei calcoli, vedere le linee guida in Progettazione con Calculation Manager per Oracle Enterprise Performance Management Cloud.
Creazione delle aggregazioni
Le aggregazioni eseguono il rollup dell'applicazione nei membri a livello di riepilogo della dimensione, ad esempio una dimensione Entità o qualsiasi altra dimensione sparsa.
Calculation Manager include template utili per la generazione di aggregazioni. Ecco alcuni suggerimenti su come utilizzare i template.
Impostazione del punto di vista
Quando il punto di vista è impostato, la regola viene eseguita solo per i membri selezionati. L'uso di un prompt runtime per le dimensioni consente agli utenti di specificare i valori membro per le dimensioni all'avvio dell'esecuzione della regola. In questo modo, gli utenti possono avviare la regola più volte per anni, scenari e versioni diversi, senza doverla modificare in Calculation Manager.
Impostazioni standard:
Aggregazione densa completa: completare questa sezione se i valori padre nelle dimensioni dense non sono impostati per il calcolo dinamico. In genere questa scheda viene lasciata vuota.
Aggregazione sparsa completa: selezionare la dimensione sparsa da aggregare. L'ordine delle dimensioni selezionate non è importante.
Aggregazione di dimensione parziale - densa: completare questa sezione se i valori padre nelle dimensioni dense non sono impostati per il calcolo dinamico. In genere questa scheda viene lasciata vuota.
Aggregare i dati alla valuta locale: No
Aggregare i valori mancanti nel database: Sì
Ottimizzare il calcolo per la dimensione sparsa: Disattiva
Selezionare un valore per la cache della calcolatrice: Predefinito
Attivare la modalità di debug per la procedura guidata?: Debug procedura guidata attivato o Debug procedura guidata disattivato. Selezionare Debug procedura guidata attivato se si desidera che venga generato uno script per visualizzare le selezioni per alcuni dei Design Time Prompt nel template.
Procedure consigliate:
Utilizzare prompt runtime per i membri quali Entità, Scenario e Versione. Ciò conferisce dinamicità alla regola, che potrà essere eseguita in base all'input dell'utente.
In genere, l'aggregazione non è necessaria per le dimensioni dense quali Conto e Periodo. In questo caso è possibile impostare i membri padre per il calcolo dinamico. Se tuttavia le dimensioni dense contengono formule membro non impostate per il calcolo dinamico, sarà necessaria una regola Calc Dim.
Creazione di calcoli dettagliati
Con Calculation Manager è possibile creare, convalidare, distribuire e amministrare calcoli per la soluzione dei problemi aziendali.
In Gestione calcoli è possibile calcolare tre tipi di oggetti:
Set di regole, che contengono regole che è possibile calcolare contemporaneamente o sequenzialmente
Regole, che contengono componenti e template
Componenti: includono componenti formula, script, condizione, intervallo e loop fisso
Procedure consigliate:
Come primo passo della procedura di creazione delle regole, verificare di aver capito la business logic e di conoscere le entità e i reparti ai quali verrà applicata la regola. Ad esempio, è opportuno conoscere i conti coinvolti nella regola.
Verificare di conoscere i conti di origine e di destinazione.
Dopo aver acquisito le necessarie informazioni sui driver del calcolo, utilizzare il componente oggetto appropriato per creare la regola. I componenti e i template contribuiscono alla distribuzione delle regole facilitando la selezione dei membri.
Sfruttando i prompt runtime per membri quali Entità, Scenario e Versione è possibile conferire dinamicità alle regole ed eseguirle in base all'input dell'utente.
Diagnostica di Calculation Manager
Eseguire la funzione Errori e avvisi prima di distribuire le regole. In questo modo vengono recuperate informazioni utili, ad esempio:
if (<q>Earned Premium</q><>0).
In questo modo, la presenza di zeri non sarà significativa nell'applicazione.Esempi di problemi e soluzioni per le regole
Esempio 1: regola che effettua più passaggi nel database
La seguente regola effettua 10 passaggi nel database per anni e periodo, valuta e conti.
Esempio 2: regola che effettua un unico passaggio nel database
La seguente regola effettua un unico passaggio nel database. Si tratta di una riduzione significativa a livello di totale di celle interessate.
Esempio 3: regola che copia e crea zeri
In questa regola, se eventuali componenti del lato destro dell'equazione contengono uno zero, il membro derivato sarà 0. Dopo l'aggregazione saranno presenti numerosi zeri. Per risolvere questo problema, la regola deve includere un'istruzione IF contenente if ("Earned Premium"<>0)
. In questo modo, la presenza di zeri non sarà significativa nell'applicazione.
Esempio 4: rimozione degli zeri dai cubi BSO
La seguente formula restituisce il valore originale oppure, se è 0, visualizzerà #missing.
"DenseMbr" = "DenseMbr" * "DenseMbr"/"DenseMbr";
"SparseMbr" = "SparseMbr" * "SparseMbr"/"SparseMbr";
Per risolvere questo problema, creare una regola che utilizza la formula. Utilizzare una dimensione sparsa contenente un numero minore di membri, ad esempio Anno, Scenario o Versione, perché il calcolo deve essere eseguito per ogni membro.
Fix(idescendants(Entity),@levmbrs(Accounts,0),@levmbrs(Period,0),@idescendants(Custom dimensions), @levmbrs(Years,0),@levmbrs(Versions)) Actual=Actual*Actual/Actual; Fix("Actual") CLEARBLOCK EMPTY: Endfix Endfix
Ricordarsi di eseguire una ristrutturazione in un secondo momento. In caso contrario, i blocchi vuoti non verranno eliminati.