The Fabasoft Integration for OData processes data in of two steps:
Keep in mind that any caching within the OData services is performed per user. Thus, if multiple users access an OData service, they all work with their dedicated OData cache.
In order to reduce the processing overhead of the initial call to an OData service you can
Should the OData service lack performance with regards to subsequent calls, you may increase the value in the Cache Duration field. In this case, the data is stored in the cache for a longer period, hence subsequent calls may reuse the already existing data table.
In OData request syntax there is a filter targeting the number of rows fetched. It is the “top” command and can be used as followed:
odata/COO.1.506.4.2141/Scrum_Story?$top=500
This top command is also used in some business intelligence tools like Microsoft Power BI when showing a preview of the data.
Because it is commonly used this command has been optimized. That means internally only that amount of entities are fetched and processed. For the user it is transparent – it just does what it should do, just a little faster than other commands.
If reducing the number of attributes as well as splitting up to less entities per OData service does not help to get the result within the given time window (30 minutes), you can use precalculation.
Precalculation is triggered similar like calling an OData service, just with precalc in the URL and a HTTP POST instead of HTTP GET.
The precalculation is performed asynchronously on the server side. That means, when you trigger the precalculation for an OData service, you will quickly get back a 200 OK. In the background it will precalculate the OData service by writing a cache into a Teamroom in the Fabasoft Cloud.
To enable the precalculation, two steps are needed in the OData service:
Finally, you have to call the precalculation. If the normal URL for your OData service is
GET https://at.cloud.fabasoft.com/odata/precalc/COO.200.100.15.301
you have to add /precalc after /odata and use the HTTP POST method instead of HTTP GET.
This could be your final URL:
https://at.cloud.fabasoft.com/odata/precalc/COO.200.100.15.301
You can use e.g. curl or Postman to trigger that request. The authentication is the same as on a regular OData request – basic authentication with your username and the OData password from password for applications.
Depending on your OData service and your data, it can take hours to be finished. Triggering it at night time makes sense.
The actual GET OData request should then be way quicker compared to without preloading. Depending on the amount of returned data entries, it can then take seconds to minutes to be finished.