Differences Between IDOC and BAPI
Differences Between IDOC and BAPI
By Vikram Chellappa
IDOC IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system Idocs are processed asynchronously and no information whatsoever is returned to the client, The target system need not be always online. The IDOC would be created and would send the IDOC once the target system is available (tRFC concept). Hence supports guaranteed delivery With asynchronous links the subprocess on the client can be finished even if the communication line or the server is not available. In this case the message is stored in the database and the communication can be done later The disadvantage of asynchronous links is that the sub-process on the server cannot return information to the calling sub-process on the client. A special way for sending information back to the client is required. In addition, a special error handling mechanism is required to handle errors on the receiving side. IDOCs may be more changeable from release to release. IDOCs are poorly documented BAPI BAPIs are a subset of the RFC-enabled function modules, especially designed as Application Programming Interface (API) to the SAP business object, or in other words: are function modules officially released by SAP to be called from external programs. BAPIs are called synchronously and (usually) return information whereas for BAPIs the client code needs to do the appropriate error handling.
Problems with synchronous links occur if the communication line or the server is temporarily not available. If this happens, the sub-process on the client cannot be finished (otherwise there would be data inconsistencies). Synchronous links have the advantage that the sub-process on the server can return values to the sub-process on the client that has started the link.