Lesson 1 of 6
Reading IDoc status like a pro
8 min
Listen to this lesson
It is 2 a.m. in week one of hypercare. Contoso Motor Co. has just gone live on SAP S/4HANA in CMP, and Theo, the integration lead, gets the call every integration lead dreads: Lakeside Components says it never received yesterday's purchase orders, and accounts payable says three supplier invoices did not arrive either. Before anyone touches anything, someone has to read the IDocs correctly. This course teaches that skill, error status by error status, and then how to fix, reprocess, test and sign off the fix without creating a new problem.
Contoso's roughly 25 IDoc interfaces still run through SAP Process Orchestration 7.5 (XD1 / XQ1 / XP1) and move to SAP Integration Suite only after hypercare. So every message has at least three places it can stop: inside SAP S/4HANA, in Process Orchestration, and at the partner. IDoc status tells you about the first one, and it is where most investigations should start.
Three record types, one story
Every IDoc has one control record (who sent it, who receives it, message type, basic type, extension, direction 1 for outbound or 2 for inbound), many data records (the segments with the business content), and one or more status records. Each status record carries a two-digit status, a date and time, the user or program that set it, and usually a message (message class, number and variables) with a long text. The current status is simply the most recent status record. The status history is the full story, and the real error is often one or two records further down than people look.
| Record | What it holds | Where you read it |
|---|---|---|
| Control record | IDoc number, direction, partner (number, type, function) on both sides, port, message type, basic type, extension | Header of WE02 / WE05 and BD87 |
| Data records | Segments such as E1EDK01 or E1EDP01 with business data, plus any custom Z1 segments | Expand Data records in WE02; search content with WE09 |
| Status records | Status number, timestamp, message class and number, long text | Expand Status records in WE02; double-click a status for the long text |
The three record types of an IDoc and where to read them.
The happy paths
Statuses below 50 belong to outbound IDocs and 50 and above to inbound IDocs. An outbound IDoc typically goes from 01 (IDoc created) to 30 (IDoc ready for dispatch, ALE service) to 03 (data passed to port OK). SAP records 30 in both output modes; with Transfer IDoc immediately the IDoc passes it in the same step. Later statuses need something more: 12 (dispatch OK) appears only when report RBDMOIND (BD75) confirms the tRFC call, and statuses such as 16 (functional acknowledgement positive) only if the EDI subsystem or middleware reports back. An inbound IDoc goes from 50 (IDoc added) to 64 (IDoc ready to be transferred to application) to 62 (IDoc passed to application) to 53 (application document posted).
Two consequences matter at 2 a.m. First, 03 is not "the partner has it". Status 03 only means SAP handed the IDoc to the port. With a tRFC port to Process Orchestration, a failed transfer appears as a hanging call in SM58 while the IDoc still shows 03. Second, 53 is not "the data is right". It only means the application accepted the IDoc and created or changed a document. Whether the document holds the right values is a separate check.
Where to look
| Tool | Best for | Watch out for |
|---|---|---|
| WE02 / WE05 (IDoc list) | Opening one IDoc: control, data and status records, long texts | Defaults to a short date range; widen it before you conclude an IDoc does not exist |
| BD87 (status monitor) | Counting IDocs by status, message type and partner; reprocessing selected IDocs | Selecting by business object is slow; filter by status, message type and date first |
| WE09 (search by content) | Finding the IDoc that carries a PO number, invoice number or material in a segment field | Needs the segment and field name, for example E1EDK01-BELNR |
| WE47 (status maintenance) | Seeing every status value and its text in your release | Read it; do not change SAP's status definitions |
| SM58 (tRFC) | Outbound IDocs that show 03 but never reached middleware | BD87 cannot reprocess communication errors; they are retried from SM58 |
| WLF_IDOC (IDoc monitor) | One screen to list, display and reprocess IDocs; shows every segment of one name together and compares two IDocs side by side | Originally the agency business IDoc monitor; field editing works only for fields released in its Customizing |
A practical habit: when you open an IDoc, read the control record first (is this the partner and message type you think it is?), then the status records from the bottom up, then the long text of the first error status. Only then open the data records. Most wrong diagnoses come from reading data before reading status.
- An IDoc is one control record, many data records and a history of status records; the current status is the latest one.
- Outbound statuses are below 50 and inbound statuses are 50 and above.
- Status 03 means passed to the port, not received by the partner; status 53 means posted, not necessarily correct.
- Read the control record, then status long texts, then data; use WE09 to find an IDoc by its business content.
Check your understanding · not graded
Lesson check
1. Which IDoc record tells you the direction, sender, receiver and basic type?
2. An outbound ORDERS IDoc shows status 03 but Process Orchestration has no message for it. Where do you look next?
3. Which tool finds the IDoc that carries purchase order 4500002210 in a segment field?
4. What does inbound status 53 prove on its own?