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.
  1. Abra Calculation Manager y cree una regla denominada Color de fondo de juego de Groovy en el cubo Plan1.
  2. Descripción
  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. Descripción
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  6. 						
    operation.grid.dataCellIterator.each { Description
      if(it.missing) { Description
         it.bgColor = 0x00BFFF Description
      } else if(it.data <= 50000) Description 
         it.bgColor = 0xFF8C00 Description
      else if(it.data > 50000) 
         it.bgColor = 0x00FA9A Description	
    }
    		

    Descripción 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
        }
    }

    Descripción Para la celda de datos actual, el script comprueba si falta un valor.

    Note:

    Tenga en cuenta que cell.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.

    Descripción Si es TRUE, el script define el color de fondo de la celda en 0x00BFFF( )

    Descripción El script comprueba si el valor de datos es menor o igual que 50000.

    Descripción Si es TRUE, el script define el color de fondo de la celda en 0xFF8C00 ( )

    Descripción Si el valor de datos de la celda es superior a 50000, el script define el color de fondo de la celda en 0x00FA9A ( )

  7. En la barra de herramientas, haga clic en Descripción (Guardar) para guardar el script y, a continuación, haga clic en Validar y desplegar (Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Cierre Calculation Manager.
  8. Despliegue correcto
  9. En el navegador, abra el gestor de formularios y seleccione el formulario EmployeeDriverForm.
  10. Gestor de formularios
  11. 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.
  12. Asociar la regla
  13. 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.
  14. El formulario EmployeeDriverForm con celdas resaltadas.

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.

  1. Abra Calculation Manager y cree una regla denominada Rendimiento del iterador de Groovy en el cubo Plan1.
  2. Descripción
  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. Descripción
  5. Copiar esta secuencia de comandos y pegarla en el editor:
  6. def benchmark(GridIterator itr) { Description  
        def start = currentTimeMillis() Description   
        itr.each { println "$it.memberNames, cell data: $it.data, $it.formattedValue" } Description  
        def elapsed = currentTimeMillis() - start
        println "\nTime taken by iterator: $elapsed" Description  
    }
    
    println "Iterate over all data cells in this data grid...\n" Description  
    benchmark operation.grid.dataCellIterator() Description  
    
    println "Iterate over edited data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator({DataCell cell -> cell.edited}) Description  
    
    println "Iterate over Min Salary and Min Bonus data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator('Min Salary', 'Min Bonus') Description  
    

    Descripción 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.

    Descripción Iniciar un temporizador.

    Descripción 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.

    Descripción Imprima el tiempo que tarda el iterador en la consola de trabajos.

    Descripción Registrar un mensaje de depuración en la consola de trabajos.

    Descripción Llame al método benchmark() con un iterador para iterar sobre cada celda de la cuadrícula de datos actual.

    Descripción 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.

    Descripción 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.

  7. En la barra de herramientas, haga clic enDescripción(Guardar) para guardar el script y, a continuación, haga clic en Descripción(Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Cierre Calculation Manager.
  8. En el navegador, abra el gestor de formularios y seleccione el formulario EmployeeDriverForm.
  9. Gestor de formularios
  10. 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.
  11. Asociar la regla
  12. 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.
  13. El formulario EmployeeDriverForm con datos introducidos.
  14. Guarde y cierre el formulario. Navegue a la consola Jobs.
  15. Panel Actividad reciente de la Consola de trabajos.
  16. 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.
  17. Los mensajes del log.

    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.

  1. Abra Calculation Manager y cree una regla denominada Restablecimiento de datos de grupo de Groovy en el cubo Plan1.
  2. En el editor de reglas, cambie la opción Diseñador a Editar script y defina el tipo de script en Script de Groovy.
  3. Copiar esta secuencia de comandos y pegarla en el editor:
    Cube cube = operation.application.getCube("Plan1") Description 
    
    DataGridBuilder builder = cube.getDataGridBuilder("MM/DD/YYYY") Description 
    builder.addPov('FY16', 'Current', 'USD', 'BegBalance', 'BU Version_1', 'No Entity') Description  
    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() Description  
    builder.build(status).withCloseable { DataGrid grid -> Description  
        println("Total number of cells accepted: $status.numAcceptedCells") Description  
        println("Total number of cells rejected: $status.numRejectedCells")
        println("First 100 rejected cells: $status.cellsRejected")
        cube.saveGrid(grid) Description  
    } Description  
  4. Descripción Cree un objeto de cubo para el cubo Plan 1.

    Descripción 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 de ExecuteAsUser 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)

    Descripción Cree una cuadrícula de datos agregando los miembros de PDV, los miembros de columna y las filas con valores de datos.

    Descripción Cree un objeto de estado para el objeto DataGrid creado en el siguiente paso.

    Descripción 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.

    Descripción 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.

    Descripción Guarde la cuadrícula de datos.

    Descripción La cuadrícula se cierra automáticamente.

  5. En la barra de herramientas, haga clic en Descripción (Guardar) para guardar el script y, a continuación, haga clic en Descripción (Validar y desplegar) para validar y desplegar el script. Haga clic en OK (Aceptar) cuando se le solicite. Cierre Calculation Manager.
  6. 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.
    Restablecer Regla
  7. 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.
  8. Menú de acciones

    restablecer regla
  9. 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.
  10. Descripción
  11. Cierre el formulario y vaya a abrir la consola Jobs.
  12. Descripción
  13. 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.
  14. Descripción

Siguiente Tutorial

Validación de valores de entrada de datos con 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.