Introducción

En este tutorial se muestran varias formas de generar secuencias de comandos de cálculo enfocadas en Oracle EPM Cloud Planning para calcular sólo los datos que se han editado, en lugar de todo el formulario que se ha editado.

Antecedentes

El modelo de objeto de Groovy EPM permite determinar qué celdas de una cuadrícula de entrada de datos se han editado y, a continuación, generar un cálculo de Essbase centrado para calcular solo los miembros afectados por la entrada de datos.

En este tutorial, trabajará con un panel de control de análisis de volumen de productos. El formulario superior, Product Volume, captura el volumen de varios productos en períodos mensuales. El formulario inferior, Ingresos por productos, muestra los ingresos de los distintos productos. Al editar el formulario superior, desea que los ingresos se calculen en el formulario inferior solo para los productos editados.

Cuadro de mandos Análisis de volumen de productos

Este tutorial se encuentra en tres partes y cubre tres formas diferentes de calcular los productos editados:

  1. Generación y ejecución de un script de cálculo centrado
  2. Creación de un script de Groovy que ejecuta un trabajo de cálculo existente
  3. Generar y ejecutar un script de cálculo centrado y, a continuación, volver al script Groovy para una evaluación más detallada

Requisitos

Los tutoriales prácticos de Cloud EPM pueden requerir que importe una instantánea en su instancia de Cloud EPM Enterprise Service. Antes de importar una instantánea de tutorial, debe solicitar otra instancia de Cloud EPM Enterprise Service o eliminar la aplicación y el proceso de negocio actuales. La instantánea del tutorial no se importará a través de su aplicación o proceso de negocio existente, ni reemplazará o restaurará automáticamente la aplicación o el proceso de negocio con el que está trabajando actualmente.

Antes de comenzar este tutorial, debe:

  • Tener acceso de administrador de servicio a una instancia de Cloud EPM Enterprise Service.
  • Cargue e importe esta instantánea en la instancia de Planning. Si ha cargado previamente la instantánea de otro tutorial de Groovy, puede continuar utilizando la misma instantánea.

Note:

Si se producen errores de migración al importar la instantánea, vuelva a ejecutar la migración excluyendo el componente de HSS-Shared Services, así como los artefactos de seguridad y preferencias de usuario en el componente Core. Para obtener más información sobre la carga y la importación de instantáneas, consulte la documentación de Administración de migración para Oracle Enterprise Performance Management Cloud.

Sugerencia:

Los scripts que necesita para este tutorial están enlazados como archivos de texto dentro de cada sección.

Configuración del entorno de Planning

Definición de variables de usuario en Planning

En primer lugar, debe definir las variables de usuario necesarias para trabajar con el panel de control Análisis de volumen de productos.

  1. En la página de Inicio, haga clic en Herramientas y, a continuación, seleccione Preferencias de usuario.
  2. Preferencias de usuario
  3. Seleccione la pestaña Variables de usuario.
  4. Introduzca las siguientes definiciones de variables:
  5. Variable de usuario Miembros
    Moneda de presentación USD
    Moneda USD
    Entidad Ventas en EE. UU.
    Escenario OEP_Plan
    Version OEP_Working

    Variables de usuario seleccionadas

  6. Haga clic en Guardar. En el mensaje de confirmación, haga clic en Aceptar y, a continuación, vuelva a la página de inicio.

Importación de variables para peticiones de datos en tiempo de ejecución en Planning

A continuación, importará variables de cálculo al cubo OEP_FS para soportar las peticiones de datos en tiempo de ejecución (RTP) utilizadas más adelante en este tutorial.

  1. Haga clic con el botón derecho en el enlace de HP4_OEP_FS_Variables.xml y guarde el archivo en la unidad local.
  2. En la parte superior izquierda, haga clic en Icono de Navegador Navigator y vaya a Rules (Reglas) (en Crear y gestionar) para abrir Calculation Manager. En la vista de sistema, amplíe EPM Cloud > HP4. Haga clic con el botón derecho en OEP_FS y seleccione Importar.
  3. En Detalles de importación de archivos, examine para seleccionar HP4_OEP_FS_Variables.xml en la unidad local.
  4. En Detalles de ubicación, realice las siguientes selecciones:
    • Tipo de aplicación: EPM Cloud
    • Aplicación: HP4
    • Cubo: OEP_FS
  5. En Opciones de importación, seleccione Sustituir objetos existentes.
    Importar variables
  6. Haga clic en Importar. Revise los resultados de la importación (pueden decir Actualizado o Insertado) y, a continuación, haga clic en Aceptar.
    Resultados de Importación
  7. Haga clic en Cancelar para cerrar el cuadro de diálogo Importar.

