Nacho versus v7

Mis experiencias con Velneo v7

Archivos de la categoría ‘Analizando con v7’

VJavascript ejemplo cargar plurales

Publicado por Nacho en 3 diciembre 2011

En este artículo vamos a escribir un ejemplo de VJavascript que nos servirá para hacer algo super frecuente en v7: Cargar plurales, pero de forma genérica.

De esta forma podremos aprovechar el fichero javascript para cargar cualquier plural de cualquier tabla. Solo tendremos que crear el objeto proceso en v7 que nos índique cual es la ficha origen y cual la lista destino, y asociarlo con este fichero. Con la salvedad que la lista destino tiene que ser de un histórico de la ficha origen.

Fichero: CargarPlurales.js

// IN.- Ficha
// OUT.- Lista de historico (Cargar plurales en v7 )
// Este proceso puede recibir una ficha de cualquier tabla
// Retornará la lista del historico de esa ficha, que espere a la salida

// Recogemos la información de las dos tablas
var TableInfoEntrada = VRegisterIn.tableInfo();
var TableInfoOut = VRegisterListOut.tableInfo();

var ListOut = VRegisterList;

var NumHist = TableInfoEntrada.PluralCount();

// Suponemos que la numeración de los historicos es de 0 a n-1
for (h= 0; h < NumHist; h++ )
{

if ( TableInfoEntrada.pluralBoundedTableId( h ) == TableInfoOut.id() )
{
ListOut = VRegisterIn.loadPlurals( TableInfoEntrada.pluralId( h ) );

     h = NumHist;
}

}

// Retornamos la lista
VRegisterListOut.append( ListOut );

Publicado en Analizando con v7, Ideas v7, javascript, Velneo | Etiquetado: , , | 1 comentario

Velneo y Javascript la conexión de dos mundos

Publicado por Nacho en 2 diciembre 2011

Ya deciamos que después del 11/11/11 algo iba a cambiar y vaya que cambió. Las jornadas no tuvieron desperdicio, cada cual mejor. Pero no me he puesto a esta hora a escribir para hablar de la conferencia de hace casi un mes (lo siento pero no he tenido mucho tiempo, y supongo que eso es bueno ;) , sobre todo para los tiempos que corren ). Me pongo por que después de esas jornadas ha habido otro acontecimiento a destacar y ha sido el blog de nuestro querido vArquitecto Juan Muñoz-Cobos, en él nos está informando de primerísima mano por donde se está trabajando para las siguientes versiones, algo que muchos reclamabamos a Velneo desde hace tiempo y ahora Juan, como siempre, nos ha dicho “quieres caldo… pues toma tres tazas”.

En él nos está informando de la apertura de v7 a la programación en javascript, detallandonos los objetos que tendremos para acceder a toda las información de la aplicación desde el entorno gráfico a la base de datos. Así podremos crear procesos y funciones en javascript o v7, a gusto del consumidor.

Pero me parece que cuando empezemos a hacer los procesos en javascript, vamos a dejar los de v7 para las cosas sencillas solamente.

Estoy tratando de digerir las posibilidades, y lo que quiero en esta entrada es hacer un ejercicio teorico, de las posibilidades que se abren. Para ello voy a partir del ejemplo de su entrada http://varquitecto.wordpress.com/2011/11/24/procesos-javascript/ donde dispone de una estructura de tres tablas:

Hay tenemos un ejemplo de como en javascript podemos retornar las PELICULAS de una PERSONA.

Yo voy a tratar de hacer un proceso en javascript que sustituya a 2 procesos de v7.

Procesos en v7:

  1. PERSONAS_REPARTOS. Origen ficha PERSONA, Salida Lista REPARTOS
  2. PELICULAS_REPARTOS. Origen ficha PELICULA, salida Lista REPARTOS

Estos procesos en v7 todos sabremos hacerlos, ahora ¿como sería un único proceso en javascript que nos sirva para los dos casos?.

// Este proceso puede recibir una ficha de la tabla PERSONAS o de la tabla PELICULAS

// Retornará en cualquier caso la lista de la tabla REPARTOS historica de la ficha recibida

var TableInfoEntrada = VRegisterIn.tableInfo();

var reparto = VRegisterList;

if ( TableInfoEntrada.id() == “PELICULAS” ) {

reparto = VRegisterIn.loadPlurals( “REPARTOS_PELICULAS” );

}

else {

reparto = VRegisterIn.loadPlurals( “REPARTOS_PERSONAS” );

}

// Ponemos a la salida la lista

VRegisterListOut.append( reparto );

 

