EDIDC table — EDIDC IDoc Control Record
EDIDC is the IDoc control record table. One row represents the header of a single IDoc instance: its direction, current status, message type, IDoc type, sender and receiver partner and port, and creation timestamp. It does not hold the business payload, that lives in EDIDD or EDID4. Diagnosing a stuck or failed interface message almost always starts here.
This page covers EDIDC, the control record table that anchors every IDoc in an SAP system, and how to read it when an interface message has failed, duplicated, or gone missing. It focuses on the status field's real meaning, the joins to data and status-history tables, and the reflex mistakes made when troubleshooting IDoc flow under pressure.
Published 15 Sept 2026· 1,212 words
What it stores
One row in EDIDC represents the administrative header of exactly one IDoc, whether inbound or outbound. It records what the IDoc is (message type, IDoc type, extension type), who sent it and who is meant to receive it (partner number and type, port), when it was created, and its current processing status. It is the anchor record: every other IDoc-related table hangs off the DOCNUM assigned here. The table does not contain the actual segment data or field values of the business document, only the metadata needed to route, monitor, and reprocess the IDoc. A single business document (a sales order, a material master change, a delivery confirmation) generates one EDIDC row per direction per system it passes through, so the same logical message can appear as several separate EDIDC entries across sender and receiver systems.
Key fields
- MANDT - client
- DOCNUM - unique IDoc number, primary key
- DIRECT - direction of the IDoc, 1 for inbound, 2 for outbound
- STATUS - current processing status code as of the last update
- DOCTYP - basic IDoc type, older field predating segment extensions
- IDOCTP - IDoc type including the base type used for segment structure lookup
- CIMTYP - extension type, populated when the IDoc uses an extended segment structure
- MESTYP - logical message type, for example ORDERS or MATMAS
- MESCOD - message code, a further qualifier on message type
- MESFCT - message function
- SNDPOR - sender port
- SNDPRT - sender partner type
- SNDPRN - sender partner number
- RCVPOR - receiver port
- RCVPRT - receiver partner type
- RCVPRN - receiver partner number
- CREDAT - date the IDoc was created
- CRETIM - time the IDoc was created
- SERIAL - serialization value used to enforce processing order
- STD, STDVRS, STDMES - EDI standard, version and message identifiers for external EDI subsystem exchange
- TEST - flag indicating the IDoc was generated in test mode
How it joins the data model
- EDIDC-DOCNUM = EDIDD-DOCNUM, the classic data segment table holding the actual segment content
- EDIDC-DOCNUM = EDID4-DOCNUM, the alternative data segment table used on releases where segment data is stored with a different internal format
- EDIDC-DOCNUM = EDIDS-DOCNUM, the full status history for that IDoc, since EDIDC only ever shows the latest status
- EDIDC-SNDPRN together with EDIDC-MESTYP matches the partner number and message type key of the outbound partner profile table EDP12
- EDIDC-RCVPRN together with EDIDC-MESTYP matches the partner number and message type key of the inbound partner profile table EDP13
How to read it safely
Always restrict on MANDT explicitly when scripting selects, even though most tools apply it automatically. EDIDC is one of the largest tables in a live SAP system with active EDI or ALE traffic, easily hundreds of millions of rows over a few years of retention. Never select against it without a CREDAT (and ideally CRETIM) range, and add MESTYP, DIRECT, or STATUS as further filters before running anything interactively. DOCNUM is numeric and assigned by a number range, so it is not meaningfully sortable by business relevance, only by creation order within a range. A raw browse of EDIDC without date restriction on a production system is a common way to lock up a session or table space for minutes.
How to prove it in the data
Symptom: a batch of outbound sales order confirmations to a customer EDI partner appears to be missing at their end. Select EDIDC where MESTYP equals the relevant message type, DIRECT equals 2, STATUS equals the error status code, and CREDAT falls in the affected window. Take the returned DOCNUM values and check EDIDS for the full status trail and EDIDD or EDID4 for the segment content to confirm the payload was actually built before failing at transmission.
ECC vs S/4HANA
EDIDC is retained in S/4HANA in essentially its original form. The classic IDoc interface and its control table were not replaced by a CDS compatibility view or restructured as part of the S/4HANA simplification, since the IDoc technology itself continues to run largely unchanged alongside newer integration approaches. The practical difference on S/4HANA projects is less about the table shape and more about which interfaces still use IDocs at all, as many scenarios have moved toward API-based or event-based integration on the platform, leaving IDoc traffic concentrated in legacy or partner-mandated EDI flows.
Common pitfalls
- STATUS 53 on an outbound IDoc means the IDoc was successfully passed to the port, not that the receiving system processed or posted it. Treating 53 as final confirmation of business success is the single most common misread of this table.
- STATUS in EDIDC is a snapshot of the latest state only. It does not show retry attempts, prior error codes, or how many times a reprocessing job touched the record. That history lives in EDIDS, not here.
- DOCTYP is the legacy basic type field and does not account for IDoc extensions. Segment structure lookups and syntax checks should use IDOCTP together with CIMTYP, not DOCTYP alone, or extended segments get misinterpreted.
- DOCNUM is only guaranteed unique within a client on a given system. It is not a cross-system identifier, and matching IDocs across sender and receiver by DOCNUM value alone is wrong; use the message identifiers carried in the payload or the ARCKEY-style correlation fields instead.
- SNDPRN and RCVPRN are not always logical system names. Depending on SNDPRT or RCVPRT, they can be a customer number, vendor number, or user ID. Assuming they are always logical systems leads to wrong partner profile lookups.
- Directly updating STATUS in the table to force an IDoc to look successful is a destructive reflex. It clears the symptom without the underlying processing actually happening, and it breaks the audit trail that EDIDS and any downstream reconciliation depend on. Reprocessing must go through the proper processing program, never a direct table change.
- Filtering by MESTYP without also filtering DIRECT mixes inbound and outbound IDocs of the same message type into one result set, which inflates or misrepresents volume counts.
Whose problem this is
A question about a specific EDIDC row, whether an IDoc failed and why, belongs to whoever owns the EDI or ALE interface, typically a Basis or integration team member with IDoc monitoring responsibility. A question about whether the underlying business document is correct or complete belongs to the functional module team that owns the document type, since EDIDC only confirms the message moved, not that its content was right.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/edidcERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.