I'm trying to define a strategy to interface SAP R/3 with an external non-SAP system online. For example, when a shipment is created in the R/3 environment it is supposed to create the same shipment in the external system immediately. Which solution do you think it's best to use; IDoc, BADI or do you have any other suggestions?
The first questions to ask are: what communication method do you want to use? What protocol does the external system understand? Does the system listen to RFC calls? If yes, you can simply make RFC calls to the external system. However, this is unlikely. So the ideal option would be to use IDocs. IDocs have the advantage that they are first buffered in the R/3 IDoc database (tables EDIC/EDID4) from where they are sent out to the external partner. The protocol can be manifold, e.g. the mentioned RFC, but more likely the exchange will take place via HTTP, SMTP or a flat file. A BADI does not fit in the picture here: BADIs are the third generation of user-exits.
In most scenarios you will avoid the peer-to-peer connection to the external system, and use middleware like XI,...
Seeburger, Mercator, Seebeyond, Tibco, Biztalk, Fiorano or Sonic. That will take care of the communication issues.
For more info how this all works in detail see The R/3 Guide to EDI, IDocs, ALE and Interfaces or the "mySAP" section on logosworld.com.
An SAP user is receiving an error message while integrating SAP iDoc PORDCR1 for a purchase order.
SAP expert Axel Angeli explains how to update the "further dates" tab information in am SAP transaction through an SAP IDoc.
A SearchSAP.com reader wants to know how to create an SAP IDoc along with sales order details when sales orders are created, changed or cancelled.