Ya tenemos el mismo proceso que retorna el histórico REPARTOS a partir de cualquiera de sus maestros. Ahora es cuestión de perfeccionar el proceso para que sirva para muchas mas combinaciones.

Espero que funcione, pues no lo he podido probar ;) , pero si no es así es culpa mía no de la herramienta.

 

 

Publicado en Analizando con v7, Velneo | 9 Comentarios »

vBase. Personalizando entidades

Publicado por Nacho en 13 diciembre 2010

Al diseñar vBase nuestro objetivo era abstraer su contenido del uso que se pueda hacer desde otro proyecto. Por eso nuestra prioridad ha sido que en la tabla Entidades (ENT) no fuese necesario tener ningún dato dependiente de como interactuamos con ella a través de contabilidad, gestión, etc…
Para ello hemos creado una tabla de uso del programador “Tipo de entidad” (ENT_TIP) , donde cada proyecto podrá crear los tipos que necesite y la hemos relacionado con las entidades a través de la tabla “Entidad – Tipos de entidad” ( ENT_ENT_TIP).

Para manejar estas tablas, tenemos 4 funciones:

ENT_TIP_RSV_ALT.- Esta función nos crea un tipo de entidad, de uso reservado (El usuario no la podrá eliminar, ni modificar su código). La usaremos al inicializar nuestras aplicaciones.

fun:ENT_TIP_RSV_ALT@Entidades.dat(~CLT_TIP@vConta.dat, “Cliente “, 1)

ENT_ENT_TIP. Nos permite crear o verificar si existe una relación entre una entidad y un tipo de entidad. Nos retorna el ID de la tabla ENT_ENT_TIP.

