Introduction
Ce tutoriel vous explique comment implémenter des scripts Groovy pour utiliser des grilles de données et des itérateurs de grille. La logique conditionnelle permet de définir les couleurs d'arrière-plan dans une grille de données, d'implémenter une analyse comparative des performances et de 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 de PDV/Ligne/Colonne et fournit divers itérateurs pour effectuer des itérations sur les cellules de données.
Prérequis
Les tutoriels pratiques Cloud EPM peuvent vous obliger à importer un cliché dans votre instance Cloud EPM Enterprise Service. Pour pouvoir importer un instantané de tutoriel, vous devez demander une autre instance Cloud EPM Enterprise Service ou supprimer l'application et le processus métier en cours. L'instantané du tutoriel ne sera pas importé sur votre application ou processus métier existant, ni remplacé ou restauré automatiquement l'application ou le processus métier que vous utilisez actuellement.
Avant de commencer ce tutoriel, vous devez :
- Demandez à l'administrateur de service d'accéder à une instance Cloud EPM Enterprise Service.
- Téléchargez et importez ce cliché dans l'instance Planning.
Remarques :
Si vous rencontrez des erreurs de migration lors de l'importation du cliché, réexécutez la migration en excluant le composant HSS-Shared Services, ainsi que les artefacts de sécurité et de préférences utilisateur du composant de base. Pour plus d'informations sur le téléchargement et l'import de clichés, reportez-vous à la documentation Administration de la migration pour Oracle Enterprise Performance Management Cloud.Conseil :
Les scripts dont vous avez besoin pour ce tutoriel sont liés en tant que fichiers texte dans chaque section.Définition de la couleur d'arrière-plan à l'aide d'une logique conditionnelle
Dans cette section, vous implémentez un script Groovy pour définir la couleur d'arrière-plan des cellules dont la valeur de données est #MISSING sur la couleur █ (0x00BFFF), des cellules dont la valeur de données est inférieure ou égale à 50000 sur la couleur █ (0xFF8C00) et des cellules dont la valeur de données est supérieure à 50000 sur la couleur █ (0x00FA9A).
Remarques :
Une fois que vous avez défini un script Groovy, il peut être associé à n'importe quel formulaire, contrairement aux règles de validation des 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ègles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
- Copiez le script et collez-le dans l'éditeur :
- Dans la barre d'outils, cliquez sur
(Enregistrer) pour enregistrer le script, puis sur
(Valider et déployer) pour le valider et le déployer. 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 Définir la couleur d'arrière-plan à exécuter Après chargement. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
- Sur la page d'accueil ou le Navigateur, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm et vérifiez que le script met en surbrillance les cellules telles que 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 en cours,
operation.grid
, renvoyée par dataCellIterator
.
La variable implicite "it" fait référence à l'élément en cours d'itération. Dans ce cas, la variable "it" fait référence à la cellule de données actuelle renvoyée par dataCellIterator
.
Conseil :
Vous pouvez également utiliser une variable nommée explicitement, telle que "cell", comme indiqué dans l'exemple ci-dessous :operation.grid.dataCellIterator.each { cell -> if(cell.missing) { cell.bgColor = 0x00BFFF } }
Pour la cellule de données actuelle, le script recherche une valeur manquante.
Remarques :
cell.data
renvoie 0 (zéro) pour les cellules qui sont #MISSING ou zéro. Pour rechercher #MISSING dans une cellule et non zéro, vous pouvez utiliser la propriété cell.missing
. Pour rechercher une valeur nulle dans une cellule et non #MISSING, vous pouvez utiliser une condition telle que cell.data == 0 && !cell.missing
. Si Vrai, le script définit la couleur d'arrière-plan de la cellule sur
0x00BFFF
( █ )
Le script vérifie que la valeur de données est inférieure ou égale à 50000.
Si Vrai, le script définit la couleur d'arrière-plan de la cellule sur
0xFF8C00
( █ )
Si la valeur de données de la cellule dépasse 50000, le script définit la couleur d'arrière-plan de la cellule sur
0x00FA9A ( █ )




