In this SCN discussion,
a question is asked. For example, if the update function module CRM_PRODUCT_I_UPDATE_DU is called statically as:
CALL FUNCTION ‘CRM_PRODUCT_I_UPDATE_DU’ … Then we can easily find all calling places where this function module is called.
On the other hand, if the function module name is determined dynamicall in the runtime, for example: CALL FUNCTION lv_func_name, the where used list will not work.
In this case, even though I have already set the breakpoint in update function module itself and the breakpoint is triggered in the runtime, I still could not figure out which programs calls this update function module.
A quick solution is: set a breakpoint at a place where you can ensure that the update function module is not called yet. And create a new Breakpoint by clicking this button:
Specify the following command:
Once set, press F8, and the debugger will automatically stop at all the code place where CALL FUNCTION XXX IN UPDATE TASK exist. By this approach, I have efficiently found the code place where CRM_PRODUCT_I_UPDATE_DU is called.
There is another good post How to find out who calls a function module in update task in CRM written by Corrine Guan which contains another useful tip to achieve the same.