cancel
Showing results for 
Search instead for 
Did you mean: 

What actually IDoc is? an interface or a protocol?think of it

Former Member
0 Kudos

Hi Experts!

I know that IDoc is always said to be an interfce, but I think if the SOAP is called a protocol IDoc should be too.

SOAP is a special XML format including communication relevant header data(sender reciver) and the payload. SOAP is based on HTTP.

IDoc is the same I think. It is a special sturctured data which is descibed with the IDco type.It has a control data and the actual application data. And it is based on, or could be send via tRFC.

Can you help me? it is not so important question but I want to be sure of it.

thanks

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Its really good question that you had posted.

There are some difference between SOAP and IDOC.

SOAP is the enevlope that is provided to process the XML format data across the Web Services. Thus SOAP is the protocol.

But IDOC is the structural format that is used to pass the data across SAP system. If you need to process the IDOC then you need to assign it to Message Type in R/3. In XI this message type will be consider and IDOC Basic type will represent the structure. So IDOC is not the protocol, the Message type used for IDOC can be consider as Message Protocol.

IDOC contains the contorl data, but have you ever see this EDI_DC40 header structure while creating the IDOC. in WE30... When you will process the IDOC and will have proper message type assigned to it, then you could fill-up these details..

Thanks

Swarup

Former Member
0 Kudos

You said:"But IDOC is the structural format that is used to pass the data across SAP system".

SOAP has structual format too.

But what is worth to say that wa defer two IDoc in ALE processing. There is master IDoc and a communication IDoc. the master IDoc is represented by the IDoc type and it is an internal table. but if you send this master IDoc a communication IDoc will created, which is stilll remains an IDoc with a control record and a data record. the data record is the master IDoc that you created before.

SOAP:

You create an xml, and when you add some new record to this xml it will a SOAP. But this SOAP still just only an xml.

I think xml = master IDoc, SOAP=communication IDoc.

The message type is not assingned to the IDoc. it is assigned to the IDoc type. Other world message type do not define routing, it is just define the semantic of an IDoc type. for example it tells that the IDoc type describes a material master data.

Former Member
0 Kudos

HI,

The explanantion given by you seems to be logical...as both SOAP and IDOC are used to process data across the applications but there is bit change in representing both.

IDOC is an intermediate document format in which SAP generates data to send to other SAP systems........AS you had said it consists of master IDoc and a communication IDoc. And whenver IDOC will be generated it will be the communication IDoc as per the reference of master IDOC

IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system

In SOAP, the XML is processed under the SOAP enevlope. You need SOAP to communicate the Web Application services.

The fundamental change brought about by SOAP has been the ability to move data anywhere across the Web. Before SOAP there were only two main options for moving data between partners.

One was to build a wide area network spanning a broad geographic region and let the partners plug into it.

The second approach for moving data between partners was to build a distributed object infrastructure than ran over the internet. This was the approach taken by Common Object Request Broker (CORBA), Remote Method Invocation (RMI) and Distributed Component Object Model (DCOM).

SOAP Carries an XML RPC tradition by defining an XML language for packaging arbitrarily XML inside an XML envelope. Although SOAP does not depend on HTTP, the momentum behind SOAP is attributable to the fact that HTTP will usually be used for transfer protocol for SOAP messages.

SOAP provides the SOAP enevlope/wrapper for XML data as an message for processing the xml data across the internet as well as from security aspects.

With comparing to IDOC you can say...that

xml = communication IDoc i.e. IDOC-xml , SOAP=Message Type of IDOC works as enevlop for IDOC Type and HTTP = IDOC (ALE Layer)

Hope this will calrify in more details.

Thanks

Swarup

Edited by: Swarup Sawant on May 25, 2008 8:47 AM

Former Member
0 Kudos

IDOC is Container.Its just a text file used by SAP to transfer data from SAP.An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data. IDoc is not a process.

· In the SAP system, IDocs are stored in database tables.

· IDocs are independent of the sending and receiving systems.

· IDocs are independent of the direction of data exchange..

for more...

Former Member
0 Kudos

Yes it is really a text file if you send it as a file, but what if you send it via tRFC?

Former Member
0 Kudos

Hi,

Lets see and define the terms we have all tried to use here in simple words :

IDoc -


A message/ flat file sent in a structured format.

IDoc Type --- The definition of the structured format itself. The structure is hierarchical and is defined in R3.

Message Type --- Gives a semantic or business meaning to the IDoc type.

SOAP : Protocol for communication which is globally accepted. Which contains the Envelope, Header and Body. And when a simple xml message is converted to adhere to a SOAP protocol, we say its a SOAP message. This means that a simple xml is split into three parts i.e Envelope Header and Body.

Some features of SOAP , that are not true for IDoc

1. SOAP is platform independent. IDocs are not.

2. SOAP is language independent. Can only be created in ABAP only.

Hence, to answer your question very I would say that IDoc is not a protocol, but a flat file on the other had SOAP is a protocol and we all agree to that

regards,

Advait.

Former Member
0 Kudos

Hi Advait!

I do not want to nitpick, but IDoc is not language dependent. You can create it in Java language too with the help of SAP Java Base IDoc Class Library and the SAP Java Connector IDoc Class Library

see: http://www.erpgenie.com/faq/jco.htm

And if you can create it in Java, it is platform independent too.

The only constraint that these messages have a format which is created by SAP.

the SOAP format has a constraint too: it is a W3C standard.

I do not assert that communication IDoc and SOAP is the same (because IDoc cannot send via Http) but both of them act like a protocol.Otherwords SOAP and the IDoc is for the same function.

Thanks,

Gerg

Edited by: Gerg# Majoros on May 25, 2008 12:14 PM