Profilage et débogage du script
Dans cette section, vous allez apprendre à utiliser les itérateurs fournis par l'interface DataGrid, à profiler le code et à ajouter des instructions de débogage à la console de jobs.
- Ouvrez Calculation Manager et créez une règle nommée Performances de l'itérateur Groovy dans le cube Plan1.
- Dans l'éditeur de règles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
- Copiez le script et collez-le dans l'éditeur :
- Dans la barre d'outils, cliquez sur
(Save) pour enregistrer le script, puis cliquez sur
(Validate and Deploy) 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 Performances d'itérateur Groovy à exécuter Après l'enregistrement. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
- Sur la page d'accueil ou le Navigateur, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm et modifiez le salaire minimum pour le grade 1 en 35000 et la prime minimum pour le grade 2 en 2000.
- Enregistrez et fermez le formulaire. Accédez à la console Jobs.
- Cliquez sur Performances de l'itérateur Groovy pour afficher les détails du travail. Cliquez sur le statut Terminé pour afficher les messages de 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 utilitaire nommée
benchmark()
qui utilise l'élément GridIterator
indiqué pour effectuer une itération sur ses cellules et affiche la liste des noms de membre de toutes les dimensions que la cellule représente avec ses données. Il imprime également le temps pris par l'itérateur.
Démarrez une horloge.
Parcourez chaque cellule à l'aide de l'élément
GridIterator
indiqué et affichez la liste des noms de membre de toutes les dimensions représentées par la cellule, ainsi que sa valeur de données et sa valeur formatée. $it.data
renvoie la valeur numérique de la cellule et $it.formattedValue
renvoie des valeurs non numériques telles que Texte, Liste dynamique ou Date, telles qu'elles ont été saisies par l'utilisateur.
Affichez le temps nécessaire à l'itérateur sur la console de jobs.
Consignez un message de débogage dans la console de jobs.
Appelez la méthode
benchmark()
avec un itérateur pour parcourir chaque cellule de la grille de données en cours.
Appelez la méthode benchmark() avec un itérateur pour parcourir les cellules modifiées dans la grille de données actuelle.
Conseil :
Cet itérateur peut être utilisé avec n'importe quelle propriété de l'objet DataCell qui renvoie un booléen tel que verrouillé, manquant, valide, readOnly, validIntersection, etc. Appelez la méthode
benchmark()
avec un itérateur pour parcourir les cellules de données Min Salary et Min Bonus de la grille de données actuelle.





Le premier itérateur imprime toutes les cellules et les valeurs de données, le second n'imprime que les deux cellules qui ont été modifiées et le troisième n'imprime que les cellules des colonnes Salaire min. et Bonus min.
Définition des valeurs de données par défaut
Dans cette section, vous allez apprendre à 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 Données de grade de réinitialisation Groovy dans le cube Plan1.
- Dans l'éditeur de règles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
- Copiez le 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 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 au formulaire EmployeeDriverForm. Enregistrez le formulaire et fermez la fenêtre du gestionnaire de formulaires.
- Sur la page d'accueil de Planning, cliquez sur Données. Ouvrez le formulaire EmployeeDriverForm, cliquez sur Actions, puis sélectionnez Règles métier dans le menu déroulant. Cliquez sur Réinitialiser les données de grade Groovy pour exécuter la règle.
- Une fois la règle exécutée, 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 Réinitialiser les données de grade Groovy pour afficher les détails de l'emploi. Cliquez sur l'état Terminé pour afficher les détails du nombre de cellules acceptées et/ou rejetées.
Créez un objet 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.
Remarques :
DataGridBuilder prend également en charge l'enregistrement de données pour le compte d'un utilisateur système en acceptantExecuteAsUser
comme deuxième paramètre. L'enregistrement de données en tant qu'utilisateur système permet d'enregistrer les données sans appliquer la sécurité de l'utilisateur actuel. 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)
Construire une grille de données en ajoutant les membres de 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 l'exécution du bloc de code est terminée. Il est important de s'assurer que la règle ne laisse pas l'objet DataGrid ouvert en mémoire une fois les opérations terminées.
Affichez le nombre de cellules acceptées ou rejetées par le générateur sur la console de jobs. 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 Groovy sur le canal YouTube des tutoriels Oracle EPM
- EPM Cloud Planning - Tutoriels Groovy
- Référence d'API Java pour les règles Groovy Oracle Enterprise Performance Management Cloud
- API REST pour Oracle Enterprise Performance Management Cloud
- Référence de script Groovy
Ressources de formation supplémentaires
Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez Oracle University pour consulter les ressources de formation disponibles.
Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.
Utilisation des grilles de donnée et des itérateurs dans Groovy
G42661-01
Septembre 2025