Recebimento automatizado de relatórios OBIEE pelo cliente

Às vezes, surge a tarefa de obter um relatório no local de trabalho do cliente sem o uso de uma ferramenta de comunicação interativa na forma de um navegador.



Na época do Oracle Reports, um problema semelhante era resolvido com o uso do utilitário rwclient. O que pode ser aplicado a isso no Oracle BIEE? - usamos a API REST fornecida para Oracle BI Publisher :



  1. Criamos um relatório, que fica disponível no diretório: /~scott.tiger/Example;
  2. Solicitando por meio do utilitário curl , obtemos a resposta do servidor, salvando-a em um arquivo:



    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. Como o conteúdo da resposta no documento report_out.xlsx ainda não é Excel, mas um documento com várias partes (consulte RFC 7578 ), processamos o documento, eliminando detalhes desnecessários:



    perl -i -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' report_out.xlsx
  4. Garantimos que o relatório funciona abrindo-o através do Excel na máquina cliente.
  5. Nós colamos os desenvolvimentos através do tubo e obtemos uma solução pronta:



    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