We are are looking at implementing a reporting service in ArcGIS Server (11.5) that can be used through the Experience Builder Print Widget.
We've configured this as a report, as per the customer's requirements, with 4 sections in Pro as follows:
1) A details section to include a few basic attributes (approx 6) of a selected site polygon.
2) A details section to include summary attributes (approx 7) from each selected tree survey (point) feature in a tabular format.
3) A details section to include detailed attributes (approx 10) from each selected tree survey (point) feature in a paged format (i.e. 1 feature per page)
4) A details section to include attachments from each selected tree survey (point) feature in a paged format (1 feature per page.
This report has been published as a print/report service using pro that also includes a basic A4 landscape map template. We've then configured the print widget in Experience Builder to use this service and set it to use the selected features for the relevant layer in each section of the report.
This is all working as expected (except when there are no features selected - but that is a different issue!) and producing a report. However, it is taking approximately 60 seconds to print the full report, including the map. This seems pretty poor performance considering that in our tests we have been using 1 selected site polygon and 3 selected tree survey features.
Doing a few more detailed tests by removing the map and sections in turn, we have found that:
Again, the above is for 1 site polygon (with approx 6 attributes) and 3 tree survey features (with approx 7 attributes), so the data quantity feeding into the report is minimal. The data for the report is also sent in the print request (in the web_map_as_json parameter) so the reporting service is not having to query any data, just present it by injecting it into the report template.
So why is it taking so long to generate a pretty basic report?
I was having some issues with my print service, and I changed it from Synchronous to Asynchronous which helped some for the service. Also are you using a dedicated or shared instance for the service? I changed it to dedicated with 6 max.
We already have it as asynchronous, dedicated with min 1 and max 4 instances. I have thought of increasing the spec of the VM (as it's in Azure) to see if that improves things but even with the current spec it should be performing better, considering the minimal processing it's doing.
If you haven't already, could try exporting reports (using data from your services, NOT LOCAL datasets) from Pro and see how long it takes? Print service usually takes about the same time as Pro.
It takes approx 30 seconds to export the same report to pdf in Pro on the same VM we are using for Server and for the same set of features (sourced from the hosted feature layers and not local data).
Interestingly, I've just tried the same test on a high spec laptop and this is taking 5-6 seconds. So perhaps suggests it's CPU bound as there is plenty of memory?
I still don't really understand why it would require so much CPU to generate a simple pdf, but as it's an Azure VM, I will perhaps do some tests by resizing to a different specs.
thanks @JohnFannon
That is interesting. Print service should take about the same time that Pro takes to do the same task on same setup. At this point, it is better if possible for you, to reach out to Esri Support if the issue continue to persist.
Regards