Blog

Información importante a tener en cuenta antes de instalar la versión 7.8

Información importante a tener en cuenta antes de instalar la versión 7.8 1Objetivo de esta notificación

En Velneo creemos que es importante notificar, con antelación a la salida de la versión, de la resolución de una incidencia cuyo efecto colateral puede suponer la creencia de que tu aplicación ha dejado de funcionar bien, suponiendo que se trata de algún problema existente con la versión 7.8, cuando en realidad se trata de lo contrario, es decir, la resolución de esta incidencia saca a la luz posibles errores de programación en la definición de las variables globales o locales.

En Velneo somos conscientes de que el conocimiento de esta situación te ayudará a detectar el problema, en caso de que exista, con más facilidad y rapidez.

 

Lee atentamente esta información

En esta versión se soluciona una incidencia importante con el tipo de dato de variables, tanto globales como locales, que provocaba que el tipo fuera determinado en último término por el valor almacenado y no por la definición de la variable.

La solución de esta incidencia puede hacer que en algún caso se produzca un comportamiento distinto en las aplicaciones en que por error se hace uso de un tipo de dato incorrecto, es decir, distinto del tipo de dato que se almacena.

La mejora en la gestión del tipo de dato en variables globales y locales puede implicar que procesos o funciones que hagan uso por error de variables definidas con un tipo de dato erróneo pueden dejar de funcionar ya que el tipo de dato del valor no se corresponderá con el de la variable y no se guardará. Antes de solucionar la incidencia podrían funcionar, pero de forma anómala, dando lugar en algunos casos a resultados no esperados.

En el caso de que alguna funcionalidad de nuestras aplicaciones deje de ejecutarse correctamente con la nueva versión 7.8, debemos en primer lugar revisar el uso de las variables y que estén correctamente definidos los tipos de dato, tanto variables globales como locales, de acuerdo con el tipo de dato esperado.

Afecta a variables globales o locales que tengan definido un tipo no compatible con el tipo de dato del valor que se desea almacenar. Algunos ejemplos son:

  • Variables numéricas que se usen por error para almacenar datos alfabéticos, fechas, etc.
  • Variables alfabéticas que se usen por error para almacenar fechas, horas, etc.
  • Variables de tipo fecha, hora o tiempo que se usen por error para guardar datos alfabéticos, numéricos, etc.

La solución de esta incidencia es muy importante. Como ejemplo: en la situación que dio lugar a la detección de la incidencia, Incidencia 2760 referida a los controles de tipo Botón de radio, antes la variable recibía el valor como un dato alfanumérico y al sumarle cualquier valor lo concatenaba, lo que daba lugar a un resultado no esperado.

Una vez solucionada la incidencia, la variable se comporta de acuerdo a la definición de su tipo, y si la variable es de tipo numérico, el contenido será también numérico, con lo que se puede utilizar como primer campo de una expresión obteniendo la suma.

Esta situación podía darse no sólo en este caso si no también en todos aquellos en los que la definición del tipo de dato de la variable, por error en la definición, no se correspondía con el tipo de valor almacenado.

 

¿Por qué los inspectores no pueden detectar esta incidencia?

Una práctica habitual consiste en almacenar valores con un tipo de dato que no se corresponde con el tipo de dato definido en la variable, pero sí son compatibles. Además, el tipo de dato resultado de un fórmula en muchos casos sólo es conocido en tiempo de ejecución.

Por ejemplo, en una variable alfabética es habitual incluir contenido numérico o fechas en modo texto, y además en la fórmulas se utilizan otras variables globales, variables locales, constantes, campos, resultados de funciones, resultados de llamadas a funciones de librería, y todas ellas pueden devolver valores con diferentes tipos de datos.

 

Recomendaciones

El proceso recomendado en cualquier actualización, no sólo en este caso, es la prueba de la aplicación en un servidor de desarrollo con los datos de producción, para una vez finalizada la verificación, ponerla en marcha en el equipo de producción.

En el caso de que en tu aplicación detectes una diferencia de funcionamiento con la versión 7.8, te recomendamos que como primera opción revises si alguna variable pueda estar definida con un tipo de dato no correcto, por que no se corresponda con el tipo de dato que desemos almacenar.

Esto debes tenerlo en cuenta aunque a priori no parezca tener ninguna relación.

Contacta con soporte para solucionar las dudas que puedas tener al respecto.

