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.
  1. Ouvrez Calculation Manager et créez une règle nommée Groovy Set Background Color dans le cube Plan1.
  2. Description
  3. Dans l'éditeur de règles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
  4. Description
  5. Copiez le script et collez-le dans l'éditeur :
  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	
    }
    		

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

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

    Description Si Vrai, le script définit la couleur d'arrière-plan de la cellule sur 0x00BFFF( )

    Description Le script vérifie que la valeur de données est inférieure ou égale à 50000.

    Description Si Vrai, le script définit la couleur d'arrière-plan de la cellule sur 0xFF8C00 ( )

    Description 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 ( )

  7. Dans la barre d'outils, cliquez sur Description (Enregistrer) pour enregistrer le script, puis sur Valider et déployer (Valider et déployer) pour le valider et le déployer. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
  8. Déploiement réussi
  9. Dans le navigateur, ouvrez le gestionnaire de formulaires et sélectionnez le formulaire EmployeeDriverForm.
  10. Gestionnaire de panneaux
  11. 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.
  12. associer la règle ;
  13. 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.
  14. Formulaire EmployeeDriverForm avec des cellules mises en surbrillance.

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.

  1. Ouvrez Calculation Manager et créez une règle nommée Performances de l'itérateur Groovy dans le cube Plan1.
  2. Description
  3. Dans l'éditeur de règles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
  4. Description
  5. Copiez le script et collez-le dans l'éditeur :
  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  
    

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

    Description Démarrez une horloge.

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

    Description Affichez le temps nécessaire à l'itérateur sur la console de jobs.

    Description Consignez un message de débogage dans la console de jobs.

    Description Appelez la méthode benchmark() avec un itérateur pour parcourir chaque cellule de la grille de données en cours.

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

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

  7. Dans la barre d'outils, cliquez surDescription(Save) pour enregistrer le script, puis cliquez sur Description(Validate and Deploy) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
  8. Dans le navigateur, ouvrez le gestionnaire de formulaires et sélectionnez le formulaire EmployeeDriverForm.
  9. Gestionnaire de panneaux
  10. 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.
  11. associer la règle ;
  12. 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.
  13. Formulaire EmployeeDriverForm avec les données saisies.
  14. Enregistrez et fermez le formulaire. Accédez à la console Jobs.
  15. Volet Recent Activity de la console des jobs.
  16. 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.
  17. Messages du journal.

    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.

  1. Ouvrez Calculation Manager et créez une règle nommée Données de grade de réinitialisation Groovy dans le cube Plan1.
  2. Dans l'éditeur de règles, remplacez l'option Designer par Modifier le script et définissez le type de script sur Script Groovy.
  3. Copiez le script et collez-le dans l'éditeur :
    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. Description Créez un objet cube pour le cube Plan 1.

    Description 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 acceptant ExecuteAsUser 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)

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

    Description Créez un objet de statut pour l'objet DataGrid créé à l'étape suivante.

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

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

    Description Enregistrez la grille de données.

    Description La grille est automatiquement fermée.

  5. Dans la barre d'outils, cliquez sur Description (Enregistrer) pour enregistrer le script, puis sur Description (Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.
  6. 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.
    Réinitialiser la règle
  7. 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.
  8. menu Actions

    réinitialiser la règle
  9. 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.
  10. Description
  11. Fermez le formulaire et accédez à la console Jobs.
  12. Description
  13. 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.
  14. Description

Tutoriel suivant

Valider les valeurs de saisie de données avec 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.