IDoc statusObject30ModuleBTP_INTEGRATION

IDoc status 30 — IDoc Status 30 Ready for Dispatch

Status 30 is an outbound status meaning the IDoc has been built and passed all local checks but has not yet been handed to the communication layer. It sits in the ALE outbound queue waiting for the dispatch program or RFC/file port to pick it up and actually transmit it to the receiving system.

Covers what status 30 represents in outbound IDoc processing, the queue and connectivity causes that leave IDocs parked in this status, the checks to run across WE02, SM58, SMQ1 and SM59, and the safe reprocessing route via BD87 without risking duplicate transmission.

Published 16 Sept 2026· 991 words

What the status means

Status 30 is exclusively an outbound status. It marks the point where the application has generated the IDoc, the receiver port and partner profile have been resolved, syntax checking has passed, and the IDoc is queued for the ALE dispatch service. Nothing has actually left the system yet: the IDoc has not been handed to tRFC or qRFC for transmission, it has not touched the receiver's inbound queue, and no acknowledgement can exist. The next expected move is into status 01 or 03 once the outbound processing program picks it up and passes it to the port. An IDoc can sit in 30 indefinitely if the dispatch mechanism behind it is not running or is blocked, with no error raised anywhere.

Why it appears

  • Partner profile for the message type is set to collect/batch mode rather than immediate send, so the IDoc waits for a periodic job instead of transmitting on creation.
  • The background job that triggers outbound IDoc dispatch (the periodic report scheduled for the relevant message types or ports) is not scheduled, has been deactivated, or failed on a prior run and was never rescheduled.
  • The tRFC or qRFC outbound queue for this destination is blocked by an earlier IDoc that errored out; because the queue is serialized, every later entry queues behind the stuck one and never gets a chance to send.
  • The RFC destination pointing to the receiving logical system is down, misconfigured, or the technical communication user's password has expired or been locked, so any attempt to dispatch fails silently at the connection level.
  • For file-port scenarios, the target directory is unreachable, full, or permissions have changed, so the port itself cannot accept the file.
  • A middleware or integration layer (PI/PO, cloud integration, or a partner's own inbound service) is down or unreachable, so the sending side has nowhere to push the IDoc even though the local generation succeeded.
  • A mass data load or interface run generates a large spike of IDocs faster than the outbound dispatch capacity can drain, so a backlog accumulates in status 30 temporarily under normal load.
  • Port packaging is configured to bundle several IDocs before sending, and the threshold count or time window has not yet been reached.

What to inspect

  • WE02 or WE05: identify the stuck IDoc, its message type, partner, and the port and queue name it is assigned to.
  • WE20: check the partner profile for that message type and confirm whether output mode is set to immediate transfer or collect (background).
  • SMQ1 (outbound queue monitor): check whether the relevant qRFC queue shows a blocking entry stuck in an error or 'no send' state ahead of the IDoc in question.
  • SM58: check for failed tRFC calls tied to the same destination, particularly logon errors, connection timeouts, or authorization failures.
  • SM59: test the RFC destination named on the port; a failed connection test here usually explains everything upstream of it.
  • SM37: confirm the outbound dispatch background job is scheduled, active, and completed successfully on its last run rather than cancelled or missing.

How to reprocess safely

Resolve the underlying blockage before touching the IDoc itself. If a queue is blocked, clear or fix the offending entry in SMQ1/SMQ2 first, since reprocessing behind a still-blocked queue achieves nothing. If the RFC destination is broken, fix the connection in SM59 and confirm a successful test call. If the partner profile is on collect mode and immediate delivery is actually required, either switch the mode or trigger the scheduled dispatch job manually rather than editing the IDoc. Once the transport path is confirmed working, reprocess through BD87, selecting the affected IDocs by status 30 and message type and executing outbound processing. Because status 30 means the IDoc has never actually reached the receiver, straightforward reprocessing carries no duplicate-posting risk on the receiving side. The risk appears only if someone has already resent the underlying business document manually through another channel while the IDoc sat stuck; check for that before mass-reprocessing a backlog.

The fix people try first (and why it fails)

The reflex is to select every status-30 IDoc in BD87 and hit reprocess repeatedly, assuming the dispatch will eventually take. If the queue is blocked or the RFC destination is down, this does nothing except reset timestamps and clutter the monitor, since the same connection problem stops each attempt. A worse variant is manually forcing the status forward to 03 (data passed to port) through direct status edit, which marks the IDoc as sent when it never left the system; the receiving side never gets the document, but every downstream report now believes it did, producing a silent gap that is far harder to find than the original stuck queue.

Whose problem this is

Basis or the integration team owns RFC destination health, port configuration, and queue unblocking. The functional or application team owns whether the partner profile should run in immediate or collect mode and confirms whether any business document was already sent through another route. Hand over the IDoc number, message type, port, and queue name together, not the IDoc alone.

Common pitfalls

Status 30 does not read as an error, so it rarely appears on error-status alerts or exception dashboards, and a growing count can go unnoticed for days while orders, deliveries, or shipping notifications simply never arrive at the partner. It is also easy to mistake a blocked serialized queue for a one-off dispatch failure and reprocess only the newest IDoc, when the actual fix is unblocking the oldest entry holding up the whole queue behind it.

Related SAP objects

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

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