Retreving Values from RFC in Adapter Module

Hi All
I have a scenario where I have to retreive a value from database table using RFC and import those values in adapter module for comparing it with some other Values. Can some one guide me how to retreive values in RFC using Adapter module. Some standard methods would be really helpful.
Regards
Abhishek Mahajan

hi
check this
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/ad09cd07-0a01-0010-93a9-933e247d3ba4
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70d90a91-3cf4-2a10-d189-bfd37d9c3231
bvr

Similar Messages

  • Value mapping in the adapter module

    Hi all...
    There was been alot of writing about value mapping in many different ways.
    But I have not been able to find help about doing the lookup in the adapter module.
    Has anyone tried this?
    Regards Peter

    Hi,
    In this case you can perfrom a RFC Lookup, but, from an Adapter Module, you would need to use the concept of JRA to do the same.
    Amol Joshi has described how he called the Alerts RFC from the adapter module in these blogs and you can apply the same logic for your case as well to trigger the RFC from your module, get the data and then do the needful.
    /people/amol.joshi2/blog/2006/11/27/alerts-from-adapter-modules--the-jra-way
    /people/amol.joshi2/blog/2006/11/28/alerts-from-adapter-modules--the-jra-way-part-ii
    Regards
    Bhavesh

  • How can i get currency values from flatfile to function module

    Dear All,
               I have to take  currency values from flat file and i have to assign those flat file value to function module .
    Eg: "Convert_to_local_currency".  I need technical code how to calculate those amount in work area and how to assign those amount value function module. 
              I need sample program for currency conversion from flat file to function module.  My requirement is based on flat file amount i have to calculate in work area and assign those work area to function module. 
    With Regards,
    Baskaran

    Hi Satish or Baskaran,
    First conform in which format the flat file is present, as abhi mentioned if it is there in notepad
    try to use F.M GUI_UPLOAD as shown below...
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
    FILENAME = 'C:\Desktop\rpf1.TXT'
    TABLES
    DATA_TAB =  ITAB.
    Now loop at ITAB Into Work_area and press the respect currency fields which you want and in the same way
    if the file is in EXCEL format use F.M ALSM_EXCEL_TO_INTERNAL_TABLE
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename = P_FNAME
          i_begin_col = 1
          i_begin_row = 1
        TABLES
          intern = ITAB
    LOOP AT ITAB INTO WA.
    CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
            EXPORTING
              foreign_currency = wa-waers
              local_currency   = wa-waers
               IMPORTING
              local_amount     = tvals-gross.
        ENDIF.
    endloop.
    And as mentioned loop the records into work area and process the currenct field which is present in the
    ITAB according to its field name. And make sure within the loop you call your function module.
    Regards
    VEnk@
    Edited by: Venkat Reddy on Dec 9, 2009 5:51 PM

  • Getting Values from RFC into inputfield

    hi all,
    I want an inputfield with the list of values from an RFC
    like there should be an inputfield in which i can enter my onw value or select a value from combobox like list
    that means a combo box with inputfield is required
    please help
    thanks
    Gaurav

    Hi Gaurav,
    As far as I know there is no UI element provided that fits your requirement.
    Regards,
    Murtuza

  • Getting Return values from RFC function call with visual basic

    Hi,
    I am creating a sample app to connect to a SAP system which call its RFC functions created with ABAP. It was known that the function will return more than 1 return values.
       SAP Function name ==> "ZFMTP_RFC_GET_RESULT"
            Export parameters (to SAP):
                    - Student Name [char 10]         ==> "STUNAME"
                    - Student ID         [char 20]        ==> "STUID"
           Return values (From SAP):
                    - Results [char 10]        ==> "RESULT"
                    - Remarks [char 200]        ==> "REMARKS"
    i have managed to get sample codes for connecting and call a RFC function with vb but they only get a return value. How do i retrieve multiple return values like the above function "RESULT" and "REMARKS"?
    Here's my vb code to accessing the function
            Dim R3 As Object
            Dim FBFunc As Object
            Dim returnFunc As Boolean
            Dim connected As Boolean
            R3 = CreateObject("SAP.Functions")
            R3.Connection.Client = "000"
            R3.Connection.User = "BCUSER"
            R3.Connection.Password = "minisap"
            R3.Connection.Language = "DE"
            R3.Connection.System = "dtsystem"
            R3.Connection.Applicationserver = "xxx.xxx.xxx.xxx" 
            connected = R3.Connection.Logon(0, True)
            If connected <> True Then
                MsgBox("Unable to connect to SAP")
            End If
            FBFunc = R3.add("ZFMTP_RFC_GET_RESULT")
            FBFunc.exports("STUNAME") = "Jonny"
            FBFunc.exports("STUID") = "12345"
            returnFunc = FBFunc.Call() <<== How do i get the return value? or RESULT and REMARKS of the RFC Function?
    thanks alot.
    Edited by: Eugene Tan on Mar 4, 2008 7:17 AM

    Hi Gregor,
    Thanks for the link....i am having some doubts with the codes, hope you can clarify them for me if you know the codes..
    Below is the code snippet.
    Set impReturn = CHPASS_FN.Imports("RETURN")  <<=== is RETURN the standard keyword to get a                                                                                return object?
      expPassword.Value = currpass
      expNewPass.Value = newpass
      expFillRet.Value = "1"
    ''' Call change password function
      If CHPASS_FN.Call = True Then
        outFile.Write (", Called Function")
        Message = impReturn("MESSAGE") <<==== So if i have 3 return values..i just replace with the return                                                               value variable names?
        outFile.WriteLine " : " & Message
      Else
        outFile.Write (", Call to function failed")
      End If
    thanks alot...all your help is very appreciated.

  • How to retrieve multiple values from a DB Adapter to a Web Service

    Hello,
    I'm creating a login WS that receives the username and password and returns the user status, full name and a set of permissions (the number of permissions varies among users).
    In order to do that i've created a DBAdapter that is calling a PL/SQL procedure. This DBAdapter is connected to the login Web Service through a mediator.
    I have two problems:
    1 - I don't know the type of variable that the PL\SQL procedure should return. Like I said I need to retrieve an undefined number of values from a table (user permissions). How can I do this inside a PL\SQL procedure? What kind of structure should i return?
    2 - How can i assign a multiple value variable (the permission variable) in the mediator? Is the mediator going to identify that this is variable is multiple valued and add automatically a for-each statement?
    The Oracle DB version im using is the 11.1.0.7.0 and the Oracle SOA Suite 11.1.1.3.0.
    Thanks in advance,
    Paulo

    Hey guys,
    thanks for your help.
    I've created a userdefined type and sucessfully retrievied from the PL\SQL procedure multiple values. I have also mapped this values with the web service.
    Even though everything's working fine i would like to understand if it is also possible to use the XMLType to return these values. I ask this cause I don't no if by returning a XMLType i can explicitly map the XML elements inside the mediator component.
    If possible what are the main advantages/disavantages between using XMLType and Userdefined Types?
    Paulo.

  • JCo's StatefulServerExample problem (returning a value from RFC call?)

    Hi,
    I'm using JCo3 and want to run StatefulServerExample sample program. I've created the ABAP-side code according to JCo's docs (2 wrappers and report ZJCO_STATEFUL_COUNTER). I'm connecting to SAP CRM. I've successfully runned all other sample programs.
    I've got a problem with receiving data from the JCo server to CRM report. The error is reported on the SAP's side:
    error:          CALL_FUNCTION_WRONG_VALUE_LENG
    description:    Incorrect field length for 'Remote Function Call'.
    error analysis:
    A data error occured when executing a Remote Function Call
    The length of one of the fields is incorrect.
    Length of source field... 1
    Length of target field .. 4
    Data type of field....... 8
    (Data type 0=C, 1=D, 2=P, 3=T, 4=X, 6=N, 7=F, 8=I)
    error is triggered by the call to 'Z_GET_COUNTER' (see code below).
    There is no problem with preceding calls to JCo server which do not return anything.
    I would appreciate any help with this problem!
    Piotr
    Problematic report code:
    *& Report  ZJCO_STATEFUL_COUNTER
    REPORT  ZJCO_STATEFUL_COUNTER.
    PARAMETER dest TYPE RFCDEST.
    DATA value TYPE I.
    DATA loops TYPE i VALUE 5.
    DO loops TIMES.
      CALL FUNCTION 'Z_INCREMENT_COUNTER' DESTINATION dest.
    ENDDO.
    CALL FUNCTION 'Z_GET_COUNTER' DESTINATION dest
      IMPORTING
        GET_VALUE = value.
    IF value <> loops.
      write: / 'Error expecting ', loops, ', but get ', value,
      ' as counter value'.
    ELSE.
      write: / 'success'.
    ENDIF.

    It seems to me that the ABAP code in the example is wrong - it should be INT1 instead of i:
    DATA value TYPE INT1.
    Now it works.

  • Error while testing the Webservice created from RFC enabled function module

    Our client has provided the SAP WSDL URL and We tried to generate stub using AXIS 2 tool from this SAP WSDL URL and got u201Cservice and binding tagu201D missing error.
    It seems that clients SAP wsdl file is having only web service interface information and does not have Access Description i.e service and binding tag information . 
    Is it mandatory to have service and binding tag in SAP wsdl to consume webservice from third party java application ?
    Could you please let us know how to resolve this error?
    <urgency removed by moderator>.
    Thanks ,
    Ranjit
    Edited by: Thomas Zloch on Mar 25, 2011 1:16 PM

    Hi,
    I think you might have received wrong WSDL.
    In transaction SOAMANGER for a WebService you can select:
    Porttype WSDL document
    or
    WSDL document for selected binding or service -> for a concrete binding
    You need to get the second one which contains service and binding information. The first one is just interface description.

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

  • Creating a new message in adapter module

    Hello,
    I already posted the question in this [Thread|Sending Adapter Module to split messages;, but I now create this new topic so you can get points for your answer
    Jan from this thread wrote "I know how to send a new message using a new instance of the Module Processor and using ModuleProcessor.process()" and I'm now searching for a code example how to create a new message from within an adapter module. I think it must be something like [this|http://help.sap.com/saphelp_srm40/helpdata/en/8d/6ad6409ff68631e10000000a1550b0/frameset.htm].
    Regards
    Markus

    Hi Sippy,
    First of all we need to configure the systems. So that we can transfer data from Outbound system to Inbound system.
    Configure an Outbound Process that uses Message Control
    Step 1: Create a new Message Type
    TCode: We 81
    Path: From the Area menu of EDI, choose Development, IDOC Type/ Message
    Step 2: link the IDOC type to the Message Type
    TCode: We 82
    Path: From the Area menu of EDI, choose Development, IDOC Type/ Message
    Step 3: Create a new Process Code
    TCode: We 41
    Path: From the Area menu of EDI, choose Control,Outbound Process COde
    Step 4: Create or Change a Partner Profile
    TCode: We 41
    Path: From the Area menu of EDI, choose IDOC,Partner Profile
    Configure an Outbound Process for Stand-Alone Programs.
    1. Create a new message type
    2. Link the IDOC type to the Message Type
    3. Add the message to the ALE Distribution Model(use BD 64)
    4. Create or change the Partner Profile
    I think this will be helpful for you.
    Reward points if useful.
    Cheers,
    Swamy Kunche

  • Cancel Message in Adapter Module

    Hi,
    I want to set the Status of a message to Canceled from within an Adapter Module. Is this possible?
    The problem I have is with a Mail receiver sending messages with blank attachments. I want the adapter module to check if the attachment is empty, then set the status of the message to cancelled.
    If this isn't possible is there a way of cancelling the message at an earlier stage? I know the File adapter has an option to not create empty files but the mail adapter doesn't.
    Thanks,
    Gareth

    Hi Gareth O´Brien,
    I understand your requirement as, when mail attachment is empty, it should not be sent to mail recepients.
    As far as I know, there is not standard way to do it. You can develop a Java Mapping or Adapter module and raise an error if attachemnt is empty (we cannot set message to canceled state), mail will not be sent with empty attachment.
    Java Mapping is easy to develop and maintian than Adapter Module. Java Mapping API Link1
    Regards,
    Raghu_Vamsee

  • Best approach for RFC call from Adapter module

    What is the best approach for making a RFC call from a <b>reciever</b> file adapter module?
    1. JCo
    2. Is it possible to make use of MappingLookupAPI classes to achieve this or those run in the mapping runtime environment only?
    3. Any other way?
    Has anybody ever tried this? Any pointers????
    Regards,
    Amol

    Hi ,
    The JCo lookup is internally the same as the Jco call. the only difference being you are not hardcoding the system related data in the code. So its easier to maintain during transportation.
    Also the JCO lookup code is more readable.
    Regards
    Vijaya

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

  • 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

  • Accessing a file in Imported Archive from Adapter module

    Hi,
    I am designing a module for File/FTP and Mail adapters. Is it possible to retrieve data from a CSV or TXT file uploaded in the Imported Archive from the Java code in the module? If this is possible, do I use the same approach as accessing the CSV data from the mapping using a UDF? If this is not possible, can you suggest other ways were I can access a CSV or TXT configuration file from an adapter module?
    I would like to avoid using Module key, Parameter name and Parameter value as I would like to make the adapter module generic and the data I will be reading might be too much to be specified in this location. However, I would use the Module key, Parameter name and Parameter value to specify the CSV or TXT filename which the adapter module will be using.
    Thanks in advance for any help that you can provide.
    Regards,
    Elbert

    Imported archives are part of mapping flow and adapter modules are more part of routing. Therefore I don't think imported archive could  be made accessible anywhere outside mapping.
    but my CSV or TXT file would be updated regularly by the developer.
    So were you planning to import this file again and again under imported archive? This doesn't seems to be a good solution when you think about changin Design part in Production environment. It would be better to give access to certain folder to developer to put the file there and access it using some code. You may refer this
    /people/sundararamaprasad.subbaraman/blog/2005/12/09/making-csv-file-lookup-possible-in-sap-xi
    Regards,
    Prateek

Maybe you are looking for

  • Workflow- FI invoices problem

    Dear Folks, I'm now working on a migration project. This is about the FI release invoices. Before the migration, the end users are able to release the invoices through their SAP inbox. After the migration, these endusers had been assigned different S

  • "Home Sharing? No Home Sharing."

    Home Sharing is not working for me. After reading through these discussions, I'd say there's a chance it's not working for you either. What I've done for us, here, is compile a list of helpful trouble-shooting tips that I've copied and pasted from ot

  • Accessing APEX from E-Business Suite 11.5.10

    Hi All - I am brand new to APEX and have basically inherited the program duties b/c the school district that I work for had to cut costs and therefore had to let our consultants go - which means that I need to manage the system with no knowledge.....

  • I get error 23 when trying to restore my iphone 4

    I tried to update my iPhone 4 to the latest software and it got stuck on the store screen...whenever i plug it into itunes it will go through the process up till it says verifying with apple. Then error 23 comes up and I am not able to do anything wi

  • Separate events by date in iPhoto?

    I have one event in iPhoto that covers a few days. Is there any way to "separate" the days in the same event so I know which picture was on what day? I would like to not have to click "show photo info" each time and the "split" feature only seems to