Primeros pasos: mi primera solución, conclusiones

Antes de nada agradecer a los vídeos tutoriales realizados por el Sr. Miguel Pérez que me han sido de mucha ayuda para empezar a entender velneo, aunque como el mismo dice sólo es la punta del iceberg de velneo.

Las primeras sensaciones con velneo son muy muy buenas.
La primera constatación es que en el momento que domine la herramienta la productividad en la fase de desarrollo va a ser espectacular ya que con velneo te puedes olvidar de muchos aspectos que el hace y controla por ti, así como muchos elementos básicos (por ejemplo el Localizador o el concepto de actualización) que ya vienen integrados en el sistema, ahorrando mucho tiempo tanto en programación, diseño de interficies como en depuración.

Haciendo un resumen de los aspectos positivos podría destacar lo siguiente:

  • Incremento en la productividad en las fases de desarrollo y depuración.
  • El concepto de Actualización me parece excepcional.
  • El objeto Acción me parece muy potente a poder ligar en cadena o batch diferentes objetos.
  • El vDevelop y las propiedades de los objetos ayudan mucho a entender que necesitas para que funcione, por ejemplo, cuando se define una acción del tipo Disparar Objetos, el primer objeto sólo nos deja indicarle que Busqueda se va a ejecutuar para adquirir datos y el segundo datos sólo nos deja seleccionar la Rejilla que va a mostrar los resultados de la Busqueda anterior.
  • Todos los tipos de objetos se definen visualmente por diferentes iconos lo que ayuda mucho a visualizar que es que.
  • Permite a dos objetos de diferentes tipo identificarse de la misma manera, esto inicialmente choca un poco para los que venimos de otros lenguages, pero creo que será un punto a favor.
  • El concepto de las claves primarias y claves foráneas (en velneo enlaces)  inicialmente choca un poco pero después la gestión que hace de estas  es muy buena, por ejemplo en los formularios.
  • Los layouts permiten que no te preocupes de si los controles del formulario quedan bien alineados o no, el hace la faena por ti en tiempo de ejecución.
  • La gestión de las ventanas en tiempo de ejecución me parece muy interesante, sólo con cambiar algun atributo del autoexec o a través de las opciones del menú ventana puedes ver la misma aplicación en formato de secciones (TAB), en formato multiples ventanas flotando (MDI) o en formato una sola ventana en cada momento (SDI).

Hay algunos aspectos a mejorar que quiesera destacar, según mi opinión:

  • En el vDevelop los nombre de los identificadores de los objetos los pone en mayúsuculas obligatoriamente, eso me irrita un poco ya que me gusta mucho identificar a los objetos con notación húngara por ejemplo a una grilla me gustaria llamarla grdClientes o grdClientesTodos y al ponermelo todo el mayúsuculas GRDCLIENTES, pierdo la riqueza de la lectura mayúscula minúscula.
  • También en el vDevelop, no se si por desconocimiento, me cuesta un poco trabajar lo veo un poco engorroso, estas constantemente haciendo clic y doble clics para ir activando cosas. Encuentro a faltar un poco más de funcioamiento con teclas Fn, por ejemplo, cuando estas en un componente de un formulario con alguna tecla Fn que apareciese el formulario de atributos.

También tengo algunas dudas que ahora me pregunto y que de momento no tengo respuestas:

  • Cuando quiera hacer cosas más complicadas que meros formularios de gestión podré hacerlas?
  • Que control tengo de la base de datos? existen los concepto de triggers que yo personalmente utilizo mucho.
  • Como se va a comportar velneo en un entorno de explotación duro?
  • Como puedo hacer validaciones a nivel de campo o a nivel de registro?
  • El hecho de que no pueda programar y dependa al 100% de las ‘macros’ que el sistema me da, no será un impedimento cuando quiera desarrollar alguna cosa especial?

Bueno ya he hecho mi primera solución, tutorizada eso sí, pero me ha servido mucho para empezar a entender que es velneo.

Ahora y antes de empezar a leer documentación supongo que haré otro tutorial que esta en la web oficinal de velneo para afianzar estos conocimientos básicos.

Primeros pasos: mi primera solución, parte 6: actualizaciones automáticas y campos calculados

