|
IDOC
|
BAPI
|
|
IDocs are text encoded documents with a rigid structure that are
used to exchange data between R/3 and a foreign system
|
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.
|
|
Idocs are processed asynchronously and no information whatsoever
is returned to the client,
|
BAPIs are called synchronously and (usually) return information
|
|
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
|
whereas for BAPIs the client code needs to do the appropriate
error handling.
|
|
With
asynchronous links the sub-process 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
|
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).
|
|
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.
|
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.
|
|
IDOCs
may
be more changeable from release to release.
|
BAPIs
are not totally immune to upgrades
|
|
IDOCs
are poorly
documented
|
BAPIs
are reasonably well documented.
|