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

Similar Messages

  • Help on Parameters in RFC Function Module

    Hi,
    I am creating a RFC function module. The requirement is:
    In a report program, the user enters ABC and XYZ values on the selection screen. These 2 fields are select options so will have From-Value and To-Value. This report program will pass these values to my RFC FM and depending upon these values I have to read a DB table and pass the data back to the program.
    My doubt is, how should I intake these select options value? i.e should I specify them in import tab or tables tab? What TYPE/LIKE should I use?
    Please help me in this...
    Rgds,
    Nimma.

    Hi Anji,
    What is 'WSELKUNNR'? Is it a user defined type?
    I am doing as below in the IMPORT tab.
    Parameter name/Type Spec/Associated Type
    ABC/LIKE/
    I am not sure what type I have to use here as the incoming values will be of type SELECT-OPTIONS. Is there any standard type to specify here? If not, what should I do?
    Best Regards,
    Nimma.

  • 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.

  • Error while creating import parameters in RFC function module

    Hi,
    I am trying to create import parameter in RFC enabled function module and getting the following error "Reference parameters are not allowed with RFC". Am I doing something wrong.
    Your earlier response is much appreciated
    Regards
    Kasi

    There is a "Pass by Value" checkbox, just check that and you wont get the error.  The basic reason behind is since an RFC is called by a different system the parameters have to be sent as values than as references.
    hith
    Sunil Achyut

  • 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.

  • How to retrieve data from a function module and use it in sap script??

    I have a report program, which calls a function module. This function module internally calls an include program. In this program, I have a variable which is to be used in the sap script. How can I send this variable to the sap script

    Hi,
    In your case, Include prog is part of FM, no need to treat it as an Entity.
    Now, Your Answer -
    In SCRIPT - IN Page Window -->
         PERFORM GET_MVAT_TIN IN PROGRAM Z_SCRIPT_PERFORMS_ABAPDB3
         USING &VBDKR-KUNRE&
         CHANGING &STCD1&
         CHANGING &STCD2&
         ENDPERFORM
         IF &STCD1& <> ' '
         <B>MVAT Number :</> &STCD1&
         ENDIF
    Then go to SE38 --> Creat prog with type - Subroutine pool
    In that Write FORM statement for this PERFORM.
    FORM get_mvat_tin TABLES inttab STRUCTURE itcsy
                             outtab STRUCTURE itcsy.
      DATA : v_kunre TYPE kna1-kunnr,
             v_stcd1 TYPE kna1-stcd1,
             v_stcd2 TYPE kna1-stcd2.
      LOOP AT outtab.
        CLEAR outtab-value.
        MODIFY outtab.
      ENDLOOP.
      READ TABLE inttab INDEX 1.
      v_kunre = inttab-value.
      IF v_kunre CA sy-abcde.
      ELSE.
        UNPACK v_kunre TO v_kunre.
      ENDIF.
       " Here You can take your Funcion module ***************************
      SELECT SINGLE stcd1 stcd2 FROM kna1 INTO (v_stcd1, v_stcd2)
                                         WHERE kunnr = v_kunre.
      IF sy-subrc = 0.
        READ TABLE outtab INDEX 1.
        WRITE v_stcd1 TO outtab-value.
        MODIFY outtab INDEX 1.
        READ TABLE outtab INDEX 2.
        WRITE v_stcd2 TO outtab-value.
        MODIFY outtab INDEX 2.
      ENDIF.
    ENDFORM.                                

  • 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

  • Problem with RFC function module from R/3 to CRM

    Hi, i have a RFC function module created in R/3, this is the code:
    function Z_CRM_PRODUCTO_INTERLOCUTOR.
    ""Interfase local
    *"  IMPORTING
    *"     VALUE(GV_VKORG) TYPE  VKORG
    *"     VALUE(GV_VTWEG) TYPE  VTWEG
    *"     VALUE(GV_MATNR) TYPE  MATNR
    *"     VALUE(GV_KUNNR) TYPE  KUNNR_V
    *"  EXPORTING
    *"     VALUE(GV_KDMAT) TYPE  MATNR_KU
    *"     VALUE(GV_POSTX) TYPE  KDPTX
    *"  EXCEPTIONS
    *"      NOT_FOUND
      UNPACK GV_MATNR TO GV_MATNR.
      UNPACK GV_KUNNR TO GV_KUNNR.
      select single  KDMAT POSTX
              into (GV_KDMAT, GV_POSTX) from KNMT
              where   VKORG = GV_VKORG
                      and  VTWEG = GV_VTWEG
                      and  KUNNR = GV_KUNNR
                      and  MATNR = GV_MATNR.
      IF sy-subrc <> 0.
        RAISE NOT_FOUND.
      ENDIF.
    endfunction.
    When i call this function from CRM, i do it like this:
    CALL FUNCTION 'Z_CRM_PRODUCTO_INTERLOCUTOR'
      DESTINATION LV_RFCDEST
      EXPORTING
        GV_VKORG  = lv_vkorg
        GV_VTWEG  = ORGMAN_H-DIS_CHANNEL
        GV_MATNR  = ORDERADM_I_WRK-ORDERED_PROD
        GV_KUNNR  = WA_DATOS_PER-N_PAGADOR
      IMPORTING
        GV_POSTX  = IT_POS_LINE-DESCRIPCION
        GV_KDMAT  = IT_POS_LINE-material
      EXCEPTIONS
        not_found = 1.
    where:
    it_pos_line-descripcion type string
    it_pos_line-material type string.
    Well, my problem is that when debugging, in R/3 the 2 return values have the correct value, but when they are passed to CRM they have only one position.
    As i've been told, it was working ok, but it's being wrong since we made a ¿conversion to unicode?. Maybe I should change the type of return ???
    Thanks in advance !!!

    Hello Maria,
    Make sure you define your parameters in CRM exactly the same way as in R3, do not use type string here.
    So:
    it_pos_line-descripcion type C char 40,
    it_pos_line-material type C length 35.
    Kind regards,
    John.

  • RFC function module - not considering string type parameters

    Hi,
    i am calling one RFC, this rfc function module is enhanced to have one more import parameter and the type of this parameter is of type "string".
    i am passing this value from while calling rfc fm but i can see this value is not being considered here in the target system, i mean the passed value from source system is not seen in the target system.
    i read some thing related to rfc restrictions on code pages, is it something to do with that or string type is not allowed??
    Please suggest!!!

    Hi all,
                   I faced the same problem and solved it ,
    You have defined a reference parameter for a remotely called
      function module. However, only value parameters are allowed
      for this type of module.
      Procedure
      Change the reference parameter to a value parameter.
    Guys  pls .don't leave the thread un-asnwered when you solved problem , post the solution it might be useful for others also.
    Regards
    Krishna Acharya

  • How to debug a RFC function module remotely from another R/3 system?

    Hi experts,
       I have RFC function module in one R/3 system. I am calling this from another R/3 system that is cross apps (Xapps).
       This function module is Synchronous.
      Is it possible to debug this function module from cross apps?
      Can somebody give me the steps?
    Thanks & Regards
    Gopal

    Hi Shree,
       Can you explain it bit more?
       Do I have to call the function  module with "IN BACKGROUND TASK"?
       Or is it that I have to just put external breakpoint in the function module?
       Please help
    Thanks
    Gopa

  • Is it possible to call custom designed RFC function module, apart from BAPI

    Hi Friends,
    1.     Is it possible to call custom designed RFC function module, apart from BAPI.
    2.     Why we call it Adaptive RFC layer, Since every time the JCO layer updated with SAP, Why can’t be dynamic.
    Thanx for Ur time.
    Cheers,
    Sam

    Also check <a href="http://help.sap.com/saphelp_nw04/helpdata/en/41/38bc8f813719488ddc9d9b21251ec3/frameset.htm">here</a> for more information on aRFC. Here you can find why it is called adaptive.
    Regards,
    Christophe

  • Debugging RFC function module from ECC to CRM

    Hi All,
    My requirement is to debug an RFC function module present in CRM(7.0) system from ECC(6.0) system. A report program in ECC will call CRM custom FM. I found many posts in SDN with the same issue and tried to implement suggestions provided there. But I couldn't succeed. The approach I followed is:
    I logged in to ECC report program and kept an external breakpoint just before the function module call.
    I logged in to CRM system, opened the function module and kept an external breakpoint there.
    In both the systems I provided the dialogue userid( id through which I log in to SAPGUI) in the system->settings->debugging option.
    In CRM I activated the external break point in  transaction SRDEBUG.
    Now when I execute the report program in ECC, control stops at the breakpoint. If I press F5 at the function call, control is not going to the external break point set in the CRM FM. I am getting output of FM directly.
    I tried with different settings like turning on the check box for IP matching and session breakpoint active immediate, switching to classic debugger etc. I also tried to provide the RFC user id instead of dialogue user but system throws exception saying only dialogue userids are allowed. I found that by inserting an infinite loop statement, control goes inside the RFC CRM FM but I prefer not to change the code.
    Please let me know if I missed anything.
    Thanks and Regards,
    Naren

    Hi,
    Debug RFC calls
    When an RFC function module is called it is usually not possible to debug the call, using the below techniques we can achieve the same. For this example we are calling an RFC enabled FM in ECC system from CRM system.
    Scenario 1: Calling a custom RFC FM
    STEP 1: Add an infinite loop in the remote custom Function Module (adding a u201CDO. ENDDO.u201D statement at the start of the FM would be enough).
    STEP 2: Execute your program in the CRM system. The execution stops at the RFC call, because of the infinite loop.
    STEP 3: Now login to the ECC system and go to transaction SM51 select the process which is executing the RFC and navigate to the menu: u201CProgram/Session->Program->Debuggingu201D this triggers the debugger session in a separate window.
    Scenario 2: Calling a Standard RFC FM
    When we are debugging a standard program we cannot add the infinite loop, hence we cannot go to SM51 and debug the work process. The RFC destination for the ECC system has a User specified, the RFC function module gets executed using this users credentials. Usually the basis team set up the RFC user as non Dialog user, this does not allow debugging. Contact your Basis team and get this changed to a dialog user enabling you to debug RFC function calls via the normal debugger.
    Note: User name configured in the RFC destination (transaction SM59) 
    Note: User type for the RFC User (transaction SU01D)
    Hope this will be helpful..

  • RFC Function module needed for getting table details in APO from R/3

    Hi,
    I need a RFC function module where I can write a query from R/3 to access APO server database table and get the necessary records.
    Regards
    Mac

    Possible ways
    1. Call fm RFC_READ_TABLE and give destination and table name ( But i am not sure how it will work SCIF enviornment of APO)
    or
    2. Create a custom function module in APO side and call from R/3 side using destnation option

  • Unable to find the RFC function module in the impoting list in IR

    HI
    I am trying to import a RFC function module from the R/3 system.
    I am not able to find the RFC in the list that comes for the RFC  function modules that can be imported.
    The RFC is present in the destination system and is actiated too
    If anyone has and idea why is such a thing happning
    Regards
    Nikhil

    Hi Nikhil,
    The Checklist,
    1. Check the connection parameter at XI
    2. Make sure ur function module is remote enabled
    3. Make sure ur RFC exists for the same user, client credentials
    Regards,
    Prateek

  • How to invoke RFC function module from XI interface

    Hi all,
    I am having one question, How to invoke RFC function module from XI interface.
    Please reply me as soon as possible.
    Thanks in advance,
    Radhika

    Hi,
    To call the RFC in mapping u need to create the RFC lookups...check these links.
    How we have to create the lookups?
    Check this weblogs with some screenshots on how to achieve this:
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
    lookups in xi
    XI Design Guidelines
    Re: RFC Lookup API
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    Regards,
    Phani

Maybe you are looking for

  • Noise from Hard Drive

    I just had to have the Logic Board replaced at the Apple store in Madison. Seems to be working OK but the drive sounds like it's grinding.It's loud enough that it's no strain to hear it. I've never had any noise with this computer at all. My problem

  • How to open BSP in the same window of WD?

    Hi, I have a WD that I would like to link to a BSP. I added a link and put the relative path to the BSP. Once I click on that link, the BSP is opened in a new window. I want the BSP to open in the same window, replacing the WD. I tried putting in the

  • Iphoto 8 on 9 disk?

    I got a free Ilife pack with my Mac. I was using 8 and when I installed 9, it told me I had to use the latest version. Any ideas? The Apple disk clearly says 9.0.

  • Setting portrange directive for FTP

    A few weeks ago I posted a question about FTP file listings timing out and got an excellent response from Camelot advising that I create a set of ports for passive FTP connection. This is done using the portrange directive in /etc/ftpd.conf. My Termi

  • Chromium freezes randomly

    Hi, Ive noticed that sometimes chromium freezes. I cant press any buttons or anything. I can minimize or restore that window just fine but i cant do anything, so i have to kill chromium proccess. I think this started to happen after recent xorg updat