2024 August Release

In-Depth Explanation: Execution of OData RequestsPermanent link for this heading

There are three main types of requests possible:

  1. OData GET request to an OData Service
  2. OData GET request to an entity of an OData Service
  3. OData precalc (POST or GET)

OData GET Request to an OData ServicePermanent link for this heading

When OData GET requests are done, the OData Service in the Fabasoft Cloud is loaded and the needed information about the OData schema are calculated. The result is a valid OData overview.

OData GET Request to an Entity of an OData ServicePermanent link for this heading

On such a request, actually data is loading from the Fabasoft Cloud and given back in OData style.

The whole process can be split up in these parts:

  1. Generating the schema.
  2. Calculating the cube.
  3. Getting the attribute values.
  4. Building the OData response.

Especially the second and the third step can be performance critical, so these are described in more detail.

Calculating the CubePermanent link for this heading

Given an entity defined in the OData Service as “Found Objects”, two queries to the Fabasoft Cloud are done to fetch the data:

First a query is done which looks up all Teamrooms in the given context (room, configuration or organization). This list of Teamrooms is then used in the second query, which looks up objects of the entity type which are in the given list of Teamrooms.

Important: Please be careful here about limits: if your selected context (room, configuration or organization) has a lot of Teamrooms (10 000+), this can cause the second query which is an IN-Query, to not run performant or not run at all because of too many IN-values. Please consider here defining your own query for this entity!

Getting the Attribute ValuesPermanent link for this heading

In parallel running threads/processes, the wanted attributes are loaded. On performance issues please check out the performance chapter.