Cómo analizar una aplicación en Velneo, las diferencias

Desde mi punto de vista  la gran diferencia entre analizar en Velneo y en otras plataformas, reside en que en Velneo las particularidades de su  base de datos, nos van a permitir pensar en el Qué y no en el Cómo.

Esto es fácil si asociamos

Proyecto de Datos = Qué,

Proyecto de Aplicación = Cómo presentar la información

En otros tipos de lenguaje y bases de datos relacionales para obtener el contenido de campos deberemos recurrir a procesos, es decir al “cómo proceso una información para llegar a un resultado”.

Si pensamos en el cómo , pensaremos  en   leer una información, tratarla y obtener un resultado, es decir en un proceso, y en Velneo esto normalmente no va a ser así.

La mayor desventaja   de resolver la lógica deseada en un proceso, es que muchos de los calculos y resultados intermedios que nos serán utiles en el futuro  quedarán aislados , escondidos y no accesibles,  relativamente bien resueltos si hemos utilizado  funciones pero que en muchos casos olvidaremos o no se ajustarán a la nueva necesidad por la urgencia con que fueron hechas.

Creo que es mucho mas conveniente que todo cálculo, acumulado o  valor que en cualquier momento necesitemos, este accesible desde cualquier punto de la base de datos, desde cualquier formulario, informe, rejilla o página web.

Para ello lo primero será  definir las tablas con los datos que van a ser introducidos y los campos que queremos obtener como resultado.Hasta aquí ninguna diferencia.

A partir de este punto debemos tener en cuenta que en Velneo:

Crearemos todos los campos en las tablas que sean necesarios.Será mucho más cómodo crear un campo que utilizar una variable en un proceso. Ya que la variable estará desconectada de la base de datos y el campo  ,sin embargo  disponible en todo momento.

Crearemos todos los índices que sean necesarios para establecer cualquier ordenación que nos interese. Es importante destacar que si creamos un enlace a maestro en una tabla el sistema nos creará automaticamente todas las relaciones inversas , los enlaces plurales  .

Ejemplo: Si tenemos en facturas un índice Cliente Importe y otro Cliente-Fecha, al definir que el campo Cliente es un puntero a maestro y crear esa relación, el  creará dos enlaces Plurales uno con cada uno de esos indices y por tanto dos ordenaciones distintas.

Podremos tener tantos enlaces uno a muchos como nos convenga con sus diferentes índices  (Cliente-Fecha) (Cliente Importe) (Etc) , lo cual nos dará por una parte ordenación y posibilidades de los punteros singular del plural por posición o por índice. Crear una relación uno a uno desde el cliente a su primera factura, a la última, a la de mayor importe, a la inmediatamente anterior a una fecha, etc

Y nada de esto penalizará los rendimientos de la aplicación.

A continuación deberemos resolver todos los campos de salida que hemos definido y  crear todos los campos intermedios y tablas que sean necesario para ello, pero siempre pensando en el qué, nunca en el cómo  , nunca mediante procesos.

Ejemplo.

En clientes tenemos el campo  Total de Ventas  .

Si pensamos en el cómo  , la respuesta será leer todas las ventas de un cliente, utilizar una variable donde acumulemos y estaremos ya estamos elaborando un proceso. No es lo correcto en Velneo.

Si pensamos en el qué , el total de ventas de un cliente es la suma del importe de todas sus facturas. Por tanto necesitaremos darle un valor a ese campo.

El Campo total ventas es la suma de sus facturas, es decir una Formula Histórico o  el resultado de una actualización provocada por los registros de cabecera factura donde está el total de cada una de ellas.

Para ello solo necesitaremos que en la base de datos existan los enlaces necesarios y establecer su definición o actualización.

Si lo complicamos un poco más, a lo mejor queremos obtener el promedio de importe vendido por factura.

En ese caso  : El importe dividido por las unidades vendidas. Necesitaremos un campo nuevo, que será el número de ventas realizadas , una nueva  actualización .

Y el valor del campo resultado será la división de ambos.

Esto parece obvio, pero a medida vayamos complicándolo, las diferencias entre ambas formas de pensar serán más patentes.

Si queremos obtener una estadística de ventas por meses y artículos, deberemos olvidarnos de procesar información .

