Présentation
Ce tutoriel explique comment mettre en oeuvre des scripts Groovy pour utiliser des grilles de données et des itérateurs de grille de données. Vous utilisez une logique conditionnelle pour définir les couleurs d'arrière-plan dans une grille de données, mettre en oeuvre l'analyse comparative des performances et définir les valeurs de données par défaut dans une grille.
Contexte
Une interface de grille de données permet d'accéder aux cellules d'en-tête POV/Row/Column et fournit divers itérateurs pour effectuer une itération sur les cellules de données.
Préalables
Les tutoriels pratiques Cloud EPM peuvent nécessiter l'importation d'un instantané dans votre instance Cloud EPM Enterprise Service. Avant d'importer un instantané de tutoriel, vous devez demander une autre instance du service Cloud EPM Enterprise ou supprimer l'application et le processus d'affaires courants. L'instantané du tutoriel ne sera pas importé sur votre application ou processus d'affaires existant, et il ne remplacera pas ou ne restaurera pas automatiquement l'application ou le processus d'affaires avec lequel vous travaillez actuellement.
Avant de commencer ce tutoriel, vous devez :
- Permet à l'administrateur de service d'accéder à une instance Cloud EPM Enterprise Service.
- Chargez et importez cet instantané dans votre instance Planning.
Note :
Si vous rencontrez des erreurs de migration lors de l'importation de l'instantané, réexécutez la migration à l'exclusion du composant HSS-Shared Services, ainsi que des artefacts Security et User Preferences du composant Core. Pour plus d'informations sur le chargement et l'importation d'instantanés, consultez la documentation sur l'administration de la migration pour Oracle Enterprise Performance Management Cloud.Conseil :
Les scripts dont vous avez besoin pour ce tutoriel sont liés sous forme de fichiers texte dans chaque section.Définir la couleur d'arrière-plan à l'aide d'une logique conditionnelle
Dans cette section, vous mettez en oeuvre un script Groovy pour régler la couleur d'arrière-plan des cellules dont la valeur de données est #MISSING à la couleur █ (0x00BFFF), des cellules dont la valeur de données est inférieure ou égale à 50000 à la couleur █ (0xFF8C00) et des cellules dont la valeur de données est supérieure à 50000 à la couleur █ (0x00FA9A).
Note :
Après avoir défini un script Groovy, il peut être associé à n'importe quel formulaire, contrairement aux règles de validation de données, qui doivent être définies dans le contexte de chaque formulaire.- Ouvrez Calculation Manager et créez une règle nommée Groovy Set Background Color dans le cube Plan1.
- Dans l'éditeur de règle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
- Copiez ce script et collez-le dans l'éditeur :
- Dans la barre d'outils, cliquez sur
(Enregistrer) pour enregistrer le script, puis cliquez sur
(Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
- Dans le navigateur, ouvrez le gestionnaire de formulaires et sélectionnez le formulaire EmployeeDriverForm.
- Modifiez le formulaire et associez la règle Groovy Set Background Color à exécuter After Load (Après le chargement). Enregistrez le formulaire et fermez la fenêtre Form Manager.
- Dans le navigateur ou la page d'accueil, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm et vérifiez que le script met en surbrillance les cellules telles qu'elles ont été conçues.


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
}
Le script effectue une itération sur chaque cellule de données de la grille de données courante,
operation.grid
, retournée par dataCellIterator
.
La variable implicite "it" fait référence à l'élément courant en cours d'itération. Dans ce cas, la variable "it" fait référence à la cellule de données courante retournée par dataCellIterator
.
Conseil :
Vous pouvez également utiliser une variable nommée explicitement, telle que "cell", comme illustré dans l'exemple ci-dessous :operation.grid.dataCellIterator.each { cell -> if(cell.missing) { cell.bgColor = 0x00BFFF } }
Pour la cellule de données courante, le script recherche une valeur manquante.
Note :
Notez quecell.data
retourne 0 (zéro) pour les cellules qui sont #MISSING ou zéro. Pour vérifier qu'une cellule contient #MISSING et non zéro, vous pouvez utiliser la propriété cell.missing
. Pour vérifier la valeur zéro d'une cellule et non #MISSING, vous pouvez utiliser une condition telle que cell.data == 0 && !cell.missing
. Si VRAI, le script règle la couleur d'arrière-plan de la cellule à
0x00BFFF
( █)
Le script vérifie que la valeur des données est inférieure ou égale à 50000.
Si VRAI, le script règle la couleur d'arrière-plan de la cellule à
0xFF8C00
( █)
Si la valeur de données de la cellule est supérieure à 50000, le script règle la couleur d'arrière-plan de la cellule à
0x00FA9A ( █ )