Generación de un script de cálculo centrado para productos editados

En esta sección, implementa un script Groovy en Planning para calcular los ingresos por productos para los productos editados.

Creación del script Groovy

  1. En Calculation Manager, cree una regla denominada Calcular ingresos por producto de Groovy en el tipo de plan OEP_FS.
  2. Nuevo Objeto
  3. En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
  4. Opciones del editor de reglas
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  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() 
    

    Defina un juego para capturar miembros editados únicos.

    Permite capturar miembros editados.

    Compruebe si se ha editado algún miembro. Si no se editó ninguno, no se requiere ningún procesamiento adicional, por lo que debe volver del script.

    Genere un script de cálculo para calcular los ingresos por productos de las celdas editadas mediante la corrección de los miembros del PDV y los miembros editados.

    Note:

    La API cscParams() es una utilidad que devuelve un valor de cadena con cada uno de los elementos especificados simplificados, entre comillas y separados por una coma. La cadena devuelta por este método se puede conectar a un comando de script de cálculo de Essbase como parámetros.

    Imprima un mensaje que indique el usuario que ejecutó la regla y el script de cálculo generado.

    Devuelve el script de cálculo, que luego se ejecutará.

  7. En la barra de herramientas, haga clic en Guardar (Guardar) para guardar el script y, a continuación, haga clic en ValidateAndDeploy (Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Deje abierta la ventana Calculation Manager.

Adición de la regla a un formulario de Planning

En esta sección, agregará la regla de script Groovy al formulario Volumen de producto, que se ejecutará después de guardar.

  1. Seleccione la ventana Planning y, en la parte superior izquierda, haga clic en Icono de Navegador Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto.
  2. Gestor de formularios
  3. Edite el formulario. Agregue la regla Calcular ingresos por producto de Groovy y defínala en Ejecutar después de guardar. Guarde el formulario y cierre la ventana del Gestor de formularios.
  4. Ejecutar después de guardar

Prueba de la regla de cálculo enfocada

En esta sección, puede probar la regla Groovy editando datos en el panel de control Análisis de volumen de productos.

  1. Desde la página inicial, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
  2. Cuadro de mandos Análisis de volumen de productos
  3. Para Envoy Standard Notebook, edite el volumen del producto para enero. Para Ultra Notebook 13 in, edite el volumen del producto para marzo. Guarde el formulario (no el cuadro de mandos).
  4. Guarde el formulario Product Volume.
  5. Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
  6. Los cambios se reflejan en el formulario Ingresos por productos.
  7. Cierre el panel de control. Vaya a Trabajos (en Aplicación) y seleccione la tarea Calcular ingresos por producto de Groovy.
  8. Trabajos que se muestran en la consola de trabajos.
  9. El mensaje de log del trabajo completado identifica al usuario que ejecutó la regla y el script de cálculo generado. Después de ver los detalles del trabajo, cierre la ventana y vuelva a la página inicial.
  10. Mensaje log para el trabajo.

Ejecución de un trabajo de cálculo con un script de Groovy

En esta sección, se crean dos scripts Groovy: uno para calcular los ingresos por productos de los miembros editados en un formulario y otro para ejecutar un trabajo de cálculo que ejecuta el primer cálculo. El segundo script se adjunta al formulario y se ejecuta al guardar los datos, y el primer script utiliza RTP para capturar los miembros editados que se le transfieren desde el segundo script. La descarga del cálculo en una regla independiente a la que llama otra regla permite que el código se mantenga, pruebe y reutilice de forma eficaz.

Creación de un script de Groovy para cálculos centrados mediante peticiones de datos en tiempo de ejecución

  1. Seleccione la ventana Calculation Manager y cree una regla denominada Groovy Calcular RTP de ingresos por producto en el tipo de plan OEP_FS.
  2. Nuevo Objeto
  3. En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
  4. Opciones del editor de reglas
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  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 
    

    Defina una petición de datos en tiempo de ejecución para aceptar los miembros editados en la primera línea.

    Genere un script de cálculo para calcular los ingresos por productos de las celdas editadas mediante la corrección de los miembros editados.

    Imprima un mensaje que indique el usuario que ejecutó la regla y el script de cálculo generado.

    Devuelve el script de cálculo, que luego se ejecutará.

  7. En la barra de herramientas, haga clic en Guardar (Guardar) para guardar el script.
  8. Haga clic en Validar y desplegar (Validar y desplegar). Para el RTP de miembros editados, introduzca el valor Accessories para fines de validación y, a continuación, haga clic en Aceptar.
  9. Note:

    Durante este paso, la regla no se ejecuta; sin embargo, debe introducir miembros válidos para que el proceso de validación se realice correctamente.
  10. Haga clic en OK (Aceptar) cuando se le solicite.

Creación de una regla de Groovy para ejecutar un trabajo de cálculo

Ahora crea la segunda regla Groovy, que ejecuta un trabajo de cálculo que transfiere variables y ejecuta la regla Groovy Calcular RTP de ingresos por producto.

  1. En Calculation Manager, cree una regla denominada Groovy Calcular ingresos por producto llamando al trabajo de ejecución en el tipo de plan OEP_FS.
  2. Nuevo Objeto
  3. En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
  4. Opciones del editor de reglas
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  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)])) 
    

    Defina un juego para capturar miembros editados únicos.

    Permite capturar miembros editados.

    Compruebe si hay miembros editados. Si no se editó ninguno, no se requiere ningún procesamiento adicional, por lo que debe volver del script.

    Obtener la fábrica de trabajo.

    Obtenga una lista de celdas de cabecera de miembro de PDV para dimensiones que no sean Elemento de plan porque el script tiene un bloque de miembros en un miembro de dimensión Elemento de plan.

    Ejecute la regla Groovy Calcular RTP de ingresos por producto transfiriendo el PDV y los miembros editados como valores para la petición de datos en tiempo de ejecución editedMembers.

  7. En la barra de herramientas, haga clic en Guardar (Guardar) para guardar el script y, a continuación, haga clic en ValidateAndDeploy (Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Deje abierta la ventana Calculation Manager.

Adición de la regla a un formulario de Planning

En esta sección, agregará la regla de script Groovy al formulario Volumen de producto, que se ejecutará después de guardar.

  1. Seleccione la ventana Planning y, en la parte superior izquierda, haga clic en Icono de Navegador Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto.
  2. Gestor de formularios
  3. Edite el formulario. Elimine la regla Calcular ingresos por producto de Groovy de las reglas seleccionadas. Agregue la regla Groovy Calculate Product Revenue by Calling Execute Job y defínala en Run After Save. Guarde el formulario y cierre la ventana del Gestor de formularios.
  4. Agregar la regla Ejecutar trabajo a la pantalla Volumen de producto

Prueba de la regla Groovy para llamar a un trabajo de cálculo

En esta sección, puede probar la regla Groovy editando datos en el panel de control Análisis de volumen de productos.

  1. En la página de inicio, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
  2. Cuadro de mandos Análisis de volumen de productos
  3. Para Envoy Standard Notebook, edite el volumen del producto para enero. Para Ultra Notebook 13 in, edite el volumen del producto para marzo. Guarde el formulario (no el cuadro de mandos).
  4. Guarde el formulario Product Volume.
  5. Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
  6. Los cambios se reflejan en el formulario Ingresos por productos.
  7. Cierre el panel de control. Vaya a Trabajos (en Aplicación) y seleccione la tarea Calcular ingresos de producto de Groovy llamando a la tarea Ejecutar.
  8. Trabajos que se muestran en la consola de trabajos.
  9. En los detalles del trabajo, la regla Calcular RTP de ingresos por producto de Groovy se muestra como un trabajo secundario. Haga clic en el trabajo secundario.
  10. Trabajos secundarios que se muestran en los detalles del trabajo.
  11. En los detalles del trabajo secundario, puede ver la lista de miembros transferidos al script para la petición de datos Miembros editados. El mensaje de log del trabajo completado identifica al usuario que ejecutó la regla y el script de cálculo generado. Después de ver los detalles del trabajo, cierre la ventana y vuelva a la página de inicio.
  12. Mensaje log para el trabajo.

Generación de un script de cálculo en línea para datos editados con más procesamiento de Groovy

El modelo de objeto de EPM proporciona una forma de ejecutar un script de cálculo en línea y, a continuación, volver al script de Groovy para una evaluación más detallada. En esta sección, explorará este script de cálculo y la integración de Groovy mediante la implantación de un script Groovy para calcular los ingresos por productos editados y contará cuántas celdas se han calculado.

Creación del script Groovy

  1. Seleccione la ventana Calculation Manager y cree una regla denominada Script de cálculo de ejecución de Groovy en el tipo de plan OEP_FS.
  2. Nuevo Objeto
  3. En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
  4. Opciones del editor de reglas
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  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")  
    }          
    

    Defina un juego para capturar miembros editados únicos.

    Permite capturar miembros editados.

    Compruebe si se ha editado algún miembro. Si no se editó ninguno, no se requiere ningún procesamiento adicional, por lo que debe volver del script.

    Genere un script de cálculo para calcular los ingresos por productos de las celdas editadas mediante la corrección de los miembros del PDV y los miembros editados. El script de cálculo también devuelve un recuento del número de celdas calculadas mediante el comando @RETURN.

    Obtenga el cubo OEP_FS.

    Ejecute el script de cálculo en el cubo.

    Imprima un mensaje que indique el usuario que ejecutó la regla y el script de cálculo generado.

    Imprima el número total de celdas calculadas que devuelve el script de cálculo.

  7. En la barra de herramientas, haga clic en Guardar (Guardar) para guardar el script y, a continuación, haga clic en ValidateAndDeploy (Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Cierre Calculation Manager.

Adición de la regla a un formulario de Planning

En esta sección, agregará la regla de script Groovy al formulario Volumen de producto, que se ejecutará después de guardar.

  1. En la parte superior izquierda, haga clic en Icono de Navegador Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto.
  2. Gestor de formularios
  3. Edite el formulario. Elimine la regla Calcular ingresos de producto de Groovy llamando al trabajo de ejecución de las reglas de negocio seleccionadas. Agregue la regla Script de cálculo de ejecución de Groovy y defínala en Ejecutar después de guardar. Guarde el formulario y cierre la ventana del Gestor de formularios.
  4. Ejecutar después de guardar

Prueba de la Regla Groovy para Ejecutar un Script de Cálculo

En esta sección, puede probar la regla Groovy editando datos en el panel de control Análisis de volumen de productos.

  1. En la página Inicio, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
  2. Cuadro de mandos Análisis de volumen de productos
  3. Para Envoy Standard Notebook, edite el volumen del producto para enero. Para Ultra Notebook 13 in, edite el volumen del producto para marzo. Guarde el formulario (no el cuadro de mandos).
  4. Guarde el formulario Product Volume.
  5. Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
  6. Los cambios se reflejan en el formulario Ingresos por productos.
  7. Cierre el panel de control. Vaya a Trabajos y seleccione el trabajo Script de cálculo de ejecución de Groovy.
  8. Trabajos que se muestran en la consola de trabajos.
  9. El mensaje de log del trabajo completado identifica al usuario que ejecutó la regla y el script de cálculo generado, así como el recuento de celdas calculadas.
  10. Mensaje log para el trabajo.

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite Oracle University para ver los recursos de formación disponibles.

Para obtener documentación sobre el producto, visite Oracle Help Center.