Hola, soy nuevo en Velneo, pero hay un programador externo que nos ha hecho una aplicación la cual ya tenemos en productivo. Por como veo que trabaja el sistema tengo algunas dudas sobre la programación (no tengo aún el código fuente, e insisto, apenas estoy comenzando con Velneo así que sobre la programación en esta no se mucho).
En la parte de facturación, he insistido mucho con varios ajustes, sobre todo, que si entras a la pantalla, haces cambios, los que sean, al final puedas salirte de la pantalla y todo quede como antes de entrar. En un esquema “estándar” esto sería de dos maneras: a) trabajar todo en un caché y únicamente al presionar “Guardar” vuelque hasta ese momento los datos en disco. b) hacer una transacción y si se aprieta “Guardar” hacer el commit y si no, un rollback (o sus equivalentes).
Ya que al entrar a la pantalla y salirme sin haber indicado que se guarde, “suceden” cosas que no deberían. He platicado con el programador, y me comenta que para poder mostrar unas cosas tienen que guardar no se que, y luego para mostrar otras cosas, igual, guardar no se qué y por eso quedan datos guardados que no deberían.
¿Esto es correcto? Es decir, si Velneo gestiona en automático las transacciones ¿por qué es que algunos movimientos (según el programador) si se escriben y otros si los puede deshacer?
, ¿o es que el programador no ha hecho una buena implementación?
También de lo que me ha saltado a la vista, es que estando en la pantalla de captura, con el grid de fondo, cada cambio que se vaya haciendo en la pantalla se va viendo reflejado inmediatamente en el grid. ¿Es que así funciona Velneo?
Agradezco de antemano todos sus comentarios.
Hola marco_rangel.
Dices:
En la parte de facturación, he insistido mucho con varios ajustes, sobre todo, que si entras a la pantalla, haces cambios, los que sean , al final puedas salirte de la pantalla y todo quede como antes de entrar.
En el contrato de diseño, eso tendría que haber quedado como un requisito de tu Aplicación.
El problema es que con Velneo cumplir ese requerimiento es complicado, por varias razones:
- No existen mecanismos nativos para trabajar en caché
- Hay que crear manualmente tablas temporales para guardar los registros cabecera-detalle antes de confirmarlos en el servidor. Solo abrimos transacción en el momento de Guardar la Cabecera-Detalle, es decir, en el momento de trasvasar los registros temporales a la tabla física.
- Tendríamos que determinar claramente con el Diseñador qué Acciones realizadas desde un formulario se pueden deshacer y cuales no.
- No debemos abrir una transacción desde el Interfaz y no controlar su duración ya que podemos ocasionar bloqueos graves en el entorno multiusuario.
El sistema transaccional de Velneo es bastante sencillo y a la vez efectivo, pero debes estudiarlo a fondo para entender correctamente cómo funciona el modelo de Base de datos Real.
En cuanto a los refrescos automáticos de la Rejilla, esto es algo inherente a Velneo. Los controles y Vista de datos están conectados en tiempo real al Servidor y mediante un mecanismo llamado Refresco veremos los cambios que hagamos en otras pantallas y los que se produzcan en el servidor.
Si entiendes bien estos mecanimos y los aplicas correctemente verás que Velneo es una insuperable herramienta RAD para aplicaciones puras de gestión.
Saludos
Paco Satué
Hola Paco, realmente la situación es tal vez un poco compleja de explicar, sobre todo si aún no llego al nivel de programación para entender esta situación desde el punto de vista de Velneo, pero entonces, solo para apuntalar un poco ¿únicamente los datos que pertenecen a mis tablas maestro-detalle son las únicas que entran dentro de la transacción y el resto de tablas que llegué a modificar tendría que revertirlas manualmente?
Hola marco_rangel.
No, no es complejo de explicar.
Solo tienes que tener claro en tu diseño lo que vas a hacer en cada formulario (Lo que Entra y lo que Sale) y qué Acciones se pueden deshacer y cuales no. Y por supuesto un conocimiento profundo de cómo funciona el motor de la base de datos y la gestión transaccional de Velneo.
Dices:
¿únicamente los datos que pertenecen a mis tablas maestro-detalle son las únicas que entran dentro de la transacción y el resto de tablas que llegué a modificar tendría que revertirlas manualmente?
Puedes controlar que solo se deshaga la parte de Cabecera-Detalle o que se deshaga todo, aunque “todo” deberás especificarlo claramente. Por poner un ejemplo: si en un formulario de Pedidos el usuario tiene acceso a las Altas de Maestros (un Nuevo Artículo, Tarifa de Precios, …) quizás quieras poder deshacer el Pedido en un momento dado, pero no te interesa que se deshagan las Altas de Maestros que haya podido hacer.
Velneo dispone de un sistema de Bloqueos más o menos completo, que te permitirán Abrir una Transacción con solo abrir un Formulario no Modal (Bloqueo Duro) o por el contrario Abrir y Cerrar Transacciones bajo el control del programador (Bloqueo Blando).
Saludos
Paco Satué