Skip to Content
0
Jul 13 at 11:03 AM

OData Gateway Service with multiple delta-enabled ODP extractors

125 Views

Hi,

I am creating an ODATA connection from S/4HANA using the ODP Extraction with ODP context 'Datasources/Extractors'. This mechanism is expertly described in blogs by Mostafa El Barbary and Pruthvi Renukarya (many thanks both!)

Distributing-data-from-bw-system-using-odp-based-data-extraction-and-odata
Exposing-sap-bw-extractors-via-odp-as-an-odata-service/

Both blogs describe a simple scenario and I have no problem getting the same to work. When I upscale the scenario, I see some challenges though.
The specific challenge I am facing now is that when I add more entities to the project, only the first one has automatically the correct entity types and associations included for delta-enablement. For all subsequent extractors, I need to manually add some components, which is labour intensive and prone to errors.

I'll check with SAP to see if this is a product issue with the wizard, but for now I would be happy if anyone has a better workaround for this?

Below is the workaround I am currently using.

Step 1:

Create a model with 0CUSTOMER_ATTR and 0MATERIAL_ATTR. On the last screen of the wizard, it shows that Entity type DeltaLinksOfEntity and the Association are only generated for the datasource I selected first (0CUSTOMER_ATTR).

What is missing is the DeltaLinksOfEntityOf0MATERIAL_ATTR and the Association for entityOf0MATERIAL_ATTR.

Step 2:

Manually adjusted the model, creating the required Entity Types, Entity Sets, Associations and association sets:

The model generates the runtime objects successfully.

Further testing evidence:

Once the service is added in /IWFND/MAINT_SERVICE the EntitySets come up as expected:

For both Customer and Material, the initial (full) load work fine and subscription created correctly: (ODQMON)

The DeltaLinksOfEntityOf0MATERIAL_ATTR can successfully be used to fetch the DeltaToken:

And next deltas can be loaded without further issues.

So - technically it is possible to include multiple delta-enabled extractors in a ODATA gateway project but it does mean some manual crafting as the wizard only creates the correct objects for the first one.

Any solutions or better work-arounds would be much appreciated!

Jan.

Attachments

wizard.jpg (77.4 kB)
odqmon.jpg (119.8 kB)
deltatoken.jpg (80.9 kB)