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!)
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.
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.
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!