¿Sabes cómo ampliar la información de tus tablas sin tocar su estructura? La solución se llama maestro de extensión.

Comienzas a utilizar Velneo para tus desarrollos y decides utilizar como base de tus aplicaciones, por ejemplo, la open app vErp. Quieres aumentar sus prestaciones sin tocar la base… y comienzan los sudores fríos ¿ahora qué? ¿cómo lo hago? Tranquilo… La solución está en el maestro de extensión.

Maestro de extensión

Al final lo que nosotros queremos es crear nuevos módulos para resolver nuestras necesidades a partir de apps de otras empresas o desarrolladores, sin tocar su estructura, para beneficiarnos de futuras actualizaciones.

La idea es heredar esa app en nuestra solución y utilizar los mecanismos que nos proporciona Velneo para ampliar las funcionalidades que “vienen de serie” en dichas apps.

A nivel de proyectos de aplicación lo tenemos solucionado gracias a la herencia inversa mediante los puntos de inserción y las inserciones de ficha.

A nivel de proyectos de datos tenemos la solución gracias al maestro de extensión.

Pero ¿qué es un maestro de extensión?

El maestro de extensión no es mas que otro tipo de tabla de las que disponemos en Velneo, con unas ciertas particularidades:

  • Es una tabla maestra que necesita de una tabla padre ampliando su información.
  • Sólo se puede crear una tabla maestro de extensión de tablas de tipo maestro normal con clave numérica o maestro normal con clave arbolada. En esta versión (Velneo 20.1) no es posible crear tablas de extensión de tablas submaestras ni históricas ni de otros maestros de extensión.
  • El campo ID del maestro de extensión es un campo de tipo enlace a maestra. Una tabla padre podremos verla como la suma de sus campos y de los que contienen la o las tablas de extensión asociadas.
  • Cuando creamos una tabla de extensión de una tabla padre, Velneo creará en la tabla padre un campo puntero automático hacia el registro del maestro de extensión que compartirá el mismo código (Valor del campo ID). A través de estos podemos obtener los datos de las tablas de extensión de la misma forma que lo hacemos con los punteros a maestro.
  • Al crear la tabla a través del asistente, se generarán los índices complejos NAME, WORDS Y PARTS para poder buscar registros de esta tabla de extensión por los índices correspondientes de la tabla de datos padre.
  • Las tablas de extensión se comportan a nivel de base de datos como una extensión de la tabla padre, por ese motivo Velneo automáticamente añade al maestro de extensión los enlaces plurales de la tabla a la que extiende. Esto permite que podamos navegar directamente a registros históricos de la tabla padre desde la tabla de extensión sin necesidad de realizar una navegación intermedia. En la versión actual (Velneo 20.1) la navegación directa desde el maestro de extensión a los plurales de la tabla padre solamente es funcional cuando la tabla padre y el maestro de extensión están en el mismo proyecto. Si están en proyectos diferentes, para hacer la navegación tendremos que leer el maestro y desde allí cargar los plurales. (Nota extraída de la ayuda de Velneo)

Utilidades del maestro de extensión.

Hay tres situaciones en las que nos puede venir de perlas hacer uso de una tabla de tipo maestro de extensión:

  • Añadir campos a una tabla de una Open App: es el ejemplo típico y mas conocido para el uso de este tipo de tablas. He heredado una open app y no quiero tocar su estructura para beneficiarme de futuras actualizaciones. Es el ejemplo que veremos mas abajo, ampliar la información de la tabla “Contactos” de vErp con datos para un CRM.
  • Reducir el tamaño del registro de una tabla: en algunas ocasiones puede que nos resulte útil crear un maestro de extensión de alguna de nuestras tablas (situada en el mismo proyecto de datos o no). Si la longitud del registro es elevada (recuerda que es una propiedad de la tabla) o si la tabla en cuestión tiene muchos campos que no se usan habitualmente una buena práctica es crear un maestro de extensión.
  • Tablas polimórficas: no es un tipo de tabla como tal. Imaginad que tenemos en una tabla de contactos diferentes tipos: clientes, proveedores, vendedores, transportistas, etc. En lugar de añadir en la tabla de contactos campos específicos para cada uno de los tipos (que no se usarán a no ser que se marque que es de un determinado tipo), podemos crear tablas de extensión para cada uno de los tipos con sus campos específicos.

Ya sabes… no sólo sirven para ampliar la información de una open app.

Creando una tabla maestro de extensión.

Vamos a ver un ejemplo de cómo crear un maestro de extensión en una solución vCrm que hereda de vErp.

Para el ejemplo vamos a crear una tabla que extienda la información de la tabla “Contactos” de vErp añadiéndole campos específicos para el módulo CRM.

  • Pulsamos sobre el asistente de creación de tablas, le asignamos el nombre singular y plural y le indicamos que es de tipo “Maestro de extensión.

Asistente de maestro de extensión I

  • En en siguiente formulario del asistente le indicamos la tabla a la que extiende y además tenemos la posibilidad de marcar si queremos que nos cree los índices complejos NAME, WORDS Y PARTS.

Asistente maestro de extensión II

  • Los dos siguientes formularios del asistente son los típicos para la creación de una tabla maestra: si queremos añadirle los campos estándar y si queremos enlazar con alguna tabla maestra.
  • Sólo faltaría añadir en la tabla los campos que necesitamos para ampliar la información de la tabla de “Contactos” de vErp. En mi caso, he añadido los siguientes campos:

Maestro de extensión vCrm

En esta imagen podéis ver los enlaces plurales que ha creado Velneo automáticamente a la hora de dar de alta el maestro de extensión.

Ya sólo nos faltaría ponerlo en práctica y crear los objetos visuales para mostrar los datos del maestro de extensión…. pero eso lo dejamos para un próximo artículo

¿Has creado ya maestros de extensión en tus aplicaciones?

¿No?

Y a qué esperas para hacerlo, ¿te siguen quedando dudas?

Déjame un comentario mas abajo e intentaré resolverlas.

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo V7 a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Además es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. <a href="http://ayudavelneo.com/contacto/"Ampliar información

No Comments

Post A Comment

Pin It on Pinterest