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
JainHello,
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 HiwaleHi,
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 -
Hi all,
I need bapis and standard function modules used for shipment change and transportation . could any one of you give me.
Thankspls 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,
Punjaalahi 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
JayaHi 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. -
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!
JohnHi 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 ModiWhen 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
TINAhi 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
-
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