Basándonos en el vídeo del Sr. Miguel Pérez, vamos a hablar de estos dos conceptos.

Este punto debo admitirlo velneo me ha sorprendido y mucho, la potencia de su sistema gestor de base de datos cada vez me está convenciendo más por dos motivos, sencillez y productividad.

Cuando en un sistema gestor de bases de datos nos planteamos hacer un campo calculado siempre lo pensamos como un campo de una tabla que hace algunos cálculos con valores de su propia tabla, pero en velneo puedes ir un paso más allá, puedes hacer un campo calculado utilizando los campos de la propia tabla y además los campos de cualquier tabla con la que exista un enlace.

Esto es muy potente y está claro que con un sistema gestor de bases de datos relacional también se podría hacer, construyendo un stored procedure o similar, pero es que en velneo sólo hay que indicarle la formula y el se ocupa de todo, después os explico el ejemplo del vídeo y lo entenderéis mejor.

Primero vamos a ver el concepto de campo calculado en velneo.

Los ejemplos expuestos en el vídeo estan muy bien pero me gustaría poner otros que posiblemente serán más simples para los que se inician en velneo.

Primer caso: Campo calculado clásico

Imaginemos que en la tabla Clientes tenemos el campo PENDIENTE DE PAGO y el campo RIESGO, y queremos crear un campo calculado para calcular como esta el riego de este cliente. Los pasos a realizar serían los siguientes:

  • Crear un campo nuevo en la tabla Clientes llamado MARGEN_RIESGO.
  • Indicamos que el tipo de este campo es Fórmula numérica.
  • En la formula indicamos la siguiente formula #RIESGO-#PENDIENTE_PAGO.

Segundo caso:  Campo calculado a través de un enlace

Supongamos que tenemos una tabla de Libros con el campo EJEMPLARES_VENDIDOS. Esta tabla tiene un enlace con la tabla Escritor con el campo LIBROS_VENDIDOS donde se guarda la cantidad de libros totales que ha vendido el escritor. Lo que necesitamos es un campo calculado en Libros para que nos diga el porcentaje de ventas que supone ese libro respecto todos los libros que ha vendido el escritor. Los pasos a realizar serían los siguientes:

  • Crear un campo nuevo en la tabla Libros llamado PORCENTAJE_ESCRITOR.
  • Indicamos que el tipo de este campo es Fórmula numérica.
  • En la formula indicamos la siguiente formula #ESCRITOR.LIBROS_VENDIDOS*100/#EJEMPLARES_VENDIDOS

Como se puede observar cuando debemos hacer referencia a campos del enlace debemos utilizar la notación ENLACE.CAMPO.

Ahora vamos a ver el concepto de actualización en velneo.

Una actualización en velneo sirve para actualizar datos de una tabla con otra tabla con la que tiene un enlace, por ejemplo, el concepto de control de estoc. En velneo todo el control de estocs se puede hacer con actualizaciones sin tener que escribir ni una sola línea de código.

Los que llevamos muchos años en esto del desarrollo del software sabemos que esto es un poco similar a la programación de triggers de las tablas de la base de datos pero con la diferencia de que en un sistema convencional deberiamos programar los 3 triggers (insert, update, delete) y programar las acciones para incrementar y decrementar el estoc, pero en velneo sólo se indica que si hay algún cambio en la tabla, por ejemplo de líneas de factura, que actualizen el valor estoc del artículo y velneo ya se preocupa inteligentemente de hacer las operaciones si se esta insertando, actualizando o eliminando.

