Objetivo 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.