Crearemos en la base de datos la tabla tal y como la queremos obtener, definiremos un índice único por artículo, mes y año, un enlace indirecto desde la línea de Ventas , e indicaremos  que esos registros se créen automáticamente desde la actualización correspondiente.

Pero nunca pensaremos en el cómo, es decir “Leeremos todas las ventas de un cliente e iremos acumulando….”

Siguiendo esa forma de programar, entenderemos por qué en Velneo, no es lógico hacer un recálculo para obtener un saldo de existencias   o un saldo de una cuenta de contabilidad  en cualquier fecha , sino que todos esos valores y resultados deberán estar definidos y resueltos en la base de datos, sea cual sea la fecha o incluso la hora si la aplicación lo requiriera.

Si funcionamos de esa manera, cuantos mas cálculos realicemos, cuanto más aparentemente se complique todo, más sencillo será resolver cualquier petición del cliente porque más datos y valores tendremos accesibles desde cualquier punto de nuestra aplicación.

Si os interesa podéis leer un antiguo artículo  en “Mas alla de la bases de datos relacionales”

Anuncios

Acerca de Miguel Pérez Oliver
Consultor de Velneo, Responsable Captación Latam y España (Hoy) . General Manager Iber Corporation, Fl,Usa (2 Años) Director de Producción y Compras Satiber (3 Años) CIO Grupo Iber (7 Años, 6 empresas internacionales y 400 usuarios) Programador Independiente (2 Años) Responsable Proyecto Sial (Sistema Informático para la Administración Local) Responsable Soporte área de Levante Microinformática , grupo Bull (2 Años) Experiencia en diversos lenguajes de programación, bases de Datos, dirección departamentos informática, organización, producción, comercial y gestión de compras. Mperez@velneo.com

3 Responses to Cómo analizar una aplicación en Velneo, las diferencias

  1. Miguel says:

    Muy interesante, vaya por delante que estoy rotundamente de acuerdo con tu análisis, de la importancia de [b]el que[/b],pero me gustaría que la afirmación [b]”Y nada de esto penalizará los rendimientos de la aplicación” [/b] pudiéramos cuantificarla en detalle, no se… por ejemplo, cosas como, ¿cuanto tarda una actualización a maestra por un puntero o por otro, cuanto una fórmula que calcule algo buscando un hermano contiguo… en fin esa clase de información técnica de la base de datos que no he logrado encontrar, lo digo porque en estos días en el foro habrás leído, la falta de velocidad en los procesos de creación de lineas de la plantilla TPV, yo la he estudiado, y mi sospecha es que la tabla de lineas tiene tantas cosas, que hace muy lenta la grabación de una linea. Saludos y espero tus siempre magistrales comentarios.

  2. Manuel Tovar says:

    Si, pero entonces si queremos dejar la libertad al usuario de que establezca él mismo el periodo que quiere analizar (de tal fecha a tal fecha), lo que en cualquier BD sería un SELECT con un WHERE con las dos fechas, ¿cómo se resuelve eso en VELNEO?. ¿Habría que tener en tablas todos los acumulados de todos los periodos posibles o, lo que es más lógico, predeterminar que se pueden consultar los acumulados de los meses no de cualquier periodo?

    Saludos cordiales
    Manuel Tovar
    Barranquilla – COLOMBIA

  3. Hola Manuel, lo que apuntas es totalmente correcto. Todo tiene un límite e indiscutiblemente una aplicación no puede ni debe contemplar absolutamente toda la casuistica, sino simplemente la que se utiliza el 90% de las veces.

    En Velneo dispones de la Navegación a historicos, A Maestros, Filtrados, Multipartir listas, el usuario puede lanzar busquedas no privadas entre rangos y muchas más opciones que en la práctica no solo sustituyen sino amplian considerablemente la potencia del tradicional Select.

    En Velneo, solemos dejar las aplicaciones mucho mas terminadas que en otros lenguajes pero eso no implica que el usuario no pueda interactuar normalmente y desde luego con sus peticiones especiales.

    Es más en Velneo podras interacturar con cualquier regilla proveniente de resultados anteriores preprogramados. Por ejemplo si lanzas un programa que hace una busqueda entre dos fechas y de una provincia determinada, sobre la regilla resultado podras realizar cualquier operacion, o desde un formulario de un cliente, que tiene una regilla de sus facturas, lo mismo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: