- IDoc is an acronym for Intermediate Document.
- IDoc is an SAP object that carries business transaction data from one system to another in the form of an electronic message.
- An IDoc is a container for exchanging data between R/3, R/2, and non-SAP systems.
- The purpose of an IDoc is to transfer data or information from SAP to other systems and vice versa.
- The transfer from SAP to the non-SAP system is done via EDI (Electronic Data Interchange) subsystems, whereas ALE (Application Link and Enabling) is used for transfer between two SAP systems.
IDoc Types
- IDoc can be triggered in the SAP system or in EDI (Electronic Data Interchange) subsystem.
- This depends on the direction in which IDoc is sent and is called Inbound IDoc and Outbound IDoc accordingly.
- Inbound IDoc: IDocs that are received into the system are termed Inbound IDocs.
- Outbound IDoc: IDocs that are sent outside the system are termed Outbound IDocs.


IDoc Structure
- IDoc structure is divided into Control Records, Data Records, and Status records.
- These records are stored in transparent tables in SAP. These are EDIDC, EDID4 or EDID_OLD, and EDIDS respectively.

Control Record (EDIDC)
- All control record data is stored in the EDIDC table.
- The key to this table is the IDoc Number
- It contains information like IDoc number, the direction (inbound/outbound), sender, and recipient information, the channel it is using, which port it is using, etc.
- Direction ‘1’ indicates outbound, and ‘2’ indicates inbound.



Data Record (EDID4 / EDID_OLD)
- All data record data is stored in EDID2 to EDID4 tables and EDIDD is a structure where you can see its components.
- It contains data like the IDoc number, name and number of the segment in the IDoc, the hierarchy, and the data
- The actual data is stored as a string in a field called SDATA, which is a 1000-char-long field.
- It contains the details of the IDoc Segments.
- IDoc Segment has fields that contain the data necessary for posting the documents.


Status Record (EDIDS)
- IDoc Status defines the processing status of the IDoc.
- IDoc status is used to track the IDoc and its various processing states.
- Status Numbers represent IDoc status.
- The current status of the IDoc is present in the Control record.

- We can identify the process with the number of status records.
01 – 49 for Outbound Process
50 – 75 for Inbound Process
- Table TEDS1 contains the list of all status codes.

Master IDoc & Communication IDoc
Master IDoc
- Stored in temporary storage areas.
- Only 1 Master IDoc is generated for any number of receivers for the same data.
Communication IDoc
- Stored in the database.
- The number depends on the number of receivers for the same data.
Important Tcodes:-
- SALE / BD54 – Define Logical Systems
- SALE / SCC4 – Assign Logical Systems to Clients
- SM59 – Create RFC Destination
- WE21 – Define Port Definition
- WE20 – Generate Partner Profile
- BD82 – Generate Partner Profiles
- BD64 – Maintain Distribution Model
- BD71 – Distribute customer distribution model
- WE31 – Create Segments
- WE30 – IDoc Type
- WE81 – Create Message Type
- WE82 – Assign IDoc Type to Message Type
- WE41 – Create Outbound Process Code
- WE42 – Create Inbound Process Code
- BD51 – Define the Function Module characteristics
- BD61 – Activate Change Pointers – Globally
- BD50 – Activate Change Pointer for Msg Type
- BD52 – Activate change pointer per change.doc object
- BD59 – Allocation object type -> IDOC type
- BD56 – Maintain IDOC Segment Filters
- BD53 – Reduction of Message Types
- BD21 – Select Change Pointer
- BD87 – Status Monitor for ALE Messages
- WE60 – IDoc documentation
- WE05 – IDoc overview
- BD87 – Inbound IDoc reprocessing
- BD88 – Outbound IDoc reprocessing
- BD21 – Create IDocs from change pointers
- SM58 – Schedule RFC Failures
Check out other related IDoc Posts from the Author.