05 May 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?»
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.
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):
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:
- 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
- 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.
Ramon
Posted at 19:25h, 18 eneroHola,
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
Francisco José Vila Martín
Posted at 14:08h, 09 febreroHola Ramón:
He añadido una ampliación al post. Espero que haya quedado resuelta tu duda.
Un saludo
Carlos Morandin
Posted at 19:42h, 06 febreroHola, 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.
Francisco José Vila Martín
Posted at 14:08h, 09 febreroHola Carlos:
He añadido una ampliación al post. Espero que haya quedado resuelta tu duda.
Un saludo