cancel
Showing results for 
Search instead for 
Did you mean: 

Refreshing the contents of a table

Former Member
0 Kudos

Hi,

I'm new to WebDynpro so please excuse my ignorance. After searching this forum I haven't been able to find an answer to the following question.

I have a main view with say a table and a button. The table is mapped to the contents of a value-node of the corresponding context. The button triggers a popup (popup view) containing a different table that is filled by say a BAPI. After filling the contents of that 2nd table and when closing the popup I copy the relevant entries over from the model node to a value node in the context of the popup view. Both model node and value node are mapped from the popup view to a custom controller and the value node of the custom controller is mapped to the value node in the context of the main view (sorry about the complicated explanation) to which the main table is bound.

The end result is after the popup is closed the data is transferred correctly to the context of the custom controller and therefore back to the context of the main view (visible in the debugger). However the table of the main view is empty.

I feel I therefore need to do some kind of "refresh" on that table, don't know how though.

The other postings in this forum didn't seem to answer this question (at least as far as I understood)?

I hope I've made my problem clear. Has anybody an answer?

Regards, Chris.

// Chris Forkin <christopher.forkin@sap.com>

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Forkin,

Whenever you want to refresh the data in table.Just invalidate the contents in the corresponding node. And then fill up fresh data in it.

When you invalidate the node, and when you trying to add new records in node it will overrides old data and fill node with these new data only.

method to invalidate data :

wdContext.node<Node name>.invalidate();

Regards,

Bhavik

Former Member
0 Kudos

Just a modification to the above answer

After the ....execute() in the custome controller do a

wdContext.nodeOutput().invalidate();

assumption: Output is the node that contains the node which is bound to the table

Former Member
0 Kudos

Before the ....execute() in the custom controller do a

wdContext.nodeOutput().invalidate();

Former Member
0 Kudos

Hi christopher,

As u have said the data is coming correctly i think there is a problem with the node. A node gets refreshed only if it needs values. So try invalidating the node which is bound to the table. This should bring u the new value if its coming properly.

And do print a single attribute in custom controller and in the main view using a label so that u can make sure tht the data is indeed coming.

Regards

Bharathwaj

Former Member
0 Kudos

Hi

As far as my understanding is concerned u invalidate the node when u want a fresh values with out the Old Values and not invalidating the node duplicates the Values but cause no harm i suppose but to display values fiorst u need to call ur RFC again

Yes u need to Invalidate the Node after every execution of RFC.

I hope i am right

With Wishes

Krishna kanth

Former Member
0 Kudos

Hi

can u Execute that BAPI after closing the PopuWindow.

U can take the Help of eventing and while closing the Popup u can fire that event and know when to call that BAPI once again so that ur view refreshes and ur Table willl Refresh with new Values

U execute the Main RFC on Close of the Popup that will refresh the Table

Wishes

Krishna kanth