如何找到ABAP里被动态调用的update function module

In this SCN discussion,
Find a Function Module in Update Task dynamically called,
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.

如何找到ABAP里被动态调用的update function module_第1张图片

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:

如何找到ABAP里被动态调用的update function module_第2张图片

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.

如何找到ABAP里被动态调用的update function module_第3张图片

Further reading

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.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

你可能感兴趣的:(crm,erp,sap,saprfc,abap)