Veamos los pasos realizados en el vídeo para que en el campo VENTAS de la tabla de Países se actualizen de manera automática con la acumulación del campo VENTAS de la tabla Clientes, es decir, que en el campo PAISES.VENTAS tenga el valor en todo momento de la suma del campo CLIENTES.VENTAS que pertenecen al País en cuestión. Los pasos realizados son los siguientes.

  • Abrimos la tabla Clientes ya que por cada cambio de esta tabla queremos que se realice la actualización.
  • Seleccionamos en enlace a través del cual haremos la actualización, en este caso PAISES.
  • En la toolbar de la tabla hay un botón para crear una nueva actualización.
  • El paso anterior sólo alerta a velneo que por cada cambio realizado en Clientes habrá que hacer alguna cosa en la tabla de Países pero no dice que. Para ello debemos añadir un nuevo componente de actualización (redonda verde con el símbolo del más en blanco). Eso es así porque por una misma actualización a lo mejor se deben hacer más de un acción.
  • Vamos a las propiedades del componente de actualización y indicamos que el campo que se debe actualizar de la tabla Paises es VENTAS, esto se indica en la propiedad Campo.
  • Después debemos, a través de la propiedad Modo, indicar si lo que vamos a hacer es acumular valores o poner un valor absoluto, en nuestro caso acumulamos.
  • Finalmente debemos indicar la formula que se acumulará en este caso sólo queremos acumular el campo #VENTAS de la tabla Clientes. Fijaos que no debemos escribir la formula sino el valor con el que hará las operaciones, es decir, en el caso de añadir, eliminar o modificar registro en clientes el cogerá el valor del campo VENTAS del cliente y sumará o restará según que estemos realizando con el registro.

Vuelvo a insistir que la productividad que se obtiene de este sistema de trabajo es muy muy alta.

Primeros pasos: mi primera solución, parte 5: maestro-detalle, incrustar y objeto proceso

Basándonos en la parte final del vídeo del Sr. Miguel Pérez vamos a ver como incrustar en un formulario una rejilla de datos que estará filtrada para sólo mostrar los datos del maestro donde estemos situados, en el ejemplo queremos una rejilla de clientes que pertenecen al pais donde estemos situados.
Para ello vamos a necesitar el objeto Proceso. Sin profundizar mucho en este objeto entiendo que este nos permite ‘codificar/programar’ de manera visual con un pseudocódigo estructurado visual que posee velneo.
Este proceso lo que a realizar es buscar todos los clientes que perteneces al país que estamos visualizando y generar una lista de datos que será recogida por alguien, este alguien ya lo veremos después. Los pasos a realizar son los siguientes:
  • A través de la propiedad Tabla asociada le indicamos que este proceso se va a alimentar de los datos de la tabla Países y en Origen le decimos que sólo queremos la Ficha que se está visualizando en ese momento.
  • Después en la propiedad Tabla destino le indicamos que el resultado van a ser datos de la tabla Clientes y como el resultado puede ser múltiple en Destino pondremos Lista.
  • Ahora añadimos una instrucción al proceso, primer botón de la barra de herramientas de procesos, y la instrucción a escoger será Cargar plurales cogiendo como Identificador Plural en enlace plural que tiene la tabla Paises contra la tabla Clientes. Esto lo que hace es hacer una select del enlace, por lo tanto de clientes filtrando por pais. Esta instrucción para los que venimos de Plsql entiendo que lo que hace es un for de una select o cursor.
  • Finalmente como instrucción subordinada a la anterior le decimos que para cada registro del cursor ejecute la instrucción Añadir lista a la salida, lo que hace que se genere un cursor a la salida con todo el cursor creado en la primera instrucción.

Ahora ya tenemos el proceso que nos genera los datos pero alguien tiene que alimentarse de estos datos. Lo haremos de la siguiente manera:

  • En el formulario de Paises ponemos un control llamado Control objeto, este control permite incrustar en un formulario un objeto como podría ser una rejilla, listado,…
  • En la propiedad de este control llamada Objeto 1 le indicamos que este control se va a alimentar del Proceso que hemos creado en el paso anterior y en la propiedad objeto 2 le indicamos que visualize al rejilla de clientes que se va a alimentar de los datos generados por la propiedad objeto1, es decir el proceso anterior.

Y ya está todo funcionando, la verdad es que es bastante chocante para os que venimos de programación con RAD (visual basic, delphi, …) .

Primeros pasos: mi primera solución, parte 4: definiendo relaciones entre tablas

Basándonos en el vídeo del Sr. Miguel Pérez vamos a introducirnos en el mundo de las relaciones entre tablas así como elementos de la interficie gráfica para gestionar claves foráneas y rejillas del tipo maestro detalle.

Para establecer les relaciones entre tablas la manera más fácil es a través de un editor visual que velneo tiene. Para ello deberemos insertar un nuevo objeto en nuestro proyecto de datos llamado esquema que nos permite representar visualmente nuestro modelado de datos.