20 thoughts on “Información importante a tener en cuenta antes de instalar la versión 7.8

  1. Gracias por la info.

    Pero ¿el inspector de errores de la nueva 7.8 contempla tambien estos cambios?

    Porque si hay que revisar todas y cada una de las variables, o esperar a que falle algo, y entonces buscar…

    Saludos 😉

  2. Hola.

    Creo que el inspector de errores poco podrá hacer.

    Realmente, no es incorrecto intentar sumar variables alfabéticas, simplemente puede que no obtengas el resultado que el programador espera, si piensa que se comportan como variables numéricas.

    Si entendí bien el artículo, el problema es que si tenias dos variables A y B alfabéticas, les asignabas los valores 2 y 3, y las sumabas, con la 7.7 el resultado era 5, y con la 7.8 el resultado será 23 (como texto).

    El problema se complica, porque el tipo por defecto al crear una variable local, por ejemplo, era alfabético. Si te olvidabas de cambiar su tipo, muchas veces no pasaba nada, precisamente por esa peculiaridad de asignar el tipo mediante el valor introducido. Ahora, algunas operaciones dejarán de funcionar.

    Va a ser un poco complejo repasar las aplicaciones en busca de esos bugs… aunque, seguramente, el nuevo modo de funcionamiento sea más adecuado.

    Saludos,

    Fran Varona

  3. @gegeo, frueda, JGallardo y Fran.

    A raíz de vuestros comentarios hemos incluido 2 apartados más en el artículo tratando de dar respuesta a vuestra consulta, que como veréis va en la línea de lo comentado por Fran, Gracias Fran.

    Cualquier duda que se produzca sobre esta incidencia trataremos de incluirla en el texto, que además publicaremos en diferentes canales para que toda la comunidad esté informada.

    Gracias.

  4. Nuestra experiencia con la beta V7.8 referentes a esta cuestión fue bastante dura cuando no sabíamos de la existencia del problema (ya que dábamos palos de ciego al intentar acotar el problema).

    Cuando en el foro de betatesters se comentó el cambio de comportamiento todo fue mucho más sencillo. No tardamos demasiado en acotar los problemas (sabíamos donde mirar).
    Nosotros en todos nuestros productos empresariales desarrollados en V7 solo hemos encontrado tres bugs derivados de este cambio de comportamiento (un problema con una variable global numérica cuando tenía que ser alfa y otros dos con variables locales de igual forma).

    Atentamente,
    Jorge Hontoria
    http://tipesoft.com

  5. Esta incidencia no debió resolverse sin ofrecer a la comuniadd una herramienta de detección de variables. Las globales las tenemos todas en un mismo sitio, pero las locales es un caos.

    En aplicaciones de muchos formularios va a ser un auténtico quebradero de cabeza. Todos sabemos que pasar por cada uno de los procesos, eventos de tablas, formularios,e tc, puede llevar bastante tiempo.

    No es lógico que Velneo haga esto Transmite a la comunidad mucha inseguridad.

  6. Gracias por tu comentario mdelagdo.

    Hemos incluido en el artículo la sección ¿Por qué los inspectores no pueden detectar esta incidencia? Donde damos la explicación sobre tu comentario. Ten por seguro que lo habríamos hecho si la detección en edición hubiese sido factible.

    Precisamente os transmitimos esto anticipadamente para que, en el caso de que se produzca, puedas subsanarlo en el menor tiempo posible. Debes tener en cuenta que si tienes las variables con el tipo correctamente definido no tendrás ninguna incidencia. Te puedo comentar que algún betatester como Jorge Hontoria ha detectado esos casos que comenta, pero otros betatesters no han reportado ninguna incidencia.

  7. Disculpen, no soy experto como los que escriben aqui, pero, con relación a lo que escribe jarboleya, Velneo debió hacer una vSolucionVariables para mostrar a los programadores las variables que contienen un tipo de datos diferente al de su naturaleza para que el mismo programador decida si dejarla o cambiar el tipo en base al contenido.

  8. Gracias por tu comentario Roberto.

    Entiendo que cuando hablas de vSolucionVariables te refieres a los inspectores, ya que precisamente cumplen esa funcionalidad. Ya existe un inspector de errores, pero como hemos indicado anteriormente en el artículo y en los comentarios, el que una variable tenga definido un tipo diferente al contenido con la que se alimenta no significa que sea un error. Es habitual concatenar campos de diferentes tipos e incluso obtener valores de retornos de funciones que independientemente del tipo de retorno definido, por ejemplo alfabético, en ejecución su contenido podría ser un número o una fecha lo que podría ser válido, por ejemplo. En muchos casos los contenidos que reciben las variables son conocidos en tiempo de ejecución, lo que tampoco lleva implícito que el valor recibido sea erróneo.

  9. Hola,

    Muchas gracias por este aviso, me parece muy buena la iniciativa, pues en el pasado teniamos que esperar saber que este tipo de situaciones se tenia por sabido por el personal de Velneo pero no por la comunidad que despues de crear un post en el foro bastante candente aperecia alguien de velneo diciendonos que eso ellos ya lo sabian.

    Me parece de gran ayuda

    Saludos

  10. Gracias Roma,

    Ese es el objetivo de publicarlo en el blog, en el foro y también lo haremos en todos los canales disponibles para conseguir que todos los que vayan a instalar la nueva versión 7.8 sean conscientes.

    Agradecemos tu comentario y trataremos de seguir mejorando en la comunicación con los desarrolladores.

  11. Buenas tardes, t

    Tengo muchos procesos de importacion y exportacion a Excel y gran cantidad de variables locales del proceso que uso para Asignar y Obtener celda por posición. Pues bien las tengo todas definidas como Alfabéticas cuando deberían ser Numéricas.

    Me di cuenta del mi error pero como funcionaba no hice nada al ser más fácil usarlas como alfabéticas pues es como me las iba creando el sistema a medida que las usaba en el proceso.

    No hago cálculos con ellas solo las uso para asignar u obtener celda por posición. ¿Es necesario que las cambie o seguirán funcionando en este caso en v78?. Saludos. Daniel.

  12. Hola Daniel,

    Por lo que comentas y, sin ver el código, es posible que te funcione sin que tengas que cambiar el tipo de esas variables.

    Creo que lo mejor es que abras un ticket en soporte pasando la información más detallada del uso de esas variables y así podremos ayudarte y darte una respuesta concreta.

    Un saludo.

  13. Buenas noches,

    Respecto a mi consulta sobre v78 usando variables locales alfabéticas para obtener y asignar celdas numericas por posición con la dllExcel, comentar que los procesos funcionan correctamente manteniendo dichas variables como alfabéticas. El resto de la aplicación también funciona correctamente con v78, búsquedas, rejillas y variables globales incluido.

    Saludos. Daniel.

  14. Pingback: vTools | Web de Velneo V7

Dejar un comentario