Introduction

Ce tutoriel vous montre plusieurs façons de générer des scripts de calcul ciblés dans Oracle EPM Cloud Planning, afin d'effectuer uniquement des calculs sur les données modifiées plutôt que sur l'ensemble du formulaire.

Contexte

Le modèle objet EPM Groovy vous permet de déterminer les cellules d'une grille de saisie de données qui ont été modifiées, puis de générer un calcul Essbase ciblé pour calculer uniquement les membres concernés par la saisie de données.

Dans ce tutoriel, vous utilisez un tableau de bord Analyse du volume des produits. Le formulaire supérieur, Volume du produit, capture le volume de divers produits par période mensuelle. Le formulaire inférieur, CA produit, affiche le CA pour les différents produits. Lorsque vous modifiez le formulaire supérieur, vous souhaitez que le chiffre d'affaires soit calculé dans le formulaire inférieur uniquement pour les produits modifiés.

Analyse du volume des produits - Tableau de bord

Ce tutoriel se compose de trois parties et couvre trois façons différentes de calculer les produits modifiés :

  1. Générer et exécuter un script de calcul ciblé
  2. Créer un script Groovy qui exécute un travail de calcul existant
  3. Générer et exécuter un script de calcul ciblé, puis revenir au script Groovy pour une évaluation plus approfondie

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.
  • Chargez et importez cet instantané dans votre instance Planning. Si vous avez déjà téléchargé le cliché pour un autre tutoriel Groovy, vous pouvez continuer à utiliser le même cliché.

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.

Configurer l'environnement Planning

Définir des variables utilisateur dans Planning

Tout d'abord, vous définissez les variables utilisateur requises pour qu'elles fonctionnent avec le tableau de bord Analyse du volume des produits.

  1. Sur la page d'accueil, cliquez sur Outils, puis sélectionnez Préférences utilisateur.
  2. Préférences utilisateur
  3. Sélectionnez l'onglet Variables utilisateur.
  4. Entrez les définitions de variable suivantes :
  5. Variable utilisateur Membre
    Devise de reporting USD
    Devise USD
    Entité Ventes US
    Scenario OEP_Plan
    Version OEP_Working

    Variables utilisateur sélectionnées

  6. Cliquez sur Enregistrer. Sur le message de confirmation, cliquez sur OK, puis revenez à la page d'accueil.

Import de variables pour les invites d'exécution dans Planning

Vous allez ensuite importer des variables de calcul dans le cube OEP_FS pour prendre en charge les invites d'exécution (RTP) utilisées ultérieurement dans ce tutoriel.

  1. Cliquez avec le bouton droit de la souris sur le lien de HP4_OEP_FS_Variables.xml et enregistrez le fichier sur votre disque local.
  2. En haut à gauche, cliquez sur le navigateur Icône Navigateur et accédez à Règles (sous Créer et gérer) pour ouvrir Calculation Manager. Dans la vue système, développez EPM Cloud > HP4. Cliquez avec le bouton droit de la souris sur OEP_FS et sélectionnez Importer.
  3. Sous Détails de l'importation de fichiers, accédez au fichier pour sélectionner HP4_OEP_FS_Variables.xml à partir de votre lecteur local.
  4. Sous Détails de l'emplacement, effectuez les sélections suivantes :
    • Type d'application : EPM Cloud
    • Application : HP4
    • Cube : OEP_FS
  5. Sous Options d'import, sélectionnez Remplacer les objets existants.
    Importer des variables
  6. Conseil : par défaut, le portlet Jeu de transport - Services d'import est situé dans l'onglet Portail de l'onglet Administrer de la page Portal Builder. Vérifiez les résultats de l'importation (ils peuvent être mis à jour ou insérés), puis cliquez sur OK.
    Résultats d'import
  7. Cliquez sur Annuler pour fermer la boîte de dialogue Importer.

Génération d'un script de calcul ciblé pour les produits modifiés

Dans cette section, vous allez implémenter un script Groovy dans Planning pour calculer le chiffre d'affaires produit des produits modifiés.