Para definir una relación 1 a N entre dos tablas lo que se debe hacer es lo siguiente, supongamos que las tablas son las del ejemplo, es decir, tengo la tabla de Paises y la tabla de Clientes de tal manera que 1 cliente vive en un pais y en 1 pais viven muchos clientes.

  • Activamos el objeto esquema haciendo doble clic encima de el.
  • Añadimos en el esquema las dos tablas que se van a ver afectadas por la relación, si es que no estaban ya en el esquema.
  • Seleccionamos la herramienta de creación de enlace plural, representado por una mano con una linia roja en la parte superior.
  • Arrastramos desde la tabla N, en nuestro caso Paises, hacia la tabla 1, en nuestro caso Clientes.

Una vez creada esta relación o enlace según la jerga de de velneo, este hace unos cambios en las tablas afectadas por en enlace:

  • En la tabla 1, en el ejemplo Clientes, crea un campo llamado igual que la tabla N, en este caso Paises, del mismo tipo que el identificador de esta tabla (Paises). Este campo es donde se almacenará la clave foránea de clientes con paises.
  • En la tabla 1, en el ejemplo Clientes, crea un índice para el campo que ha creado en el paso anterior permitiendo duplicados (Acepta repetidas).
  • En la tabla N, en el ejemplo Paises, crea un enlace plural el cual permitirá para cada elemento Pais localizar todos los clientes que estan relacionados con este.

Estos tres cambios que ha hecho velneo de manera automática, después de crear el enlace plural desde el objeto esquema, también se pueden hacer de manera manual creando el campo que sirve de clave foránea, el indice y el enlace plura manualmente modificando la estructura de las dos tablas afectadas por el enlace.

En este momento ya tenemos los cambios en la estructura de datos para tener la relación 1 a N entre clientes y países pero no el usuario no ve ningún cambio en sus formularios, pues bién, vamos a hacer los cambios necesario de clientes para que se pueda informar la clave foránea de país.

  • Abrimos el editor del formulario de clientes.
  • Ahora aquí deberemos añadir un control de formulario que bién podría ser un control edición o un control combobox, o cualquier otro. En un caso o en otro deberemos definir la propiedad contenido y aquí hay una grata sorpresa, se puede elegir el campo descriptivo de la relación, en este caso el nombre del país, de esta forma al desplegar el combobox nos aparecen los nombres de los países ordenados por nombre y velneo ya se ocupa de la gestión interna de la claves primarias y claves foráneas.

Hay desarrolladores que cuando representan las claves foráneas en sus interficies prefieren que el usuario pueda escribir el identificador directamente, en el ejemplo que estamos tratando el código del país, pero además montar algún sistema de ayuda para localizar este identificador por algún valor más compresible por el usuario, por ejemplo el nombre del país, aquí es donde entra en escena los localizadores explicados en posts anteriores.

Pues los pasos para poder poner en el formulario un mecanismo para lanzar un localizador para que el usuario pueda encontrar el país por el nombre del país serían los siguientes:

  • Colocamos un botón en el formulario.
  • Indicamos que el comando a ejecutar por dicho botón será Localizar maestro.
  • Nos aparecen justo debajo dos nuevas propiedades que son Campo, que es el campo al cual se le actualizará su valor, en nuestro ejemplo Paises, y la propiedad Objeto que en este caso es el Localizador que permitirá al usuario buscar el país dependiendo de como se halla configurado el localizador.

AQUI AHORA FALTA EL MAESTRO DETALLE DEL MISMO VIDEO…..

Primeros pasos: mi primera solución, parte 3: localizador y menús de dos niveles

Continuando con el el tercer vídeo del tutorial nos encontramos con un tipo de objeto llamado localizador.

El localizador es un objeto que permite localizar un registro de una tabla, este objeto es ideal para cuando necesitamos que el usuario pueda buscar un identificador de un enlace, por ejemplo el país de un cliente, buscando por datos más familiares para el usuario, en el ejemplo el nombre del país.

