cancel
Showing results for 
Search instead for 
Did you mean: 

WEBDYNPRO TIMEDTRIGGER TEXTEDIT data loss

Former Member
0 Kudos

Hi Experts,

I am using timedtrigger UI element to keep the connection alive while filling a document by calluing a dummy action.

it's working fine by keeping the connection alive. But timedtrigger event refreshing the data in the TEXTEDIT box in whih the user writing in during the timedtrigger event. Otherthan that TEXTEDIT box the unsaved data in the rest of the document is fine.

Can somebody help me or suggest me on this...

Please ask if you have any questions...

Accepted Solutions (0)

Answers (6)

Answers (6)

BeGanz
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hallo Krish,

this is bug was fixed in SAP NetWeaver 7.0 SP24, 7.0 EhP1 SP9. For more details see [SAP Note 1496848 - Changes in Fields not transfered with TimedTrigger|https://service.sap.com/sap/support/notes/1496848]

Symptom: In applications that use fields together with a TimedTrigger control, the changes made to a field are not transfered if the TimeTrigger is executed and the field was not blured before. Instead the field is reset and the old value is displayed again after the execution of the TimedTrigger.

Other terms: Lightspeed, WD, WebDypro, TimeTrigger, Changes not saved, Fields are reset

For earlier SP stacks (down to SAP NetWeaver 7.0 SP19, 7.0 EhP1 SP4) you have to install the following two UR (Unified Rendering) patches for Web Dynpro ABAP: "Unified rendering for Web Dynpro ABAP must be updated for error corrections.":

1./ [Note 1520245 - Corrections for unified rendering 701/08 XI (UR mimes)|https://service.sap.com/sap/support/notes/1520245]

2./ [Note 1520943 - Corrections for unified rendering 701/08 XI (ABAP renderer)|https://service.sap.com/sap/support/notes/1520943]

Best regards, Bertram Ganz

michael_dohse2
Explorer
0 Kudos

Hi,

i actually ran into this problem, too.

We have NW 7.31 SP 9 ! Unfortunatly I did not find any SAP Not for our Release.

Problem:

Input Field is going to be refreshed / with old value after Timer action while user is writing or the filed stll has Focus.

Seems like the transfer from Input Field to Context is not called. ?

Is there any option to do this manually, maybe in WDBEFOREACTION ?

Thanks for short termed answer.

michael

Former Member
0 Kudos

Chris,

Thanks for the reminder.

I am interested in your IFRAME alternative, which is exactly why I posted on this thread. Only I am not sure how the code in an IFRAME can call a method back in the webdynpro....are you suggesting some javascript (ClientSide) can call some server side method in the webdynpro.

Former Member
0 Kudos

Can anybody think of an alternative that I could use other than the timetrigger control...i need to send a popup reminder to the user to save their data. The ironic thing is that the timedtrigger erases the data that I am trying to get the user to save

ChrisPaine
Active Contributor
0 Kudos

Hello K,

there have already been multiple responses about alternate solutions in this thread, are these not useful to you?

On a different point - it is generally good forum practice to start a new thread if you want to ask an additional question - and reference the thread you have seen (which shows us that you have searched for relevant material). Posting questions in threads that aren't your own (thread hijacking) is not really encouraged even if the question does follow the thread flow. I think the particular case here it is very questionable as to whether anyone would accuse you of hijacking - but it when it comes to you being able to get good responses from your questions you have much more chance if you are the thread "owner", as you can then r-e-ward those contributors who do answer your questions well - and this in turn helps others who then search for the thread and want to see who best answered the question.

Thanks,

Chris

Former Member
0 Kudos

Thanks Thomas, I just found this note too!....unfortunately when I use SNOTE transaction to download 1496848 it says "Cannot be implemented"....but it looks like it should apply to our version??

Our version is

SAP_ABA 701 0003 SAPKA70103 Cross-Application Component

SAP_BASIS 701 0003 SAPKB70103 SAP Basis Component

Edited by: K Ferguson on Sep 10, 2010 5:59 PM

Euna
Participant
0 Kudos

Hi Kelly,

We're having the same problem and BASIS says it's only applicable to AJAX-RUNTIME and FRAMEWORK components, which we don't have. Have you come up with the solution?

Regards,

Euna

Former Member
0 Kudos

I am also losing data in the TEXTEDIT after calling a timed trigger. Why do it do this? any solution?

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Have a look at OSS note 1496848

Former Member
0 Kudos

i dont want to loose the data from the TEXTEDIT box which was focused during the timedtrigger event. is there anything like changing the focus to a different object or something.

anybody....

Former Member
0 Kudos

Hello Krish,

Are you sure you want to use timedtrigger UI element for the entire life of the application, if at any stage of the application you are sure that you dont need that element, you could also delete it dynamically.

Former Member
0 Kudos

You could use REQUEST_FOCUS_ON_VIEW_ELEM of if_wd_view to shift the focus to different UI elements in a view.

Regards

Anurag Chopra

Former Member
0 Kudos

Hey Anurag,

Thanks for replying...

my actual requriremnt is to keep the session alive till the user closes the browser or logged out.

so im using the timedtrigger to call a dummy method in WD component jus before the session time out to keep the session alive..

but the problem is

if the user is entering data in TEXTEDIT box during the TIMEDTRIGGER EVENT

then TIMEDTRIGGER event is refreshing the data in TEXTEDIT BOX (WHICH I DONT WANT) HOW NOT TO LOOSE THIS DATA????

rest of the data in the document is fine though...

if the foucus is not in the TEXTEDIT box during the TIMETRIGGERED event it's all fine....

Former Member
0 Kudos

Hello Krish,

Have you used any attribute to which value property of textedit is bound to ?

and what do you mean by keeping the session alive. Is it that you want to prevent default time out of the application.

Regards

Anurag Chopra

Former Member
0 Kudos

Ok ,,i believe i somewhat understood your case, I must say it is little tricky.

So if a user is working on text edit, the session is already Alive and you dont have to use the timed trigger event and call the dummy method. Am I right on this ?

Regards

Anurag

Former Member
0 Kudos

Yes i wanted to prevent the default time out of the application...

Former Member
0 Kudos

Krish,

There must be some way to configure the setting to prevent the default time out of the application.

otherwise You have to save the value of text edit in a variable once you read the attribute and then set it later when you call the dummy method.

Regards

Anurag

Former Member
0 Kudos

the session will be timed out even if the user entering the data in textedit box...

Former Member
0 Kudos

Hi

I guess in transaction SICF for your application parameter you can set the default time out parameter for your application.

Suppose if a user has kept the app open for 2 days - would you like to send the trigger the server every 30 seconds through time trigger ???. if yes then I would say this can lead to severe performace bottlenecks

if many people are logged in and you are sending a request every 30 seconds - think about it.

Regards

Manas Dua

Former Member
0 Kudos

Hi Manas,

Thanks for replying ...

for that Q? for this particular application we would wanna keep the session time out abt 3 or 4 hrs like that.. i mean better than 30 secs..

And is there any other way to do this.....

ChrisPaine
Active Contributor
0 Kudos

Sounds like a tricky problem...

perhaps there is a way to address both problems. The pending time-out and the desire not to have the session timeout.

Perhaps you could in an island or iFrame include a visible count down timmer. This timer could display how long until session times out - perhaps going red in the last 5 minutes - perhaps only becoming visible in the last 5 minutes. Then instead use your timer to save the user's session and close the application. If the user presses an "extend session" button the timer resets and they can continue...

Obviously any interaction with the app will extend normal lifetime of the session - but I doubt that extends the timeout of your timer.

This might be good if tied to a custom extension of the timeout time for the application - say a couple of hours compared to everything else which probably times out after about 15mins.

Sorry it doesn't solve your immediate issue - but I think that's more a framework thing - and not something that many of us will be able to help with - just trying to think outside the square a little.

Cheers,

Chris

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>for that Q? for this particular application we would wanna keep the session time out abt 3 or 4 hrs like that.. i mean better than 30 secs..

You will need to adjust the overall timeout ICM setting then. Per application you can only set a timeout that is shorter than the overall system timeout. You can never set a longer time out value.

Former Member
0 Kudos

Thanks for you reply Paine & Jung..

to keep the session alive till the user closes the browser or logged out.

im using the timedtrigger to call a dummy method in WD component jus before the session time out to keep the session alive..

im reading the session timeout of the component in WDDOINIT method and setting the timer of the TIMEDTRIGGER with 2 seconds lesser delay.. and calling a dummy method in TIMEDTRIGGER Action to keep the connection alive... (I am not keeping session time out at 30 secs...)

so jus before 2 secs of session time out im calling a dummy method....

that is how im extending the session time out.. and not increasing any timer...

Thanks for suggesting ISLAND and IFRAME solutions.. and wondering there shd be a way to call a dummy method with TIMEDTRIGGER without loosing data...

Former Member
0 Kudos

Thanks for your reply..

You will need to adjust the overall timeout ICM setting then. Per application you can only set a timeout that is shorter than the overall system timeout. You can never set a longer time out value.

for the above statement...

globale time out - 5 hrs

session time out for the particular application - 5hrs

if the user saved the data at 4.50 hrs (that means it has interacrted with the server at 4.50 hrs)

-- will the session time out at 5 hrs????

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

The session timeout is reset on every server action.

Former Member
0 Kudos

Exactly.. That is what i am trying to do.. client doesnt want to timeout the session

im trying to call a Dummy Method just before the session timeout using TIMEDTRIGGER to reset the timeout... and is resetting the timeout. so the session was not timedout..

But the problem is if the user entering the data in TEXTEDIT box during TIMEDTRIGGER event, the event refreshing the data in the active textedit box.....

can i stop it to not refreash the data???

is there anyother way to do this??

Former Member
0 Kudos

Hey Kris..

Have ya found the solution for this...I am also facing same type of problem.. Please share your knowledge for the same.

Thanks

Former Member
0 Kudos

Hi Krish,

I am currently facing the same problem as you did. The textbox gets refreshed when the event is triggered. How did you manage to solve your problem? Thank you!

Yu Qing