Introducción
En este tutorial se muestra cómo implementar scripts de Groovy para trabajar con cuadrículas o iteradores de cuadrículas. La lógica condicional se utiliza para definir los colores de fondo en una cuadrícula de datos, implantar la referencia de rendimiento y definir los valores de datos por defecto en una cuadrícula.
Antecedentes
Una interfaz de cuadrícula de datos proporciona acceso a las celdas de cabecera de PDV/fila/columna y proporciona varios iteradores para iterar sobre las celdas de datos.
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.
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.Definición del color de fondo mediante la lógica condicional
En esta sección, implementará un script Groovy para definir el color de fondo para las celdas con el valor de datos #MISSING para que coloreen █ (0x00BFFF), las celdas con el valor de datos menor o igual que 50000 para que coloreen █ (0xFF8C00) y las celdas con los valores de datos mayores que 50000 para que coloreen █ (0x00FA9A).
Note:
Después de definir un script Groovy, se puede asociar a cualquier formulario, a diferencia de las reglas de validación de datos, que se deben definir en el contexto de cada formulario.- Abra Calculation Manager y cree una regla denominada Color de fondo de juego de Groovy en el cubo Plan1.
- 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.
- En el navegador, abra el gestor de formularios y seleccione el formulario EmployeeDriverForm.
- Edite el formulario y asocie la regla Groovy Set Background Color para que se ejecute After Load. Guarde el formulario y cierre la ventana del Gestor de formularios.
- En el Navegador o la Página de inicio, haga clic enDatos. Abra el formulario EmployeeDriverForm y verifique que la secuencia de comandos resalte las celdas según lo diseñado.


operation.grid.dataCellIterator.each {if(it.missing) {
it.bgColor = 0x00BFFF
} else if(it.data <= 50000)
it.bgColor = 0xFF8C00
else if(it.data > 50000) it.bgColor = 0x00FA9A
}
El script itera en cada celda de datos de la cuadrícula de datos actual,
operation.grid
, devuelta por dataCellIterator
.
La variable "it" implícita hace referencia al elemento actual sobre el que se itera. En este caso, la variable "it" hace referencia a la celda de datos actual devuelta por dataCellIterator
.
Sugerencia:
También puede utilizar una variable con nombre explícito, como "cell", como se muestra en el siguiente ejemplo:operation.grid.dataCellIterator.each { cell -> if(cell.missing) { cell.bgColor = 0x00BFFF } }
Para la celda de datos actual, el script comprueba si falta un valor.
Note:
Tenga en cuenta quecell.data
devuelve 0 (cero) para las celdas que son #MISSING o cero. Para comprobar una celda para #MISSING y no cero, puede utilizar la propiedad cell.missing
. Para comprobar un valor cero en una celda y no #MISSING, puede utilizar una condición como cell.data == 0 && !cell.missing
. Si es TRUE, el script define el color de fondo de la celda en
0x00BFFF
( █ )
El script comprueba si el valor de datos es menor o igual que 50000.
Si es TRUE, el script define el color de fondo de la celda en
0xFF8C00
( █ )
Si el valor de datos de la celda es superior a 50000, el script define el color de fondo de la celda en
0x00FA9A ( █ )




Creación de perfiles y depuración del script
En esta sección, aprenderá a utilizar iteradores proporcionados por la interfaz DataGrid, a perfilar el código y a agregar sentencias de depuración a la consola de trabajos.
- Abra Calculation Manager y cree una regla denominada Rendimiento del iterador de Groovy en el cubo Plan1.
- 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.
- En el navegador, abra el gestor de formularios y seleccione el formulario EmployeeDriverForm.
- Edite el formulario y asocie la regla Rendimiento del iterador Groovy que se va a ejecutar Después de guardar. Guarde el formulario y cierre la ventana del Gestor de formularios.
- En el Navegador o la Página de inicio, haga clic enDatos. Abra el formulario EmployeeDriverForm y cambie el salario mínimo del grado 1 a 35000 y el mínimo de bonificación del grado 2 a 2000.
- Guarde y cierre el formulario. Navegue a la consola Jobs.
- Haga clic en Rendimiento de iterador de Groovy para mostrar los detalles del trabajo. Haga clic en el estado Completado para ver los mensajes de log impresos por el script de Groovy.


