En este tema, mostraremos cómo mejorar el rendimiento del cálculo del proceso de negocio mediante el uso de reglas 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.
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.
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.
Al guardar el formulario para ejecutar la regla de Groovy asociada, los datos de bonificación calculados se muestran 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.
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.
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.
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.
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.
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 genera ningún script de cálculo de Oracle Essbase.
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.