¿Como se crea un nuevo localizador?
Los pasos a seguir son los siguientes:

  • Con el proyecto de aplicación activo insertar un nuevo objeto del tipo Localizador.
  • Ponerle identificador y nombre.
  • Indicar sobre que tabla asociada va ha hacer la localización.
  • Indicar que rejilla se posicionará en en el registro seleccionado en el localizador.
  • Insertar un sub-objeto del tipo Indice de localizador el cual nos permitirá indicar el indice ha utilizar para hacer la busqueda. Se puede insertar tantos indices de localizador como se quiera, velneo automáticamente cuando muestra el formulario de localización en el primer desplegable muestra los diferentes indices de busqueda.

Para poder ver este localizador en pantalla nos hace falta una objeto Acción que disparé a este localizador y a su vez la acción la asignaremos a un menú o a una toolbar, por ejemplo.

En ocasiones tendremos la necesidad de crear una opción en el menú principal que a su vez depliegue otro menú, lo que habitualmente llamamos submenús. Velneo lo que nos permite es crear un nuevo objeto menú, compuesto por las acciones que nosotros definamos, y este objeto menú colocarlo dentro de otro menú, en este caso seria el menú principal.  De esta manera se crean los submenús.

Primeros pasos: mi primera solución, parte 2: mi primera ejecución

Bien teóricamente ya tenemos construida la primera gestión realizada con velneo pero, ¿y como la pongo en marcha?

Aquí os dejo el link del segundo vídeo del blog del Sr. Miguel Pérez

Para poder ejecutar desde el vClient la solución debemos ir primero al vAdmin para acceder al vServer y instanciar la solución.

¿Que es una instancia? Una instancia son aquellas soluciones que podran ser ejecutadas desde un vClient.

Para ello se deben hacer los siguientes pasos:

  • Acceder al vAdmin
  • Acceder a Disco y crear una nueva carpeta compartida que tiene un nombre lógico y una ruta física dentro del ordenador. Es importante que en el estilo de la carpeta compartida activéis todos los checks ya que sino después cuando hagamos la instancia de la solución no la podremos ubicar en esta carpeta compartida.
  • En instancias crear una nueva instancia de aplicación
  • Ponerle un nombre a la instancia, yo le podre el nombre del programa más la versión, para diferenciar en un futuro de nuevas versiones. Es importante a la instancia también darle valor al identificador sino cuando desde vDevelop se quiera lanzar la solución con F5 no nos dejaría.
  • Indicamos esta instancia a que solución pertenece.
  • La instancia de datos la resulve vAdmin de manera automática.
  • Finalmente indicar en que directorio se va a instanciar tanto la aplicación como los datos, se deberá escoger la carpeta compartida anteriormente creada.
  • Ahora debemos dar permisos a los grupos que deseemos, en este caso al grupo Admin que es donde esta el usuario velneo, para poder ejecutar la instancia que hemos creado.
  • Finalmente ejecutamos vClient atacando al vServer que tenemos en localhost, nos aparecerá una lista con todas las aplicaciones que el usuario indicado en la conexión del vClient tiene derecho a ejecutar y selecionamos la que estamos desarrollando.

Una vez la aplicación en ejecución podemos observar varias cosas interesantes:

  • La toolbar la tenemos vacía ya que no se le ha asignado nada.
  • En el menú principal se muestra un conjunto de opciones que vienen por defecto en velneo que otros posts explicaremos.
  • Para acceder a los métodos básicos de gestión se pueden hacer a través de un menú contextual que tiene la rejilla o bien a través de las teclas del teclado INS, SUP y INTRO, esta última para editar.
  • Se puede abrir más de una vez el mismo formulario y si se hace algún cambio sobre alguno de ellos los otros de autorefrescan de manera inmediata.

Para futuros cambios es importante reiniciar la instancia desde el vAdmin de los proyectos que hayan sufrido modificaciones, es decir, si modificamos la estructura de la base de datos, el proyecto de datos, debemos reiniciar el la instancia de datos y si también se han hecho cambios en el proyecto de aplicación, lo más habitual, deberemos reiniciar la instancia del proyecto de aplicación. Para reiniciar una instancia es tan simple como seleccionar la instancia en el vAdmin y hacer clic en el botón de la fecha azul que apunta hacia arriba.

En la versión 7.4 desde vDevelop apretando la tecla F5 automáticamente nos reinicia todas las instancias implicadas en la solución y lanza el vClient para evaluar los cambios realizados.

