Procedure consigliate per la progettazione di regole business

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.

  1. Attenersi alle seguenti linee guida per il comando SET:

    • Nella parte superiore della regola non utilizzare SET CREATEBLOCKONEQ ON e SET CREATENONMISSINGBLK ON.
    • Non utilizzare comandi di tipo amministrativo come questo nelle regole che interessano l'utente finale in quanto ciò richiede una ristrutturazione.
      SET CLEARBLOCK
                        EMPTY 
    • Evitare le regole che utilizzano SET CALCTASKDIMS oppure sottoporle a test. In genere, Oracle Essbase esegue questa operazione automaticamente.
    • La regola Copia dati deve includere la seguente istruzione per evitare la copia di blocchi vuoti all'interno dell'istruzione Fix.
      SET COPYMISSINGBLOCK
                        OFF 
  2. 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.

  3. 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.

  4. Rimuovere il calcolo parallelo nelle regole business associate ai form. Calc Parallel o Fix Parallel devono essere utilizzati solo con regole amministrative/batch.

  5. 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.

  6. 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.

  7. Evitare di utilizzare riferimenti incrociati tra dimensioni sul lato sinistro di un'equazione. Ciò può avere un impatto rilevante sulle performance.

  8. 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.

  9. 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.

  10. 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:

  • Numero di passaggi nel database
  • Avvisi necessari
  • Informazioni sul numero di blocchi e sulle eventuali dimensioni mancanti
  • Regole da ottimizzare
  • Se eventuali componenti del lato destro dell'equazione contengono uno zero, il membro derivato sarà 0. Dopo l'aggregazione saranno pertanto presenti numerosi 0.
  • Per risolvere questo problema, la regola deve includere un'istruzione IF contenente 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 di regola: più passaggi nel database

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.

Regola modificata: unico passaggio nel database

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 di regola che copia e crea zeri

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.