乐趣区

关于abap:如何找到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.

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.


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 的原创文章,请关注公众号 ” 汪子熙 ”:

退出移动版