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.
  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ègle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Description
  5. Copiez ce 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 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
        }
    }

    Description Pour la cellule de données courante, le script recherche une valeur manquante.

    Note :

    Notez que cell.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.

    Description Si VRAI, le script règle la couleur d'arrière-plan de la cellule à 0x00BFFF( )

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

    Description Si VRAI, le script règle la couleur d'arrière-plan de la cellule à 0xFF8C00 ( )

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

  7. Dans la barre d'outils, cliquez sur Description (Enregistrer) pour enregistrer le script, puis cliquez sur Valider et déployer (Valider et déployer) pour valider et déployer le script. 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 formulaires
  11. 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.
  12. Associer la règle
  13. 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.
  14. Formulaire EmployeeDriverForm avec des cellules mises en surbrillance.

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.

  1. Ouvrez Calculation Manager et créez une règle nommée Groovy Iterator Performance dans le cube Plan1 .
  2. Description
  3. Dans l'éditeur de règle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Description
  5. Copiez ce 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 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.

    Description Démarrez une minuterie.

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

    Description Imprimez le temps nécessaire à l'itérateur pour accéder à la console des tâches.

    Description Enregistrez un message de débogage dans la console des tâches.

    Description Appelez la méthode benchmark() avec un itérateur pour effectuer une itération sur chaque cellule de la grille de données courante.

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

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

  7. Dans la barre d'outils, cliquez surDescription(Enregistrer) pour enregistrer le script, puis cliquez sur Description(Valider et déployer) 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 formulaires
  10. 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.
  11. Associer la règle
  12. 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.
  13. Formulaire EmployeeDriverForm avec les données entrées.
  14. Enregistrer et fermer le formulaire. Accédez à la console Jobs.
  15. Le volet Recent Activity de la console des tâches.
  16. 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.
  17. Messages du journal.

    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.

  1. Ouvrez Calculation Manager et créez une règle nommée Groovy Reset Grade Data dans le cube Plan1.
  2. Dans l'éditeur de règle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  3. Copiez ce 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 de 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.

    Note :

    DataGridBuilder prend également en charge l'enregistrement des données au nom d'un utilisateur du système en acceptant ExecuteAsUser 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)

    Description Construisez une grille de données en ajoutant les membres 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 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.

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

    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 cliquez 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 à l'écran EmployeeDriverForm. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
    Réinitialiser la règle
  7. 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.
  8. Menu Actions

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

Tutoriel suivant

Validation des valeurs d'entrée de données avec 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.