cancel
Showing results for 
Search instead for 
Did you mean: 

IFrame -> Dynpro -> Unlocking R/3 resources

Former Member
0 Kudos

We have developed generic step-by-step wizard with some steps screen.

Each step represent IView with IFrame to dynpro application, which is got by

WDURLGenerator.getApplicationURL( WDDeployableObject.getDeployableObjectPart(...))

These steps could not be located by using View Container as they should be flexible configured.

The problem is that: Internal Dynpro application doesn't call its wdDoExit methods, and used resources remained locked in case unexpected exit, e.g. from this portal page.

Can we forcedly close dynpro application located in IFrame?

Could somebody please help me?

Any assistance will be appreciated.

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

It still doesn't work.

In my case I make unlock operation outside the component. But it is not especially generic. Because there can be other included Dynpro Application and each time I should change code to unlock these objects as well.

Former Member
0 Kudos

Unfortunately, that didn't help.

As I had mentioned before, this application is working inside IFrame, so it's considered by Portal as external url.

In case of going to another Portal Page, wdDoExit() doesn't work at all. I can see this Application in Dynpro Console.

Former Member
0 Kudos

Hi Maxim,

Can you just try to set the visibility of iFrame to IWDVISIBLE.NONE and check for the same. I believe the instance of application created in the IFrame should get destroyed.

Regards,

Tushar Sinha

Former Member
0 Kudos

Hi Maxim,

If you want to unlock the locked resources on close of the browser window, then you have two options.

1. Write the method in the wdDoExit() of the view and select the lifespan under View>ViewProperties as when_visible.

2. Write the method in the wdDoExit() of the Component Controller which will be called anyway when the Web Dynpro Component is destroyed.

Regards,

Tushar Sinha

Former Member
0 Kudos

Hi,

In you View's Property tab, set the lifespan of the View to "when_visible" - This will destroy the View everytime you load "another view", and you will have your wdDoExit in the View Controller being called.

Regards,

Daniel

Former Member
0 Kudos

There is another possibility to catch exit from this Page of Portal, we can simply subscribe to PortalEvent "Navigate".

WDPortalEventing.subscribe("urn:com.sapportals:navigation", "Navigate", wdThis.wdGetReleaseAction());

And try to unlock resources. Unfortunately such method doesn't work always.

Can we somehow delay the navigation process in external view until internal dynpro application releases its resources?