Boost the SAP PI/PO system performance by better design & optimize transformation method
Intro: – As we all know sap process orchestration (PO) system is used to integrate different SAP and legacy systems. Sometime source system can’t able to capture transaction changes and situation becomes more complex if the receiver system can’t agree to determine the action and key field to process the data and provide another lookup service to determine the action and key value.
Recently, I’ve also worked on similar kind of integration scenario and reduce the message processing time and lookup call up to 90% by better design and java mapping.
Pull 10,000 customer records in a message from source system “S” and merge with intermediate SAP ECC system data, finally push the whole dataset to the target “T” system CRUDE services after determining the action on each customer record via lookup service.
Requirement design –>
Lookup target system service per record and then post whole data casing huge workload on receiver system, which caused multiple issues bad message processing time & increase PO system database rapidly by creating messages per customer record.
To achieve the requirement, NetWeaver BPM is also one of approach but that can’t fix the above-highlighted problems. I choose split & bundle approach with the combined use of proxy and Java mapping, which reduces 90% processing time without causing any high load on the receiver system services. A new design is to use the server proxy to split the 1 message (10,000 records) to 20 message (500 records) and merge the SAP ECC data before sending back to PO system via client proxy. Next step is to use 2 step mapping, first mapping (java) bundle the lookup call 100 records per call and iterate the response and build source structure for next step mapping. It helps to reduce the lookup call from 10,000 to 100 times and determined the action per transaction. MultiMapping functionality helps to use the different structures for different target system services (Add, update & delete). Bundling again use in second mapping step before posting a final message to target service. 50 records per message bundling help us to reduce post calls from 10,000 times to 200.
Optimize solution design –>
The below graph is the outcome of the message processing time in SAP PO with both approaches, bundling messages and without bundling messages. It clearly shows message processing time with bundling messages before calling lookup service remains stable throughout 10,000 records (20 messages) but at another side, message processing time without bundling approach increases exponentially with the increase of record comes for processing. Bundling Approach also helps to control the needless increase of PO database by reducing the number of messages generated in the system and reducing the lookup & post service calls.
Choosing correct transformation method and better design helps in keep PO system health good and reducing message processing time up to 90%.
Soon in next blog, I’ll share the java mapping (using JAXB parser) and complete scenario technical code more in detail.