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.
  1. Aprire Calculation Manager e creare una regola denominata Colore sfondo set di griglie nel cubo Plan1.
  2. Descrizione
  3. Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
  4. Descrizione
  5. Copiare lo script e incollarlo nell'editor:
  6. 						
    operation.grid.dataCellIterator.each { Description
      if(it.missing) { Description
         it.bgColor = 0x00BFFF Description
      } else if(it.data <= 50000) Description 
         it.bgColor = 0xFF8C00 Description
      else if(it.data > 50000) 
         it.bgColor = 0x00FA9A Description	
    }
    		

    Descrizione 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
        }
    }

    Descrizione Per la cella dati corrente, lo script verifica la presenza di un valore mancante.

    Nota

    Si noti che cell.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.

    Descrizione Se TRUE, lo script imposta il colore di sfondo della cella su 0x00BFFF( )

    Descrizione Lo script verifica che il valore dei dati sia minore o uguale a 50000.

    Descrizione Se TRUE, lo script imposta il colore di sfondo della cella su 0xFF8C00 ( )

    Descrizione Se il valore dei dati della cella è superiore a 50000, lo script imposta il colore di sfondo della cella su 0x00FA9A ( )

  7. Nella barra degli strumenti fare clic su Descrizione (Salva) per salvare lo script, quindi fare clic su Convalida e distribuisci (Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
  8. Distribuzione riuscita
  9. Nel Navigator aprire Form Manager e selezionare il form EmployeeDriverForm.
  10. Form manager
  11. 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.
  12. Associare la regola
  13. Nel Navigatore o nella home page fare clic su Dati. Aprire il modulo EmployeeDriverForm e verificare che lo script evidenzi le celle come progettato.
  14. Il modulo EmployeeDriverForm con celle evidenziate.

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.

  1. Aprire Gestione calcoli e creare una regola denominata Prestazioni iteratore Groovy nel cubo Plan1.
  2. Descrizione
  3. Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
  4. Descrizione
  5. Copiare lo script e incollarlo nell'editor:
  6. def benchmark(GridIterator itr) { Description  
        def start = currentTimeMillis() Description   
        itr.each { println "$it.memberNames, cell data: $it.data, $it.formattedValue" } Description  
        def elapsed = currentTimeMillis() - start
        println "\nTime taken by iterator: $elapsed" Description  
    }
    
    println "Iterate over all data cells in this data grid...\n" Description  
    benchmark operation.grid.dataCellIterator() Description  
    
    println "Iterate over edited data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator({DataCell cell -> cell.edited}) Description  
    
    println "Iterate over Min Salary and Min Bonus data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator('Min Salary', 'Min Bonus') Description  
    

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

    Descrizione Avviare un timer.

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

    Descrizione Stampare il tempo impiegato dall'iteratore nella console job.

    Descrizione Registra un messaggio di debug nella console job.

    Descrizione Richiamare il metodo benchmark() con un iteratore per eseguire l'iterazione su ogni cella della griglia dati corrente.

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

    Descrizione Chiamare il metodo benchmark() con un iteratore per eseguire l'iterazione sulle celle dati Stipendio minimo e Bonus minimo nella griglia dati corrente.

  7. Sulla barra degli strumenti fare clic su Descrizione(Salva) per salvare lo script, quindi fare clic su Descrizione(Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
  8. Nel Navigator aprire Form Manager e selezionare il form EmployeeDriverForm.
  9. Form manager
  10. Modificare il form e associare la regola Prestazioni iteratore Groovy da eseguire Dopo il salvataggio. Salvare la maschera e chiudere la finestra Gestione maschera.
  11. Associare la regola
  12. 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.
  13. Il modulo EmployeeDriverForm con i dati inseriti.
  14. Salvare e chiudere il form. Andare alla console Job.
  15. Riquadro Attività recente della Console job.
  16. 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.
  17. I messaggi del log.

    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.

  1. Aprire Gestione calcoli e creare una regola denominata Reimposta dati livello Groovy nel cubo Plan1.
  2. Nell'editor regole, modificare l'opzione Designer in Modifica script e impostare il tipo di script su Script Groovy.
  3. Copiare lo script e incollarlo nell'editor:
    Cube cube = operation.application.getCube("Plan1") Description 
    
    DataGridBuilder builder = cube.getDataGridBuilder("MM/DD/YYYY") Description 
    builder.addPov('FY16', 'Current', 'USD', 'BegBalance', 'BU Version_1', 'No Entity') Description  
    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() Description  
    builder.build(status).withCloseable { DataGrid grid -> Description  
        println("Total number of cells accepted: $status.numAcceptedCells") Description  
        println("Total number of cells rejected: $status.numRejectedCells")
        println("First 100 rejected cells: $status.cellsRejected")
        cube.saveGrid(grid) Description  
    } Description  
  4. Descrizione Creare un oggetto cubo per il cubo Piano 1.

    Descrizione 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 accettando ExecuteAsUser 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)

    Descrizione Creare una griglia dati aggiungendo i membri POV, i membri colonna e le righe con valori dati.

    Descrizione Creare un oggetto di stato per l'oggetto DataGrid creato nel passo successivo.

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

    Descrizione Stampa il numero di celle accettate o rifiutate dal builder nella console job. Tutte le celle di sola lettura vengono rifiutate.

    Descrizione Salvare la griglia dati.

    Descrizione La griglia viene chiusa automaticamente.

  5. Nella barra degli strumenti fare clic su Descrizione (Salva) per salvare lo script, quindi fare clic su Descrizione (Convalida e distribuisci) per convalidare e distribuire lo script. Quando richiesto, fare clic su OK. Chiudere Calculation Manager.
  6. 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.
    Reimposta regola
  7. 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.
  8. Menu Azioni

    reimposta regola
  9. 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.
  10. Descrizione
  11. Chiudere il form e andare ad aprire la console Job.
  12. Descrizione
  13. 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.
  14. Descrizione

Esercitazione successiva

Convalida dei valori di immissione dati con 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.