Introduzione
Questa esercitazione descrive come implementare gli script Groovy per utilizzare le griglie di dati e i rispettivi iteratori. È possibile utilizzare la logica condizionale per impostare i colori di sfondo in una griglia dati, implementare il benchmark delle prestazioni e impostare i valori di dati predefiniti in una griglia.
Presupposto
Un'interfaccia della griglia dati fornisce l'accesso alle celle di intestazione punto di vista/riga/colonna e fornisce vari iteratori da iterare sulle celle dati.
Prerequisiti
Le esercitazioni pratiche su Cloud EPM potrebbero richiedere l'importazione di uno snapshot nell'istanza di Cloud EPM Enterprise Service. Prima di poter importare uno snapshot dell'esercitazione, è necessario richiedere un'altra istanza di Cloud EPM Enterprise Service o rimuovere l'applicazione e il processo aziendale correnti. Lo snapshot dell'esercitazione non verrà importato nell'applicazione o nel processo aziendale esistente, né sostituirà o ripristinerà automaticamente l'applicazione o il processo aziendale in uso.
Prima di iniziare questo tutorial, è necessario:
- Consente all'amministratore dei servizi di accedere a un'istanza di Cloud EPM Enterprise Service.
- Caricare e importare questo snapshot nell'istanza di Planning.
Nota
Se si verificano errori di migrazione durante l'importazione dello snapshot, eseguire di nuovo la migrazione escludendo il componente HSS-Shared Services e gli artifact delle preferenze di sicurezza e utente nel componente Core. Per ulteriori informazioni sul caricamento e l'importazione degli snapshot, fare riferimento alla documentazione Amministrazione della migrazione per Oracle Enterprise Performance Management Cloud.Suggerimento
Gli script necessari per questa esercitazione sono collegati come file di testo all'interno di ciascuna sezione.Impostazione del colore di sfondo mediante la logica condizionale
In questa sezione, si implementa uno script Groovy per impostare il colore di sfondo per le celle con valore dati #MISSING su █ (0x00BFFF), le celle con valore dati minore o uguale a 50000 per il colore █ (0xFF8C00) e le celle con valori dati maggiori di 50000 per il colore █ (0x00FA9A).
Nota
Dopo aver definito uno script Groovy, può essere associato a qualsiasi modulo, a differenza delle regole di convalida dei dati, che devono essere definite nel contesto di ogni modulo.- Aprire Calculation Manager e creare una regola denominata Colore sfondo set di griglie nel cubo Plan1.
- Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
- Copiare lo script e incollarlo nell'editor:
- Nella barra degli strumenti fare clic su
(Salva) per salvare lo script, quindi fare clic su
(Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
- Nel Navigator aprire Form Manager e selezionare il form EmployeeDriverForm.
- Modificare il form e associare la regola Colore sfondo set Groovy da eseguire Dopo il caricamento. Salvare la maschera e chiudere la finestra Gestione maschera.
- Nel Navigatore o nella home page fare clic su Dati. Aprire il modulo EmployeeDriverForm e verificare che lo script evidenzi le celle come progettato.


operation.grid.dataCellIterator.each {if(it.missing) {
it.bgColor = 0x00BFFF
} else if(it.data <= 50000)
it.bgColor = 0xFF8C00
else if(it.data > 50000) it.bgColor = 0x00FA9A
}
Lo script esegue l'iterazione su ogni cella di dati nella griglia dati corrente,
operation.grid
, restituita da dataCellIterator
.
La variabile "it" implicita fa riferimento all'elemento corrente di cui si esegue l'iterazione. In questo caso la variabile "it" si riferisce alla cella di dati corrente restituita da dataCellIterator
.
Suggerimento
È inoltre possibile utilizzare una variabile denominata in modo esplicito, ad esempio "cella", come mostrato nell'esempio riportato di seguito.operation.grid.dataCellIterator.each { cell -> if(cell.missing) { cell.bgColor = 0x00BFFF } }
Per la cella dati corrente, lo script verifica la presenza di un valore mancante.
Nota
Si noti checell.data
restituisce 0 (zero) per le celle #MISSING o zero. Per controllare una cella per #MISSING e non per zero, è possibile utilizzare la proprietà cell.missing
. Per controllare il valore zero di una cella e non #MISSING, è possibile utilizzare una condizione come cell.data == 0 && !cell.missing
. Se TRUE, lo script imposta il colore di sfondo della cella su
0x00BFFF
( █ )
Lo script verifica che il valore dei dati sia minore o uguale a 50000.
Se TRUE, lo script imposta il colore di sfondo della cella su
0xFF8C00
( █ )
Se il valore dei dati della cella è superiore a 50000, lo script imposta il colore di sfondo della cella su
0x00FA9A ( █ )




Profilazione e debug dello script
In questa sezione viene descritto come utilizzare gli iteratori forniti dall'interfaccia DataGrid, profilare il codice e aggiungere istruzioni di debug alla console job.
- Aprire Gestione calcoli e creare una regola denominata Prestazioni iteratore Groovy nel cubo Plan1.
- Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
- Copiare lo script e incollarlo nell'editor:
- Sulla barra degli strumenti fare clic su
(Salva) per salvare lo script, quindi fare clic su
(Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
- Nel Navigator aprire Form Manager e selezionare il form EmployeeDriverForm.
- Modificare il form e associare la regola Prestazioni iteratore Groovy da eseguire Dopo il salvataggio. Salvare la maschera e chiudere la finestra Gestione maschera.
- Nel Navigatore o nella home page fare clic su Dati. Aprire il form EmployeeDriverForm e modificare lo stipendio minimo per il livello 1 in 35000 e il bonus minimo per il livello 2 in 2000.
- Salvare e chiudere il form. Andare alla console Job.
- Fare clic su Prestazioni iteratore Groovy per visualizzare i dettagli del job. Fare clic sullo stato Completato per visualizzare i messaggi di log stampati dallo script Groovy.


def benchmark(GridIterator itr) {def start = currentTimeMillis()
itr.each { println "$it.memberNames, cell data: $it.data, $it.formattedValue" }
def elapsed = currentTimeMillis() - start println "\nTime taken by iterator: $elapsed"
} println "Iterate over all data cells in this data grid...\n"
benchmark operation.grid.dataCellIterator()
println "Iterate over edited data cells in this data grid...\n" benchmark operation.grid.dataCellIterator({DataCell cell -> cell.edited})
println "Iterate over Min Salary and Min Bonus data cells in this data grid...\n" benchmark operation.grid.dataCellIterator('Min Salary', 'Min Bonus')
![]()
Definire un metodo di utility denominato
benchmark()
che utilizza il valore GridIterator
specificato per eseguire l'iterazione sulle celle e visualizza l'elenco dei nomi dei membri di tutte le dimensioni rappresentate dalla cella insieme ai relativi dati. Stampa anche il tempo impiegato dall'iteratore.
Avviare un timer.
Eseguire l'iterazione su ogni cella utilizzando il valore
GridIterator
specificato e stampare l'elenco dei nomi dei membri da tutte le dimensioni rappresentate dalla cella insieme al relativo valore dati e al valore formattato. $it.data
restituisce il valore numerico per la cella e $it.formattedValue
restituisce valori non numerici quali Testo, Smart List o Data immessi dall'utente.
Stampare il tempo impiegato dall'iteratore nella console job.
Registra un messaggio di debug nella console job.
Richiamare il metodo
benchmark()
con un iteratore per eseguire l'iterazione su ogni cella della griglia dati corrente.
Chiamare il metodo benchmark() con un iteratore per eseguire l'iterazione sulle celle modificate nella griglia dati corrente.
Suggerimento
Questo iteratore può essere utilizzato con qualsiasi proprietà dell'oggetto DataCell che restituisce un valore booleano, ad esempio bloccato, mancante, valido, readOnly, validIntersection e così via. Chiamare il metodo
benchmark()
con un iteratore per eseguire l'iterazione sulle celle dati Stipendio minimo e Bonus minimo nella griglia dati corrente.





Il primo iteratore stampa tutte le celle e i valori dei dati, il secondo iteratore stampa solo le due celle modificate e il terzo iteratore stampa solo le celle per le colonne Stipendio minimo e Bonus minimo.
Impostazione dei valori dei dati predefiniti
In questa sezione viene descritto come impostare i valori dei dati predefiniti nella griglia utilizzando l'interfaccia DataGridBuilder
.
- Aprire Gestione calcoli e creare una regola denominata Reimposta dati livello Groovy nel cubo Plan1.
- Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
- Copiare lo script e incollarlo nell'editor:
Cube cube = operation.application.getCube("Plan1")
DataGridBuilder builder = cube.getDataGridBuilder("MM/DD/YYYY")
builder.addPov('FY16', 'Current', 'USD', 'BegBalance', 'BU Version_1', 'No Entity')
builder.addColumn('Min Salary', 'Max Salary', 'Min Bonus', 'Max Bonus') builder.addRow(['Grade 1'], [30000, 50000, '#missing', '#missing']) builder.addRow(['Grade 2'], [40000, 60000, '#missing', 5000]) builder.addRow(['Grade 3'], [70000, 90000, '#missing', 10000]) DataGridBuilder.Status status = new DataGridBuilder.Status()
builder.build(status).withCloseable { DataGrid grid ->
println("Total number of cells accepted: $status.numAcceptedCells")
println("Total number of cells rejected: $status.numRejectedCells") println("First 100 rejected cells: $status.cellsRejected") cube.saveGrid(grid)
}
- Nella barra degli strumenti fare clic su
(Salva) per salvare lo script, quindi fare clic su
(Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
- Dal Navigator aprire Form Manager e associare la regola Groovy Reimposta dati livello al form EmployeeDriverForm. Salvare il form e chiudere la finestra Gestione form.
- Nella home page Pianificazione, fare clic su Dati. Aprire il form EmployeeDriverForm, fare clic su Azioni e selezionare Regole business dal menu a discesa. Fare clic su Ripristina dati livello Groovy per eseguire la regola.
- Dopo aver eseguito correttamente la regola, fare clic su OK nella finestra di dialogo Informazioni e verificare che i dati della griglia siano stati reimpostati.
- Chiudere il form e andare ad aprire la console Job.
- Fare clic su Ripristina dati livello Groovy per visualizzare i dettagli del job. Fare clic sullo stato Completato per visualizzare i dettagli relativi al numero di celle accettate e/o rifiutate.
Creare un oggetto cubo per il cubo Piano 1.
Ottenere un valore DataGridBuilder per il cubo; definire il formato in cui lo script fornisce i valori di data.
Nota
DataGridBuilder supporta anche il salvataggio dei dati per conto di un utente di sistema accettandoExecuteAsUser
come secondo parametro. Il salvataggio dei dati come utente di sistema consente di salvare i dati senza applicare la sicurezza dell'utente corrente. I valori validi per ExecuteAsUser
sono CURRENT_USER
(impostazione predefinita) e SYSTEM_USER
, come nell'esempio seguente:DataGridBuider builder = cube.dataGridBuilder("MM/DD/YYYY", SYSTEM_USER)
Creare una griglia dati aggiungendo i membri POV, i membri colonna e le righe con valori dati.
Creare un oggetto di stato per l'oggetto DataGrid creato nel passo successivo.
Costruire l'oggetto DataGrid con il costrutto withCloseable. Il costrutto chiude l'oggetto DataGrid quando il blocco di codice completa l'esecuzione. Ciò è importante per assicurarsi che la regola non lasci l'oggetto DataGrid aperto in memoria al termine delle operazioni.
Stampa il numero di celle accettate o rifiutate dal builder nella console job. Tutte le celle di sola lettura vengono rifiutate.
Salvare la griglia dati.
La griglia viene chiusa automaticamente.





Esercitazione successiva
Collegamenti correlati
- Documentazione: utilizzo di regole Groovy
- Video Groovy su Canale YouTube Tutorial su Oracle EPM
- EPM Cloud Planning - Esercitazioni di Groovy
- Riferimento Java API per le regole Groovy di Oracle Enterprise Performance Management Cloud
- API REST per Oracle Enterprise Performance Management Cloud
- Riferimento script Groovy
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visita Oracle University per visualizzare le risorse di formazione disponibili.
Per la documentazione del prodotto, visitare Oracle Help Center.
Utilizzo delle griglie di dati e degli iteratori in Groovy
G42662-01
Settembre 2025