Profilage et débogage du script
Dans cette section, vous apprendrez à utiliser les itérateurs fournis par l'interface DataGrid, à profiler le code et à ajouter des énoncés de débogage à la console des tâches.
- Ouvrez Calculation Manager et créez une règle nommée Groovy Iterator Performance dans le cube Plan1 .
- Dans l'éditeur de règle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
- Copiez ce script et collez-le dans l'éditeur :
- Dans la barre d'outils, cliquez sur
(Enregistrer) pour enregistrer le script, puis cliquez sur
(Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
- Dans le navigateur, ouvrez le gestionnaire de formulaires et sélectionnez le formulaire EmployeeDriverForm.
- Modifiez le formulaire et associez la règle Groovy Iterator Performance à exécuter Après l'enregistrement. Enregistrez le formulaire et fermez la fenêtre Form Manager.
- Dans le navigateur ou la page d'accueil, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm et remplacez le salaire minimum pour l'échelon 1 par 35000 et la prime minimum pour l'échelon 2 par 2000.
- Enregistrer et fermer le formulaire. Accédez à la console Jobs.
- Cliquez sur Performance de l'itérateur Groovy pour afficher les détails de la tâche. Cliquez sur le statut Terminé pour voir les messages du journal imprimés par le 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')
![]()
Définissez une méthode d'utilitaire nommée
benchmark()
qui utilise la valeur GridIterator
spécifiée pour effectuer une itération sur ses cellules et qui imprime la liste des noms de membre de toutes les dimensions représentées par la cellule avec ses données. Il imprime également le temps pris par l'itérateur.
Démarrez une minuterie.
Effectuez une itération sur chaque cellule à l'aide de la valeur
GridIterator
spécifiée et imprimez la liste des noms de membre de toutes les dimensions que la cellule représente, ainsi que sa valeur de données et sa valeur formatée. $it.data
retourne la valeur numérique de la cellule et $it.formattedValue
retourne des valeurs non numériques telles que Texte, Liste dynamique ou Date telles qu'entrées par l'utilisateur.
Imprimez le temps nécessaire à l'itérateur pour accéder à la console des tâches.
Enregistrez un message de débogage dans la console des tâches.
Appelez la méthode
benchmark()
avec un itérateur pour effectuer une itération sur chaque cellule de la grille de données courante.
Appelez la méthode benchmark() avec un itérateur pour effectuer une itération sur les cellules modifiées dans la grille de données courante.
Conseil :
Cet itérateur peut être utilisé avec n'importe quelle propriété de l'objet DataCell qui retourne une valeur booléenne telle que verrouillée, manquante, valide, readOnly, validIntersection, etc. Appelez la méthode
benchmark()
à l'aide d'un itérateur pour effectuer une itération sur les cellules de données Salaire minimal et Prime minimale dans la grille de données courante.





Le premier itérateur imprime toutes les cellules et les valeurs de données, le deuxième itérateur n'imprime que les deux cellules qui ont été modifiées, et le troisième itérateur n'imprime que les cellules des colonnes Salaire min. et Prime min.
Définition des valeurs de données par défaut
Dans cette section, vous apprendrez à définir les valeurs de données par défaut dans la grille à l'aide de l'interface DataGridBuilder
.
- Ouvrez Calculation Manager et créez une règle nommée Groovy Reset Grade Data dans le cube Plan1.
- Dans l'éditeur de règle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
- Copiez ce script et collez-le dans l'éditeur :
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)
}
- Dans la barre d'outils, cliquez sur
(Enregistrer) pour enregistrer le script, puis cliquez sur
(Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
- Dans le navigateur, ouvrez le gestionnaire de formulaires et associez la règle Groovy Reset Grade Data à l'écran EmployeeDriverForm. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
- Dans la page d'accueil de Planning, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm, cliquez sur Actions, puis sélectionnez Règles d'affaires dans le menu déroulant. Cliquez sur Réinitialiser les données d'échelon Groovy pour exécuter la règle.
- Une fois la règle exécutée avec succès, cliquez sur OK dans la boîte de dialogue Informations et vérifiez que les données de grille ont été réinitialisées.
- Fermez le formulaire et accédez à la console Jobs.
- Cliquez sur Groovy Reset Grade Data (Réinitialiser les données d'échelon de l'entreprise) pour afficher les détails de l'emploi. Cliquez sur le statut Terminé pour voir les détails du nombre de cellules acceptées ou rejetées.
Créez un objet de cube pour le cube Plan 1.
Obtenez une valeur DataGridBuilder pour le cube; définissez le format dans lequel le script fournit les valeurs de date.
Note :
DataGridBuilder prend également en charge l'enregistrement des données au nom d'un utilisateur du système en acceptantExecuteAsUser
comme deuxième paramètre. L'enregistrement des données en tant qu'utilisateur système permet d'enregistrer les données sans appliquer la sécurité de l'utilisateur courant. Les valeurs valides pour ExecuteAsUser
sont CURRENT_USER
(valeur par défaut) et SYSTEM_USER
, comme dans l'exemple suivant :DataGridBuider builder = cube.dataGridBuilder("MM/DD/YYYY", SYSTEM_USER)
Construisez une grille de données en ajoutant les membres PDV, les membres de colonne et les lignes avec des valeurs de données.
Créez un objet de statut pour l'objet DataGrid créé à l'étape suivante.
Créez l'objet DataGrid avec la construction withCloseable. La construction ferme l'objet DataGrid lorsque le bloc de code termine l'exécution. Ceci est important pour s'assurer que la règle ne laisse pas l'objet DataGrid ouvert en mémoire une fois les opérations terminées.
Imprimer le nombre de cellules acceptées ou rejetées par le générateur sur la console des tâches. Toutes les cellules en lecture seule sont rejetées.
Enregistrez la grille de données.
La grille est automatiquement fermée.





Tutoriel suivant
Liens connexes
- Documentation : Utiliser des règles Groovy
- Vidéos sur Groovy sur le canal YouTube des tutoriels sur Oracle EPM
- EPM Cloud Planning - Tutoriels Groovy
- Informations de référence sur l'API Java pour Oracle Enterprise Performance Management Cloud et Groovy Rules
- API REST pour Oracle Enterprise Performance Management Cloud
- Référence de script Groovy
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez Oracle University pour voir les ressources de formation disponibles.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Utilisation de grilles de données et d'itérateurs dans Groovy
G42660-01
Septembre 2025