cancel
Showing results for 
Search instead for 
Did you mean: 

Add Context NodeElement to an other ContextElement from same type

Former Member
0 Kudos

Hi,

I have an onActionAddPersonButtonPressed-Action:

public void onActionAddPersonButtonPressed(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent, com.sap.tc.webdynpro.progmodel.api.IWDNodeElement nodeElement )

{

//@@begin onActionAddPersonButtonPressed(ServerEvent)

wdContext.nodeInjuredPersons().addElement(nodeElement);

//@@end

}

The parameter nodeElement is of type returnFindPerson which belongs to the following Context Node:

RequestFindPerson

---ResponseFindPerson

------returnFindPerson

----


name

----


firstName

I have an other Context Node which are from same type as the Node returnFindPerson:

InjuredPersons

---name

---firstName

If you can see in the code above I want to add the nodeElement to an other Context Node (InjuredPersons).

But I get the following exception:

com.sap.tc.webdynpro.progmodel.context.ContextException: Node(IncRecJcoComp/PersonHitListView.InjuredPersons, class=de.td.increcjcoweb.increcjcoapp.comp.wdp.IPrivatePersonHitListView$IInjuredPersonsNode): cannot bind or add element, because it is already bound to a node

How can I add the parameter nodeElement to InjuredPersons-Node?

Regards,

Armin

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Add a new element using createAndAddInjuredPersonsElement() and then either copy the attribute values manually or use WDCopyService.copyCorresponding().

Armin

Former Member
0 Kudos

Hi Armin,

I tried in this way:

IPrivatePersonHitListView.IReturnFindPersonElement returnFindPersonElement = (IPrivatePersonHitListView.IReturnFindPersonElement)nodeElement;

String returnFindName = returnFindPersonElement.mappedReturnFindPersonElement().getName();

wdContext.nodeInjuredPersons().createAndAddInjuredPersonsElement();

WDCopyService.copyCorresponding(wdContext.nodeInjuredPersons().currentInjuredPersonsElement(), returnFindPersonElement);

String injuredPersonsName = wdContext.currentInjuredPersonsElement().getName();

But injuredPersonsName is null and returnFindName is "Mueller".

Are the parameters of method copyCorresponding right?

If I do this wdContext.nodeInjuredPersons().createAndAddInjuredPersonsElement(); and after that I do wdContext.nodeInjuredPersons().currentInjuredPersonsElement(), do I get the new created element?

Regards,

Armin

Former Member
0 Kudos

IReturnFindPersonElement returnFindPerson = (IReturnFindPersonElement) nodeElement;

IInjuredPersonsElement injuredPerson = wdContext.nodeInjuredPersons().createAndAddInjuredPersonsElement();

WDCopyService.copyCorresponding(returnFindPerson, injuredPerson);

Armin

Answers (1)

Answers (1)

former_member197348
Active Contributor
0 Kudos

Hi Armin,

Try this in onActionAddPersonButtonPressed()

{

IPrivate<viewname>.IInjuredPersonsElement ele =

=(IPrivate<viewname>.IInjuredPersonsElement ) nodeElement;

wdContext.nodeInjuredPersons().addElement(ele);

}

regards,

Siva