Evento de Tabla: M1 (Antes de Aceptar)


([N2] ramiro) #1

Buenas:

 

La pasada semana tuve mis dudas sobre que el evento de Tabla anterior a modificación funcionase correctamente, aunque después pensé que el mal funcionamiento se debía a un efecto secundario debido a que en algunos puntos usaba la función isEmpty () aplicada a campos numéricos y que ese podia ser el origen del problema.

 

Lo he vuelto a comprobar: en una Tabla desactivo los eventes A2 y M3 y dejo activo una sola instrucción del evento M1 (Anterior a modificación) que ejecuta un proceso de la Tabla (el código por lo tanto no está en M1 sino en otro proceso que es lanzado desde M1). Para evitar cualquier tipo de problema con las transacciones, en ese proceso he desactivado todo (ver imagen 1). En la única rama que se ejecuta se realizan las tareas que se ven en la imagen 2 (el campo #CRL es numérico y en definitiva se trata de proteger que los valores numéricos admisibles estén entre 38 y 84). También he establecido los valores máximo y mínimo en los límites del campo (imagen3) , pero creo recordar que esa parte aún no funcionaba.

 

Puesto que está protegido por el proceso lanzado desde el evento de tabla, cualquier valor grabado fuera del rango 38-84 debería ser rechazado PERO NO SUCEDE. Puedo grabar lo que me de la gana...

 

Saludos. Ramiro

 

 

[attachment=3475,364] [attachment=3475,365] [attachment=3475,366]


([N4] velavisual) #2

Quita los REM ¡¡¡ gege

 

Lo comento por un hilo del foro de v6:

http://forum.velneo.com/es/viewtopic.php?t=21900

En el cual se observa un mal comportamiento de los REM dentro de IF. Leelo al completo.

 

Por probar que no quede

 

 


([N4] rcueto.velneo) #3

Hola, Ramiro:

Por favor, te agradeceríamos que nos confirmes si llamando desde el trigger a un proceso que simplemente contenga una única línea (modifica campo) que modifique el campo con un dato fijo (ejemplo: 20), se produce o no la modificación.
Gracias por tu colaboración.

Un saludo.


([N2] ramiro) #4

Buenas:

 

He hecho lo que me indicas y al final del condicional activo he puesto el código de la primera imagen, que presenta un mensaje y después graba un valor en el campo. TAMPOCO FUNCIONA, sino que se conserva lo que ponga en el formulario.

 

Antes de Aceptar el formulario he limpiado el fichero de mensajes y en la segunda imagen se ven todos los que han aparecido (los errores de fórmula llevo muchas horas buscando de donde vienen sin lograr encontrarlo ¡Ay, Fandiño...!). Los errores vatp de momento no consigo entenderlos, pero espero que vosotros podáis.

 

Saludos. Ramiro

[attachment=3487,367] [attachment=3487,368]


([N2] ramiro) #5

Buenas:

 

Aunque en el código pone "Pongo 55 en el CRL" y en los mensajes pone "Voy a poner 55 en el CRL", se trata de un cambio en el código a última hora. Lo he vuelto a probar todo y los resultados son los mismos: el mensaje se presenta y la modificación NO SE PRODUCE... Por los errores vatp es como si al lanzar el proceso desde el evento de tabla, se perdiera el enlace con la ficha en la que han de realizarse las modificaciones (recordemos que en otro evento no funcionaba cargar plurales...)

 

Saludos. Ramiro


([N4] rcueto.velneo) #6

Hola:

Perdona que no me haya dado cuenta antes pero no es un error sino que no estás usando el comando de instrucción modificar campo de la forma adecuada.

Como habrás podido leer en la página sobre este comando de instrucción, éste debe estar incluido en un subproceso de un comando de instrucción de proceso que transaccione. En un trigger, por tanto, si quieres modificar un campo tendrás que hacerlo en el propio trigger, ya que si en un proceso intentas bloquear la ficha para modificarla, estarás generando un bloqueo.

Un saludo.


([N2] ramiro) #7

Buenas:

 

Efectivamente, si el código que antes estaba en un proceso llamado desde el evento de tabla anterior a modificación lo pongo directamente en el propio evento, funciona correctamente. El mismo código creo que hubiera funcionado correctamente en V6 y por lo tanto no se si es un bug o no (valorarlo vosotros...)

 

En cualquier caso, he seguido adelante y me he encontrado con que la función que debería devolverme el número de campos de una Tabla siempre devuelve cero (ver imagen 1). La tabla de la que interrogo el número de campos la he seleccionado con el asistente. El resultado lo guardo en N_NUM_FLD, que es una variable local numérica.

 

Saludos. Ramiro

 

 

[attachment=3510,370]


([N4] rcueto.velneo) #8

Muchas gracias por tu colaboración.
 
Te confirmamos que hemos podido reproducir la incidencia referida al comando de instrucción "APIVEL: Get número de campos" y que la hemos incluido en nuestro sistema de gestión de incidencias con el código de referencia: 1502.
 
Con este código puedes hacer referencia a la incidencia en el caso de que quieras conocer su estado en el futuro.

 Un saludo.