PaaSOS: Soluciones a problemas cotidianos
Hay situaciones que se producen en Velneo v7 que son difíciles de explicar, hoy intentaremos explicar una de esas.
Existe un problema de difícil solución que pone de relieve la necesidad de un conjunto de servicios de bajo nivel que mejoren la funcionalidad de las variables globales en memoria.
En nuestro caso este módulo se llama “módulo de persistencia”.
Imaginemos que queremos realizar una aplicación empresarial con Velneo v7 que tiene un conjunto de módulos que muestran la información de forma paginada. Cada módulo dispone de su propio paginador. (véase: Velneo – Creando un paginador para un casillero).
Para realizar un paginador en Velneo x6 o v7 típicamente utilizaremos un conjunto de variables globales en memoria para almacenar cierta información cambiante. En nuestro caso estas variables almacenan en que página estamos posicionado de un conjunto de páginas en las que hemos dividido una lista.
Variables globales típicamente utilizadas:
- SLT_N_ITEMS (Numérica en disco): Número casillas por página
- SLT_CURRENT_PAGE (Numérica en memoria): Página actual
- SLT_PAG_END (Numérica en memoria): Última página
En el proceso de carga (o consulta) calculamos en base a estas variables que elementos tenemos que mostrar en pantalla. Todo parece correcto, pero que sucede si desde un módulo en el que estamos en una determinada página nos vamos a otro distinto… Simple, los valores de las variables en memoria dejan de tener sentido ya que en el nuevo módulo estas variables tendrían que tener otro valor distinto del anterior. Esto quiere decir que en el nuevo módulo tendríamos que recalcular nuevamente el número de elementos. Vale… pues lo hacemos… si pero eso obligaría a recalcular cada vez que conmutemos de módulo. Poco óptimo en la nube, verdad… sobre todo si el conjunto de registros es demasiado grande.
- Para resolver esta y otras circunstancias similares nosotros disponemos de un módulo que permite almacenar datos asociados a una sesión de un usuario por cada módulo.
- En resumen… si no quieres tener problemas en el desarrollo de aplicaciones empresariales con Velneo v7 no utilices apenas las variables globales, utiliza locales… si por algún motivo (fundamentalmente por que Velneo no facilita el paso de valores entre variables locales) no puedes, piensa en esto que te decimos… ya que si no, tu aplicación corre el riesgo de sufrir de ciertos “comportamientos extraños” en el tratamiento de la información.
- Nosotros lo tenemos resuelto… y no tardando demasiado la comunidad de Velneo también… PaaSOS os facilitará la labor… cada día está más cerca.
La arquitectura de v7 es realmente impresionante, pero para conseguir dotar a nuestras aplicaciones de más funcionalidades avanzadas Velneo tiene que dar un pasito más.
Lo ideal sería que Velneo mejore la funcionalidad del manejo de objetos en v7.
Además tendría que permitir saber el número de elementos de una tabla sin tener que cargarla.
Hola. Veamos, esto pasa en todos los sistemas, cada objeto de un lenguaje sirve para lo que sirve, las variables globales no son las apropiadas para el ejemplo que has puesto, ni en Velneo ni en Cobol ni en .NET, para eso están las variables locales , por otro lado totalmente de acuerdo contigo en que a V7 le falta un hervor, pero creo que tenemos total confianza en el equipo de Velneo.
Saludos Cordiales.
Miguel.
Cierto… en teoría las variables locales son más adecuadas. En la práctica no podemos realizarlo con variables locales ya que no son accesibles entre los distintos objetos que conforman nuestro montaje.
¿Podemos pasar el valor de una variable local declarada en un formulario a un proceso que es lanzado desde un control objeto?, la respuesta es no… por lo que necesitamos algo que permita el traspaso de valores entre objetos (desde el formulario al proceso, del proceso a la rejilla…) a día de hoy solo hay un par de soluciones posibles, y cada una de estas tiene sus ventajas e inconvenientes.
Respecto a lo de las variables locales no estoy en parte de acuerdo. En .NET para el traspaso de la gestión de estado entre objetos se utilizan Properties (propiedades públicas del objeto, en esencia Get y Set). Las variables locales no son visibles fuera del ámbito que le corresponda (al igual que en otros lenguajes y plataformas).
Correcto, mi comentario era demasiado genérico, es que todavía no he tenido tiempo de hacer demasiadas cosas con V7, y la verdad es que estoy perdiendo un poco el tren, ya veremos…
Muchas gracias por tus aportaciones.
Esperemos que pronto empecéis a fondo con Velneo v7. La verdad es que le falta un hervor (cada día menos, la v7.3 está muy cerca de ser una versión completa y sin bugs). Aún sabiendo que es así, es una gozada programar con v7.
A lo mejor esperamos a PaaSOS. 🙂