fun:ENT_ENT_TIP@Entidades.dat(#ENT_CLT, ~CLT_TIP@vConta.dat, “N”, $EMP_ID_ENT@Entidades.dat)

ENT_ALT.- Un asistente para crear una entidad pasándole el tipo que queramos, nos retorna el ID de la entidad (tabla ENT), y se asegura que es del tipo pedido.

fun:ENT_ALT@vBase.app(~CLT_TIP@vConta.dat, $EMP_ID_ENT@Entidades.dat)

ENT_LOC.-  Un localizador de entidades, al cual le pasamos el tipo de entidad  (cliente, proveedor,..) y nos permite localizar por trozos, palabras… solo dentro de las entidades de tipo especificado.

fun:ENT_LOC@vBase.app( $EMP_ID_ENT@Entidades.dat , TIP_ENT, “”, “” )

Tipos de entidad

En esta tabla tenemos dos campos muy importantes:

Reservado: Cuando desde un proyecto creamos un tipo de entidad que necesitemos, como por ejemplo “alumno”, debemos marcarlo como “reservado”, de esta forma el usuario podrá ver y utilizar este tipo, pero no lo podrá modificar ni borrar (Al crear el tipo desde la función ENT_TIP_RSV_ALT ya se marca como tal). De esta forma, también permitimos al usuario de la aplicación crear sus propios tipos de entidad (estos no tendrán nunca la marca de reservado)

Multi empresa: Cuando indicamos que este tipo es multiempresa, le estamos indicando que el usuario cuando tenga más de una empresa, podrá definir una entidad como cliente para una empresa, sin que eso suponga que también estará como cliente para el resto.

Un ejemplo lo tenemos  en la vConta, desde donde creamos los tipos:

Id Nombre Multi Empresa Reservado
CLT Cliente Si Si
PRV Proveedor Si Si

Tipificando entidades

Una vez creados los tipos de entidad, el usuario podrá, desde la ficha de la entidad, definir que entidades son sus clientes y cuales sus proveedores (pudiendo, lógicamente, ser ambas cosas a la vez). Esto se realiza mediante la tabla ENT_ENT_TIP (Entidad – Tipos de entidad)

Localizando una entidad del tipo deseado

Cuando desde la contabilidad queremos buscar, por ejemplo un cliente, utilizamos la función ENT_LOC, que nos mostrará el siguiente localizador

A esta función se le pasa la empresa con la que estamos trabajando (necesaria para los tipos de entidad por empresa), y hasta 3 tipos de entidad (para permitirnos buscar, por ejemplo, clientes o preclientes)

Creando entidades desde otros proyectos

Para crear entidades desde otros proyectos disponemos de dos funciones que explicamos a continuación

ENT_ALT. Alta de entidad

Esta función nos realiza todo el proceso de creación de una entidad, mediante un asistente. Pero tiene 2 parámetros importantes:

-      TIP_ENT. Tipo de entidad: En el primer parámetro podemos pasarle el tipo de entidad que estamos creando (por ejemplo “CLT”, cliente), si queremos crear una entidad genérica pasaremos “”

-      EMP_ID. ID de la empresa: En el segundo parámetro indicamos con que empresa estamos trabajando.

La función nos retorna el ID de la entidad.

Dentro de la función se realiza el alta de la entidad, dirección y teléfonos de contactos, y al final se asegura que quede definida como cliente.

ENT_ENT_TIP. Verificar o crear relación entre entidad y tipo de entidad

A esta función le tenemos que pasar:

-      ID de la entidad

-      El tipo de entidad

-      La acción a realizar:

-      N. Nuevo: Nos crea el enlace, solo si no existe

-      V. Verificar: Retorna 0 si no existe

-      B. Borrar: Borra el enlace ente la entidad y el tipo

-      La empresa con la que trabajamos

La función nos retorna el ID de la tabla ENT_ENT_TIP.

Con esta función somos nosotros los que desde nuestra aplicación nos aseguramos que se establece el enlace, pudiendo además crear tablas con los datos específicos (formas de pago, tarifas,…) asociadas a la relación. Esto es importante si queremos utilizar campos de edición de clientes, donde podamos escribir el nombre, buscándonos únicamente en las entidades cliente.

Publicado en Analizando con v7, análisis, bases de datos | Deja un Comentario »

vBase. Estructura

Publicado por Nacho en 4 junio 2010

Comenzamos nuestra serie de artículos sobre la vBase, explicando la organización de datos definitiva. Esquema de la solución:

Leer el resto de esta entrada »

Publicado en Analizando con v7, análisis, bases de datos, Velneo | Etiquetado: , , , | Deja un Comentario »

vBase definitiva

Publicado por Nacho en 4 junio 2010

Con la salida de la versión 7.4 de v7, se publica lo que será la vBase estable. En esta vBase es fruto de la colaboración de Velneo con varias empresas, que empezó con una semana intensa de trabajo.

A esas jornadas, cada uno fue con su propia idea de vBase, y juntos llegamos a esta solución, de la cual estamos muy satisfechos.

Nuestro objetivo principal, incluso antes de ser elegidos para esta colaboración, era diseñar una vBase lo suficientemente abstracta, como para que pueda ser usada con aplicaciones totalmente opuestas (ejemplos: gestión clásica, académias, clubs deportivos,…..). Para ello habíamos empezado a contactar con otras empresas para consensuar ideas. Al ser elegidos para diseñar la vBase oficial, lógicamente, nos volcamos en el proyecto junto con el resto de equipo.

Ya en la v6 nosotros (Guida21), habíamos decidido basar nuestros desarrollos de las plantillas principales de Velneo (vBase, vConta) creciendo en funcionalidades, pero la experiencia de desarrollar aplicaciones para múltiples sectores, nos hacía encontrarnos una y otra vez, con la imposibilidad de tener una tabla de entidades común. Con esta vBase hemos conseguido que esto no nos vuelva a suceder. Hemos sido lo más ambiciosos en los planteamientos que el tiempo y los recursos nos han permitido.

La vBase que se ha publicado será totalmente estable a nivel de datos, es decir ya no desaparecerán campos ni tablas. La vConta se ha diseñado integrandola totalmente con esta, y es el mejor ejemplo de como operar con las entidades desde otras aplicaciones.

Voy a escribir algunos artículos que expliquen aspectos claves de esta vBase. Si quereis que escriba sobre algún apartado concreto me lo podeis indicar.

un saludo.

Publicado en Analizando con v7, Velneo | Etiquetado: , , , , | Deja un Comentario »

Jornadas análisis vConta

Publicado por Nacho en 12 marzo 2010

Hoy termina la semana de trabajo con Velneo, en la que estamos trabajando intensamente junto a Víctor García (Guida 21), Héctor Santoveña (HSM Software) y Jorge Velasco (The Seed Software Company), analizando y normalizando las futuras Open Apps de vBase y vConta.
La semana nos ha pasado muy rápidamente, personalmente ha sido una experiencia muy gratificante.
Nos va a dar mucha pena que finalice.
A lo largo de la semana hemos tenido momentos de acalorado debate que siempre han terminado con un resultado enriquecedor para todos. El poder contrastar la visión con el resto del equipo, el hecho que el objetivo común siempre ha sido claro por todos, hacer una vBase y vConta los más ambiciosa posible, la gran experiencia que cada uno aporta (propia y la de la lucha diaria con sus clientes) a conseguido que todos aprendamos y estoy seguro que lo que salga de aquí será una base muy sólida para la comunidad.

Os dejo un enlace al resumen de ayer, suscribo todos los comentarios de Jesus Arboleya, y esperamos repetir la experiencia. Aunque sabemos que este proyecto solo acaba de empezar.
Resumen del cuarto día de trabajo

Bueno os dejo que me voy a la última jornada, solo reiterar que está siendo un placer participar en esta experiencia.

Publicado en Analizando con v7, análisis, bases de datos, Velneo | Etiquetado: , , , | 2 Comentarios »

Profundizando en vBase

Publicado por Nacho en 6 febrero 2010

Hemos estado profundizando en la estructura que debe tener el módulo vBase, para ser lo mas generalista posible y pueda ser utilizado para cualquier propósito. Como consideramos, al igual que otros desarroladores de v7, que este módulo deberiamos homologarlo lo mas posible, he procedido a contrastar mi planteamiento con otras personas con experiencia. Este es el caso de Hector Santoveña y Jorge Velasco. Nuestra intención es homologar los proyectos de datos, dejando los de aplicación para que cada uno aplique el estilo que desee. Una vez terminada la definición de campos publicaremos el proyecto para que pueda ser descargado por la comunidad.
Después de nuestras conversaciones, dividimos las tablas de la siguiente manera:

  • Universales. Tablas de uso universal, que podrían ser compartidas, por aplicaciones diferentes e incluso por clientes diferentes. Estas podrían estar en un proyecto separado, y compartido. Dentro de este apartado tenemos:
    • Divisas
    • Cambios de divisas
    • Idiomas
    • Paises. Dentro de los paises hemos desglosado hasta 2 divisiones
      • División 1 (comunidades autónomas)
      • División 2 (provincias)
    • Tipos de vías
    • Localizaciones: Códigos postales, localidades y calles. Esta es una tabla que nos permite obtener el código postal de una localidad o una calle indistintamente
    • Bancos, sucursales bancarias
  • Entidades y contactos. En este apartado disponemos de la tabla de entidades y todas sus relacionadas
    • Tablas maestras
      • Categorías
      • Tipos de relación
      • Clasificaciones. Para ser utilizada por el usuario final para cualquier fin.
    • Entidades
      • Entidades
      • Contactos. Relación de personas de contacto de una entidad
      • Direcciones. Direcciones postales
      • Relación entre entidades. Tabla de relaciones entre entidades
      • Categorías de una entidad
      • Centros o subdivisiones de entidad. Esta es una tabla de propósito múltiple, será utilizada para dividir la entidad en subentidades de control. Ejemplos: Centros de trabajo o de logística, Proyectos, centros de coste. Por ejemplo desde una gestión podría ser el almacén origen o destino de la mercancía.
  • Empresa
    • Empresas
    • Usuario por empresa
    • Entidades por empresa
  • Usuarios de la aplicación. Estas tablas las tenemos en un proyecto diferente, que es heredado por este.
    • Usuarios
    • Grupos de usuarios
    • Usuarios por grupo

Leer el resto de esta entrada »

Publicado en Analizando con v7, análisis, Velneo | Etiquetado: , , | 1 comentario

Hojas de estilo v7 (gdCSS)

Publicado por Nacho en 4 enero 2010

Dentro de la v7 podemos utilizar hojas de estilo CSS, para configurar el aspecto de nuestras aplicaciones. Al igual que en la web 2.0 se separa el contenido y el diseño, estando este último en los ficheros .CSS. Entonces lo ideal es que nuestros desarrollos en v7 utilicen esta técnica, de forma que unos nos dediquemos al diseño de los datos y otros al de la estética.

Dado que yo soy de los que diseñan como organizar datos y no soy bueno en definir la estética, he decidido crear una aplicación que permita a los diseñadores experimentar como afectan los distintos estilos a los objetos de una aplicación en v7. De esta forma los diseñadores podrán ir creando trozos de código CSS reutilizable, viendo su resultado y configurando distintas hojas de estilo a utilizar por los usuarios, a modo de plantillas.

Para esto he creado un proyecto de datos, con la siguiente estructura:

Leer el resto de esta entrada »

Publicado en Analizando con v7, bases de datos, Velneo | Etiquetado: , , , | 5 Comentarios »

Módulos básicos

Publicado por Nacho en 27 diciembre 2009

Con la experiencia adquirida hasta el momento, y con las nuevas funcionalidades de la 7.2, hemos organizado una serie de soluciones, que serán a partir de las que se crearán el resto.

Datos comunes

Consideramos que toda aplicación debe tener una gestión de usuarios, y sin embargo no tiene por que tener una gestión de entidades / contactos. Por lo tanto hemos decidido separar en una solución diferente la gestión de usuarios.

En esta solución incorporamos las variables globales que utilizamos habitualmente. Proyectos:

  • Datos comunes. Proyecto de datos, con las tablas de usuarios / grupos de usuarios, y las variables de uso general
  • Recursos. Proyecto de aplicación, donde tendremos el mantenimiento de las tablas de usuarios, y los recursos/utilidades generales (Iconografía, funciones standard,….)

Hojas de estilo

Ya que actualmente podemos separar totalmente el código del aspecto visual de la aplicación, y permitir que cada usuario tenga personalizado su estilo visual (gracias al comando set hoja de estilo), hemos creado una aplicación específica para diseñar hojas de estilo.

Esta aplicación consta de:

  • Hojas de estilo.Dat. Proyecto de datos, donde estarán los estilos creados, y que podrá ser heredado por cualquier solución. Dispone de una función a la que se le pasa como parametro el código de la hoja de estilo a utilizar, y te lo devuelve. Si se pasa un cero, devuelve la última que a utilizado el usuario desde el ordenador en el que está.
  • Hojas de estilo. Proyecto de aplicación, desde donde el diseñador creará las distintas hojas de estilo. Este proyecto no será heredado por ningún otro.

Leer el resto de esta entrada »

Publicado en Analizando con v7, análisis, bases de datos, Velneo | 5 Comentarios »

Seminario Juan Muñoz Cobos

Publicado por Nacho en 16 noviembre 2009

El viernes tuvimos la oportunidad de ver de nuevo a Juan en acción, explicandonos el pasado, presente y futuro de la v7.

Escuchamos de la voz mas autorizada, el porqué de la v7, cuales son sus objetivos, cual es el estado actual, como se llegó hasta aquí, y también parte de lo que nos espera.

Nos contestó, públicamente, a nuestra duda sobre las rejillas, se ha decidio por la opción 6 (buscar una rejilla de otros desarrolladores), lo cual bajo mi opinión es un acierto, y eso ha llevado tiempo (lo cual no me extraña, por lo exigente del examinador ;) ), parece que ya ha encontrado lo que busca y seguro no nos defraudará. Como siempre aunque la espera sea larga, habrá merecido la pena.

