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.

Este tutorial se encuentra en tres partes y cubre tres formas diferentes de calcular los productos editados:
- Generación y ejecución de un script de cálculo centrado
- Creación de un script de Groovy que ejecuta un trabajo de cálculo existente
- 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.
- En la página de Inicio, haga clic en Herramientas y, a continuación, seleccione Preferencias de usuario.
- Seleccione la pestaña Variables de usuario.
- Introduzca las siguientes definiciones de variables:
- 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.

| Variable de usuario | Miembros |
|---|---|
| Moneda de presentación | USD |
| Moneda | USD |
| Entidad | Ventas en EE. UU. |
| Escenario | OEP_Plan |
| Version | OEP_Working |
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.
- Haga clic con el botón derecho en el enlace de HP4_OEP_FS_Variables.xml y guarde el archivo en la unidad local.
- En la parte superior izquierda, haga clic en
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. - En Detalles de importación de archivos, examine para seleccionar HP4_OEP_FS_Variables.xml en la unidad local.
- En Detalles de ubicación, realice las siguientes selecciones:
- Tipo de aplicación: EPM Cloud
- Aplicación: HP4
- Cubo: OEP_FS
- En Opciones de importación, seleccione Sustituir objetos existentes.

- Haga clic en Importar. Revise los resultados de la importación (pueden decir Actualizado o Insertado) y, a continuación, haga clic en Aceptar.

- 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
- En Calculation Manager, cree una regla denominada Calcular ingresos por producto de Groovy en el tipo de plan OEP_FS.
- En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
- Copiar esta secuencia de comandos y pegarla en el editor:
- En la barra de herramientas, haga clic en
(Guardar) para guardar el script y, a continuación, haga clic en
(Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Deje abierta la ventana Calculation Manager.


// 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 APIcscParams() 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á.
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.
- Seleccione la ventana Planning y, en la parte superior izquierda, haga clic en
Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto. - 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.

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.
- Desde la página inicial, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
- 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).
- Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
- Cierre el panel de control. Vaya a Trabajos (en Aplicación) y seleccione la tarea Calcular ingresos por producto de Groovy.
- 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.



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
- Seleccione la ventana Calculation Manager y cree una regla denominada Groovy Calcular RTP de ingresos por producto en el tipo de plan OEP_FS.
- En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
- Copiar esta secuencia de comandos y pegarla en el editor:
- En la barra de herramientas, haga clic en
(Guardar) para guardar el script. - Haga clic en
(Validar y desplegar). Para el RTP de miembros editados, introduzca el valor Accessoriespara fines de validación y, a continuación, haga clic en Aceptar. - Haga clic en OK (Aceptar) cuando se le solicite.

/*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á.
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.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.
- 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.
- En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
- Copiar esta secuencia de comandos y pegarla en el editor:
- En la barra de herramientas, haga clic en
(Guardar) para guardar el script y, a continuación, haga clic en
(Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Deje abierta la ventana Calculation Manager.


// 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.
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.
- Seleccione la ventana Planning y, en la parte superior izquierda, haga clic en
Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto. - 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.


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.
- En la página de inicio, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
- 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).
- Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
- 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.
- 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.
- 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.





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
- 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.
- En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
- Copiar esta secuencia de comandos y pegarla en el editor:
- En la barra de herramientas, haga clic en
(Guardar) para guardar el script y, a continuación, haga clic en
(Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Cierre Calculation Manager.


// 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.
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.
- En la parte superior izquierda, haga clic en
Navigator y vaya a Formularios (en Crear y gestionar). Seleccione el formulario Volumen del producto. - 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.


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.
- En la página Inicio, haga clic en Paneles. Abra el panel de control Product Volume Analysis (Análisis de volumen de productos).
- 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).
- Haga clic en OK (Aceptar) para cerrar el mensaje de información. Los cambios se reflejan en el formulario Ingresos por productos.
- Cierre el panel de control. Vaya a Trabajos y seleccione el trabajo Script de cálculo de ejecución de Groovy.
- 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.





Enlaces relacionados
- Cálculo de datos modificados mediante reglas Groovy (video)
- Lista de reproducción del tutorial de vídeo de Groovy en nuestro canal YouTube
- Oracle Enterprise Performance Management Cloud, Referencia de API de Java de reglas de Groovy
- API de REST para Enterprise Performance Management Cloud
- Referencia de script de Groovy
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.
Cálculo de datos modificados con Groovy
G45940-01
Octubre de 2025