IDocs vs. BAPI

ITKnowledge Exchange member "sillyITgirl" had a question about the choice between IDocs and BAPI; fellow techies helped out. Here is the conversation.

ITKnowledge Exchange member "sillyITgirl" had a question about the choice between IDocs and BAPI; fellow techies...

jumped in on the conversation and helped out. Here is the conversation. Read the rest of the thread.

Want to join in on a similar conversation? Register for ITKnowledge Exchange and fill out your profile so you can ask specific sets of people your IT questions and also help out your fellow geeks.

ITKnowledge Exchange member "sillyITgirl" asked:
I am looking for the advantages and disadvantages of IDocs over BAPIs. While designing an interface in SAP, which methodology is best?

IDocs and BAPI are very different, so it should be easy to choose between them depending on your requirements.



  • System can work even if target system not always online. The IDoc will be created and sending will just continue once you get connected to the other system.
  • No additional programming required. You just need to set up the configuration.
  • Receipt/processing on the target system may not be immediate.
  • The sending system has no way to know whether the target system actually received what you sent (unless you use ALE).
  • If there is no SAP standard IDoc available for your requirement, it's harder to create a customized IDoc than a customized BAPI.


  • You can tell if your sending was successful or not
  • Sending to/processing on the other side is immediate
  • Easier to create your own BAPI than your own IDoc
  • Will only work if you have an active online connection.
  • Some programming required to call the BAPI.

BAPI will work as defined, but the problem you will run into is that you stand a chance of getting the document stuck because the underlying technology is BC (Business Connector) built by WebMethods for SAP. There is no way of tracking the status of BAPI, as it is sent between systems. SAP is in the process of doing away with BC.

In either case of IDoc or BAPI, you will need build some form of interface data structure, predefined or not. You will need to customize the predefined data structure to fit your business requirement needs. The only difference between the two is that with BAPI you can enable a specific application within SAP that will utilize that the data transported within BAPI, hence the instant effect. BAPI is designed specifically for application interface programming and enabling.

As for IDocs, your interface solution is RFCexec (Remote Function Call). The IDocs are reusable and can be tracked within SAP if delivery is successful or unsuccessful. SAP has provided comprehensive IDoc tracking status information, which will help in determining the status of any IDoc transmitted to and from SAP. So if the receiving system did not successfully receive or transmission was not successful, the IDoc status will let you know that. This is your best option if you are still looking to build an EDI/IDoc interface.

SAP transaction for setting up and tracking IDOC is rooted in ?WEDI? provided you have access to this transaction.

You can make an IDoc immediate or scheduled, which is an option provided by SAP with the delivered IDoc solution. Again you can tree out the WEDI transaction to perform and simulate your configuration. It all depends on the relationship you have with your business partner.

Others interface methods you might also want to consider are ALE and RFCs.

Dig Deeper on SAP UX