One order trace tool CRMD_TRACE_SET
Recently I am helping customer to measure the performance of APIs in function group CRM_ORDER_API and find this trace tool.
1. use tcode CRMD_TRACE_SET to activate the trace mode:
2. run the one order scenario under trace mode. In my case I execute the program( source code attached to this blog). Once finished, go to tcode CRMD_TRACE_EVAL:
double click on the highlighted cell and it will lead to parameter detail screen:
it is also possible to see the callstack where the function module is called.
How is it implemented
1. There is an include CRM_TRACE_PART_ONE which does the following jobs:
- evaluate the trace mode enablement
- collect the timestamp, work process id, callstack information etc
The include looks strange for me( as an ABAP OO developer) at the first glance:
2. There is another include CRM_TRACE_PART_TWO which persists the collected trace information to table INDX.?
By using where used list on these includes, you can know what APIs could support the trace function.
You can also set user parameter “CRM_DEBUG_CODE” if you would not like to activate it explicitly. It will be evaluated by function module CRM_ORDER_DEBUG_CODE which is called by include CRM_TRACE_PART_TWO.
You can also explore the package CRM_TOOLS:
Package CRM_TOOLS is quite impressive.
Hello Mr Grau,
thanks for your comment. Yes I agree with you, I have added that into the blog.
You welcome, this kind of blogs are pretty usefull, there's no KBA/OSS about it 🙁 . The VM Stack is also another source of pain, but I'm afraid there's no nice tool to check the bottle necks (SAT or SE30), right?
would you please elaborate a little more about pain point of "VM Stack"?
Sure, VM Stack is the IPC part to calculate pricing (Java) I found a bottlenecks here when I mass upload sales orders, well to be honest, one of your collegues via OSS found the bottleneck, but would be cool if you can trace it yourself.
when I am dealing with performance issue, I always prefer to check whether there are RFC calls or not, which I consider to be a common impact on performance. You can click Find button in SAT trace result,
and the RFC call to VMC along with its callstack will be automatically navigated.
yup, SAT is allways the option, I just wante to know if there's a special trace, like the one you described for the VM, but looks like not 🙂
Very useful...keep posting Jerry 🙂
I activated this trace and I changed description of one of the orders using transaction CRMD_ORDER, it gave me proper trace log. However, when i did the same thing from Web UI it didn't show me any trace log.
Can you explain me why? And how to achieve this?
Thanks in advance,
As long as you activated the trace and function module CRM_ORDER_MAINTAIN and CRM_ORDER_SAVE are called in your scenario, the trace would then be recorded, no matter whether you change the order in frontend or backend. I don't know why it does not work for you in web ui, I will find sometime to test it by myself in web ui.
Did you get a chance to test the same in web ui?