Solucionar el error «System.OutOfMemory» con informes grandes

En ocasiones te habrás encontrado con un error «Out Of Memory» al intentar imprimir o extraer una vista preliminar de un informe de gran tamaño en Microsoft Dynamics NAV 2013 o 2015. Puede ocurrirte con informes que deben mostrar muchos datos, como es el caso del «Libro diario oficial» (Report 10706) o el «Libro Mayor» (Report 10723), u otros con muchas páginas de datos.

«Se ha producido un error durante el procesamiento local de informes.
Error al procesar el informe
Se produjo una excepción de tipo ‘System.OutOfMemoryException’.»

SystemOutOfMemory

Error «System Out Of Memory»

Este error se produce, efectivamente, porque la memoria no es suficiente para mostrar el informe. Pero, generalmente, la solución no es ampliar la memoria.
Vamos a ver por qué suele ocurrir y cómo poder solucionarlo para no tener que sacar el informe «a trozos».

El problema se produce porque, por mucha memoria que tenga el servidor o el ordenador, el cliente de Navision es una aplicación de 32 bits. Como tal, está limitada a manejar como máximo 2 gb de memoria RAM. No hay un cliente de 64 bits de Navision hasta la versión 2016 (NAV 9).

Así las cosas, la manera de poder manejar todo el informe es que se ejecute directamente en el servidor y luego servirlo al cliente.  Además de por programación, esto se puede hacer programando la ejecución del informe en el servidor, para que luego nos aparezca en la ‘Bandeja de entrada de informes‘, que puedes mostrar en el rolecenter de los usuarios.

Para ello hay que generar una entrada en la cola de proyectos con la ejecución del informe que queramos.  Esto se puede hacer en el momento de pedir el informe, escogiendo en el desplegable del botón ‘Imprimir’ la opción ‘Previsión‘.

prevision

Insertaremos los parámetros y se creará un movimiento en la cola de proyectos.  Si no hubiera ninguna cola creada, el sistema nos avisará de ello.  Podemos configurar una cola de proyectos para ejecución directa con el NAS -si lo tenemos instalado- o arrancarla manualmente.

cola

Y con este método, tendremos el informe en nuestra bandeja de entrada de informes.

Espero que os ayude a solucionar este problema. No obstante, si estamos hablando de informes personalizados…¡no olvidéis darle un vistazo a su rendimiento!

5 pensamientos en “Solucionar el error «System.OutOfMemory» con informes grandes

  1. wikinav

    En la versión 2013R2 no existe esa opción de «Previsión». ¿Alguien ha encontrado una solución par que el usuario lo pueda sacar manualmente?

    Responder
    1. David Autor

      Una opción, sería hacerlo por código, habilitando un botón que genere el informe en PDF y lo descargue del servidor al equipo local del usuario.

      Creo que solo necesitas conocer la función «SAVEASPDF» y la «DOWNLOAD».

      Responder
  2. Jon ander

    Buenas,

    Cuando lanzas el informe en Prevision el total da diferente a si lo lanzas el ultimo mes…

    Por ejemplo:

    En prevision: filtro fecha 01/01/2015..U31/12/2015 el total da: 1.000.000
    Lanzando manualmente: Filtro fecha: 01/12/2015..U31/12/2015 el total da: 1.000.184,55

    Porque puede ser?

    Saludos.

    Responder
    1. David Autor

      Diría que no tiene que ver con lanzar el informe manualmente o en previsión, sino con las diferentes fechas. Hay algún asiento o cuenta que no aparece en uno de los dos casos. Para averiguar la razón, habría que localizar dónde está ese importe (acotando por fechas y/o cuentas).

      Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *