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 :
- Créons un rapport, laissez-le disponible dans le répertoire: /~scott.tiger/Example;
- 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
- É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
- Nous nous assurons que le rapport fonctionne en l'ouvrant via Excel sur l'ordinateur client.
- 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