How to take back the control from RFC function module to calling program

Hi,
In our system landscape, more than 200 child systems are connected to Solution manager(SMP). I have copied a RFC enabled function module into all the child systems and calling that FM from Sol Man in sychronous mode.
Here goes my code in SolMan.
LOOP AT it_dest INTO wa_dest.
  CALL FUNCTION 'Z_GET_LOGIN_DETAILS' DESTINATION wa_dest-rfcdest
    EXPORTING
      date_fr               = s_date-low
      date_to               = s_date-high
    TABLES
      tab_data              = it_val
    EXCEPTIONS
      communication_failure = 1
      system_failure        = 2
      OTHERS                = 3.
  IF sy-subrc EQ 0.
*     Updates zuserlogon
      MODIFY zt_logon_det FROM TABLE it_val.
      COMMIT WORK.
      WRITE:/'RFC for Destination', wa_dest-rfcdest, 'succesfully updated.'.
  ELSE.
      WRITE:/'RFC for Destination', wa_dest-rfcdest, ' failed.'.
  ENDIF.
ENDLOOP.
Few child systems are very slow & takes more than 20 minutes(Many of the times system hangs) to return the result. But I should not wait for so long. Even if the child system doesn't return any values in 5 minutes I shoud continue with other system ignoring the current one.
I tried calling the FM in asynchronous mode(STARTING NEW TASK) but no success because only 6 DIA processes possible but as I said I have more than 200 systems connected to SolMan.
Please help me resolving this problem.
Thanks,
Prathap

