تنشأ مهمة أحيانًا الحصول على تقرير في مكان عمل العميل دون استخدام وسيلة تفاعلية للتفاعل في شكل متصفح.
في أيام Oracle Reports ، تم حل مهمة مماثلة من خلال استخدام الأداة المساعدة rwclient. ما الذي يمكن تطبيقه على ذلك في Oracle BIEE؟ - نستخدم REST API المقدم لـ Oracle BI Publisher :
- لنقم بإنشاء تقرير ، دعه يكون متاحًا في الدليل: /~scott.tiger/Example؛
- من خلال الطلب من خلال الأداة المساعدة curl ، نحصل على استجابة الخادم ، وحفظها في ملف:
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 - نظرًا لأن محتوى الرد في مستند report_out.xlsx ليس Excel بعد ، ولكنه مستند متعدد الأجزاء (انظر RFC 7578 ) ، فإننا نعالج المستند ، ونزيل التفاصيل غير الضرورية:
perl -i -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' report_out.xlsx - نتأكد من عمل التقرير من خلال فتحه من خلال برنامج Excel على جهاز العميل.
- نلصق التطورات معًا عبر الأنبوب ونحصل على حل جاهز:
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