Almacén de objetos en v7
Después de leer detenidamente el gran artículo de Nacho “Almacén de objetos en v7” hemos decidido exponer cual es nuestra solución ante este mismo problema. El resultado es similar pero la opción de Nacho es incluso mejor que la nuestra por lo que no descartamos adoptarla en un futuro próximo.
Nosotros también tenemos nuestra tuiMaster desde hace ya unas semanas y es muy productiva… pero lo que nosotros hacemos es algo distinto (no movemos las tablas del proyecto de datos, las renombramos):
Previos:
- En el proyecto de datos tenemos todas las tablas y la tabla maestra también MASTER.
- En un proyecto de interface tenemos tuiMaster con todos los objetos de nuestro interface de usuario asociados a la tabla MASTER.
- Tenemos una copia del proyecto tuiMaster guardada otro lugar, para posteriormente restaurarla.
- Pasos a seguir en nuestro método:
- Cortamos la tabla MASTER (tener en cuenta que queda almacenada temporalmente en memoria, por lo que no copiéis nada hasta terminar el proceso de restauración de la tabla).
- Renombramos la tabla que queremos que haga de MASTER para que apunten los objetos del interface a esta nueva tabla (el sistema de reflexión de Velneo v7 hace que los objetos de tuiMaster apunten a la tabla recién renombrada).
- Luego la volvemos a poner el nombre correcto.
- Restauramos la tabla maestra (pegándola desde memoria. Ya nada apunta a ella).
- Creamos el nuevo proyecto de interface.
- Hacemos que tuiMaster herede de este.
- Movemos el marco AUTOEXEC desde tuiMaster al nuevo proyecto (esto arrastra todos los objetos asociados al nuevo proyecto, si es necesario arrastramos los que el no haya sido capaz).
- Renombramos los objetos correctamente.
- Por último restauramos desde la copia del tuiMaster.
- Como veis es similar al de Nacho, un poco más complejo de entender y manejar, por lo que os recomendamos utilizar el método de Nacho “Almacén de objetos en v7”.
Por lo que entiendo, tu tienes un único proyecto de datos, donde está la tabla MASTER y el resto de tablas, pero cuando tengas soluciones con varios niveles de proyectos de datos, ¿como lo haces?.
El almacén de objetos tiene que ser totalmente independiente de cualquier solución. Además se trata de tener varios recursos en dicho almacén.
El ejemplo del artículo habla de una sola tabla, pero lo normal es tener otras soluciones más complejas ya programadas (como por ejemplo cabeceras y líneas), y el sistema te servirá igualmente.
un saludo.
Totalmente de acuerdo. Encuentro más aceptable tu modelo, por eso hemos decidido reajustar nuestras plantillas a vuestra forma.
Respecto a lo de múltiples cajas de datos anidadas, de momento, evitamos demasiados niveles de datos. Velneo v7 tiene alguna cosa que no le gusta con esto (con tablas fuertemente relacionadas). En los de proyectos de interface no hay ningún problema con ello. Por eso el diseño de PaaSOS es muy lineal en las capas de datos y muy modular en la de interface.
Muchas gracias por tus posts de v7… te seguimos en tu blog.