BAPI and BAPI Wrapper

Hi All,
I would like to know the difference between a BAPI and a BAPI Wrapper in detail.
I would also like to know the procedure to create the various types of BAPI Wrappers- Getlist, GetDetail, Create, Modify and Delete.
regards,
Sunil

Hi Sunil,
Conceptually, BAPIs and BAPI wrappers are the same. BAPI wrappers, like BAPIs also must have a standard interface. THey are also RFC enabled FMs and like BAPIs they can comprise of the backend applciation business logic. They can also comprise of calls to Web services.
You can easily create BAPI wrappers - GETLIST, GETDETAIL, CREATE, MODIFY and DELETE from the DOE workbench (SDOE_WB transaction) using the BAPI wrapper wizard, available under the Utilities menu.
Once you create the BAPI wrappers, you can compare them with BAPIs and you will see that they are the same. Of course this is under the assumption that you are using MI 7.1.
You do not need specific OO knowledge for creating BAPI Wrappers.
Regards,
Wenonah
Edited by: Wenonah Jaques on May 9, 2008 7:44 AM

Similar Messages

  • IDOC -to -BAPI -to -BAPI scenario

    Hi ,
       my scenario is   IDOC - to - BAPI - and BAPI(Response) -to - BAPI (Req) .
    I think a bit confusion  . Actually I'm getting the data from  MDM system through an IDOC  into XI system  and I want to post this data into an ECC system by using RFC. so, up to this level scenario is simple IDOC - to - RFC. but  i want to post the RFC response message to MDM system  . for posting this reponse in MDM system they created a simple BAPI and  that BAPI will post the data into a ZTABLE in MDM system . so  i want to pass the BAPI(ECC system) response message to  BAPI(MDM  system).
    So, please suggest me  the steps and how can we achive this..
    Because for creating the Out bound interface as synchronous  system is not accepting one IDOC message and and one BAPI message.
    Regards
    Jain

    Hello,
    You can achieve this using BPM
    Async Rec - transfortm  - sync send (Req/Response)- transform - send response
    Regards,
    Sreenivas.

  • 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

  • Difference between BAPI and RFC?

    Difference between BAPI and RFC?
    also where to use BAPI and where to use RFC?

    Hi,
    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.
    Regards,
    Prakash

  • Diff b/w BAPI and Function Module.

    What is the difference between BAPI and Function Module....
    By Interface programming do we mean posting data thru  BAPI,BDC....

    Hi Alex,
    BAPI: Standard Interface in the R/3 system that allows the system to communicate with components of other business suites.
    FM: These are the procedures that are defined in the Function Groups and can be called from any ABAP Program. FM allow you to encapsulate and reuse global functions int he R/3 system.
    The main basic difference between BAPI and FM are
    1) All BAPIs are FM but not all FMs are BAPIs
    2) BAPIs are remote enabled
    3) BAPIs interface will not have a changing and exceptions. They can not be used to have use dialog.
    Interface programs can post data to SAP either through a BDC, BAPI, IDOC etc. It depends on the type of requirement.
    Hope this solves your question.
    Enjoy SAP
    Rajasekhar

  • Bapis and function modules

    Hi all,
    I need bapis and standard function modules used for shipment change and transportation . could any one of you give me.
    Thanks

    pls try this bapis
    BAPI_OUTB_DELIVERY_CHANGE
    BAPI_SHIPMENT_CHANGE
    it will work

  • Required help on Function Modules and Bapis

    Web portal publishing of ERS invoice letters. This involves modification in the BAPI screens to show the invoice PDF instead of printing??
    can anyone help me in fixing this issue.

    hi Anjaneyulu,
    open the t-code --> and go to menu system->status-->select the program and open the program-->
    selct the tree structure----in the left side the includes screen and function module everthing will show..
    or
    open the t-code --> and go to menu system->status-->select the program and open the program-->
    go to attributes and select the Package..
    next----
    go to se80--> enter the package --> and dispalay it shows the list of Program , include transaction function modules and bapi's under the pakage
    Regards,
    Prabhudas

  • Function modules and BAPIs for a transactio code

    Hi friends,
    How i can find  the List of function modules and BAPIs being used for a particular transaction code?
    for example: I would like to find List function modules and BAPIs being used for the Transaction code
    "FBRA"(Reset cleared items)?
    Any sort of help on this will be helpful.
    Thanks,
    Punjaala

    hi Anjaneyulu,
    open the t-code --> and go to menu system->status-->select the program and open the program-->
    selct the tree structure----in the left side the includes screen and function module everthing will show..
    or
    open the t-code --> and go to menu system->status-->select the program and open the program-->
    go to attributes and select the Package..
    next----
    go to se80--> enter the package --> and dispalay it shows the list of Program , include transaction function modules and bapi's under the pakage
    Regards,
    Prabhudas

  • List of Questions on BAPI and OOPs

    Hi All,
       I am new to the OOPs and BAPI's.can any one gives me complete idea on below questions by providing good examples.
    1) Importance of the class, Interface type, Object and Instance ?
    2) Why we need oops concepts since we are using normal process successfully, i mean with out oops also ?
    3) functionality of BAPI ?
    4) Difference between COMMIT WORK and BAPI_TRANSACTION_COMMIT ?
    5) Why COMMIT WORK wont useful for BAPI's ?
    6) If you give me good source code to understand the concepts of class, Interface type, Object and Instance?
    7) In real time situations, do we need to create classes or in SAP we will use only existed bapis?
    8) The process of creating customized BAPI's [entire scenario]
    Since i asked lot of questions in one thread, i decided to give rewards even if you provide me solution for any of the above.
    Thanks
    Jaya

    Hi Jaya,
    Answer 1. Class is a template for creating objects. Object can also be called as instance.
    Interfaces allow you to use different classes in a uniform way (polymorphism).
    Answer 2. Normal abap is a procedural programming where as by using abap objects we can achieve object oriented programing.
    Answer 6. Source code:
    In below code i have created a interface and a class which is implementing the interface. I have declared a reference variable of type interface and created a object. Then i have called a method.
    REPORT  ZABAPOBJECTS_INTERF.
          INTERFACE I1
    INTERFACE I1.
      METHODS METH1.
    ENDINTERFACE.                    "I1
          CLASS C1 DEFINITION
    CLASS C1 DEFINITION.
      PUBLIC SECTION.
        METHODS: METH2.
        INTERFACES: I1.
    ENDCLASS.                    "C1 DEFINITION
          CLASS C1 IMPLEMENTATION
    CLASS C1 IMPLEMENTATION.
      METHOD I1~METH1.
        WRITE: / 'This is a method one'.
      ENDMETHOD.                                                "I1~METH1
      METHOD METH2.
        WRITE: / 'This is a method two'.
      ENDMETHOD.                                                "METH2
    ENDCLASS.                    "C1 IMPLEMENTATION
    START-OF-SELECTION.
      DATA : REF1 TYPE REF TO I1.
      CREATE OBJECT REF1 TYPE C1.
      CALL METHOD REF1->METH1.
    Question 7: Yes we need to create a class but most probably we use the existing classes.
    Regarding BAPi's go through the below links,
    http://www.sapgenie.com/abap/bapi/example.htm
    http://www.sapdevelopment.co.uk/bapirfc/bapirfchome.htm
    Regards,
    Azaz Ali.

  • BAPI and screen checks

    Hello,
    The scenario is like this.
    F-02 is used to post a document. There is a field XREF2 (12 chars) to which a search help is assigned. This field when used in F-02 does not accept other values other than the ones provided by search help.
    Now, when I use BAPI_ACC_GL_POSTING_POST I can assign whatever I want to XREF2, post the document and it will bypass the screen checks storing any value in this field.
    I could take the table used by search help and check the values myself, the problem is it might be changed anytime(a different table might be assigned to search help for example), as well as number of fields with attached search helps may vary.
    So I'm interested whether it is possible to perform screen field checks for the BAPI somewhat automatically ?
    Thanks in advance.

    Well, in F-02 there are additional checks on the fields. A search help which only allows entries from table ZXXXX to be typed in field XREF2. BAPI does not check it and allows to enter values which are not verified against table ZXXXX. Thus the behavior is different - F-02 limits set of allowed entries and BAPI doesn't. I wanted both to behave the same way(limiting entries) but from the first response I believe it can't be done automatically.
    For now I have a partial solution  - using F4IF_FIELD_VALUE_REQUEST to fetch search help entries for field BSEG-XREF2 and validate data before I pass it to BAPI.

  • Interface between ESS front end and  BAPI'S

    Hi,
    Can anyone tell me how the field mapping is done between ESS portal frontend to the corresponding field in BAPI FUNCTION MODULE.How it will call BAPI and return the value tothe front end.
    Thanks,
    Deepthi.

    check this Floor plan Manager http://help.sap.com/saphelp_erp2005/helpdata/en/b4/139525380149a49c8402e22700e4ba/frameset.htm .this is
    the architecture on which every application is built in ESS.
    it is having three components
    1.Business Component-which interacts with the backend
    2.Visual Component---front end display
    3.Configuration component--talks about component
    Model will be created in the Business component that interacts with the backend and fetches the data.
    check this link to know more about adaptive RFC model used to interact with the backend
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/49f2ea90-0201-0010-ce8e-de18b94aee2d#15
    reward points if helpful

  • Usage of update-bapi and getdetail-bapi within one view

    Hello,
    i'm a student and i'm new to webdynpro and abap. Im trying to get data through a bapi into some screens and want to update some of these inputfields back through an update-bapi.
    I get all the needed data by a getdetails-bapi  and can show the data within binded inputfields, but how could i get the infos about which field was changed and how could i implement an update through the update-bapi?
    It is possible, that a view with two inputfileds gets the data through the getdetails-bapi and after a change in this fields there will be an update through a update-bapi, after pushing a button?
    Could you give me an example code, or could you explane me a way for implementing these?
    Thanks for your help!
    John

    Hi John,
    changes made at Contexts are stored in a table WDR_CONTEXT_CHANGE_LIST. So you can retrieve the old and new values from the table.
    Please follow the below steps :
    1. Create a context node (Ex:Changes) with dict.str wdr_context_change.
    2. Then create one subnode under Changes ex(details) with two attributes old_value and new_value with the type of string.
    3. Then write the below code at any button action.
    DATA: l_ref_componentcontroller TYPE REF TO ig_componentcontroller .
        DATA: l_changes                 TYPE        wdr_context_change_list,
              l_subnode                 type ref to if_wd_context_node,
              l_subnodedata             type if_USERLOG=>element_details.
        field-symbols: <change> type wdr_context_change,
                       <new>    type data,
                       <old>    type data.
        l_ref_componentcontroller =   wd_this->get_componentcontroller_ctr( ).
        l_changes = l_ref_componentcontroller->get_changes( ).
        data: l_node type ref to if_wd_context_node.
        l_node = wd_context->get_child_node( 'CHANGES' ).
        l_node->bind_table( l_changes ).
        loop at l_changes assigning <change>.
          if <change>-old_value is not initial and <change>-new_value is not initial.
            l_subnode = l_node->get_child_node( index = sy-tabix name = 'DETAILS' ).
            assign <change>-new_value->* to <new>.
            assign <change>-old_value->* to <old>.
    *        l_subnodedata-new_value_string = cl_wdr_conversion_utils=>to_string( value = <new> ).
    *        l_subnodedata-old_value_string = cl_wdr_conversion_utils=>to_string( value = <old> ).
             l_subnodedata-new_value_string = <new>.
            l_subnodedata-old_value_string = <old>.
    *        l_subnodedata-new_value_string = 'AC'.
    *        l_subnodedata-old_value_string = 'CD'.
            l_subnode->bind_structure( l_subnodedata ).
           endif.
          endloop.
    So now your context has the changed records.
    Thanks.

  • Reading XML file using BAPI and then uploading that xml file data into SAP

    I am getting a xml file from Java server. I need to take
    data from this file using BAPI and need to upload into SAP using SAP.
    Please tell me how to read XML files using BAPI's.

    <b>SDIXML_DATA_TO_DOM</b> Convert SAP data (elementary/structured/table types) into DOM (XML
    <b>SDIXML_DOM_TO_XML</b>  Convert DOM (XML) into string of bytes that can be downloaded to PC or application server
    <b>SDIXML_DOM_TO_SCREEN</b> Display DOM (XML)
    <b>SDIXML_DOM_TO_DATA</b>
    data: it_table like t001 occurs 0.
    data: l_dom      TYPE REF TO IF_IXML_ELEMENT,
          m_document TYPE REF TO IF_IXML_DOCUMENT,
          g_ixml     TYPE REF TO IF_IXML,
          w_string   TYPE XSTRING,
          w_size     TYPE I,
          w_result   TYPE I,
          w_line     TYPE STRING,
          it_xml     TYPE DCXMLLINES,
          s_xml      like line of it_xml,
          w_rc       like sy-subrc.
    start-of-selection.
      select * from t001 into table it_table.
    end-of-selection.
    initialize iXML-Framework          ****
      write: / 'initialiazing iXML:'.
      class cl_ixml definition load.
      g_ixml = cl_ixml=>create( ).
      check not g_ixml is initial.
      write: 'ok'.
    create DOM from SAP data           ****
      write: / 'creating iXML doc:'.
      m_document = g_ixml->create_document( ).
      check not m_document is initial.
      write: 'ok'.
      write: / 'converting DATA TO DOM 1:'.
      CALL FUNCTION 'SDIXML_DATA_TO_DOM'
        EXPORTING
          NAME               = 'IT_TABLE'
          DATAOBJECT         = it_table[]
        IMPORTING
          DATA_AS_DOM        = l_dom
        CHANGING
          DOCUMENT           = m_document
        EXCEPTIONS
          ILLEGAL_NAME       = 1
          OTHERS             = 2.
      if sy-subrc = 0.  write  'ok'.
      else.             write: 'Err =', sy-subrc.
      endif.
      check not l_dom is initial.
      write: / 'appending DOM to iXML doc:'.
      w_rc = m_document->append_child( new_child = l_dom ).
      if w_rc is initial.  write  'ok'.
      else.                write: 'Err =', w_rc.
      endif.
    visualize iXML (DOM)               ****
      write: / 'displaying DOM:'.
      CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
        EXPORTING
          DOCUMENT          = m_document
        EXCEPTIONS
          NO_DOCUMENT       = 1
          OTHERS            = 2.
      if sy-subrc = 0.  write  'ok'.
      else.             write: 'Err =', sy-subrc.
      endif.
    convert DOM to XML doc (table)     ****
      write: / 'converting DOM TO XML:'.
      CALL FUNCTION 'SDIXML_DOM_TO_XML'
        EXPORTING
          DOCUMENT            = m_document
        PRETTY_PRINT        = ' '
        IMPORTING
          XML_AS_STRING       = w_string
          SIZE                = w_size
        TABLES
          XML_AS_TABLE        = it_xml
        EXCEPTIONS
          NO_DOCUMENT         = 1
          OTHERS              = 2.
      if sy-subrc = 0.   write  'ok'.
      else.              write: 'Err =', sy-subrc.
      endif.
      write: / 'XML as string of size:', w_size, / w_string.
      describe table it_xml lines w_result.
      write: / 'XML as table of', w_result, 'lines:'..
      loop at it_xml into s_xml.
        write s_xml.
      endloop.
      write: / 'end of processing'.
    end of code
    Hope this will be useful.
    regards
    vinod

  • Problem in creating and updating of  material by the use of bapi and bdc

    Hello All,
    I am using bapi (BAPI_MATERIAL_SAVEDATA ) and than bdc to create and update classification data of material.
    I am facing a problem.
    1) firstly I am creating material by the use of bapi and than after creation i want to update classification data for taht perticular material .
    2) To update classification data i am using bdc . while at the time of updating material through bdc system showing me error that material is currently locked by user (my login name ).
    Please suggest what to do.
    Tkank you
    With Regards
    Shantanu Modi

    When u update/create data it takes sometime to commit. So after using BAPI
    give 10 minutes wait in ur program before updating classification data.
    you can write like
    wait up to 20 seconds.
    and update the classification.

  • Difference between Retail Bapi and Normal BAPi

    HI,
       could anyone of u let me know whats the difference between a normal bapi and RETAIL BAPI...
    I wanna use some RETAIL_BAPI in my Program..
    so please let me know if u guys have any idea??
    Is it a good idea to usea RETAIL BAPI? and alo please let me know its PROS and CONS.
    Thanks in ADVANCE
    TINA

    hi Tina,
    Check this out
    http://www.allsaplinks.com/bapi.html
    Regards,|
    Santosh

