cancel
Showing results for 
Search instead for 
Did you mean: 

how to show progress bar instead of SAP's standard wheel icon during processing?

Former Member
0 Kudos

Hi,

I have a requirement where in my webdynpro application i have a RFC function module which is taking more time to execute even after performance tuning, the user now needs a progress bar which shows percentage of execution instead of wheel of death( standard one).

So I created a view with progress bar, timed triggered element & raising it as popup and made my RFC to execute in parallel. In that way i can avoid SAP standard wheel processing icon and see progress bar in place of it. Now the issue is i,m not able to update the percentage as these are seperate session. I used SET PARAMETER and GET PARAMETER no luck

Help me on how to get the percentage which i will be updating in RFC and transfer it to webdynpro application.

Thanks,

Shridhar

Accepted Solutions (1)

Accepted Solutions (1)

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

What release level are you on?  In NetWeaver 7.02 and higher you can use the Web Dynpro ABAP Notification Service instead of the TimedTrigger. Besides the performance benefits, you can also throw notification events when you reach certain percentage thresholds.

Before that level, you would probably want to write your percentage completion status into a temporary database table.  That's likely the easiest and most sure way to pass the progress information back to the parent program.

And to the person who said that multithreading acess the client server models is not possible - it absolutely is.  In ABAP we multithread by using call function starting new task. It isn't techincally threading, but it allows you to split workload out across 2 or more work processes.

Former Member
0 Kudos

Hi Thomas,

Our SAP System is at Netweaver 7.02, I tried using Notification Service but I have a question how can we create the Event ID using class( CL_NOTIFICATION_SERVICE ) inside RFC? As it needs API Reference of the view and we cant pass the reference to RFC's.  This is required because at any point if i need to update percentage i need to update the status of event as DONE using UPDATE_EVENT_STATUS.

Please clarify on this.

Thanks,

Shridhar

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

You don't create the event ID within RFC.  You create the Event ID within the Web Dynpro ABAP and pass it as an importing parameter into your RFC:

data l_id type wdr_notification_id.
  l_id = cl_wd_notification_service=>get_service(
    wd_this->wd_get_api( ) )->register_new_event( 'FILL_STUDENTS' ).
  call function 'ZRFC_CS2_GPA_CALC_SIMULATE' starting new task 'DelayedTask'
    exporting
      id = l_id.

Former Member
0 Kudos

Ok.. Please correct me if i'm wrong,

1. I will create event id in webdynpro abap.

2. During some 10% of execution i will update that event as done to show 10% in progress in webdynpro abap view.

3. Now when 40% is done Can i update the same event as done again? if not how will i be able to create a new event to update this new percentage?

Thanks,

Shridhar.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I've always designed my RFCs so that they process a block of data, stop, report done, and then the WDA triggers the next batch of data with a new event id.  You would have to try and see if you can reset the status of the event back to OK, instead of done.  The risk there is to possibly overwrite the event before it is caught by WDA.

Another approach would be to generate an internal table full of event ids (all pointed to the same event handler).  You could generate 10 event ids for every 10% of progress.  Pass them all into the RFC at the start and then trigger one at a time as you reach each threshold.

I'm sure there are lots of different ways to tackle this.

Former Member
0 Kudos

Thanks Thomas, I tried with the internal table full of event id's it works but again problem here is progress will be in regular interval ( like 10%, 20% static increase percentage ) , if event could had some parameters which we could have updated that would have been good.

Anyway thank you and thanks all for the replies.

Answers (1)

Answers (1)

Sharathmg
Active Contributor
0 Kudos

Hello Shridhar,

The wheel would be image file maintained on the server. I am not aware of the exact location in the server but you can do some research in SICF transaction to locate the image and then try to replace the image with your preferred image.

In Portal, you can download the theme, and replace the wheel image under ur.zip -> common/loading.

Hope it helps.

Regards,

Sharath

Former Member
0 Kudos

Hi Sharath,

But this requirement is only for my application, i dont want to change it for all application in Portal.

Thanks,

Shridhar

Former Member
0 Kudos

Hi shridhar,

I don't think your requirement can be done. The wheel is predefined. Morever, what you say involves multithreading across the client-server model which I think is not possible.

Regards,

Fareez