Primeros pasos: mi primera solución, parte 1: mi primera gestión

Después de los problemas anteriormente comentados vamos a hacer la primera solución tutorizada.

Para ello nos vasamos en unos vídeos tutoriales realizados por el Sr. Miguel Pérez en su Blog.

De esta primera toma de contacto con velneo quiero destacar varias cosas

  • La creación de una solución nueva es muy fácil, se utiliza el asistente y listos.
  • Una solución está compuesta por un conjunto de proyectos.
  • Para hacer una aplicación de gestión una solución deberá tener como mínimo un proyecto de datos (donde se define la estructura de la base de datos de la solución) y un proyecto de aplicaciones donde habrá la interficie de comunicación con el usuario, funcionalidades,… Recordar que velneo integra tanto el servidor de aplicaciones como el sistema gestor de bases de datos propietario.

Una vez creada la solución vamos a pasar a ‘vestir’ cada uno de los proyectos existentes dentro de la solución.
Cabe destacar que velneo habla del concepto de ‘galeria de objetos‘, esto no es nada más que los elementos que se pueden utilizar en cada uno de los proyectos  de la solución, evidentemente dependiendo del tipo de proyecto con el que se está trabajando hay disponibles unos u otros objetos.

Proyecto de datos

Como se ha comentado anteriormente aquí deberemos definir la estructura de nuestra base de datos (tablas, relaciones, atributos,…).

Por lo que estoy captando de velneo y vídeos que he ido viendo utiliza una metodología orientado a datos, es decir, se debe estudiar el modelado de datos de la solución y de ahí confeccionarán las interficies/funcionalidades necesarias para gestionar estos datos. La mayoría de los desarrolladores, me incluyo, estamos acostumbrados más a una metodología orientada a funciones, cuando tenemos un nuevo proyecto estudiamos las funcionalidades y después vemos que datos son necesarios para llevar a cabo las funcionalidades descubiertas, por lo que el elemento principal es la función. Esto inicialmente me supone un choque bastante fuerte, pero tiempo al tiempo y démosle a la herramienta una oportunidad.

Proyecto de datos – objeto tabla

Es el objeto base de un proyecto de datos. Sirve para definir las entidades de información así como sus atributos. Aspectos interesantes a destacar sobre el objeto Tabla:

  • Es curioso que nos pida el nombre en singular y en plural pero se explica que es porque el sistema como generará interficies de manera automáticas debe saber como se expresa la tabla/entidad en singular y en plural.
  • Hay diferentes subtipos de objetos Tablas, la más utilizada es el Maestro normal con clave numérica, es la típica tabla de datos con clave primária o primary key autoincremental.

Proyecto de aplicación

Como se ha comentado anteriormente es el ‘programa’ en si, formularios, funcionalidades, … Aspectos importantes a destacar sobre el proyecto de aplicación:

  • Sólo crear el proyecto de aplicación velneo crea 3 elementos de manera automática, que son la base del proyecto de aplicación
    • Autoxec del tipo marco. Sirve para configurar aspectos de la aplicación.
    • Principal del tipo menú. Es el menú principal que se va a mostrar al arrancar la solución desde el vClient.
    • Principal del tipo toolbar. Es la barra de herramientas que se va a mostrar al arrancar la solución desde el vClient.

Proyecto de aplicación- objeto formulario

Es el objeto que nos permite interactuar con el usuario de la solución para hacer los insert/update/delete, habitualmente este formulario irá asociado a una tabla definida en el proyecto de datos.

Para crear un nuevo formulario, teniendo activo el proyecto de aplicación, le damos al botón de Galeriá de Objetos y seleccionamos el Formulario, apareciendo a continuación un asistente.

Aspectos a comentar sobre la creación de un formulario a partir del asistente:

  • Nos permite indicarle si este esta asociado o no a una tabla de datos.
  • Nos permite diferentes disposiciones en pantalla, o lo que llaman Layouts.
  • Se indican que campos se quieren mostrar en el formulario.

Un detalle que me ha gustado es que existe un botón de previsualización del formulario para ver como quedará exactamente cuando se visualize desde el vClient.

