Recepción automatizada de informes OBIEE por parte del cliente

A veces surge la tarea de obtener un informe en el lugar de trabajo del cliente sin utilizar un medio interactivo de interacción en forma de navegador.



En los días de Oracle Reports, se resolvió un problema similar mediante el uso de la utilidad rwclient. ¿Qué se puede aplicar a esto en Oracle BIEE? - utilizamos la API REST proporcionada para Oracle BI Publisher :



  1. Creemos un informe, dejemos que esté disponible en el directorio: /~scott.tiger/Example;
  2. Al solicitar a través de la utilidad curl , obtenemos la respuesta del servidor, guardándola en un archivo:



    curl -X POST -u login:password  -o report_out.xlsx -H "Content-Type:multipart/form-data" -v -F 'ReportRequest={"attributeFormat":"xlsx","attributeTemplate":"Publisher Template"};type=application/json' http://hostname:port/xmlpserver/services/rest/v1/reports/~scott.tiger%2FExample/run
  3. Dado que el contenido de la respuesta en el documento report_out.xlsx aún no es Excel, sino un documento de varias partes (ver RFC 7578 ), procesamos el documento, eliminando detalles innecesarios:



    perl -i -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' report_out.xlsx
  4. Nos aseguramos de que el informe funcione abriéndolo a través de Excel en la máquina cliente.
  5. Pegamos los desarrollos a través de la tubería y obtenemos una solución lista para usar:



    curl -X POST -u login:password  -H "Content-Type:multipart/form-data" -v -F 'ReportRequest={"attributeFormat":"xlsx","attributeTemplate":"Publisher Template"};type=application/json' http://nameserv:port/xmlpserver/services/rest/v1/reports/~scott.tiger%2FExample/run |  perl -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' > report_output.xlsx



All Articles