cancel
Showing results for 
Search instead for 
Did you mean: 

How to stop/cancel web dynpro navigation while already in method wdDOExit

toolika_pandey
Explorer
0 Kudos

Hi

My requirement is following:

Our application view is embedded inside another View by some other application

to which I have no control.

But I need to code a Confirmation dialog when the user tries to leave page after making changes to the entries in view. So the state of our view is 'dirty'.

I tried to call the confirmation dialog box in wdDoExit method.

User can choose to exit without saving anything.

User can also choose to cancel the navigation.

But I dont know exactly how to cancel the navigation from my view.

Can anyone help me in this?

Regards

Toolika

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

try

wdComponentAPI.getMessageManager().cancelNavigation();

This methods cancels all subsequent navigational steps for the current

request/response cycle. Since Web Dynpro processes the navigational links

in a queued manner the first inbound plug is called after all outbound

plugs are called (as long as an outbound plug is not called from within an

inbound plug). Calling this methods suppresses the processing of the

outbound plugs. The queue of called plugs is reset after the

request/response cycle. Navigation has to be reinitiated for the next

request (Eventhandler).

Navigation is not only cancelled for the component calling

this method, but for the entire application!

Regards

Ayyapparaj

toolika_pandey
Explorer
0 Kudos

After trying the API you have suggested, I am getting the following exception.

Any suggestions on how to solve this.

I guess we use the same cancelNavigation method when we report an exception. In this case if this API works then why not if I directly cancelNavigation here. Could it be because of placing in the wdDoExit method?

java.lang.NullPointerException

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.handleUIElementEvent(HtmlClient.java:935)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.updateEventQueue(HtmlClient.java:379)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.prepareTasks(AbstractClient.java:93)

at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:308)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:759)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:712)

at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:261)

at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

former_member751941
Active Contributor
0 Kudos

Hi Toolika,

Check this links.

Regrads,

Mithu

Answers (0)