Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Jordi Tejedor Tutoriales Leave a Comment

Muchos procesos de Microsoft Dynamics NAV finalizan en cuanto se produce el primer error. Otros continúan hasta el final sin detenerse con los errores, pero muestran un mensaje que da pocas pistas de los fallos ocurridos.

Un ejemplo claro sería el proceso de registro por lotes de facturas que al acabar muestra un mensaje poco claro.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Muchos clientes suelen pedir algún tipo de log de errores en algunos procesos para facilitar su corrección. Como normalmente las tablas compradas por el cliente acostumbran a ser escasas solemos hacer los logs en un fichero de texto o mostrando un mensaje de Navision.

Siguiendo con el ejemplo del registro por lotes, estaría bien que al finalizar se pudiera mostrar una page indicando el número de la factura que no se ha podido registrar y el error que se ha producido, y si es posible realizarlo sin consumir ninguna de las tablas compradas por el cliente.

Pasos a seguir

Para ello usaremos la tabla estándar Customer Amount que el Navision únicamente usa en el report Cliente – Listado 10 mejores. En las versiones iniciales de NAV, antes de descubrir que se podían utilizar tablas fuera de la licencia para hacer cálculos si se declaraban como temporal, solíamos añadir campos en esa tabla para realizar cálculos en nuestros procesos.

Únicamente tenemos que añadirle un campo de texto de longitud 250 para poder almacenar los textos de error de Dynamics NAV, ya que podemos usar el campo Customer No. para almacenar el número de las facturas incorrectas.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Posteriormente crearemos una page basada en esta tabla para mostrar los campos Nº de cliente y descripción de error.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Marcamos la propiedad SourceTable Temporary a Yes

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Y creamos una función global para cargar la tabla de la Page con los registros que nos interese mostrar.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

El paso siguiente es modificar el proceso de registro por lotes. Declararemos una variable temporal de la tabla Customer amount e insertaremos en ella un registro por cada factura que falle capturando el error de Navision con la función GETLASTERRORTEXT y guardándolo en el campo que hemos creado.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

Cuando finaliza el proceso, pasaremos los registros que hemos insertado a la Page mediante la función LoadPage y mostraremos la Page al usuario.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

De esta forma, cuando finaliza el proceso de facturación por lotes podemos mostrar un formulario con una descripción clara del error que se ha producido en cada una de las facturas que no se han podido registrar.

Cómo mostrar un log de errores en una page sin consumir las tablas del cliente

 

 

Jordi Tejedor
Dynamics

 

 

Deja un comentario