Proyecto de aplicación- objeto Rejilla

Este objeto lo que hace es mostrar los datos en al usuario en formato grilla, inicialmente de sólo lectura, por lo que para poder editar una rejilla nos hará falta un formulario, anteriormente comentado.

Aspectos a comentar sobre el asistente de la rejilla:

  • Se informará sobre que tabla debe trabajar.
  • Se puede indicar que o cuales formularios se desplegarán cuando el usuario decida hacer una alta, baja o modificación.
  • Finalmente si indicarán que columnas de información se quieren mostrar en la rejilla.

Proyecto de aplicación- objeto Busqueda

Mi primera impresión es que este objeto lo que hace es hacer una select sobre una tabla y el resultado obtenido será enviado a otro objeto, por ejemplo una rejilla, para que muestre los resultados obtenidos por la busqueda.

Aspectos a comentar sobre la busqueda.

  • No tiene asistente.
  • Se debe definir de que tabla ara la select, lógico.
  • Se le tiene que añadir un subobjeto, está en la toolbar de subobjetos, componente de busqueda para definir como hará la busqueda, entiendo que esto es la parte del where y el order by de la consulta select.

Proyecto de aplicación- objeto Acción

Entiendo que este objeto nos permite es ejecutar/disparar  sobre los objetos que tenemos en el proyecto de aplicación tales como formularios, rejillas, busquedas…

Comentarios sobre este objeto:

  • La propiedad Comando indica esta acción que va ha hacer sobre el objeto indicado en la siguiente propiedad.
  • Se pueden anidar diferentes objetos, en el ejemplo del vídeo, primer se le dice a la busqueda que haga la select y después se le dice a la grilla que se ponga en marxa con los datos generados en la busqueda.
  • Cuando la acción esta definida puede ser llamada desde un menú, toolbar,…

Proyecto de aplicación- objeto Menú

Este objeto es el menú clasico de cualquier ventana/formulario. Los formularios lo que hacen es disparar acciones.

Proyecto de datos – objeto tabla

Es el objeto

Primeros pasos: mi primera solución, ups, no me deja!!!

Ya lo tenemos todo para empezar a experimentar con vDevelop, la herramienta de desarrollo.

Siguiendo las indicaciones del Sr. Miguel Pérez me recomienda que siga unos vídeo tutorial que ha creado para hacer un primera solución muy simple.

Me dispongo a ver y seguir el primer vídeo donde nos explica como utilizar el asistente para crear una nueva solución. Siguen los problemas, sigo los pasos indicados en el vídeo y cuando llego al último paso vDevelop me da el siguiente error, “no se puede crear la solución: demo“, ups y ahora que hago, socorro!!!

Como me considero un chico de recursos me dispongo a investigar un poco y encuentro una página en velneo que hablan de como empezar con velneo y allí encuentro la pista.

A través de vAdmin entro en la configuración del vServer y descubro con estupor, sin haber tocado nada de nada por lo que está la configuración base dada por el vServer, que no hay ningún grupo creado. En velneo la seguridad se establece a nivel de grupo de usuarios y no de usuario por lo que si mi usuario velneo no pertenece a ningún grupo no tiene derechos para hacer nada, anda ni tampoco crear una solución desde vDevelop ;-)

Bien paso a crear el grupo Admin al cual le doy permisos para crear/borrar soluciones y ejecutar proyectos desde vClient.

Ahora si que puedo crear la solución, bien prueba superada.

En el post siguiente os explicaré mi experiencia con esta primera solución tutorizada.

Primeros pasos: instalación, primeros problemas

Una vez adquirido las licencias de nivel 2 vamos a instalarnos Velneo en nuestro ordenador.

La primera aplicación que nos debemos descargar e instalar es el vServer. Esta aplicación es el servidor de Veneo el concepto es como si fuese el servidor de Apache o el servidor de IIS, evidentemente especializado en servir aplicaciones Velneo.

La primer problema que nos sucede es que desde nuestro panel de control de la web de Velneo, no nos podemos descargar el vServer ya que nos explican que como no tenemos la suscripción mensual pues podriamos descargarnos las versiones posteriores futuras de vServer y eso sólo se puede hacer si tienes suscripción, la explicación es lógica y comprensible peró deberián permitir descargarlo durante un tiempo limitado.

