cancel
Showing results for 
Search instead for 
Did you mean: 

Web DynPro Table Filter does not work on insert

Former Member
0 Kudos

Hello,

I implemented the table filter for my little project. All is working fine, untill i want to add a new row to the table. Following scenario:

1. filter something in the table, after this, clear filter (just make it empty by hand),

2. after this, insert a new row using a button or the row creator of Web DynPro.

3. Exception: ContextException: must not modify a filtering node, modify the origin

I have Netweaver 7.2 CE sp 05 working on Windows. I used the TableFilter from the demokit and the manual from [SAP|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0cf0997-2e08-2d10-b08e-964a2c04c47a?QuickLink=index&overridelayout=true].

What can i do to resolve this problem?

My implementation of adding a row:

In the view:


 public void onActionCreateTemplateItem(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
  {
    //@@begin onActionCreateTemplateItem(ServerEvent)
	  wdThis.wdGetTemplateItemControllerController().createNewTemplateItem();
    //@@end
  }

Controller:


public void createNewTemplateItem( )  {
    //@@begin createNewTemplateItem()
	  
	ITemplateItemsElement element = wdContext.nodeTemplateItems().createTemplateItemsElement();
	element.setDeleteEnabled (true );
	element.setReadOnly (false);
	element.setReviewerButtonText ("Show");
	setStatus (element);
	setOwner (element);
	setValues (element);
	setClasses (element);
	setReviewer (element);
	wdContext.nodeTemplateItems().addElement(element);
    //@@end
  }

The error occurs at the last line. If I use createAndAddTemplateItemsElement(), the error is there.

Kind regards

Karsten

Accepted Solutions (1)

Accepted Solutions (1)

former_member182372
Active Contributor
0 Kudos

Karsten, post the stacktrace

Former Member
0 Kudos

Hi Karsten,

For implementing the filter property to a table, the table should be readonly. This is the one of the prerequisite for filter implementation. In the code you mentioned, readonly property is false. Please make it to true and try.

With Regards,

Ramesh G.

Former Member
0 Kudos

Hi Karsten,

>

> For implementing the filter property to a table, the table should be readonly. This is the one of the prerequisite for filter implementation. In the code you mentioned, readonly property is false. Please make it to true and try.

>

>

> With Regards,

> Ramesh G.

Hello,

Thanks for your replies. In case of this project, there is the need of adding new rows to the table. This is also described via delete rows in the tutorial. I think, this should work in some way. I only add new Data to the component controller node, not the mapped view node. Is there any other option?

Also I want to post the stacktrace:

Kind Regards,

Karsten


com.sap.tc.webdynpro.progmodel.context.ContextException: Node(StartComp.TemplateComp_Used/TemplateDetailView.TemplateItems, class=com.gf.product.pre.template.wd.comp.templatecomp.wdp.IPrivateTemplateDetailView$ITemplateItemsNode): must not modify a filtering node, modify the origin
at com.sap.tc.webdynpro.progmodel.context.FilteringElementList.addElement(ElementList.java:1533)
  at com.sap.tc.webdynpro.progmodel.context.FilteringElementList.elementsAdded(ElementList.java:1601)
  at com.sap.tc.webdynpro.progmodel.context.MappedNode.onListChange(MappedNode.java:350)
  at com.sap.tc.webdynpro.progmodel.context.Node.fireListEvent(Node.java:1546)
  at com.sap.tc.webdynpro.progmodel.context.ElementList.addElement(ElementList.java:485)
  at com.sap.tc.webdynpro.progmodel.context.Node.doAddElement(Node.java:501)
  at com.sap.tc.webdynpro.progmodel.context.Node.addElement(Node.java:452)
  at com.gf.product.pre.template.wd.comp.templatecomp.TemplateItemController.createNewTemplateItem(TemplateItemController.java:369)
  at com.gf.product.pre.template.wd.comp.templatecomp.wdp.InternalTemplateItemController.createNewTemplateItem(InternalTemplateItemController.java:494)
  at com.gf.product.pre.template.wd.comp.templatecomp.TemplateDetailView.onActionCreateTemplateItem(TemplateDetailView.java:401)
  at com.gf.product.pre.template.wd.comp.templatecomp.wdp.InternalTemplateDetailView.wdInvokeEventHandler(InternalTemplateDetailView.java:668)
  at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:142)
  at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:75)
at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:159)
  at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:94)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
  at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
  at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:514)

...


Kind Regards,

Karsten

Edited by: Karsten Roehle on Jan 16, 2012 9:45 AM

Former Member
0 Kudos

Hello,

is there anybody, who knows an answer for this?

Regards

former_member182372
Active Contributor
0 Kudos

public void createNewTemplateItem( )  {
    //@@begin createNewTemplateItem()
	  
	ITemplateItemsElement element = wdContext.nodeTemplateItems().createTemplateItemsElement();
	element.setDeleteEnabled (true );
	element.setReadOnly (false);
	element.setReviewerButtonText ("Show");
	setStatus (element);
	setOwner (element);
	setValues (element);
	setClasses (element);
	setReviewer (element);

	wdContext.nodeTemplateItems().getNodeInfo().setMappingFilter(null);
	wdContext.nodeTemplateItems().addElement(element);
	wdContext.currentContextElement().getTableFilter().filter();
    //@@end
  }

Answers (1)

Answers (1)

udaykumar_kanike
Active Contributor
0 Kudos

Hi,

Try this thread:

Regards

Uday