天天看点

如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源

In this blog I will demonstrate how I resolve the error message “endless binding loop” raised by UI workbench. I would not emphasize the issue itself, but would rather share with you how I would deal with such error messages raised by UI workbench in my daily life.

The issue is we have the context node PARAMS defined in component controller, which is bound to node with same name defined in view LogView02.

However, the node in view LogView02 is again set to be bound to the node in component controller by mistake, leading to an endless binding loop ( A is bound to B and B is also bound to A ). So the error message is raised by workbench. I planned to use the context menu item “Delete binding” to delete the binding from component controller node to view controller node, but there is no such context menu item available on the erroneous context node.

So I go through the following trouble shooting process:

如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源

(5) figure out where and how binding relationship is maintained by UI workbench

Final finding: every time we define a context node binding, UI workbench will automatically generate the following code ( starting with owner->do_context_node_binding )in method CREATE_. When UI workbench is displaying the context node, it will locate that hard coded string and get the necessary information by parsing the source code ( via ABAP keyword SCAN ABAP-SOURCE ).

如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源
如何自行分析SAP WebClient UI开发环境里抛出的错误消息根源

after we delete the automatically generated code for wrong binding on context node ( line 16 ~ 23 ) in method CREATE_PARAMS, the endless binding loop is resolved.

Summary

my favorite way to deal with message raised by UI workbench:

find out where the message is raised -> find out why the message is raised -> find out the wrong setting / development object which leads to the message

-> correct the mistake.