Problem:
You have implemented a custom object CBO via PDI and gererated a webservice based on that. This webservice can only handle one instance with each web service call, which has a severe impact on performance, especially in high data volume scenarios. This means, in order to upload 1.000 records of CBO into the system you need to perform 1.000 webservice calls, incl. all the overhead involved such as WSDL consistency checks, user login, authorization checks etc.
Technical Background: The PDI webservice generator is still using an outdated webservice implementation framework (CSG – Compound Service Generator) – which is not mass-capable.
Solution:
In order to overcome above limitation, you can apply the following trick: Since also CSG-based webservices are able to handle multiple non-root segment instances, we simply define a “bracket” object around CBO, a so-called “Replication Request BO”, RRBO. This RRBO has an admin root node and captures a list of CBO instances in its CBO segment. The idea now is to generate a webservice based on RRBO which can import 1 RRBO instance - hence a bundle of CBO instances - with 1 RRBO webservice call. The RRBO itself is totally fault-tolerant, i.e. will always import the RRBO instance with the list of CBO instances, no matter if they are correct from a data consistency of view. This is possible as the RRBO only acts as kind of a staging area for unprocessed CBO instances. The actual processing of the single CBO instances within RRBO is done at a later step during a batch run locally in C4C in which also all consistency checks defined for CBO are executed and the CBO instances imported into the database. Any potential errors thrown by the CBO validations during the processing are written into an application log attached to the specific CBO instance within RRBO which can be accessed via an own work center view.
This new approach to import CBO instances via a staging area (RRBO) not only improves the performance of the data load. Another big advantage is that any ID mapping required for master data references within CBO can be performed locally within the processing of CBO and does not need to be taken care by the consumer (which is normally some kind of middleware calling C4C), e.g. by performing an ID mapping query web service call. Apart from that the consumer does not need to query the existing database in order to derive the correct WS operation (create vs. update) to call – This is now the task of the RRBO processing routine, hence no orchestration is needed for the different WS calls.
Implementation:
The following diagram depicts a UML diagram of the RRBO object structure:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |