Cálculo de datos modificados mediante reglas de Groovy

En este tema, mostraremos cómo mejorar el rendimiento del cálculo de Planning mediante el uso de reglas de Groovy para calcular únicamente los datos que se han modificado.

Después de actualizar los datos en un formulario, estos deben calcularse. Al utilizar una regla de negocio para calcular un script de cálculo estándar, se calculan todos los datos del formulario. En el caso de los formularios o cálculos de gran envergadura que afectan a grandes áreas de la base de datos, puede que observe que el rendimiento del cálculo se ralentiza.

Puede calcular manualmente una fila a la vez. Para ello, solo tiene que hacer clic en la fila. Esto puede agilizar el rendimiento del cálculo, pero no es una buena opción para realizar cambios en varias filas de datos.

Las reglas de Groovy pueden centrarse de forma dinámica en las celdas que actualice.

Puede utilizar las reglas de Groovy en los formularios de dos formas:

  • Cuando se calculan los datos al guardar, la regla de Groovy genera un script de cálculo con una sentencia FIX basada en las celdas actualizadas. A continuación, el cálculo se ejecuta en el servidor para los datos modificados en lugar de hacerlo para todos los registros del formulario. Se recomienda utilizar esta opción con formularios de gran tamaño en los que tenga que actualizar una gran cantidad de datos.

  • Si los datos se calculan antes de guardar, la regla de Groovy calcula los datos modificados en la memoria y muestra los resultados en el formulario antes de guardarlos en la base de datos. Se recomienda utilizar esta opción en caso de que tenga que realizar un número reducido de cálculos, o bien cuando desee realizar cálculos de procedimiento complejos que sean difíciles de incorporar en el esquema.

En este ejemplo, las bonificaciones se han calculado como un porcentaje del salario.

Regla de Groovy: cálculo de bonificación como porcentaje del salario

Veamos el cálculo al guardar. Observe que este formulario se ha definido con una regla de Groovy para realizar el cálculo al guardarlo.

Formulario ManageEmployees en el que se muestra la ejecución del script de cálculo después de guardar

Después de actualizar algunos de los datos de salario y números de teléfono del formulario, estos últimos se han guardado, pero esto no afectaría al cálculo.

Regla de Groovy: modificación de datos y almacenamiento

Al guardar el formulario para ejecutar la regla de Groovy asociada, los datos de bonificación calculados se muestran en el formulario.

Regla de Groovy: datos de bonificación calculados en el formulario

Al ver los detalles del trabajo, este es el script de cálculo que la regla de Groovy ha creado. Observe que la sentencia FIX solo incluye los empleados modificados.

Regla de Groovy: script que muestra la sentencia Fix, que incluye solo los empleados modificados

Vamos a abrir Calculation Manager para ver la regla de Groovy. La primera sección se repite sobre la cuadrícula del formulario para buscar celdas de salario que se hayan editado y recopila los nombres de empleado relacionados.

Regla de Groovy: script que muestra el método dataCellIterator

Esta sección genera el script de cálculo; busca los miembros de PDV del formulario y, a continuación, crea una sentencia FIX en los miembros de PDV y los empleados editados.

Regla de Groovy: script que resalta la sentencia FIX

Veamos ahora el cálculo antes de guardar.

Este es el mismo formulario, solo que se ha definido con una regla de Groovy diferente para realizar el cálculo antes de guardar.

Regla de Groovy: formulario que muestra la ejecución antes de guardar

Después de volver a actualizar los datos de salario y los números de teléfono, guarde el formulario para ejecutar la regla de Groovy asociada. Los datos de bonificación calculados se muestran en el formulario pero, si observa los detalles del trabajo, puede ver que algunos de los datos de bonificación se han actualizado. Sin embargo, esta vez no se ha generado ningún script de cálculo.

Regla de Groovy: detalles del trabajo de ejecución antes de guardar

Abra la regla de Groovy en Calculation Manager.

Al igual que con la primera regla, el script se repite sobre la cuadrícula del formulario para buscar celdas de salario que se hayan editado y recopila los nombres de empleado relacionados. A continuación, calcula los datos de bonificación únicamente para los empleados editados. Observe que no se ha generado ningún script de cálculo de Essbase.

Regla de Groovy: ningún script de cálculo de Essbase generado

Las reglas de Groovy también funcionan con formularios de Planning en Oracle Smart View for Office. Smart View le ofrece todas las posibilidades de Microsoft Excel para realizar ajustes masivos en los datos, y las reglas de Groovy del formulario establecidas para ejecutarse antes o después de guardar se ejecutan al enviar los datos.

Reglas de Groovy en Smart View