Créer le script Groovy

  1. Dans Calculation Manager, créez une règle nommée Groovy Calculate Product Revenue dans le type de plan OEP_FS.
  2. Nouvel objet
  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. Options d'éditeur de règles
  5. Copiez le script et collez-le dans l'éditeur :
  6. // Capture the edited periods and products
    Set<String> editedMembers = [] 
    operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each {
    DataCell cell ->
            editedMembers << cell.periodName << cell.getMemberName("Product") 
        }
    
    if(editedMembers.size() == 0){ 
        println("No edited cells found!")
        return;
    }
    
    // Generate the calc script to calculate revenue for the products whose volume was edited
    String calcScript = """ 
    Fix(${cscParams(operation.grid.pov, editedMembers)})  
    "OFS_Calculated"
    (
       "OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price";
    )
    EndFix;""" 
    
    println("The following calc script was executed by $operation.user.fullName: \n $calcScript") 
    return calcScript.toString() 
    

    Définissez un ensemble pour capturer des membres modifiés uniques.

    Capturez les membres modifiés.

    Vérifiez si des membres ont été modifiés. Si aucun n'a été modifié, aucun traitement supplémentaire n'est requis. Revenez donc du script.

    Générez un script de calcul pour calculer le chiffre d'affaires produit des cellules modifiées en fixant les membres du PDV et les membres modifiés.

    Remarques :

    L'API cscParams() est un utilitaire qui renvoie une valeur de chaîne avec chacun des éléments indiqués mis à plat, entre guillemets et séparés par une virgule. La chaîne renvoyée par cette méthode peut être rattachée à une commande de script de calcul Essbase en tant que paramètres.

    Affichez un message indiquant l'utilisateur qui a exécuté la règle et le script de calcul généré.

    Renvoyer le script de calcul, qui sera ensuite exécuté.

  7. Dans la barre d'outils, cliquez sur Enregistrement (Enregistrer) pour enregistrer le script, puis sur ValidateAndDeploy (Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Laissez la fenêtre Calculation Manager ouverte.

Ajouter la règle à un formulaire Planning

Dans cette section, vous allez ajouter votre règle de script Groovy au formulaire Volume de produits, à exécuter après l'enregistrement.

  1. Sélectionnez la fenêtre Planning et, en haut à gauche, cliquez sur Icône Navigateur Navigateur et accédez à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de panneaux
  3. Modifier le formulaire. Ajoutez la règle Groovy Calculate Product Revenue et définissez-la sur Run After Save. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
  4. Exécuter après l'enregistrement

Tester la règle de calcul ciblée

Dans cette section, vous allez tester la règle Groovy en modifiant les données dans le tableau de bord Analyse du volume des produits.

  1. Sur la page d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume des produits.
  2. Analyse du volume des produits - Tableau de bord
  3. Pour Bloc-notes standard Envoy, modifiez le volume de produit pour le janvier. Pour Ultra Bloc-notes 13 dans, modifiez le volume de produit pour mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez le formulaire Volume du produit.
  5. Cliquez sur OK pour fermer le message d'information. Les modifications sont reflétées dans le formulaire Produit.
  6. Les modifications sont reflétées dans le formulaire CA produit.
  7. Fermez le tableau de bord. Accédez à Travaux (sous Application) et sélectionnez le travail Groovy - Calculer le chiffre d'affaires produit.
  8. Travaux affichés dans la console de jobs.
  9. Le message de journal du travail terminé identifie l'utilisateur qui a exécuté la règle et le script de calcul généré. Après avoir consulté les détails du travail, fermez la fenêtre et revenez à la page d'accueil.
  10. Message du journal pour le travail.

Exécuter un travail de calcul à l'aide d'un script Groovy

Dans cette section, vous allez créer deux scripts Groovy : l'un pour calculer le chiffre d'affaires produit des membres modifiés dans un formulaire et l'autre pour exécuter un travail de calcul qui exécute le premier calcul. Le second script est joint au formulaire et exécuté lors de l'enregistrement des données. Le premier script utilise des RTP pour capturer les membres modifiés qui lui sont transmis à partir du second script. Le déchargement du calcul dans une règle autonome appelée par une autre règle permet de gérer, de tester et de réutiliser le code de manière efficace.

Créer un script Groovy pour des calculs ciblés à l'aide d'invites d'exécution

  1. Sélectionnez la fenêtre Calculation Manager et créez une règle nommée Groovy Calculate Product Revenue RTPs dans le type de plan OEP_FS.
  2. Nouvel objet
  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. Options d'éditeur de règles
  5. Copiez le script et collez-le dans l'éditeur :
  6. /*RTPS: {editedMembers}*/ 
    String calcScript = """Fix($rtps.editedMembers)
    "OFS_Calculated"
    (
       "OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price";
    ) 
    ENDFIX"""
    println("The following calc script was executed by $operation.user.fullName: \n $calcScript") 
    return calcScript 
    

    Définissez une invite d'exécution pour accepter les membres modifiés sur la première ligne.

    Générez un script de calcul pour calculer le chiffre d'affaires produit des cellules modifiées en fixant les membres modifiés.

    Affichez un message indiquant l'utilisateur qui a exécuté la règle et le script de calcul généré.

    Renvoyer le script de calcul, qui sera ensuite exécuté.

  7. Dans la barre d'outils, cliquez sur Enregistrement (Enregistrer) pour enregistrer le script.
  8. Cliquez sur Valider et déployer (Valider et déployer). Pour le RTP Membres modifiés, entrez la valeur Accessories à des fins de validation, puis cliquez sur OK.
  9. Remarques :

    Au cours de cette étape, la règle n'est pas exécutée. Toutefois, vous devez entrer des membres valides pour que le processus de validation réussisse.
  10. Cliquez sur OK lorsque vous y êtes invité.