Ha sido muy grato escuchar la gran apuesta por los estandares, lo que hará mucho mas fuerte a la herramienta. Otro gran acierto de esta nueva era.

En un momento de la intervención, comentó el debate interno en Velneo, entre la conveniencia o no de contar en que están trabajando, los planes de futuro, que podemos esperar a medio y largo plazo de la v7. Parece que existen dudas sobre lo mas conveniente.

Yo entiendo perfectamente que tengan dudas, por la experiencia pasada. Creo que al principio, cuando la criatura aún era un embrión, el hablar demasiado de lo que iba a ser, fué, a veces, contraproducente, pero sobre todo por que las espectativas venían con unos plazos que no se cumplieron.

Pero ahora ellos ya saben, y nosotros ya lo empezamos a ver, que el niño ya a pasado esos momentos dificiles, y ya sabe caminar. La 7.2 es la prueba y las siguientes versiones deben ser la confirmación.

En estos meses, si hubo un arduo debate de si se empezaba o no a desarrollar con la v7, por que nos faltaba tal o cual componente, siempre comparando con la v6. Pero con la versión en el estado actual, las diferencias con la v6 están en detalles, que pueden ser muy importantes o no, pero que se deben pulir en la siguiente versión. Y ahora no creo que nadie, dejase de empezar con la v7 hasta que tenga alguna de las cosas que pueda tener en el futuro.

Yo personalmente, me gusta saber lo que tengo, lo que tendré a corto plazo, y lo que puedo esperar a medio y largo.

Para mi, de lo mejor de la jornada, fueron las pinceladas que dió sobre las cosas en las que estaba trabajando, lástima que no se extendiera mas. Pero el saber que estaban, por ejemplo, trabajando en poder disponer de un visor de tablas SQL, o en integrar  nuestra base de datos con tablas de bases de datos externas. No solo no me hizo pensar en esperar para empezar con la v7, si no que me cargó las pilas, para seguir.

Por que cuanto mas grande sea la empresa en la que puedes entrar, mas posibilidades tienes de encontrarte con bases de datos con las que tendrás que convivir. Y tenemos que poder integrarnos con Navision, Oracle, o cualquier base de datos de la competencia.

En terminos generales, y por lo comentado con los asistentes, el seminario no defraudó a nadie.

Al final tuvimos la oportunidad de compartir una vComida con algunos de los asistentes, lo que redondeo una gran jornada.

Publicado en Analizando con v7, bases de datos, Velneo | 3 Comentarios »

 
Seguir

Get every new post delivered to your Inbox.

Únete a otros 29 seguidores