My organization is looking to potentially sunset our current reporting solution (BusinessObjects) and use APEX. This is not a self-service situation, we are pushing the reports to users. Is it feasible to expect that Oracle APEX can produce several thousand reports in PDF format?
APEX is low-code rapid database application development environment.
It is not just a reporting tool like what some ERP specialists call it
However, it has the following use case
Build interactive reporting apps based on disparate data.
Obtaining a complete, accurate picture across the organization, or even within a department is often very challenging. Data is held in numerous systems, existing reports are limited and don't always provide the required detail to make informed business decisions, it is hard to limit who can see what and avoid data breaches, and running the canned reports can take hours. Utilizing APEX and its extensive reporting and data visualization capabilities makes developing appropriate dashboards for various user communities far simpler.
Coalesce DataThe first step to being able to correctly report across an organization is to load the numerous disparate data sets into the database, or define RESTful Web Services that can be consumed by APEX.
Comprehensive ReportingAPEX includes Interactive Reports that allow for extensive data manipulation by end users, so they can readily change how the data is displayed to meet their specific requirements. This includes column selection and ordering, filtering, sorting, computations, aggregates, and even the ability to pivot data. End users can even their reports for just themselves or for everyone to see.
Fine Grained SecurityData can be constrained or even redacted so different groups of users can only see the appropriate data.
PerformantData operations are performed directly in Oracle Database, rather than moving large quantities of data to a middle tier and then performing data manipulation. Oracle Database also includes numerous ad-hoc data analysis functions which can be utilized within an Oracle APEX application.
I hope that helps you
APEX is a powerful framework for creating business applications (forms+reports over data and much more) but has very limited reporting capabilities (well, in fact it lacks any decent reporting), so it's feasible to expect that APEX itself cannot produce any printable reports in pdf format (I mean at least moderately complex with features like nice company logo, data from several tables/select statements...).
However there are several options how you can achieve reporting capabilities - the most straightforward is Oracle BI Publisher , however this one is not for free (by any means).
Some free alternatives are http://dietmaraust.com/jasperreportsintegration-2-4-0-released , https://sourceforge.net/projects/pljrxml2pdf/ (this one is written in pure PL/SQL, excellent piece of code, btw) or you can pick a reporting engine according to your needs (Jasper Reports, Birt, Pentaho, whatever...) - most of them expose REST API and you can execute reports using those APIs.
This is not consistent with other info that I am seeing on the Oracle website. Visit the link below. It appears to me that I can absolutely create PDF reports out of apex.
Thank you so much for this helpful answer. I'm mainly wondering if I can call a procedure, pass some prompt values, and have a PDF report saved to a directory on the server. Can apex do something like that?
Custom PDF White Paper:
I highly recommend you buy the 3rd party GUI developer for the XSLT Template files.
Saving to File
The function APEX_UTIL.GET_PRINT_DOCUMENT() will return the BLOB of the PDF document. However, your Print Server needs to be set to "BI Publisher" ($$$$$$) or "External (Apache FOP)" ($0 with ORDS).
Once you have the BLOB, you can save it to a file in an Oracle DIRECTORY.
I don't know if GET_PRINT_DOCUMENT() works outside of an APEX session.
please, could you be more specific what exactly in my previous response is not consistent with other info? I'm pretty sure that I provided you with an accurate answer. I spent a lot of time to get decent reporting capabilities for my APEX apps and ended up with writing my own solution (REST wrapper for JasperReports library https://community.jaspersoft.com/project/jasperreports-library ), so there is a very little chance that I missed something crucial. So I must insist that APEX itself has no native decent pdf reporting capabilities (if there was, this https://apex.oracle.com/pls/apex/f?p=55447:19:3747831878050::NO:19:P19_ID:260396564423145428018729520646837554353 feature request was not that highly rated), which I consider (together with the lack of CVS) as one of its biggest weaknesses.
The title "Enabling PDF Printing for the Classic Report" might be confusing and could give you a false impression that you can actually create pdf reports, but see the point 8 how the report looks like. It's not the beginning, this is pretty much everything you can get. If it's OK for you and you're going to send such "complex" reports to your customers, then you'll be fine with APEX capabilities, however if you need complex reports with images, charts, grouping, subreports, tables...whatever, you'll have to start looking elsewhere.
This is helpful, Mike, thank you sir!
Ok, sorry, maybe I didn't read your response as thoroughly as I thought. Your point is that APEX needs some "help" in order to accomplish this, correct?
No worries. Well, some help...indeed, some help of an external reporting tool of your choice (and willingness to pay $$$ for BI Publisher where you can get a smooth APEX integration and all the reporting capabilities you could possibly need). If your company already owns a BI Publisher license, then this would probably be the most straightforward way to accomplish your reporting mission, otherwise I would suggest to install the Jasper Reports Server https://community.jaspersoft.com/project/jasperreports-server , create your report definitions using Jaspersoft Studio https://community.jaspersoft.com/project/jaspersoft-studio and get familiar with its REST API https://community.jaspersoft.com/documentation/tibco-jasperreports-server-rest-api-reference/v630/reports-service . You can quite easily invoke reports from your APEX applications (or PL/SQL packages).