Cuando trabajamos con subfiles, es
necesario recargar el subfile cada vez que la data ha sido actualizada en el programa a
fin de mostrar la información actualizada.
Al leer un archivo para cargar el
subfile y evitar bloqueos innecesarios
de un registro se deben realizar los read o chain
sin bloqueos.
Luego, una vez que el usuario ha confirmado su
petición de grabar la información, realiza nuevamente, un chain pero con
Bloqueo de registro y actualiza inmediatamente para permitir que otros procesos
que están ejecutándose paralelamente al tuyo puedan acceder a la información y
actualizarla en caso de ser necesario.
-------------------------
En este punto hago un paréntesis:
Cuando se realiza el segundo CHAIN o READ para grabar la
información, tradicionalmente se usaba el “pool” de variables auxiliares
declaradas para guardar los valores nuevos de los campos del archivo y que no
se perdieran al hacer el Chain de actualización.
Recuerda que utilizando el
OCCUR puedes ahorrarte este inconveniente y ahorrar espacio y tiempo de
programación.
Puedes consultar este tema en un artículo anterior de este mismo blog:
-----------------------
Para cargar el subfile utiliza: la (N) permite hacer
lecturas sin bloqueo de registro
KeyField Chain
(N) FileName
O también:
Read (N) FileName
Para actualizar un registro utiliza:
KeyField Chain
FileName
En general, los desarrolladores
no acostumbran realizar pruebas de la aplicación en un ambiente multiusuario.
Para evitar errores innecesarios en el ambiente de producción solicita a varios
programadores entrar a tu aplicación al mismo tiempo y te sorprenderás de
cuantos se quedan “colgados” en alguna parte del proceso.
Otro error frecuente en la actualización de archivos es el
de “CLAVE DUPLICADA”
Con estas instrucciones puedes monitorear el error y dar el
mensaje sin producir esa fea caida de la pantalla que da muy mala impresiòn:
Chequear que se va a grabar clave duplicada:
C Monitor
C WRITE(E) FILENAME
C On-Error 01021
C CALL PROGX
C EndMon
C WRITE(E) FILENAME
C On-Error 01021
C CALL PROGX
C EndMon
Si te pareció
interesante, reenvialo a un amigo haciendo click en el sobrecito que está al
final del artículo. El conocimiento es valioso, compártelo.
No comments:
Post a Comment