Skip to Content
Prerequisites -> ISR Interactive forms, Adobe, Scripting, ABAP.  I posted a Search help in ISR Adobe forms. few months back regarding the ‘trial’ I did on limiting the entries in the drop down in an Interactive ISR form. The method I adopted then was to filter the data list as per the dependent values.  I ended the blog with an issue I faced, regarding – maintaining the pop up window after the event gets triggered.  I would like to explain the solution which I found and an innovative alternative which is far more user friendly.   The root issue goes something like this. For cases when the user needs to enter a value in the field, the UI provides a list of data as probable help values, which we say search helps in the SAP.   In NW04, the only option of providing a help is the dropdown (referring to Interactive forms developed through ISR scenarios – SFP transaction).  There are other options like Object Value Selector (OVS) provided in the later versions.  I faced a problem of providing a search help for a field which can have ‘1000…n’ (and increasing) probable values. So what do I do? For the optimum performance of the Adobe form, it is advised to limit the drop down entries to 100 or less .   Let me explain the funny experiences I faced.  I developed the form and populated the values for the drop down. The first error I got was Array out of index error. This error was bcoz the drop down entries are limited to 255 in the standard scenarios. Now I searched for all sources in forums, blogs and what not… in the end BINGO  I got my answer in a SAP note asking to change the index (I don’t wish to specify that note atleast here – having more than 255 entries wont make you happy with your application in the end.)   Well I changed the data type of the field index of the dropdown and am temporarily successful in having the ‘1000..n’number of entries in the drop down. Good, but was there a delay in form loading this time.. well.. am done with achieving the objective of providing the user with a search help.  Slowly the number of entries started increasing and one fine day the user selects the form to fill it.. boss, I get a error saying …’ Page cannot be displayed’. Well isn’t that something to do with the portal.. Isnt the portal up or what.. is the ADS down? oops they are all fine… then wats the problem? I tried it once again.. the form is loading for minutes and an error comes..   What do I do..Check at the R/3 end.. is the backend too slow? Or the network too slow? Nope. What is the number of drop down entries I am having.. oops its multiple times of what I started with..  So this is a TIME OUT ISSUE..  So what do I do now???.. Thinking of filtering the data ..or should I remove the field, as such, so that I can remove this problem…. or deciding not to provide this drop down… Well said.. some tight decisions need to be done on this….  (Lemme make this into a group effort for fun reading..)  What can be the solution for this….Why don’t we filter the values as per some parameters, which Anto said in his blog..That’s a good idea. What else can we do??; Nothing much.. lets enjoy the weekend… Anto was facing a problem with his solution.  He was not able to maintain the popup after selecting the first parameter from the drop down… so shall we adopt only a single filtering parameter..no way.. we need atleast 3 parameters to make up the no: of data entries to less than 100 atleast..; so we either have to find a solution for Anto’s problem or remove the field as a whole so that we don’t get the time out issue again…  Anto’s issue was he was not able to maintain the popup after triggering the event..  Hey why don’t we script using Formcalc such that this popup is visible for this event or why don’t  we assign a variable – a constant value such that this popup stays as long as the variable value is this constant. But where do we assign this variable or give the event name. Well this can be done in the button for the pop up itself.. O.K. fine.. we got it and let us test it.   Now we will declare a form variable using the Edit-> form properties tab. Assign it a constant value on clicking the button for the event. The scripting for the pop up will be such that it is visible only when the variable holds this constant value… all done, the coding in Additional method is done and lets test it…  OOPs there seems to a problem the variable is not getting changed and the pop up doesn’t come up. [:(]  Now what do we do.. lets try by using a hidden field instead of the form variable.. hey the popup is coming fine… Now lets select the first parameter… the event is triggered (the same event name is given here as given for the button).. WOW the window is maintained here again. That’s cool… Its working fine.. now I select the next parameter and the third.   So we have found a solution for Anto’s issue…. But then an issue exists.1. The user needs to know the additional data required to enter for those three parameters.2.Time consumption increases again… Additional events are triggered (each for the three parameters)…3.The form elements get overlapped which is a performance issue for the form. Additionally the form size increases. Not to mention the other trivial issues like this being an unconventional method etc…  So let us check out those 3 weak points.. the main concern out of the three for us is the point two. We have to reduce the time.. but how? We have no option but to have 3 parameters… each parameter in turn has ‘100…n’ no: of records.. if we were to join them into a single field, separated by some ‘/’ or ‘-‘ the no: of entries in the drop down will only rise..  Hey !……. I got an idea…. now that having a popup in the form is a workable solution why don we utilize this option and develop a real search help…  The point is.. say as usual we have the button here. On clicking the button, the popup comes but with a single field… this field is a input text field. Now we will ask the user to enter the character that he knows which is present in the – ‘to be filled data’.  Once he enters, we will just trigger a single event and fetch the data entries which are having the entered character set.. if  there are more data.. then an error message comes informing him that too many records have been found…  Wow that’s a great idea… so lets implement it and here are the results  and how we achieved it —   a.     User clicks on the button.image  image b.     Enters the character set.image c.     Data containing the character set is fetched.image d.     Selects one from the data set. image e.     Closes the window.  I am not including the backend logic as its far simpler. The scripting involved are more or less the same as said in the previous blog except that an hidden field is used here. – antooze.          
To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

      1. Anonymous
        Hi Bharat,
        I was a bit busy last week.. i have incorporatd the same in both the blogs… thak you very much for your commetns.. please do comment on the blog.
        Thanks and Best regards,
        Anto.
        (0) 
  1. chakram govindarajan
    Sir, I appreciate the pain you have take to compose this blog.But ,kindly request you to provide me step by step on how to create drop down list in ISR forms.

    I am not able to populate the dropdown list in my form.I don’t know how to use the BADI.How to provide the link of my form to the BADI

    (0) 

Leave a Reply