I was involved in a project where we had a problem with the performance after go live. It was really not performing as expected and they had to get SAP to restart the tenants.
One of the consultants Juan Francisco Duque from Saphere.dk shared some of the changes that he had faced during the processing. There was 3 different interesting aspects that I picked up that you should consider when developing CPI iflows for bigger projects.
In the post we will cover the 3 things
- Loop vs collections
- String Building vs. concatenation
- CPI logic vs Groovy scripting
It is one things to process 10-100 line items but 100k-1m may have an exponential longer processing time. It was some of the challenges that Juan found during the go-live support. He had to redesign part of the processing to take out splitting, embedding more into Groovy code.
One thing that I did not know what that closure and each statements did not really scale well. There is a good post on the different types of loops and performance in groovy.
One of the things was used to get an understand about how the CPI performance usage was the Figaf CPI monitor. It did give him the graphs he needed to find how to improve the performance.
You can see the replay here
If you want to see the slides with much more details then check out the slides.