Présentation

Ce tutoriel explique plusieurs façons de générer des scripts de calcul ciblés dans Oracle EPM Cloud Planning pour calculer uniquement les données modifiées, plutôt que l'ensemble du formulaire d'entrée de données.

Contexte

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

Dans ce tutoriel, vous allez utiliser un tableau de bord d'analyse du volume de produits. Le formulaire supérieur, Volume du produit, capture le volume de divers produits sur des périodes mensuelles. Le formulaire inférieur, Revenus de produits, affiche les revenus des différents produits. Lorsque vous modifiez le formulaire supérieur, vous souhaitez que les revenus soient calculés dans le formulaire inférieur uniquement pour les produits modifiés.

Tableau de bord d'analyse du volume de produits

Ce tutoriel est en 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éation d'un script Groovy qui exécute un travail de calcul existant
  3. Génération et exécution d'un script de calcul ciblé, puis retour au script Groovy pour évaluation ultérieure

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. Si vous avez précédemment chargé l'instantané pour un autre tutoriel Groovy, vous pouvez continuer à utiliser le même instantané.

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.

Configuration de 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. Dans la page d'accueil, cliquez sur Outils, puis sélectionnez Préférences de l'utilisateur.
  2. Préférences d'utilisateur
  3. Sélectionnez l'onglet Variables d'utilisateur.
  4. Entrez les définitions de variable suivantes :
  5. Variable d'utilisateur Membre
    Devise de rapport USD
    Devise USD
    Entité Ventes - États-Unis
    Scenario OEP_Plan
    version OEP_Working

    Variables d'utilisateur sélectionnées

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

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

Ensuite, vous importez les variables de calcul dans le cube OEP_FS pour prendre en charge les invites d'exécution (invites d'exécution) utilisées plus loin dans ce tutoriel.

  1. Cliquez avec le bouton droit de la souris sur le lien HP4_OEP_FS_Variables.xml et enregistrez le fichier sur votre lecteur local.
  2. En haut à gauche, cliquez sur le navigateur Icône de navigateur et naviguez jusqu'à 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, naviguez jusqu'à sélectionner HP4_OEP_FS_Variables.xml dans votre lecteur local.
  4. Sous Location Details, effectuez les sélections suivantes :
    • Type d'application : EPM Cloud
    • Application : HP4
    • Cube : OEP_FS
  5. Sous Options d'importation, sélectionnez Remplacer les objets existants.
    Importer des variables
  6. Cliquez sur Importer. Vérifiez les résultats de l'importation (ils peuvent indiquer Mis à jour ou Inséré), puis cliquez sur OK.
    Résultats d'importation
  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 les revenus des produits modifiés.

Création du 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ègle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Options de l'éditeur de règle
  5. Copiez ce 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éfinir un jeu pour saisir des membres modifiés uniques.

    Saisir 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, alors revenez du script.

    Générez un script de calcul pour calculer les revenus de produit pour les cellules modifiées en fixant les membres du PDV et les membres modifiés.

    Note :

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

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

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

  7. Dans la barre d'outils, cliquez sur Enregistrer (Enregistrer) pour enregistrer le script, puis cliquez 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 ajoutez votre règle de script Groovy à l'écran Volume de produit, à exécuter après l'enregistrement.

  1. Sélectionnez la fenêtre Planification et, en haut à gauche, cliquez sur Icône de navigateur Navigateur et naviguez jusqu'à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de formulaires
  3. Modifiez le formulaire. Ajoutez la règle Groovy Calculate Product Revenue (Calculer les revenus de produit pour le gouvernement) et réglez-la à Run After Save (Exécuter après l'enregistrement). Enregistrez le formulaire et fermez la fenêtre Form Manager.
  4. Exécuter après l'enregistrement

Tester la règle de calcul ciblée

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

  1. Sur la page d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume des produits.
  2. Tableau de bord d'analyse du volume de produits
  3. Pour le carnet Envoy standard, modifiez le volume du produit pour le janvier. Pour Ultra Notebook 13 in, modifiez le volume du produit pour le mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez l'écran Volume du produit.
  5. Cliquez sur OK pour fermer le message d'information. Les modifications sont reflétées dans le formulaire Revenus de produit.
  6. Les modifications sont reflétées dans l'écran Revenus de produit.
  7. Fermez le tableau de bord. Naviguez jusqu'à Travaux (sous Application) et sélectionnez la tâche Groovy Calculate Product Revenue.
  8. Tâches affichées dans la console des tâches.
  9. Le message du journal pour la tâche terminée 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 de la tâche, fermez la fenêtre et revenez à la page d'accueil.
  10. Message de journal pour la tâche.

Exécuter un travail de calcul avec un script Groovy

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

Créer un script Groovy pour les 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ègle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Options de l'éditeur de règle
  5. Copiez ce 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 les revenus de produit pour les cellules modifiées en fixant les membres modifiés.

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

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

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

    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éation d'une règle Groovy pour exécuter un travail de calcul

Maintenant, vous créez la deuxième règle Groovy, qui exécute une tâche de calcul qui transmet des variables et exécute la règle Groovy Calculate Product Revenue RTPs.

  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ègle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Options de l'éditeur de règle
  5. Copiez ce 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éfinir un jeu pour saisir des membres modifiés uniques.

    Saisir 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, alors revenez du script.

    Obtenez l'usine de travaux.

    Obtenir une liste des cellules d'en-tête de membre PDV pour des dimensions autres que l'élément de régime, car le script comporte un bloc de membre dans un membre de dimension d'élément de régime.

    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 Enregistrer (Enregistrer) pour enregistrer le script, puis cliquez 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 ajoutez votre règle de script Groovy à l'écran Volume de produit, à exécuter après l'enregistrement.

  1. Sélectionnez la fenêtre Planification et, en haut à gauche, cliquez sur Icône de navigateur Navigateur et naviguez jusqu'à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de formulaires
  3. Modifiez le formulaire. Supprimez la règle Groovy Calculate Product Revenue (Calculer les revenus de produit pour le gouvernement) des règles sélectionnées. Ajoutez la règle Groovy Calculate Product Revenue by Calling Execute Job (Calculer les revenus de produit par appel de la tâche d'exécution) et réglez-la à Run After Save (Exécuter après l'enregistrement). Enregistrez le formulaire et fermez la fenêtre Form Manager.
  4. Ajouter une règle Exécuter la tâche à l'écran Volume de produits

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

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

  1. Sur la page d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume des produits.
  2. Tableau de bord d'analyse du volume de produits
  3. Pour le carnet Envoy standard, modifiez le volume du produit pour le janvier. Pour Ultra Notebook 13 in, modifiez le volume du produit pour le mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez l'écran Volume du produit.
  5. Cliquez sur OK pour fermer le message d'information. Les modifications sont reflétées dans le formulaire Revenus de produit.
  6. Les modifications sont reflétées dans l'écran Revenus de produit.
  7. Fermez le tableau de bord. Naviguez jusqu'à Travaux (sous Application) et sélectionnez la tâche Groovy Calculate Product Revenue by Calling Execute Job (Calculer les revenus de produit par appel de tâche d'exécution).
  8. Tâches affichées dans la console des tâches.
  9. Dans les détails de la tâche, la règle Groovy Calculate Product Revenue RTPs est répertoriée en tant que tâche enfant. Cliquez sur le travail enfant.
  10. Tâches enfants affichées dans les détails de la tâche.
  11. Dans les détails de la tâche enfant, vous pouvez voir la liste des membres transmis au script pour l'invite Modited Members. Le message du journal pour la tâche terminée 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 de la tâche, fermez la fenêtre et retournez à la page d'accueil.
  12. Message de journal pour la tâche.

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

