top of page
Ejecución de Búsquedas, con varios Componentes, en Tercer Plano
Ramiro Pérez Acebo - Agosto 2013

Siempre es conveniente que las Búsquedas con V7 se realicen en Tercer Plano (en el servidor), pero esto es particularmente importante cuando la Búsqueda tiene y se activan varios componentes pues en este caso los registros encontrados por cada componente se devuelven al plano desde el que se invoca la Búsqueda, realizándose allí las tareas de Añadir-Quitar-Cruzar hasta obtener la lista final de registros. Ese trasvase de datos entre planos puede suponer una fuerte penalización en el rendimiento, especialmente cuando ejecutamos en la nube.

 

Para garantizar que esas tareas (Añadir-Quitar-Cruzar) de las Búsquedas con varios componentes se realicen en 3P conviene conocer que:

 

1.   Las Búsquedas ejecutadas directamente con manejador y lanzadas para su ejecución en Tercer Plano NO respetan integramente el plano de ejecución indicado (ver Base de Conocimiento de V7). Por consiguiente, si ejecutamos el siguiente código desde un manejador de evento de un Formulario, los datos localizados por cada componente de la Búsqueda viajarán, para combinarse, al primer plano.

 

2.   Para que la Búsqueda del ejemplo anterior se ejecute integramente en Tercer Plano necesitamos estar ya en 3P en el momento de lanzarla. Para lograrlo podemos crear un manejador de objeto para un Proceso al que le pasamos las variables que va a usar la Búsqueda, disparándolo en 3P (los procesos lanzados con manejador en 3P si se ejecutan realmente en ese 3P). El proceso a su vez crea otro manejador de objeto para la Búsqueda, le pasa los parámetros recibidos y la dispara. Puesto que ya estamos en 3P, es allí donde se van a realizar las combinaciones de registros localizados por los componentes de la Búsqueda (sin trasvases entre planos). Finalizado su trabajo, la Búsqueda entrega la lista de registros al Proceso y éste a su vez retorna esa lista al Proceso/Evento desde donde fué invocado.

Todas las Búsquedas con varios componentes deberían realizarse desde un Proceso ejecutado en 3P

 

Si bien al principio puede parecer un inconveniente tener que intercalar un Proceso para lanzar la Búsqueda, con el tiempo acaban viéndose también ciertas ventajas puesto que en el Proceso (antes de devolver la lista de registros) se pueden realizar tareas complementarias (ordenar la lista, control de permisos de acceso a ciertos registros, comprobar la integridad de la información, filtrados especiales, etc)

bottom of page