cancel
Showing results for 
Search instead for 
Did you mean: 

Web dynpro Java : refresh parent page

Former Member
0 Kudos

Hi all,

I have created a web dynpro Java application which contains an overview table with document status.

When user clicks on a record in this table, an interactive form is open in an other view.

When user chooses to close the interactive form, I want to refresh the table in the parent page.

Is it possible to achieve this?

If yes , how?

Thanks for your help.

Kind regards

Karim

Accepted Solutions (0)

Answers (7)

Answers (7)

Former Member
0 Kudos

Hi,

The user will close the interactive form, by clicking on a button in the form.

Kind regards

Karim

Former Member
0 Kudos

Hi,

How is the user going to close the Adobe IF window? Via a button on the form or via the the browser window close button? Depending on this your probable solution will change.

Regards,

Satyajit

Former Member
0 Kudos

Hi,

I tried what you suggested but it don't seems to work.

Do I have to created the event somewhere?

Kind regards

Karim

Former Member
0 Kudos

Hi,

You need not to create "TestEvent". But you need to create the TestEventAction in your Parent WDIvew.

And are there two ivews are in same page?

Regards,

Charan

Former Member
0 Kudos

When I click on a record,

I use method "navigateAbsolute" of class "WDPortalNavigation" to call my other application with different paramaters.

Is this clear for you or do you need other details?

Kind regards

Karim

Former Member
0 Kudos

Hi,

I did not expect that you are using portal navigation (navigation between two Ivews) as this information was not clear in your earlier posts.

To achieve this (refreshing the parent ivew) in portal navigation (navigation between two Ivews):

You need to raise an event in the button action of PDFIview as below:

WDPortalEventing.fire ("urn:com.sap.tc.webdynpro.test.portal",  
                       "TestEvent",  
                       "AParameter");

You need to subscribe the same event in parent ivew:

WDPortalEventing.subscribe ("urn:com.sap.tc.webdynpro.test.portal",  
                            "TestEvent",  
                            wdThis.wdGetTestEventAction());

in TestEventAction you can write the code to refresh the table in Parent IView

Go through this below link for more help.

http://help.sap.com/saphelp_nwce10/helpdata/en/d3/3857422d095542e10000000a1550b0/content.htm

Regards,

Charan

Former Member
0 Kudos

When I click on a record in the table, I call another web dynpro component.

So I assume this will not work?

Is there any way to refresh the parent view?

Kind regards

Karim

Former Member
0 Kudos

Hi,

This scenario works even if both are different components.

Please clarify this question first:

Are you navigating between Comp1 (ParentView) to Comp2(PDFView) using plugs?

Or Are you opening the PDFView in a window as popup? if yes what is that window (Model / External)?

For example If you are navigating from Comp1 (ParentView) to Comp2(PDFView)

For this anyway you already added Comp2 as used component in Comp1.

Now in Comp2's interface view create one outbound plug and create one inbould plug for PDFView. Now map these two plugs in Comp1's PDFView's window.

Now invoke this Comp2's interface view's outbound plug in back button action of PDFView.

In inbould plug of PDFView write the code to refresh the table.

Regards,

Charan

Former Member
0 Kudos

Thanks for your answer,

But my pdf view is not a model window.

Isn't it possible if it's not a model window?

Kind regards

Karim

Former Member
0 Kudos

Hi,

When you click on a link in table you are opening the pdf.

So how are you opening.

In a seperate view?

If yes , You can follow the procedure given my me like creating event in cotroller...it works

In an external window?

It will not work

In a model window?

It works.

Regards,

Charan

Former Member
0 Kudos

Hi,

I think it is possible If you opens the interactive form in model window (non-movable non-resizable ).

How to open pdf in model popup:

1. Go to <Your Webdynpro project> - WebDynpro - Web Dynpro Components - <your component> - Windows right click and create a window (PdfWindow).

2. Place the view that contains pdfForm in the window PdfWindow.Create a button in the view say ClosePdf .

3. Create a context attribute say WindowInstance of type com.sap.tc.webdynpro.clientserver.window.Window (java native type) in the component controller.Map this attribute to the context of both views (view with button and Pdfview)

3. In the onAction of "OpenPdf" link in table of parent view

IWDWindowInfo windowInfo = (IWDWindowInfo) wdComponentAPI.getComponentInfo().findInWindows("PdfWindow");
IWDWindow window = wdComponentAPI.getWindowManager().createWindow(windowInfo,true);
window.setWindowPosition(500, 500);
window.show();
// this iwll bw used to destroy the pop up
wdContext.currentContextElement.setWindowInstance(window);

4. In Pdfview create a action closepopup and associate with button ClosePdf. In the action write

IWDWindow window = wdContext.currentContextElement.getWindowInstance();

window.destroy(); // this will close the popup.

If it is model window then you can refresh your parent view as below:

1. Crate one event in Component Cotroller. For example refreshParentViewEvent().

2. Crate one method refreshParentView() in Component Controller and invoke the refreshParentViewEvent in that method as below.

wdThis.wdFireRefreshParentViewEvent();

3. Now create one event handler in your parent View as "refreshParentViewEventHandler" and while creating this even handler select refreshParentViewEvent event as source event.

4. Now in refreshParentViewEventHandler event handler write the code to refresh your table in parent view.

5. Now in popup model window, in action closepopup of button ClosePdf invoke refreshParentView method of Component Controller as well.

Regards,

Charan