Las 3 únicas formas de ampliar las funcionalidades de Velneo vErp

Hay una pregunta recurrente en los clientes que contratan tanto el «Bono de 10 horas de desarrollo» como el «Servicio de desarrollo online«:

«¿Cuál es la mejor forma de ampliar las funcionalidades de Velneo vErp para mis desarrollos?»

Las 3 únicas formas de ampliar las funcionalidades de Velneo vErp

 

Además de responder a esta pregunta, surgen otras cuestiones no menos importantes:

  • Si modifico directamente la plantilla, ¿qué pasa cuando Velneo saque una nueva versión?
  • Si heredo la plantilla, ¿cómo integro mis desarrollos?
  • Si parto de una versión de vErp y la modifico según mis necesidades, cuando Velneo saque alguna funcionalidad interesante en posteriores versiones, ¿podré adaptarla a mi vErp?

Vamos a intentar responder a todas estas cuestiones viendo los pros y los contras de cada una de las formas.

Opción 1: Ampliar las funcionalidades de velneo vErp modificando directamente la plantilla

La solución «aparentemente» mas fácil… pero con matices.

Todos los objetos que creemos para añadir las funcionalidades de velneo vErp (o modificarlas), irán en los mismos proyecto de la plantilla.

Si trabajamos con este método, tendremos que tener algún mecanismo para que cuando Velneo lance una nueva versión, podamos añadir las nuevas funcionalidades incluidas sin borrar toda nuestra personalización.

Lo que se hace normalmente es crear una una carpeta (tanto en el proyecto de datos como en el proyecto de aplicación) llamada, por ejemplo, «Personalización».

Cada objeto que modifiquemos (ya sea del proyecto de datos o del proyecto de aplicación), tendremos que moverlo a esta carpeta «Personalización» ¡sin cambiarle el identificador al objeto!.

Cada objeto nuevo tendremos que moverlo también dentro de esta carpeta.

¿Cómo actuar cuando Velneo lance una nueva versión de vErp?

Tendremos que realizar los siguientes pasos cada vez que Velneo lance una actualización de la plantilla:

  • Abrir 2 vDevelop:
    • En uno tendremos nuestro vErp modificado.
    • En el otro tendremos la nueva versión de vErp.
  • Eliminaremos de la nueva versión todos los objetos que tengamos en nuestra carpeta «Personalización» (tanto en el proyecto de datos como en el de aplicación)
  • Copiaremos nuestra carpeta «Personalización» a la nueva versión de Velneo vErp.
  • Creamos un .vin con la nueva versión y la instalaremos en nuestro servidor de producción.

Sencillo… si tenemos cuidado.

Ventajas

Solución + cómoda técnicamente.

Evitamos el uso de herencia (con otras soluciones) y herencia inversa. + sencillo para los desarrolladores que os estáis iniciando en la plataforma.

Podemos modificar a nuestro antojo los triggers y las actualizaciones de las tablas.

Inconvenientes

Exige un mantenimiento cada vez que salga una nueva versión.

Mayor riesgo de cometer errores. Sobre todo en borrado de objetos

Opción 2: Ampliar las funcionalidades de velneo vErp heredando la plantilla

Solución algo mas compleja que la anterior.

Tendremos que crear una nueva solución que «herede» de Velneo vErp.

En esta nueva solución crearemos todos los objetos necesarios para ampliar las funcionalidades de Velneo vErp.

Ampliar las funcionalidades de velneo vErp heredando la plantilla

Si queremos modificar alguno de los objetos del proyecto de aplicación incluidos en Velneo vErp, tendremos que «subirlo» a nuestra solución (en este caso al proyecto vCrm_app 1.0):

Personalización de vErp

Como podéis ver, he creado una carpeta llamada «Personalización de vErp» en la que voy «subiendo» los objetos que quiero modificar de la plantilla vErp.

Si hay que ampliar la funcionalidad de las tablas de vErp, tendremos que crear «Tablas de extensión» en nuestro nuevo proyecto de datos.

¿Cómo actuar cuando Velneo lance una nueva versión de vErp?

Al no haber tocado ningún objeto de la plantilla Velneo vErp, simplemente instalamos el nuevo .vin y a funcionar.

Ventajas

Solución + sencilla de mantener.

Menor riesgo de cometer errores.

Inconvenientes

Mayor dominio de la plataforma al usar herencia inversa.

No podemos modificar ni ampliar las funcionalidades de los trigger y actualizaciones de las tablas incluidas en Velneo vErp puesto que Velneo no permite herencia inversa en tablas.

Opción 3: Ampliar las funcionalidades de velneo vErp partiendo de una versión de la plantilla

Partimos de una versión de la plantilla vErp y a partir de ahí nos olvidamos de dicha plantilla.

Con esta opción ya podemos jugar con diversas variantes.

A mi personalmente la opción que mas me gusta es tener un «Core» o «Núcleo» común para todos mis desarrollos y a partir de ahí, utilizar de nuevo la «Opción 2» pero con mi «Core» para las distintas personalizaciones sectoriales o de distintos clientes.

Con esta opción modifico y amplío las funcionalidades de mi «Core» sin depender de otras empresas.

¿Cómo actuar cuando Velneo lance una nueva versión de vErp?

Cuando Velneo lance una nueva versión de la plantilla, tendremos que integrar manualmente las funcionalidades que nos sean útiles o necesarias que vengan incluidas en vErp.

Ventajas

Solución completamente adaptada a nuestras necesidades.

No dependemos de Velneo para la corrección de errores o ampliación de nuevas funcionalidades.

Inconvenientes

Perdemos la integración con el ecosistema de aplicaciones de velneo vErp.

Integración manual de nuevas funcionalidades incluidas en la plantilla.

Ampliación 09/02/2018

La herencia en este último caso, podríamos enfocarla de dos formas diferentes:

  1. Una solución independiente con nuestro «core» (que serviría de base para todos nuestros clientes) y otra solución que heredase de nuestra solución «core» en el que irían las especificaciones o personalizaciones de nuestros distintos clientes. Cualquier objeto o nueva funcionalidad común habría que crearla en la solución «core». De esta forma todos nuestros clientes se beneficiarían de ella
  2. Una única solución en la que tendríamos distintos proyectos según las necesidades. Este segundo enfoque es recomendable si tenemos una solución «standard» para todos nuestros clientes. En este caso, tendríamos en la parte superior un proyecto por cada cliente que sería el que instanciariamos.

 

¿Con cuál de las 3 formas de ampliar las funcionalidades de vErp te quedas? 

Déjame un comentario mas abajo y comenzamos el debate.

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 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. Ampliar información

4 Comments
  • Ramon
    Posted at 19:25h, 18 enero Responder

    Hola,

    Después de haber leído todo el post, a mi también me gusta la opción 3, pero puedes adjuntar una vista «imagen» de como te queda la Herencia del vErp en tu Aplicaciones?

    Saludos
    Ramon

  • Carlos Morandin
    Posted at 19:42h, 06 febrero Responder

    Hola, A mi tambien me interesa saber como te queda la herencia al usuar la opcion 3. Como serìa lo de tener tu propio Core o Nucleo. Mil gracias.

Post A Comment

Información básica sobre Protección de Datos: Responsable: Francisco José Vila Martín. Finalidad: Gestionar y moderar los comentarios. Legitimación: Tu consentimiento. Destinatarios: Tus datos se alojarán en los servidores de Web Empresa S.L. (UE). Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos, así como otros derechos, como se explica en la información adicional. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos personales en mi Política de Privacidad.

Pin It on Pinterest