Maybe you are looking for

  • Turning off internal monitor while using external one

    Hello, Apple Support Communities. Before OSX Lion, anyone could turn off internal monitor while using external one, by waking up computer with lid closed, and the internal monitor will be kept turned off. But now, -I wonder what made Apple to think t

  • Options for loading data from legacy mainframe to SAP CRM and ECC

    Hello All, I am new to SAP. As part of data conversion planning from legacy mainframe to SAP CRM and ECC systems, I need to know the different tools available for loading the data and comparative analysis of the tools by showing the features. Please

  • Printing Cheque using EPSON LX-300

    Hi Everyone, Could you please help me with this issue?! I had implemented the Cheque process but when I am using EPSON LX-300 printer an error occurs. Some numbers and letters are showing up on the begining of the line. I think that this is because o

  • How to solve the error { java.lang.NumberFormatException: empty String }

    Sir, I am using the following code and get subjected error. {error}{ java.lang.NumberFormatException: empty String      at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011)      at java.lang.Double.parseDouble(Double.java:540)

  • Lenovo G500 graphic card driver

    Hello everyone! I recently bought a Ideapad g500 with the following specs: Intel® CoreTM i7 3632QM 6gb ram 1TB HDD HD 8570M Radeon I installed a Win7 64 Bit, but have trouble with the ati radeon card. After hours of trying everything I found on the n