NAV Logging

¿Alguna vez ha deseado poder ver el pasado? Lo que es lo más natural del mundo con los álbumes de fotos y la televisión es casi imposible con Navision o Business Central.

Y sin embargo es tan necesario, ¡y tan útil! Porque: Programar es depurar, de lo que también puedes aprender más en este enlace publicitario:


En general, sólo dispone de estos recursos:
Changelog: Dependiendo de la frecuencia de cambio en las tablas, el registro a través del registro de cambios llenará rápidamente su base de datos. Información que ya no es relevante y que tiene 5 años compite por los cambios cada minuto, por ejemplo, en las líneas de ventas y en las hojas de contabilidad financiera. A esto se añade la carga en el servidor y en la base de datos, combinada con el bloqueo de tablas.
Modificado el: Los datos maestros de Navision o Business Central suelen contener el campo "Modificado el" (complementado por la mayoría de las empresas con "Modificado por" y "Creado el/por"). Se trata de una forma de ahorrar espacio que permite saber cuándo se realizó la última modificación en este registro, pero no qué modificación.
Adivinar. "Si dice esto ahora, puede que lo haya dicho antes."
Copias de seguridad. En un buen entorno de desarrollo de Navision y Business Central, por ejemplo, dispone de una versión de desarrollo automática para cada día del mes de los últimos 30 días, que puede consultar en cualquier momento. Pero incluso esto sólo revela el estado real en el momento de la copia de seguridad de los datos.
Debugger: Por desgracia, esto sólo le permite investigar el estado actual de Business Central y Navision en un momento dado, y sólo con una inmensa cantidad de tiempo. Incluso si tiene una muy buena idea de dónde podría o debería producirse el error, tiene que utilizar el depurador para ver el mismo código de programa en funcionamiento una y otra vez en sesiones interminablemente largas alrededor del código crítico. Esto es tan productivo y emocionante como ver secarse la pintura.

La solución: Registro de archivos. Se utiliza una función genérica, fácil de llamar y siempre la misma, para escribir en un archivo la información que especifique por día/sesión.
Las versiones anteriores se eliminan automáticamente, de modo que incluso después de años sólo se dispone de información fresca de las últimas versiones del programa.

Como no hay competencia entre los procesos, esta solución es muy rápida y libre de bloqueos. Y la base de datos no se satura con un 99% de información innecesaria.

Usted mismo decide cuando escribe qué información alejar, por ejemplo, establecer filtros, registros encontrados, ordenación seleccionada:

Screenshot von etwas komplizierterem Navision / Business Central Programmcode, angereichert um Debugging-Informationen zur Fehlersuche.

De este modo, podrá ver cómodamente los resultados comprimidos en el registro, tanto durante el desarrollo como a la hora de solucionar problemas mucho más tarde, sin tener que puntear el depurador de Business Central con los dedos sangrando:

10:11:45. 67,PAGE 50195,20-FA-10572,Korrekte Spalte suchen,Status=CONST(Released),FA-Nr.=CONST(10572),Arbeitsplanref.-Nr.=CONST(10000),Arbeitsplannr.=CONST(000643),Arbeitsgangnr.=CONST(30)
10:11:45. 67,PAGE 50195,20-FA-10572,Spalte gefunden,201
10:11:45. 67,PAGE 50195,20-FA-10572,Alter Inhalt,0
10:11:45. 83,PAGE 50195,20-FA-10572,Dauer umrechnen,Orig: 50,57 active FAs 1 Worker 2
10:11:45. 86,PAGE 50195,20-FA-10572,Alt Neu Gesamt,0 101,14 101,14
10:11:45. 89,PAGE 50195,20-FA-10572,Zeit aktualisiert,BDE:50 Minuten 34 Sekunden/FA:101,14

Como la propia unidad de código "Log" cambia por
-Crear nuevo archivo de registro
-Eliminación de archivos de registro obsoletos (ajustable libremente).
-Ampliar y formatear el archivo de registro
la llamada (véase la 1ª captura de pantalla) es correspondientemente sencilla.
Como el archivo de registro siempre se almacena localmente (al menos esta es mi recomendación), y preferiblemente se almacena en un SSD o al menos en una caché RAM, el registro no retrasa la secuencia regular del programa. Normalmente, se pueden esperar al menos 15 líneas de registro por milisegundo. Un solo filtro/clave mal configurado suele justificar varios miles de líneas de registro (desde la perspectiva del tiempo de ejecución).

Como la función de registro funciona tan rápidamente y no provoca ningún otro efecto secundario en el sistema ni en el servidor de bases de datos, las entradas, las interfaces de archivos (¿qué entra? ¿qué sale?), los cálculos inusuales (¿sale siempre el resultado esperado?), etc., pueden controlarse a largo plazo sin ningún problema.

Y es mucho más rápido advertir en el registro si un código de programa esperado no se ejecuta en absoluto, o con demasiada frecuencia, o en una secuencia no óptima. O las secuencias saltan inesperadamente, por ejemplo, porque se han modificado campos clave. Los tiempos de ejecución inusualmente largos (¡todo hallazgo con más de 7 ms es demasiado largo!) también muestran de un vistazo filtros/claves/estrategias de consulta configurados incorrectamente. Las repeticiones interminables indican iteraciones inútiles, ¡de forma puramente visual!

Esto significa que incluso las cuestiones complejas pueden dividirse rápidamente en subbloques lógicos con estados de entrada y salida comprensibles.

Los archivos que no se necesitan (la experiencia demuestra que más del 99,9%) desaparecen automáticamente y sin dejar residuos al cabo de una semana.

¿Sabías que puedes forzar que cualquier archivo con contenido de texto aparezca en la vista previa de texto del Explorador de archivos de Windows? Los archivos de registro, por ejemplo, no se muestran en la vista previa por defecto.

Cambios necesarios en el registro. El primer cambio es necesario para que Windows pueda tratar cualquier archivo con contenido de texto como un archivo de texto. Todavía no cambia ningún comportamiento de visualización.

EditFlags ya está ahí y no se cambiará. Los otros valores:
[HKEY_CLASSES_ROOT]
@=“Textfile“
„Content Type“=“text/plain“
„PerceivedType“=“text“
„PersistentHandler“=“{5e941d80-bf96-11cd-b579-08002b30bfeb}“


Y, utilizando el ejemplo de los archivos *.log, las extensiones de registro necesarias para que cada extensión se muestre como un archivo de texto:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT.log]
@=“txtfile“
„PerceivedType“=“text“
„Content Type“=“text/plain“
[HKEY_CLASSES_ROOT.log\PersistentHandler]
@=“{5e941d80-bf96-11cd-b579-08002b30bfeb}“