Le modèle d'objet EPM permet d'exécuter un script de calcul en ligne, puis de revenir au script Groovy pour une évaluation ultérieure. Dans cette section, vous allez explorer ce script de calcul et l'intégration Groovy en mettant en oeuvre un script Groovy pour calculer les revenus de produit pour les produits modifiés et compter le nombre de cellules calculées.

Création du 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ègle, remplacez l'option Concepteur par Modifier le script et réglez le type de script à Script Groovy.
  4. Options de l'éditeur de règle
  5. Copiez ce 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éfinir un jeu pour saisir des membres modifiés uniques.

    Saisir 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, alors revenez du script.

    Générez un script de calcul pour calculer les revenus de produit pour les cellules modifiées en fixant les membres du PDV et les membres modifiés. Le script de calcul retourne également le nombre de cellules calculées au moyen de la commande @RETURN.

    Obtenez le cube OEP_FS.

    Exécutez le script de calcul sur le cube.

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

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

  7. Dans la barre d'outils, cliquez sur Enregistrer (Enregistrer) pour enregistrer le script, puis cliquez 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 ajoutez votre règle de script Groovy à l'écran Volume de produit, à exécuter après l'enregistrement.

  1. En haut à gauche, cliquez sur Icône de navigateur Navigateur et naviguez jusqu'à Formulaires (sous Créer et gérer). Sélectionnez le formulaire Volume de produit.
  2. Gestionnaire de formulaires
  3. Modifiez le formulaire. Supprimez la règle Groovy Calculate Product Revenue by Calling Execute Job (Calculer les revenus de produit en appelant la tâche d'exécution) des règles d'affaires sélectionnées. Ajoutez la règle Groovy Execute Calc Script et réglez-la à Run After Save (Exécuter après l'enregistrement). Enregistrez le formulaire et fermez la fenêtre Form Manager.
  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 votre règle Groovy en modifiant les données dans le tableau de bord Analyse du volume de produits.

  1. Sur la page d'accueil, cliquez sur Tableaux de bord. Ouvrez le tableau de bord Analyse du volume des produits.
  2. Tableau de bord d'analyse du volume de produits
  3. Pour le carnet Envoy standard, modifiez le volume du produit pour le janvier. Pour Ultra Notebook 13 in, modifiez le volume du produit pour le mars. Enregistrez le formulaire (et non le tableau de bord).
  4. Enregistrez l'écran Volume du produit.
  5. Cliquez sur OK pour fermer le message d'information. Les modifications sont reflétées dans le formulaire Revenus de produit.
  6. Les modifications sont reflétées dans l'écran Revenus de produit.
  7. Fermez le tableau de bord. Naviguez jusqu'à Tâches et sélectionnez la tâche Groovy Execute Calc Script.
  8. Tâches affichées dans la console des tâches.
  9. Le message du journal pour la tâche terminée 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 de journal pour la tâche.

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.