Not possible to enhance a context node?
We're on Ehp6. I am trying to enhance a standard SAP ABAP webdynpro (FMCA_WDY_FPF_RETURN) by adding a new attribute to the (Component Controller's) context node FMCA_RETURN.
(This context node is mapped to the dictionary structure FMCA_POBJ_S_INIT_WD which already contains the enhanced Z fields that I wish to include.)
According to SAP Help, it should be possible to add a new attribute to a node (as part of an enhancement), but when I try it, the right-click menu is greyed out.
- go to Component Controller screen, Context tab
- click on the 'hotplate' button and create an enhancement
- rightclick on the node (FMCA_RETURN) and choose Create > Attribute
- right-click on the node (FMCA_RETURN) and choose Create Using The Wizard > Attributes From Components of Structure
I can't perform either of those last two steps because the 'Attribute' option is greyed out..
Note 1773375 says that it should be possible:
Possible enhancements in the controller:
Creating attributes, events, and methods
Adding controller usages
Creating a new node with attributes in the context;
Further attributes can also be attached to an original node
Has anyone been able to do this? I welcome your tips and advice.
Paul Bakker replied
I found the answer through debugging. There is a rule that you cannot enhance context nodes that are inherited from interface controllers:
* 6. context elements that are part of implementations of interface definitions may not be changed
if context_editor->is_intf_implementation_item( l_context_node-ref_api_context_element ) = abap_true.
.. and in this case, these context nodes are inherited from INTERFACE CONTROLLER IWCI_IF_FMCA_WDY_FPF_INIT..
So can I enhance the 'interface controller' instead? No. The hotplate is greyed out.
Thanks for your help