Revisamos el mail que nos envían de manera automática en el momento de contratar el Nivel 2 y vemos que en este mail hay el enlace para descargarse el vServer 7.4.0 directamente. Segundo problema como posteriormente deberemos instalar vAdmin, vClient y vDevelop, ahora si descargándolos de la área de descargas de Velneo nos paso que estos tres productos se descargaban en versión 7.4.1 y no se dejaban instalar ya que detectaban que el vServer era de la versión 7.4.0

Volvemos a empezar, desinstalamos el vServer 7.4.0 y nos bajamos des otra manera, chico de recursos ;-) , la versión 7.4.1 del vServer.

Instalamos el vServer 7.4.1 habiendo visualizado previamente este vídeo donde explican algunos aspectos importantes de la instalación, sobre todo la activación a automático del servicio que arranca el vServer y la activación de las licencias adquiridas.

Una vez finalizado los pasos de instalación del vServer, por manía ya que creo que no es necesario, reinicio el ordenador.

Una vez todo en marcha nuevamente paso a instalar los tres programas siguientes vAdmin, vClient, vDevelop, descargados como ya he comentado anteriormente desde el área descargas de la web de Velneo.

vAdmin: Es el panel de administración del vServer, podemos configurar aspectos de seguridad, despliegue de aplicaciones,…  Aquí nos encontramos con el otro problema que comentaré en el siguiente post.

vDevelop: Es el entorno de desarrollo de soluciones que debe conectarse con el vServer.

vClient: Este programa permite acceder al vServer para ejecutar las soluciones que estén disponibles en el servidor.

Para provar que el vServer funciona correctamente arrancamos el vAdmin para conectarnos a el. Es importante que siempre que nos queremos conectar con el vServer desde cualquiera de las herramientas Velneo nos va a pedir Dirección del servidor, usuario y contraseña. Como las pruebas las estamos realizando en un servidor en local la dirección del servidor es localhost y el usuario por defecto que lleva la instalación del vServer es el usuario velneo con la contraseña por defecto vacía.

En el siguiente post vamos a intentar a hacer nuestra primera solución con el vDevelop.

Información inicial sobre Velneo

Este es mi primer post en este blog donde iremos explicando, poco a poco, nuestra experiencia con las herramientas de Velmeo.

Debido a un nuevo proyecto software que vamos a desarrollar en breve, ahora estamos en la fase de análisis de funcionalidades y costes, necesitamos una herramienta o plataforma que nos permita ofrecer esta solución software en la nubemediante licencia SaaS.

Después de investigar por la red descubrimos dos plataformas que inicialmente podrían ser viables para nuestro proyecto Servoy Velneo.

Debido a diversos factores, que os comentaré posteriormente, decidimos comenzar la invetigación de herramientas por Velneo sin descartar en ningún momento Servoy.

Los factores que nos hacen empezar por Velneo son diversos:

  • Empresa Gallega, si hace falta hacer una visita las distancias no son muy grandes.
  • Documentación, comunidad, soporte en Castellano.
  • Costes por licencia y de despliegue en la nube contenidos.
  • Ofrecen en la misma plataforma el hosting en la nube, en el momento de hacer este post en servidores Amazon.
  • Predisposición muy buena por parte de Velneo.

Quiero dejar claro que estos puntos favorables en Velneo no significan que sean desfavorables en Servoy, todo lo contrario, hay muchos puntos de coincidencia.

Después de varios contactos telefónicos y por email con el Sr. Miguel Pérez Oliver finalmente contratamos la licencia de Nivel 2 con un coste de 149€ + iva para poder tener las plataforma en local y poder evaluarla con total comodidad.

Para comprar esta licencia lo que se debe hacer es registrase en la web de Velneo y una vez registrado acceder a Velneo Directo, el link está en la esquina superior derecha de la web. El pago se hace a través de Paypal.

Aclarar que inicialmente no hemos contratado la suscripción mensual, 49€ + iva mensuales, ya que queremos esperarnos unas semanas y tener la certeza de que vamos por buen camino.

Si queréis más información os recomiendo que visitéis la página web de Velneo así como el blog del Sr. Miguel Pérez Oliver.