If there are only few child systems with bad response time, use asynchronous call using a CALL FUNCTION func STARTING NEW TASK task DESTINATION dest PERFORMING subr or CALLING meth ON END OF TASK. Count asynchronous calls still running/waiting (increment a counter when creating a task (not the one used for task id). In the form/method performed at end of a call decrement the counter. When counter is lower than a limit, 4-5 if 6 processes (*), perform an asynchronous call else perform a synchronous call or wait until the counter falls below the limit.
Regards,
Raymond
(*) Use SPBT_INITIALIZE at start of program to get actual number of free/available processes.

Similar Messages

  • How to upload Excel file in BI using function module in abap program

    How to upload Excel file in BI using function module in abap program?

    Hi Anuj,
    To upload the file , you can try a standard program "RSEPSFTP" .
    while you execute the program , a selection screen appears in which the inputs should be give as
    RFC destination - The target server name
    FTP command- PUT
    local file - your file name
    local directory - path of your local file
    remote file - your target file name
    remote directory - where it has to be stored
    Hope this is useful for you
    Thanks & regards
    Anju

  • Passing the structure to rfc function module

    hi,
    iam having a rfc function module which is importing structure.
    i have to pass only one field value to that structure.
    how can i pass that field value to that structure.
    it is very urgent.
    thanks in advance

    Hi..
    You have to Declare the ACTUAL PARAMETER (workarea) with the Same Structure as that of the FORMAL PARAMETER.
    but you can fill only the FIELD that you want pass in the workarea and pass it to the RFC.
    <b>Reward if helpful.</b>

  • Problem in the creation of rfc function module

    hi,
                I am creating one rfc function module comparing to standard non-rfc function module. In that one i have one export parameter with the standard strcture type. but this stcture component contains with strcture type. among all these components four fields are common. but when i am trying to activate function module it is giving message you cannot use internal tables, strings,references, or strctures as components. that function module name is BAL_FILTER_CREATE and that export parameter name is that export parameter name is E_S_LOG_FILTER that associated type is BAL_S_LFIL. how can i solve the problem. pls give me solution as soon as possible.

    hi,
    for rfc fm's u should enable the call by value check box which will appear on that of import and export parameters. tick that one for each parameter in rfc and activate.
    if helpful reward some points.
    with regards,
    Suresh Aluri.

  • Procedure for Mapping two types of Idocs from RFC function Module

    Hi
    My Scenario is RFC -- XI -- IDOC
    Here i have 2 custom Idocs
    First IDOC for Creation
    second is for Deletion/Changing
    Based on the condition from RFC it should trigger either one of the IDOC above.
    Please provide me the procedure to do in IR and ID..
    Regards,
    Yeswanth.

    YeswanthRaj:
    I found your conflicted statements
    The following statement you say you just have one receiver, to receive two IDOCs
    But i have only one receiver where the 2 IDOcs needs to be send based on the condition..
    The following statements showing that you have more than one receiver,
    the condition editor for receiver determination usually used for multiple receivers based on XPATH or Context Object condition
    It is mapped based on the condition that is given in Receiver Determination and i has two interface Determinations.
    It seems that the first scenario is your situation.
    If your answer is yes, and your source interface is just one,and target interface is two (two IDOC), then this should be typical
    muti-mapping scenario, and the propose I gave to you should fit
    Regards.
    Liang

  • How to refer to the class in regular functional module

    Hi ABAP guru's
    I wish to get details of GET_REQUID parameter of method IF_RSBK_REQUEST_GENERAL that is available in
    class CL_RSBK_REQUEST.
    I am writing a ABAP function module and I wish to use this class in that function
    module. Can someone help to write this code on how to read value of GET_REQUID in my function module?
    Thanks for your help in advance
    Ag

    Hi Allgon,
    welcome to the SAP Community Network. I hope you become a valuable member by contributing regularly.
    You need to appreciate a few things.
    Firstly read Welcome and Rules of Engagement.
    It includes the following suggestions...
    Please...
    - Use the correct or most appropriate forum,
    - Do not cross-post or multiple-post, and
    - Search for information before asking basic questions, again.
    Cheers
    Graham Robbo

  • RFC function module with call transaction  and Import memory ID

    Hi,
    I am calling RFC function module from R/3 which exists in BW.
    In BW stand alone function module works fine.
    When I am Calling from R/3 it is not working,
    Can you tell me is it because of the below code, And suggest if any corrections required.
    I am calling the call transaction and using EXPORT memory iD inside the program
    and IMPORT in after that.
    And populating RFC table's table  " p_i_tcode_user" finally.
    set parameter id 'TCD' field p_tcode.
    call transaction 'Z_BW_RSUSR002' AND SKIP FIRST SCREEN.
      ENDIF.
    get the final user data from submitted program
    import gt_users_complete from memory id tcode_userid.
    LOOP AT gt_users_complete.
          lwa_tcode_user-tcode =  p_tcode.
          lwa_tcode_user-uname = gt_users_complete-Bname.
          APPEND lwa_tcode_user TO p_i_tcode_user.
    ENDLOOP.
    Thanks,
    Veerendra.

    HI,
       Can you just exaplin it clearly plz..
    Thanks
    Mahesh

  • How to get back the emails from an old hard drive that has no more OS ?

    Hello,
    My computer crashed recently.
    The problem came from Windows somehow. So the hard drive is fine.
    since windows couldn't be repaired I just copied a disk image backup to a new hard drive.
    The problem is that I lost all the emails that were recieved between the moment I did my backup and now.
    I can still access the folder :
    %USERPROFILE%\Application Data\Thunderbird\Profiles\XXXXXXXX.default\Mail\
    How can I use the files in that folder in order to get back my emails in Thunderbird ??
    thanks for your help!

    Thunderbird mail is stored in MBOX files. these will be locted in the mile folder (well sub folders) along with an MSF index of their contents with the same name.
    This add-on https://addons.mozilla.org/thunderbird/addon/importexporttools/ will import MBOX files. Once installed it adds an entry to the bottom of the Tools menu.

  • How to Revert back the changes from the new version to old version

    Hi, I need to revert back the changes in one of the Objects in Intergration Directory.  Which means, I need to de-activate the existing version, and have the old version activated again.  Can you help me on the steps on doing this?  Thank you.

    Mary,
    If you have just saved urt object in IR / ID and not activated it, then u can simply go to the change list tab and right click on ur object and do " Reject changes".
    if u have already activated the same, then u wud b required to open the object in IR/ ID.
    Click on the history option and double click and open the same object version that u want and activate it.
    regards,
    Vishal

  • Satellite A205-S5880 - How to get back the FN+F8 key function

    Hello.
    I have a problem with the HWSetup utility. The problem is that, when i press FN in the keyboard, that bar at the top shows up right, and there i use the F keys to use any of the options listed there.
    Well the problem is that just a while ago i had the option for the WLAN, to turn it off or on. But well a while ago i was checking something with the WLAN driver and uninstalled it and installed it again, but then i guess that caused the WLAN option in the FN keys at the top bar to disappear.
    It was in F8 but now I no longer have a F8 in the bar, and i don't know how to bring it back and I need it so if please someone could tell me how to bring it back?
    And I use Windows Vista Home Premium btw, 32 bit
    here's a screenshot in case your not sure what i'm talking about http://i33.tinypic.com/il9jee.jpg

    I re-installed it and still isn't there.
    the driver shows up in the device manager and i click update driver just in case but it says mine is up date
    i think i let the laptop install itself the driver
    but the site i download the drivers from is from www.csd.toshiba.com
    cause i think in www.toshiba.com they don't have drivers

  • How to pick the entries from a function  module fields values

    hi guys,
                i have a function module 'BP_JOBLOG_READ’.when i execute this for a particular jobname,i will get some entries.again if i click those entries,i will get some fields with values.in that one field 'text' contains total credit amount(purely numeric).how to fetch this value into internal tabel and update into my internal table.very urgent.plz provide some coding.rewards wil b there for helpful sggestion.

    Mahesh,
    Use the FM  BP_JOBLOG_SHOW  to display those job logs.
    Hope this is helpful.
    Thanks,
    Naren

  • Web Service from RFC function module

    Hi all,
    I'm searching for a way to create web services from RFC-enabled function modules. I know there is a wizard, but it's not suitable for my problem:
    I have around 30 function modules (number raising in near future) I want to enable for web services, most of them share the same structures representing the underlying data model. When one structure is modified (i.e. a new sub-structure is added) I have to recreate all web services, which is quite uncomfortable.
    In addition, using the wizard results in one wsdl-file for each web service operation, that leads to an administration overhead using this web services from a java frontend.
    So I'm searching for a "bulk creation". I also know the wizard can be used for a function group, but I can't put all my RFC-enabled function module in one function group, that would lead to confusion in the package.
    Does anyone know how web services are created programmaticaly? If I had a function module which creates the web services I could write a function module which creates all web services I need.
    Thank you in anticipation!
    Florian

    I'm not sure I understand the 're-create' part...how are you re-creating the web service?  if you modify the interface of a function-based web service, then you use the 'modify operations' functionality (context menu - right-click) to regenerate the web service interface; this works for a function group based web service as well and hits all of the methods at once.  As for the java overhead on function group services, stating the obvious, maybe you just need to lower the number of functions in your groups.  We use .Net-developed applications with multi-function webservices and don't have any overhead issues.

  • Unable to retrieve parameters from RFC Function Module

    Hi All,
    I have created a model for the RFC Enabled function module BAPI_BUPA_CENTRAL_GETDETAIL within my webdynpro program. I am passing parameters to the function module BAPI_BUPA_CENTRAL_GETDETAIL and I have validated that this is being passed correctly by displaying the passed value from the node of the input parameters.
    Code used to pass input parameters -
      IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeOutput().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
    I also see that it returns 1 record by using the code below:
    IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeOutput().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
    But, when I try to retrieve the value returned it does not fetch that value -
       Bapi_Bupa_Central_Getdetail_Output getdata = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().currentOutputElement().modelObject();
       Bapibus1006_Central_Person[] getres = new Bapibus1006_Central_Person[size];
       for(int i=0; i<size; i++){
            wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(i));
            getres<i> = getdata.getCentraldataperson();
              //String fullname = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().getElementAt(i).getAttributeValue("Fullname").toString();
            String fullname = getres<i>.getFullname();
           fullname += Integer.toString(i);
            wdContext.currentContextElement().setFullname(fullname);
            wdComponentAPI.getMessageManager().reportSuccess("fullname:" + fullname);
    It always returns 0 or null. Can someone please help me with this issue. The BAPI returns values in structure format and not internal table and hence I dont see the issue there as well.
    What can be the problem?
    Thanks for all your help in advance.
    Best regards,
    Divya

    Nikhil / Srihari,
    I changed my code and it now looks like -  I am trying get the return value into the context fullname but i still cant get the value although the size of nodeCentraldataperson() is thrown as 1 and the input is being passed correctly as i have validated this in this line of code [wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();]
    IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeCentraldataperson().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
         for(int i=0; i <size; i++){
              String name = "FullName: ";
              wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().setLeadSelection(i);
              name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();
              name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().currentCentraldatapersonElement().getFullname();
              wdContext.currentContextElement().setFullname(name);     
    Any idea what could be wrong?
    Thanks,
    Divya

  • How to get back the data from 'AddressBook.data.previous' ?

    Hi! First of all: After using iSync all my address book data were duplicated, and I deleted all duplicated data manually. Then, I resetted the iSync data under 'Advanced' in '.Mac Sync Preferences'. Unfortunately, iSync deleted all my AddressBook data. I found a file named 'AddressBook.data.previous' and another file named 'AddressBook.data.beforesave' in my 'home folder/Library/Application Support/AddressBook'. Looking carefully into that file, I saw all the data I lost before in it! - Thus, how can I restore that data back into my AddressBook now? Does anyone knows some help for me? Thank you for answering! - Greetings, Gisela

    Welcome to Apple Discussions.
    You only have a very limited opportunity to recover your data this way. You should make sure that the Address Book application is not running, then drag the AddressBook.data file to your desktop or to the trash. Duplicate the AddressBook.data .previous file, and rename it AddressBook.data by removing the trailing <.previous> string. Then, launch the Address Book.
    The application will read the contents of this renamed file, and display your contact records. You should regularly back up your contact records using the built-in Back up Address Book… option under its File menu. A similar option is available in iCal.

  • How can we pass the control from servlet to portlet ?

    Hi,
    we use PortletRequestDispatcher.include method to call the servlet.
    In my servlet, I have the following form information.
    out.println("<form method=\"post\" action=\"http://abc 40acce5.3a.com/portal/dt?display=Command\">");
    out.println("Enter value: ");
    out.println("<input type=\"text\" name=\"UserName\" value=\"\">");
    out.println("<center> "); out.println("<input type=\"submit\" value=\"Go Back Portlet\"> ");
    out.println("</center> ");
    out.println("</form>");
    When user click the submit button, the servlet will go to portlet first, then go to another page.
    is the url (action="http://abc40acce5.3a.com/portal/dt?display=Command) correct ?
    if not, what url we should use ?
    Can you help ?
    Thanks!

    Oh I thought that you have selection-screen and again you are working on dialog programming.
    if you want to use select-option directly in module pool then it is not possible.
    but you can do other way.
    create two varaiables
    data : v_kun_low like kna1-kunnr,
             v_kun_high like kna1-kunnr.
    use these two variables in layout ,let user knows that he can not give options like gt,lt,eq ,it will be always BT.
    and also when you see normal report program,you can use multiple values in either low or high,but here it is not possibel.
    use can enter only low value and high value.
    when you come to program point of view
    declare one range
    ranges r_kunnr for kna1-kunnr.
    do the coding like
    r_kunnr-low = v_kun_low.
    r_kunnr-high = v_kun_high.
    r_kunnr-options = 'BT'.
    r_kunnr-sign = 'I'.
    append r_kunnr.
    now you can use r_kunnr in select query ,it will work like select-option.
    other than this there is no option.
    Thanks
    Seshu

Maybe you are looking for