Spot potential performance problem IN ADVANCE
Having more than 7 years experience at SAP resolving problems against SAP Manufacturing Execution Solution, I can tell that one of the most difficult tasks is to predict the performance yet before the go-live. You have to spot a potential performance problem in advance to not deal with it in a production system, when any downtime costs you $.
I bet you know already about sizing spreadsheet, DB parameters and other recommendations provided in SAP guides and Notes. However, is it really enough to predict the performance of your particular scenario(s) and configuration? Will your custom extension perform fast enough in production load for instance?
I tried to find some solution for this question, tried to find a way to simulate the production load for specific scenario(s) and want to share with you the approach I tried.
The key role in this approach belongs to SAP PCo. Since its newest release 15.1, it has become really simple to configure an Enhanced Notification with multiple destination systems and handle the response messages.
Here is a screenshot that illustrates the test scenario I configured:
Let me explain the screenshot and the scenario I tested:
- The scenario is started/triggered by the update of the tag on the 3rd party data server (i.e. OPC data server). Basically, it represents the SAP ME Resource (machine/robot) on the shop floor.
- In my scenario it triggers Start By Item request to release a new SFC. The important step here is to handle the response message, which contains the SFC number that has been released. For many cases (and this one in particular) a HANDLE string with this SFC number will be needed later, so I wrote some C# code to concatenate strings to build the HANDLE that will be used later.
- The next step is to collect data against the Resource itself. Also taken from the 3rd party data server. This step is rather to show that you can add any steps to the scenario you test, that you can easily consume data from the machines on the shop floor by SAP ME in particular.
- And the last step in this scenario is to complete the SFC, which has been started at step #2.
The whole scenario Release SFC -> Collect Data -> Complete SFC is powered by the custom dll, in which I hard coded the sequence of actions described above and where any logic can be implemented too in order to represent exactly the same scenario that will be executed in production.
The question you may still have at this stage: it is clear now how SAP ME scenario can be pre-configured in PCo, but how to simulate the load? The answer is: by means of data server and its client. You can define the frequency the tag is changed (in other words the clock cycle of the Resource\of the machine on the shop floor) and hence the frequency the scenario is triggered. Eventually you can loop it as many times and as often as you need.
As you can imagine, it is possible to configure several scenarios and test them simultaneously as in a real production system on different production lines.
This approach can help to:
- estimate the response times of SAP ME;
- estimate the number of records in the tables;
- define the clock cycle of your production line;
So, to spot the potential problem in advance and hence avoid it in production.
I hope you find this blog post useful. And if so, I would highly appreciate both: your Likes\Ratings to this blog post as well as comments on the following:
- Would you use this approach? Why yes, why no?
- If yes, would you like SAP to prepare custom DLLs for your particular scenario(s) on request?
- Do you use another approach to test production load and estimate the performance before go-live? If yes, please, explain it.
I wish to hear from you and turn this blog post into a conversation, because your comments can help to enhance this approach.