Réception automatisée des rapports OBIEE par le client

Parfois, la tâche consiste à obtenir un rapport sur le lieu de travail du client sans utiliser un moyen interactif d'interaction sous la forme d'un navigateur.



À l'époque d'Oracle Reports, une tâche similaire était résolue grâce à l'utilisation de l'utilitaire rwclient. Que peut-on appliquer à cela dans Oracle BIEE? - nous utilisons l' API REST fournie pour Oracle BI Publisher :



  1. Créons un rapport, laissez-le disponible dans le répertoire: /~scott.tiger/Example;
  2. En demandant via l'utilitaire curl , nous obtenons la réponse du serveur, en l'enregistrant dans un fichier:



    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. Étant donné que le contenu de la réponse dans le document report_out.xlsx n'est pas encore Excel, mais un document en plusieurs parties (voir RFC 7578 ), nous traitons le document en supprimant les détails inutiles:



    perl -i -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' report_out.xlsx
  4. Nous nous assurons que le rapport fonctionne en l'ouvrant via Excel sur l'ordinateur client.
  5. Nous collons les développements ensemble à travers le tuyau et obtenons une solution toute faite:



    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