def benchmark(GridIterator itr) {def start = currentTimeMillis()
itr.each { println "$it.memberNames, cell data: $it.data, $it.formattedValue" }
def elapsed = currentTimeMillis() - start println "\nTime taken by iterator: $elapsed"
} println "Iterate over all data cells in this data grid...\n"
benchmark operation.grid.dataCellIterator()
println "Iterate over edited data cells in this data grid...\n" benchmark operation.grid.dataCellIterator({DataCell cell -> cell.edited})
println "Iterate over Min Salary and Min Bonus data cells in this data grid...\n" benchmark operation.grid.dataCellIterator('Min Salary', 'Min Bonus')
![]()
Defina un método de utilidad denominado
benchmark()
que utilice el GridIterator
especificado para iterar sobre sus celdas e imprima la lista de nombres de miembros de todas las dimensiones que representa la celda junto con sus datos. También imprime el tiempo empleado por el iterador.
Iniciar un temporizador.
Itere sobre cada celda utilizando el
GridIterator
especificado e imprima la lista de nombres de miembros de todas las dimensiones que representa la celda junto con su valor de datos y valor formateado. $it.data
devuelve el valor numérico de la celda y $it.formattedValue
devuelve valores no numéricos como Texto, Lista inteligente o Fecha, según lo introducido por el usuario.
Imprima el tiempo que tarda el iterador en la consola de trabajos.
Registrar un mensaje de depuración en la consola de trabajos.
Llame al método
benchmark()
con un iterador para iterar sobre cada celda de la cuadrícula de datos actual.
Llame al método benchmark() con un iterador para iterar sobre las celdas editadas en la cuadrícula de datos actual.
Sugerencia:
Este iterador se puede utilizar con cualquier propiedad del objeto DataCell que devuelva un valor booleano, como bloqueado, faltante, válido, readOnly, validIntersection, etc. Llame al método
benchmark()
con un iterador para iterar sobre las celdas de datos Salario mínimo y Bonificación mínima en la cuadrícula de datos actual.





El primer iterador imprime todas las celdas y los valores de datos, el segundo iterador imprime solo las dos celdas que se han editado y el tercer iterador imprime solo las celdas de las columnas Salario mínimo y Bonificación mínima.
Definición de valores de datos por defecto
En esta sección, aprenderá a definir los valores de datos por defecto en la cuadrícula mediante la interfaz DataGridBuilder
.
- Abra Calculation Manager y cree una regla denominada Restablecimiento de datos de grupo de Groovy en el cubo Plan1.
- 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:
Cube cube = operation.application.getCube("Plan1")
DataGridBuilder builder = cube.getDataGridBuilder("MM/DD/YYYY")
builder.addPov('FY16', 'Current', 'USD', 'BegBalance', 'BU Version_1', 'No Entity')
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()
builder.build(status).withCloseable { DataGrid grid ->
println("Total number of cells accepted: $status.numAcceptedCells")
println("Total number of cells rejected: $status.numRejectedCells") println("First 100 rejected cells: $status.cellsRejected") cube.saveGrid(grid)
}
- 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.
- En el navegador, abra el Gestor de formularios y asocie la regla Groovy Reset Grade Data al formulario EmployeeDriverForm. Guarde el formulario y cierre la ventana del gestor de formularios.
- En la página inicial de Planning, haga clic en Datos. Abra el formulario EmployeeDriverForm, haga clic en Acciones y seleccione Reglas de negocio en el menú desplegable. Haga clic en Restablecer datos de grupo de Groovy para ejecutar la regla.
- Una vez que la regla se ejecute correctamente, haga clic en Aceptar en el cuadro de diálogo Información y verifique que los datos de cuadrícula se han restablecido.
- Cierre el formulario y vaya a abrir la consola Jobs.
- Haga clic en Restablecer datos de grupo de Groovy para mostrar los detalles del trabajo. Haga clic en el estado Finalizado para ver los detalles de cuántas celdas se aceptaron y/o rechazaron.
Cree un objeto de cubo para el cubo Plan 1.
Obtenga un DataGridBuilder para el cubo; defina el formato en el que el script proporciona los valores de fecha.
Note:
DataGridBuilder también soporta el guardado de datos en nombre de un usuario del sistema mediante la aceptación deExecuteAsUser
como segundo parámetro. Guardar datos como usuario del sistema permite guardar los datos sin aplicar la seguridad del usuario actual. Los valores válidos para ExecuteAsUser
son CURRENT_USER
(valor por defecto) y SYSTEM_USER
, como en el siguiente ejemplo:DataGridBuider builder = cube.dataGridBuilder("MM/DD/YYYY", SYSTEM_USER)
Cree una cuadrícula de datos agregando los miembros de PDV, los miembros de columna y las filas con valores de datos.
Cree un objeto de estado para el objeto DataGrid creado en el siguiente paso.
Cree el objeto DataGrid con la construcción withCloseable. La construcción cierra el objeto DataGrid cuando el bloque de código finaliza la ejecución. Esto es importante para asegurarse de que la regla no deja el objeto DataGrid abierto en memoria después de que se hayan completado las operaciones.
Imprima el número de celdas aceptadas o rechazadas por el creador en la consola de trabajos. Se rechazan todas las celdas de solo lectura.
Guarde la cuadrícula de datos.
La cuadrícula se cierra automáticamente.





Siguiente Tutorial
Enlaces relacionados
- Documentación: Uso de las reglas de Groovy
- Videos de Groovy en el canal YouTube de tutoriales de Oracle EPM
- Planificación de EPM Cloud - Tutoriales de Groovy
- Oracle Enterprise Performance Management Cloud, Referencia de API de Java de reglas de Groovy
- API de REST para Oracle 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.
Trabajar con cuadrículas de datos e iteradores en Groovy
G42659-01
Septiembre de 2025