martes, 25 de agosto de 2015

Renderizar Informes desde NAvision mediante XMLHTTP sin cache

Para llamar a un informe de Reporting (O cualquier página web) utilizamos el Automation XMLHTTP.
Capturamos la respuesta y generamos un pdf (En el caso de Reporting). El problema viene que XMLHTTP guarda en cache  la petición por lo que puede darse el caso que no renderice el informe con los últimos datos.
Para forzarlo añadimos en la cabecera la opción Cache-Control:no-cache.
Quedaría así:

NameDataTypeSubtype
XMLHTTPAutomation'Microsoft XML, v3.0'.XMLHTTP
isArchivoRecibidoInStream
osEscribeArchivoRecibidoOutStream
vRespuestaVariant


CREATE(XMLHTTP);
XMLHTTP.open('GET','Mi_Ruta_Informe_Reporting',FALSE);
XMLHTTP.setRequestHeader('Content-Type','application/pdf');
XMLHTTP.setRequestHeader('Cache-Control', 'no-cache');
XMLHTTP.send();
IF (XMLHTTP.status = 200) THEN BEGIN  CLEAR(vRespuesta);
  vRespuesta := XMLHTTP.responseStream;
  isArchivoRecibido := vRespuesta;
 

  F.CREATE('c:\mifichero.pdf');
  F.CREATEOUTSTREAM(osEscribeArchivoRecibido);
  COPYSTREAM(osEscribeArchivoRecibido,isArchivoRecibido);
  F.CLOSE;

END;
CLEAR(XMLHTTP);

No hay comentarios:

Publicar un comentario