Créer une règle Groovy pour exécuter un travail de calcul

Vous allez maintenant créer la deuxième règle Groovy, qui exécute un travail de calcul qui transmet les variables à la règle Groovy Calculate Product Revenue RTPs et l'exécute.

  1. Dans Calculation Manager, créez une règle nommée Groovy Calculate Product Revenue by Calling Execute Job dans le type de plan OEP_FS.
  2. Nouvel objet
  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. Options d'éditeur de règles
  5. Copiez le script et collez-le dans l'éditeur :
  6. // Capture the edited periods and products
    Set<String> editedMembers = [] 
    operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each { DataCell cell ->
            editedMembers << cell.periodName << cell.getMemberName("Product") 
        }
    
    if(editedMembers.size() == 0){ 
        println("No edited cells found!")
        return;
    }
    
    // Execute the job that calculates the product revenues
    JobFactory jf = operation.application.jobFactory 
    
    List<DataGrid.HeaderCell> povMemberCells = operation.grid.pov.findAll{ DataGrid.HeaderCell it -> it.dimName != 
    	"Plan Element" } 
    
    Job job = executeJob(jf.job("Groovy Calculate Product Revenue RTPs", "Rules", 
    	["editedMembers" : cscParams(povMemberCells, editedMembers)])) 
    

    Définissez un ensemble pour capturer des membres modifiés uniques.

    Capturez les membres modifiés.

    Vérifiez si des membres ont été modifiés. Si aucun n'a été modifié, aucun traitement supplémentaire n'est requis. Revenez donc du script.

    Obtenez l'usine.

    Obtenir la liste des cellules d'en-tête de membre de PDV pour les dimensions autres que Elément de plan car le script comporte un bloc de membres sur un membre de dimension Elément de plan.

    Exécutez la règle Groovy Calculate Product Revenue RTPs en transmettant le PDV et les membres modifiés en tant que valeurs pour l'invite d'exécution editedMembers.

  7. Dans la barre d'outils, cliquez sur Enregistrement (Enregistrer) pour enregistrer le script, puis sur ValidateAndDeploy (Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Laissez la fenêtre Calculation Manager ouverte.

Ajouter la règle à un formulaire Planning

Dans cette section, vous allez ajouter votre règle de script Groovy au formulaire Volume de produits, à exécuter après l'enregistrement.

  1. Sélectionnez la fenêtre Planning et, en haut à gauche, cliquez sur Icône Navigateur Navigateur et accédez à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de panneaux
  3. Modifier le formulaire. Supprimez la règle Groovy Calculate Product Revenue des règles sélectionnées. Ajoutez la règle Groovy Calculate Product Revenue by Calling Execute Job et définissez-la sur Run After Save. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
  4. Ajouter la règle Exécuter le travail au formulaire Volume du produit

Tester la règle Groovy pour appeler un travail de calcul

Dans cette section, vous allez tester la règle Groovy en modifiant les données dans le tableau de bord Analyse du volume des produits.

  1. Sur la fenêtre d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume des produits.
  2. Analyse du volume des produits - Tableau de bord
  3. Pour Bloc-notes standard Envoy, modifiez le volume de produit pour le janvier. Pour Ultra Bloc-notes 13 dans, modifiez le volume de produit pour mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez le formulaire Volume du produit.
  5. Pour fermer le message d'information, cliquez sur OK. Les modifications sont reflétées dans le formulaire Produit.
  6. Les modifications sont reflétées dans le formulaire CA produit.
  7. Fermez le tableau de bord. Accédez à Travaux (sous Application) et sélectionnez le travail Groovy Calculer le chiffre d'affaires du produit en appelant le travail Exécuter.
  8. Travaux affichés dans la console de jobs.
  9. Dans les détails du travail, la règle Groovy Calculate Product Revenue RTPs est répertoriée en tant que travail enfant. Cliquez sur le travail enfant.
  10. Travaux enfant affichés dans les détails du travail.
  11. Dans les détails du travail enfant, vous pouvez voir la liste des membres transmis au script pour l'invite Membres modifiés. Le message de journal du travail terminé identifie l'utilisateur qui a exécuté la règle et le script de calcul généré. Après avoir consulté les détails du travail, fermez la fenêtre et revenez à la page d'accueil.
  12. Message du journal pour le travail.

Générer un script de calcul en ligne pour les données modifiées avec un traitement Groovy supplémentaire

Le modèle objet EPM permet d'exécuter un script de calcul en ligne, puis de revenir au script Groovy pour une évaluation plus approfondie. Dans cette section, vous allez explorer ce script de calcul et l'intégration Groovy en implémentant un script Groovy pour calculer le chiffre d'affaires des produits modifiés et compter le nombre de cellules calculées.

Créer le script Groovy

  1. Sélectionnez la fenêtre Calculation Manager et créez une règle nommée Groovy Execute Calc Script dans le type de plan OEP_FS.
  2. Nouvel objet
  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. Options d'éditeur de règles
  5. Copiez le script et collez-le dans l'éditeur :
  6. // Capture the edited periods and products
    Set<String> editedMembers = [] 
    operation.grid.dataCellIterator({DataCell cell -> cell.edited}, MemberNameType.ESSBASE_NAME).each {
    DataCell cell ->
            editedMembers << cell.periodName << cell.getMemberName("Product") 
        }
    
    if(editedMembers.size() == 0){ 
        println("No edited cells found!")
        return;
    }
    
    // Generate the calc script to calculate revenue for the products whose volumes were edited and to count and return the number of cells calculated
    String calcScript = """
    VAR numCellsCalculated = 0;
    Fix(${cscParams(operation.grid.pov, editedMembers)}) 
    "OFS_Calculated" (
        "OFS_Product Revenue" = "OFS_Volume" * "OFS_Avg Selling Price";
        numCellsCalculated = numCellsCalculated + 1;
    )
    EndFix;
    Fix(${cscParams(operation.grid.pov, editedMembers)})
    "OFS_Calculated" (
        @RETURN(@HspNumToString(numCellsCalculated), ERROR);
    )
    EndFix;
    """
    Cube cube = operation.application.getCube("OEP_FS") 
    try {
        cube.executeCalcScript(calcScript) 
    } catch(CalcScriptException e) {
        println("The following calc script was executed by $operation.user.fullName: 
        \n $calcScript") 
        println("Total number of cells calculated: $e.atReturnMessage")  
    }          
    

    Définissez un ensemble pour capturer des membres modifiés uniques.

    Capturez les membres modifiés.

    Vérifiez si des membres ont été modifiés. Si aucun n'a été modifié, aucun traitement supplémentaire n'est requis. Revenez donc du script.

    Générez un script de calcul pour calculer le chiffre d'affaires produit des cellules modifiées en fixant les membres du PDV et les membres modifiés. Le script de calcul renvoie également un nombre de cellules calculées via la commande @RETURN.

    Obtenez le cube OEP_FS.

    Exécutez le script de calcul sur le cube.

    Affichez un message indiquant l'utilisateur qui a exécuté la règle et le script de calcul généré.

    Affichez le nombre total de cellules calculées renvoyées par le script de calcul.

  7. Dans la barre d'outils, cliquez sur Enregistrement (Enregistrer) pour enregistrer le script, puis sur ValidateAndDeploy (Valider et déployer) pour valider et déployer le script. Cliquez sur OK lorsque vous y êtes invité. Fermez Calculation Manager.

Ajouter la règle à un formulaire Planning

Dans cette section, vous allez ajouter votre règle de script Groovy au formulaire Volume de produits, à exécuter après l'enregistrement.

  1. En haut à gauche, cliquez sur Icône Navigateur Navigateur et accédez à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de panneaux
  3. Modifier le formulaire. Supprimez la règle Groovy Calculate Product Revenue by Calling Execute Job des règles métier sélectionnées. Ajoutez la règle Groovy Execute Calc Script et définissez-la sur Run After Save. Enregistrez le formulaire et fermez la fenêtre Gestionnaire de formulaires.
  4. Exécuter après l'enregistrement

Tester la règle Groovy pour exécuter un script de calcul

Dans cette section, vous allez tester la règle Groovy en modifiant les données dans le tableau de bord Analyse du volume des produits.

  1. Sur la fenêtre d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume de produit.
  2. Analyse du volume des produits - Tableau de bord
  3. Pour Bloc-notes standard Envoy, modifiez le volume de produit pour le janvier. Pour Ultra Bloc-notes 13 dans, modifiez le volume de produit pour mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez le formulaire Volume du produit.
  5. Cliquez sur OK pour fermer le message d'information. Les modifications sont reflétées dans le formulaire Produit.
  6. Les modifications sont reflétées dans le formulaire CA produit.
  7. Fermez le tableau de bord. Accédez à Travaux et sélectionnez le travail Groovy Exécuter le script de calcul.
  8. Travaux affichés dans la console de jobs.
  9. Le message de journal du travail terminé identifie l'utilisateur qui a exécuté la règle et le script de calcul généré, ainsi que le nombre de cellules calculées.
  10. Message du journal pour le travail.

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.