SAP tableObjectEDIDSModuleBTP_INTEGRATION

EDIDS table — IDoc Status Record Table

EDIDS stores the status history of an IDoc. Each row is one status entry recorded as the IDoc moves through dispatch, transfer, and posting, holding the status code, the date and time it was set, and which program set it. An IDoc accumulates many rows over its life; the table is a log, not a single current-state field.

EDIDS is the IDoc status log, one of the core tables behind IDoc monitoring transactions and any custom interface dashboard. This page covers its key fields, how it joins to the header and data tables, and the recurring mistake of treating it as a current-status table instead of a history table.

Published 15 Sept 2026· 1,048 words

What it stores

One row in EDIDS represents a single status event recorded against one IDoc during its processing lifecycle. Every time an IDoc changes state - created, passed to the port, dispatched by the receiving system, error in the application, posted successfully - a new row is written, never an update to an existing row. So an IDoc that has gone through outbound dispatch and inbound posting without incident might have five or six rows, and one that has been reprocessed after an error can have a dozen or more. The table is the audit trail SAP uses to answer 'what happened to this IDoc and when', which is exactly what the standard IDoc monitoring transactions read to build their status displays.

Key fields

  • MANDT - client
  • DOCNUM - the IDoc number, same key as EDIDC and EDIDD, links every status row back to one IDoc
  • COUNTER - sequence number of the status entry for that IDoc, increases with each new status written
  • STATUS - the status code (e.g. 03 data passed to port OK, 51 application document not posted, 53 application document posted)
  • STATYP - status type indicator, broadly success, error or warning class of the status code
  • STATXT - free text supplied with the status, often the actual error message for failed IDocs
  • STAPA1 to STAPA4 - status parameters, additional context passed with the status entry
  • CREDAT / CRETIM - date and time the status record was created
  • REPID - the program or function module that wrote the status entry

How it joins the data model

  • EDIDS-DOCNUM = EDIDC-DOCNUM to get the IDoc header: direction, message type, partner, port
  • EDIDS-DOCNUM = EDIDD-DOCNUM to see the segment data belonging to the IDoc whose status is being read
  • EDIDS-DOCNUM = EDID4-DOCNUM on systems using the newer clustered data storage variant
  • EDIDS-STATUS joins conceptually to the status code text tables used by the IDoc monitor to render the description shown in WE02 or BD87

How to read it safely

Always restrict by MANDT and by DOCNUM range or by CREDAT/CRETIM window before touching this table directly; it grows without bound because every retry, every dispatch attempt, and every posting error adds rows, and on a busy interface landscape it can be one of the largest tables in the system. Never select on STATUS alone across the whole table looking for 'all failed IDocs today' without also restricting the date, and never assume COUNTER is a reliable ordering field across different runs - use CREDAT/CRETIM together with COUNTER when reconstructing sequence. If pulling data for analysis, filter by message type or partner via a join to EDIDC first, then bring in EDIDS rows for that restricted DOCNUM set.

How to prove it in the data

Business symptom: 'this IDoc never posted'. Select EDIDS where DOCNUM equals the IDoc number, order by COUNTER ascending, and read the STATUS and STATXT sequence. If the last row is 51 (application document not posted) or 56 (IDoc with errors added), the failure and its message are right there in STATXT. If the last row is 53, the IDoc itself succeeded and the missing document is a downstream posting or workflow issue, not an IDoc processing problem.

ECC vs S/4HANA

EDIDS is unchanged in shape and role on S/4HANA; IDoc processing and status logging work the same way as in ECC. The IDoc monitoring transactions still read this table directly, and no CDS compatibility view replacement was introduced because it was never restructured as part of the Simplification List. The practical difference on S/4HANA projects is volume: more integration runs through IDocs and APIs side by side, so EDIDS growth and archiving discipline matter more, not the table structure itself.

Common pitfalls

  • Reading only the highest COUNTER value and assuming it is the current status - it usually is, but reprocessing (BD87 manual reprocess, or automatic retry jobs) can insert a new status entry with an earlier timestamp than an existing higher-numbered one in edge cases; always sort by CREDAT/CRETIM as well as COUNTER when the sequence matters
  • Treating status 53 (posted) as proof the business document exists and is correct - it only means the IDoc's inbound function module ran without raising an IDoc-level error; a document posted with warnings, or posted to the wrong company code, still shows 53
  • Treating status 03 as proof the partner system received the IDoc - it means the local system handed the IDoc to the port (typically tRFC), not that the receiving mailbox or system consumed it; correlate with the RFC queue tables on the sending side
  • Selecting the whole table without a date restriction during an incident, which locks or slows the table for everyone else running IDoc monitoring at the same time
  • Assuming one row equals one attempt to post - a single posting call can generate multiple status rows (e.g. a warning row followed by a success row) that look like separate events but are one call
  • Deleting or archiving EDIDS rows independently of EDIDC/EDIDD, which breaks the status history for IDocs that are still open and confuses anyone reconstructing what happened

Whose problem this is

Interface or basis teams own the IDoc monitoring layer and archiving policy for EDIDS. The functional team that owns the business document (sales order, delivery, invoice) owns the question of why a specific IDoc's status sequence ended where it did, since that requires reading STATXT and matching it against the application logic, not the table structure itself.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/edidsERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.