About RFC and BAPI

Hello Masters,
             What Makes the exact difference between RFC and BAPIs. Both can perfom same thing. BAPI uses the RFCs only. Then how can it justify?
Thank you

RFC:
RFC --- > Function module and general will be used to make call to function
sending the function (XI has RFC adapter)
BAPI:
BAPI ---> Other version of RFC (Objected oriented) mostly we will use for Sync
calls (Mostly in XI using proxies we will call BAPI's)
Refer these links for more details:
http://sapabap.iespana.es/sapabap/sap/faq/ale_idocs_bapi.htm
http://www.sap-img.com/fu033.htm
BAPI Vs IDOC - in detail
http://searchsap.techtarget.com/tip/1,289483,sid21_gci824860,00.html
/thread/127699 [original link is broken]
IDOC,RFC,BAPI
Re: When and Why we use BAPI, RFC and IDOC.. in XI
Diff... between  ALE, IDOC, RFC, BAPI, BADI --- Not clear and clarify
idoc and bapi
Difference among  IDOCS,BAPI,RFC?
http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
Differences Between RFC & BAPIS
RFC Vs BAPI
For more details:
refer this thread.
What are idocs, BAPI, RFC?
BAPI is nothing but the Business process programing interface which are standard and stable and these are store in the business object repository.
Standardized programming interface that enables external applications to access business processes and data in an SAP System
RFC is the remote function call which is used to call the function remotely which may be in same system or ather system
its also used communication between SAP systems , between SAP systems ,external systems.
idoc and bapi
Difference among  IDOCS,BAPI,RFC?
http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
Differences Between RFC & BAPIS
RFC Vs BAPI
http://www.sap-img.com/abap/ale-bapi.htm
RFC means remote function call,
these are the function modules which can help u to access across the sap and from sap to third party front end,
BAPI means Business application programing interface which is the RFC enable function module and uses in OOPS concept.
RFC ,IDoc and BAPI
ALE/ IDOC
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.sappoint.com/abap/ale.pdf
http://www.sappoint.com/abap/ale2.pdf
http://www.sapgenie.com/sapedi/idoc_abap.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
http://www.allsaplinks.com/idoc_sample.html
http://www.sappoint.com/abap.html
http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
This is a short description of BAPI and RFC
BAPI stands for Business Application Programming Interface. It is a library of functions that are released to the public as an interface into an existing SAP system from an external system.
RFC is the protocol used to call functions in an R/3 system by a caller external to R/3 or to call programs external to R/3 from an R/3 system.

Similar Messages

  • WAD Call RFC and BAPI

    Dear all,
         I have a problem about using WAD call RFC and BAPI get BW data,who can help me?

    HI Bill,
    Please give details of what you are trying to do. 
    Brian

  • RFC AND BAPI

    Hi,
    Difference b/w the BAPI and RFC.

    Dear Bhagavan,
    Go through the following threads
    BAPI and RFC
    What is the difference between RFC and BAPI?.
    RFC AND BAPI
    BAPI& RFC
    Best Regards,
    Srikanth
    Reward the useful answers and you will get
    ONEPOINTyourself

  • Unable to differentiate between RFC and BAPI

    Hi guys,
        Nowadays I am studying the above concepts:BAPI and RFC.  But I am confused by the two.
    So far I learnt that the two are both techniques used to realize communication between SAP and external
    systems,and frequently via Remote-enabled Function.  
       My confusion is the distinctions between the two. Would you please do me a favor? Tks

    Hi   Alex,
    Just check it out these answers.
    Remote Function Call :
    RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems.
    RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.
    RFCs manage the communication process, parameter transfer and error handling.
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    BAPI
    BAPI stands for Business API(Application Program Interface).
    A BAPI is remotely enabled function module
    ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access.
    Also they are part of Businees Objest Repository(BOR).
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects.
    You create business objects and those are then registered in your BOR (Business Object Repository)
    which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA.
    In this case u only specify the business object and its method from external system
    in BAPI there is no direct system call. while RFC are direct system call.
    Some BAPIs provide basic functions and can be used for most SAP business object types.
    These BAPIs should be implemented the same for all business object types.
    Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs.
    Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
    another points,
    BAPI is object oriented. It is placed under Business objects as methods.
    RFC is just a Function module or a call.
    RFC: is just a FM that can be called from remote system too(destination defined in transaction SM59).
    BAPI: Business Application Programming Interface
    A BAPI is a method of a business object defined in the Business Object Repository (BOR). For example, in the BOR, you can find a business object called SalesOrder, which conceptually represents a sales order in the system. A business object typically has several methods that can be used to read, create, modify a particular instance of the business object, or list instances of the business object matching certain selection criteria. These methods are BAPIs.
    Technically, a BAPI is implemented using a RFM. But, unlike the non-BAPI RFMs, a BAPI is usually well documented, has nicer parameter names, and is supported by SAP for several SAP software releases. You can browse Business objects and BAPIs in the SAP system using transaction BAPI.
    Thanks
    Eshwar
    *Rewards if useful*

  • Preference between rfc and bapi

    Hi
    If rfc and bapi are available for the similar task to implement ...........as a XI consultant which one you will suggest ?? If so could you please explain me the reason for the same ??
    thanks
    kumar

    Hi,
    From an XI Implementation perspective,
    BAPI's do not have a implict COMMIT associated with them and so , in the receiver RFC adapter you need to provide the COMMIT HANDLING FOR BAPI CALLS. This option was avilable from SP 14.
    Prior to that you had to writter a warpper RFC and import it into XI and use this instead of the BAPI.
    The RFC's conatin an Implicit commit so no such issue here.
    regards
    Bhavesh

  • Aout RFC and BAPI

    Hi Eperts,
        Would you please tell me the difference between the two,because I learnt that BAPI is a kind of RFC,I'm not sure whether it is right or not.

    Hi,
    RFC Vs BAPI
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. 
    In this case you only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.  It is not  possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access. 
    RFC is the protocol used by SAP for remote communication, that is, for communications between remote (independent) systems. RFC is used for communications between two independent SAP systems, or for communications between an SAP system and a non-SAP system, such as an external application. It can also be used for communications between modules on the same system. Using the RFC interfaces you can extend the functionality of R/3 applications from an external program.
    Reward if it useful...
    Lakshmi.

  • Are all RFCs and BAPIs automatically exposed as web services?

    Hello,
    Our product helps business users exchange data with SAP. We use standard RFCs and BAPIs to communicate with SAP. This is a .NET application although my question is not specific to .NET.
    It seems SAP obsolete their .NET connector in near future. The emphasis is on web services. This is a great move. We can simply drop using the .NET connector and start using the web services. However, I have a few doubts:
    1. RFCs and BAPIs are automatically exposed for remoting. When the customer installs our application, it just works out of the box. Customers do not have to make any configuration changes to SAP to expose RFCs and BAPIs.
    In the new world, are all RFCs and BAPIs automatically exposed as web services or one has to go through each RFC/BAPI and expose it explicitly?
    2. Is there a comprehensive WSDL schema available anywhere for all the RFCs/BAPIs?
    3. Are there any other web services (besides RFCs/BAPIs) that SAP Netweaver exposes? Where can I get more information?
    Thank you in advance for your help.
    Regards,
    Pradeep

    Darryl,
    Thank you for your help or at least trying to help me. However, you left me with more questions than answers:-(.
    1. "Old" does not mean "bad."  Each RFC/BAPI serves a specific function. If some RFC is being obsoleted, there must be a replacement documented somewhere. Is there one?
    2. I can look into SE80 (and other transactions) to see what is exposed. However, what I need to understand is what is SAP's stance on exposing standard web services.
    Can others please share your thoughts?
    Regards,
    Pradeep

  • Exception handling in rfcs and bapis

    exception handling in rfcs and bapis

    Hi Jayakrishna,
    In General , there are non execptions in BAPIs, because of the reason, that the exception raised in a SAP envoronment may not mean anything for a non SAP initiator. All the exception situations would only fill the return table(TYpe BAPIRET2 or something like that). If you read that table after the call to the bapi, you can understand what has gone wrong.
    Regards,
    Ravi

  • Bapi doubt ...difference rfc and bapi

    Plese give me the following information.
    1) wt is the difference between BAPIRETURN, BAPIRET1 and BAPIRET2?
    2) wt is the diff. between an RFC-enabled fm and BAPI ?

    Hi again,
    1. YES, Definitely it will behave like BAPI.
    2. The sap concept of
       naming function modules (related to business object)
       and naming them as BAPI*
       is JUST FOR IDENTIFIECATION PURPOSE,
               and nothing else.
      We can give ANY NAME.
    regards,
    amit m.
    Message was edited by: Amit Mittal

  • Can you read Reports and Tables through RFCs and BAPIS?

    Is there any way to read established reports and tables through RFC or BAPI function calls?  We have a middleware that can execute various BAPIs and RFCs.  I see a few promising ones: RFC_READ_REPORT, but no examples anywhere what the parameters needed are for the inputs. 

    Hello Scott,
    Check below FMs for reading tables and programs.
    Tables : RFC_READ_TABLE
    Program : RFC_READ_DEVELOPMENT_OBJECT
    Please note that for reading program using RFC_READ_DEVELOPMENT_OBJECT , lines in program should not exceed 72 chars else FM will throw dump(READ_REPORT_LINE_TOO_LONG).
    Program code will appear in table QTAB which is 72 chars wide.

  • Accessing RFCs and BAPIs from enterprise java beans

    Hello folks,
         my question is concerning comunication between EJBs and RFCs. I want to develop a simple session bean that connects to a R/3 back-end, calls a RFC then returns some data, let's say, an example of this could be a list of employees from BAPI_EMPLOYEE_GETDATA.
         Ok, by using a web dynpro and adaptive RFC my works could be very very easy, but I'd like to test this way: session (stateless) EJB -> RFC. Can I:
    *     use JCO.ClientService with a non-portal SAP WAS?
    *     use embedded JRA (SAP Library stated "The SAP JRA is an add-on for the SAP JCo. If you use      the SAP Web AS, the SAP JRA is installed automatically with the SAP JCo.", but I found      nothing so in Connector Container Service ...)
    *     install and configure JRA by myself?
    I'm working on a SAP WAS 6.40 Sneak Preview (Java only), and finding a path for easily integrate SAP WAS developed ejbs and external business system. SAP Library suggest to "obtain the JCo connection through the connection framework": is it related to JRA, JCA and SAP Resource Adapter?
    Thank you
    Pasquale

    hello
    i´ve written a simple stand alone client to test jra connection to a sap system
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.Properties;
    import javax.resource.cci.Connection;
    import javax.resource.cci.ConnectionFactory;
    import javax.resource.cci.Interaction;
    import javax.resource.cci.MappedRecord;
    import javax.resource.cci.RecordFactory;
    import javax.resource.cci.ResultSet;
    import javax.resource.spi.ManagedConnectionFactory;
    import com.sap.mw.jco.jra.*;
    public class Example
         public void exampleTest()
              Properties properties = new Properties();
              Connection   connection=null;
              try
                   properties.load(new FileInputStream ("props.txt"));
              catch(Exception e)
                   System.out.println("properties could not be loaded");
                   e.printStackTrace();
              try
                   ManagedConnectionFactory mf = new JRA.ManagedConnectionFactoryImpl(properties);
                   ConnectionFactory cf = (ConnectionFactory)mf.createConnectionFactory();
                   connection = cf.getConnection();
                   RecordFactory rf = cf.getRecordFactory();
                   Interaction interaction = connection.createInteraction();
                   MappedRecord request      = rf.createMappedRecord("STFC_STRUCTURE");
                   // Since the STFC_STRUCTURE does not create any new records
                   // in the data base, you do not need to start a trancation here.
                   // fill out a structure with dummy data
                   MappedRecord importstruct = (MappedRecord)request.get("IMPORTSTRUCT");
                   importstruct.put("RFCFLOAT","1.23456");
                   importstruct.put("RFCCHAR4","ABCD");
                   importstruct.put("RFCINT1", "11");
                   importstruct.put("RFCDATE", "2001-08-24");
                   // fill out a table with dummi data
                   ResultSet rfctable = (ResultSet)request.get("RFCTABLE");
                   for (int i = 0; i < 10; i++)
                        rfctable.moveToInsertRow();
                        rfctable.updateString("RFCCHAR4","EFGH");
                        rfctable.updateInt("RFCINT1", i);
                        rfctable.updateString("RFCDATE", "1961-08-24");
                        rfctable.updateDouble("RFCFLOAT",1.65432);
                        rfctable.insertRow();
                   // call defined RFC and cast the result to the optional ResultMap interface
                   ResultMap response = (ResultMap)interaction.execute(null,request);
                   // release resources
                   interaction.close();
                   // create an xml file from the output of the called RFC
                   // the optional interface ResultMap offers additional methods, like writeXML
                   FileOutputStream os = new FileOutputStream(response.getRecordName() + "_Structure_from_NotManaged_Example.xml");
                   response.writeXML(new java.io.OutputStreamWriter(os,"UTF-8"),true);
                   os.close();
                   ResultSet resultSet = (ResultSet)response.get("RFCTABLE");
                   System.out.println("Name of the table is: "+resultSet.getRecordName());
              catch (Exception ex)
                   ex.printStackTrace();
                   System.exit(1);
              finally
                   if (connection != null)
                        try
                             connection.close();
                        catch(Exception exception1)
         public static void main(String[] args)
              Example anExample = new Example();
              try
                   anExample.exampleTest();
              catch(Throwable t)
                   t.printStackTrace();
    the property file looks like this:
    jco.client.client=010
    jco.client.user=user
    jco.client.passwd=pass
    jco.client.ashost=your host
    jco.client.sysnr=00
    but this only an example for a standalone test client
    to use jra inside j2ee first deploy the connector with the settings you need and then get a connection to it using jndi
    i don´t have an example at hand for using it inside an ejb or servlet, but if you need one i'll have a look

  • About RFC and R/3

    Dear experts,
    I am using java along with JCO to connect to SAP and retrieve data from a particular table after every 10secs.Data get retrieved in microsecs.Next cycle comes after another 10 secs and this way
    process continues.Mean data gets retrieved , then 10secs break then once again data gets retrieved and so on........infinite loop..
    However i haven't experience any problem so long.But still i want to confirm if this could be
    causing any extra overheads on SAP R/3 server.
    Thanx in advance..

    Hi Adiyata
    No it should cause any overheads in SAP server .
    But a good idead can be instead of running it after every 10 seconds ,if possible try to pick up all the records in one shot and them againg pick it up after a gap of few hrs coz i do believe that your SAP system might be talking to some other systems also.
    Regards
    Neha

  • What is the diffrence between BAPI and RFC and business object

    Hi Experts,
    Can anybody tel me what is the diffrence between RFC and BAPI , and also what is ther relation with business object?
    Thanx in advance.
    Nilesh Hiwale

    Hi,
    BAPI's are associated with Business Objects and also they are RFC enabled.
    But RFC's are the FM's which can be called from external systems, those FM's can be used in many places based on the applications..
    Check these Links
    whats the difference between BAPI and RFC??
    Diff. Between BAPI and RFC
    Regards
    Kiran

  • When and Why we use BAPI, RFC and IDOC.. in XI

    Hi,
            Could any one tell me why we some time use BAPI, and some times use RFC and some times use IDOC while communicating with the SAP systems.
    Is there any differences while using the same.
    regards,
    Sunil

    Sunil,
    RFC and BAPI are same as per the technical point of view both are remote enabled function module..
    BAPI is provided by SAP while RFC is created by a developer..
    IDoc is another proprietary technology of SAP for exchnaging messages .
    Difference lies here :
    1. For RFC/BAPI you need to use RFc adapter
    while for IDoc you need to use IDoc adapter..
    2. For RFC you need to create RFC destinations not for Idoc
    3. For Idoc you also need to manage Partners Profiles..inn R3..
    These are few differences in using RFC/BAPI and Idoc...not the only ones..
    Feel free for any clarification..
    Regards,

  • Change request and bapi

    3) It seems there are two serial numbers come when we change an object what and why are these serial objects ??
    4) difference between RFC and BAPI

    Hi
    You will get a TASK and a Request when you create/change a object
    Task is under the Request
    objects are stored in Tasks
    A request can have any number of tasks
    Have to release the tasks first and then release the request to transport the object
    RFC (Remote Function Call) RFC is basically used to communicate witha dofferent system, Could be from R3 to R3 or may be from NON R3 to R3.
    and is similar to the general SAP fun module: except that in the attributes you click the radio button: RFC enabled;
    and you will be passing an Import parameter DESTINATION to it.
    Other code and usage will be similar to any fun module;
    Go through RFC_READ_TABLE and you will get good idea about RFC.
    Have a look at any fun module in SE37 to understand better about the different components of Fun modules;
    Refer this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/22/042518488911d189490000e829fbbd/frameset.htm
    BAPI
    what is BAPI?
    BAPI stands for Business API(Application Program Interface).
    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
    The following standardized BAPIs are provided:
    Reading instances of SAP business objects
    GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
    The BAPI GetList() is a class method.
    GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
    The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
    Create( ) and CreateFromData! ( )
    The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
    Change( )
    The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
    Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
    The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
    Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
    Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
    BAPI-step by step
    http://www.sapgenie.com/abap/bapi/example.htm
    list of all bapis
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    for BAPI's
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sappoint.com/abap/bapiprg.pdf
    http://www.sappoint.com/abap/bapiactx.pdf
    http://www.sappoint.com/abap/bapilst.pdf
    http://www.sappoint.com/abap/bapiexer.pdf
    http://service.sap.com/ale
    http://service.sap.com/bapi
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
    http://www.planetsap.com/Bapi_main_page.htm
    http://www.topxml.com/sap/sap_idoc_xml.asp
    http://www.sapdevelopment.co.uk/
    http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
    Also refer to the following links..
    www.sappoint.com/abap/bapiintro.pdf
    www.sap-img.com/bapi.htm
    www.sap-img.com/abap/bapi-conventions.htm
    www.planetsap.com/Bapi_main_page.htm
    www.sapgenie.com/abap/bapi/index.htm
    Checkout !!
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://techrepublic.com.com/5100-6329-1051160.html#
    http://www.sap-img.com/bapi.htm
    http://www.sap-img.com/abap/bapi-conventions.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    u can check the below the material also
    Example Code
    U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
    U can find these parameters for a particular condition type in table KONV.
    *& Form saveTransactionJOCR
    text
    --> p1 text
    <-- p2 text
    FORM saveTransactionJOCR .
    data: salesdocument like BAPIVBELN-VBELN,
    order_header_inx like bapisdh1x,
    order_header_in like bapisdh1,
    return type standard table of bapiret2 with header line,
    conditions_in type standard table of bapicond with header line,
    conditions_inx type standard table of bapicondx with header line,
    logic_switch like BAPISDLS,
    step_nr like conditions_in-cond_st_no,
    item_nr like conditions_in-itm_number,
    cond_count like conditions_in-cond_count,
    cond_type like conditions_in-cond_type.
    salesdocument = wa_order_information-VBELN.
    LOGIC_SWITCH-COND_HANDL = 'X'.
    order_header_inx-updateflag = 'U'.
    conditions
    clear conditions_in[].
    clear conditions_inx[].
    clear: step_nr,
    item_nr,
    cond_count,
    cond_type.
    step_nr = '710'.
    item_nr = '000000'.
    cond_count = '01'.
    cond_type = 'ZCP2'.
    CONDITIONS_IN-ITM_NUMBER = item_nr.
    conditions_in-cond_st_no = step_nr.
    CONDITIONS_IN-COND_COUNT = cond_count.
    CONDITIONS_IN-COND_TYPE = cond_type.
    CONDITIONS_IN-COND_VALUE = 666.
    CONDITIONS_IN-CURRENCY = 'EUR'.
    append conditions_in.
    CONDITIONS_INX-ITM_NUMBER = item_nr.
    conditions_inx-cond_st_no = step_nr.
    CONDITIONS_INX-COND_COUNT = cond_count.
    CONDITIONS_INX-COND_TYPE = cond_type.
    CONDITIONS_INX-UPDATEFLAG = 'U'.
    CONDITIONS_INX-COND_VALUE = 'X'.
    CONDITIONS_INX-CURRENCY = 'X'.
    append conditions_inx.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
    SALESDOCUMENT = salesdocument
    ORDER_HEADER_IN = order_header_in
    ORDER_HEADER_INX = order_header_inx
    LOGIC_SWITCH = logic_switch
    TABLES
    RETURN = return
    CONDITIONS_IN = conditions_in
    CONDITIONS_INX = conditions_inx
    if return-type ne 'E'.
    commit work and wait.
    endif.
    ENDFORM. " saveTransactionJOCR
    Bdc to Bapi
    The steps to be followed are :
    1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
    [for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
    2. Create a Z program and call the BAPi (same as a Funtion module call).
    2. Now, if you see this BAPi, it has
    -> Importing structures.
    eg: SALESDOCUMENT: this will take the Sales order header data as input.
    -> Tables parameters:
    eg: ORDER_ITEM_IN: this will take the line item data as input.
    Note :
    Only specify fields that should be changed
    Select these fields by entering an X in the checkboxes
    Enter a U in the UPDATEFLAG field
    Always specify key fields when changing the data, including in the checkboxes
    The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
    Maintain quantities and dates in the schedule line data
    Possible UPDATEFLAGS:
    U = change
    D = delete
    I = add
    Example
    1. Delete the whole order
    2. Delete order items
    3. Change the order
    4. Change the configuration
    Notes
    1. Minimum entry:
    You must enter the order number in the SALESDOCUMENT structure.
    You must always enter key fields for changes.
    You must always specify the update indicator in the ORDER_HEADER_INX.
    2. Commit control:
    The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
    For further details... refer to the Function Module documentation for the BAPi.
    Bapi to VB(Visual Basic)
    Long back I had used the following flow structure to acheive the same.
    Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
    my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
    You need to have com4abap.exe
    If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
    else refer OSS note 419822 for installation of com4abap
    after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
    for setting up com4abap and rfc destination please refer to the documentation for com4abap.
    Invoke NEW DCOM session
    call function 'BEGIN_COM_SESSION'
    exporting
    service_dest = service_dest "(this will be a RFC destination created in SM59)
    importing
    worker_dest = worker_dest
    exceptions
    connect_to_dcom_service_failed = 1
    connect_to_dcom_worker_failed = 2
    others = 3.
    call function 'create_com_instance' destination worker_dest
    exporting
    clsid = g_c_clsid
    typelib = g_c_typelib
    importing
    instid = g_f_oid
    exceptions
    communication_failure = 1 message g_f_msg
    system_failure = 2 message g_f_msg
    invalid_instance_id = 3
    others = 4.
    call function 'com_invoke' destination worker_dest
    exporting
    %instid = g_f_oid
    %method = 'UpdatePDF'
    sntemp = g_v_const_filent
    snsysid = sy-sysid
    snflag = 'N'
    tables
    rssaptable = g_t_pdfdetail1
    %return = g_t_pdfdetail1 "t_test
    exceptions
    communication_failure = 1 message g_f_msg
    system_failure = 2 message g_f_msg
    invalid_instance_id = 3
    others = 4.
    then close the com session , using
    FM delete_com_instance
    FM END_COM_SESSION
    Reward points for useful Answers
    Regards
    Anji

Maybe you are looking for

  • Button functionality

    Hello, I have an input form and defined two buttons like mentioned in this thread: Regarding Buttons Functionality in INPUT FORM I can call two different function modules. In my case I mant to call the same function module but with different paramete

  • How to put detail records in fixed formÉ

    Hi, I am trying to build a crystal report based on an existing printed form. The form includes elements that look like the following: Activity Hot Oiler - 4 mbtu     7mbtu Pressure Pumping - 5K   10K   15K Travel - 5K   10K   15K Standby - 5K   10K  

  • How do I print hundreds of mail messages at once?

    I would like to print a huge archive of mail messages. Is there a way to do this without going through it one at a time?

  • BAPI_GOODSMVT_CREATE  for Processing a Goods Reciept for a Delivery

    We have a requirement to use the Goods Movement Create BAPI to create Goods Reciepts for deliveries since it mimics MIGO.  Problem is that we cannot get this BAPI working to Goods Reciept our Deliveries... Has anyone used it for Deliveries? What data

  • How to copy exitsitng extracter into another new extracter?

    Hello, Please some one can tel me how to copy the existing  extracter into another new extracter. I have requirment as below Currect me if i am wrong ,need to enhance the existing extracter and add some new fields,and need to include some masterdata