BD10 — Send Material Master via ALE IDoc
BD10 triggers outbound MATMAS IDocs for selected materials, fanning them out to whatever receivers the active distribution model defines for that message type. It reads current MARA/MARC/MARM data at the moment of the run and always sends a full snapshot, not a delta, so repeated execution resends everything matching the selection regardless of whether the receiver already has it.
This page covers BD10, the classic ALE transaction for pushing material master data as MATMAS IDocs to distributed SAP or non-SAP systems. It focuses on why sends silently fail or duplicate, which tables to check to prove what actually happened, and how BD10 fits alongside change pointers and modern integration layers.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,256 words
Purpose
BD10 generates outbound IDocs of message type MATMAS from current material master data, based on a selection screen (material number, plant, material type, and similar filters) and the active ALE distribution model. It does not itself decide who receives the data; that decision is made by the distribution model maintained separately. The one fact that explains most of the confusion around BD10 is that it is a full-snapshot push, not a change-based mechanism. Every run resends everything matching the selection to every eligible receiver, regardless of whether that receiver already has current data. Consultants used to change-pointer based distribution often expect BD10 to behave like a delta job, then are surprised by duplicate or redundant traffic when it is scheduled on a recurring basis without tight filters.
When it is used
BD10 is used for manual or one-off distribution of material master data in an ALE landscape: initial load into a newly connected plant or warehouse system, resend after a receiver system was rebuilt or lost data, or ad hoc correction sends for a handful of materials during an incident. It sits upstream of any interface monitoring tool; a consultant reaches for BD10 when the requirement is to push specific materials right now, not to set up ongoing automatic distribution. For continuous synchronization the correct tool is change pointers (triggered automatically on save and flushed by a background job), not repeated manual BD10 runs. In an S/4HANA or BTP integration context, BD10 is typically the fallback used to backfill or repair data on the classic IDoc side while newer API or event-based replication handles steady-state traffic.
How to use it in practice
- Confirm the distribution model for message type MATMAS already defines the intended sender and receiver logical systems, including any filter object restricting by plant or material type.
- Confirm an outbound partner profile exists for the receiver and message type MATMAS, with the correct IDoc basic type and processing mode (immediate or collect).
- Run BD10, enter the material number(s) or a range, restrict by plant if the requirement is plant-specific rather than global.
- Leave the receiver field blank to let the distribution model decide fan-out, or specify a single logical system to target one receiver only.
- Execute and note the number of IDocs created; a count of zero with no error usually means the selection matched nothing, not that the send failed.
- Check the resulting IDoc numbers in the outbound IDoc list or monitor to confirm status progression.
Key data objects
- EDIDC - control record, one row per material times receiver combination created by the run; holds direction, message type MATMAS, sender/receiver partner, and current status code.
- EDID4 - IDoc data segment records; holds the actual field values (material number, plant, base unit of measure, and so on) copied from MARA, MARC, and MARM at the moment of the send.
- EDIDS - status history records; each processing step (created, dispatched, error, posted) is logged here against the IDoc's document number.
- Distribution model tables behind BD64 - not written by BD10, but read on every run to determine which logical systems are eligible receivers for MATMAS and under what filter conditions.
How to prove it in the data
In SE16 on EDIDC, filter MESTYP equal to MATMAS, DIRECT equal to 2 for outbound, and CREDAT/CRETIM around the run time to find the IDocs a given BD10 execution produced. Note the DOCNUM values, then look up EDIDS for those document numbers to see the highest status reached (03 or 12 indicates successful dispatch, 29 or 51 indicates a processing error on send or receipt). Cross-check EDID4 for the E1MARAM segment under those same document numbers against MARA-MATNR to confirm exactly which materials were actually selected, since the BD10 selection screen filters silently and does not list skipped materials.
ECC vs S/4HANA
BD10 exists unchanged on S/4HANA as part of the classic ALE/IDoc stack; nothing about its selection screen or underlying logic changed. What changed is the surrounding integration strategy: for real-time or cloud-facing replication of material master data, the preferred approach is API-based or event-driven synchronization through an integration platform rather than scheduled or manual IDoc pushes. There is no Fiori app that replaces BD10 directly; it remains the tool of choice when the requirement is a classic IDoc-based backfill or correction send into an ALE-connected system.
Common pitfalls and how to diagnose them
- Distribution model filter exclusion: the material is in scope by material number but the filter object on the distribution model restricts by plant, material type, or another attribute that the material does not satisfy. BD10 reports zero or fewer IDocs created with no explicit error. Check the filter conditions on the model before assuming BD10 itself is broken.
- Missing or misconfigured partner profile: no outbound parameter exists for MATMAS against the target logical system, or the parameter points to the wrong IDoc basic type. The run either produces no IDoc at all or produces one that immediately errors at the port/dispatch step. Check the outbound partner profile before checking the distribution model.
- Duplicate flooding from repeated manual runs: because BD10 is a full snapshot, running it repeatedly on a schedule or in a loop by mistake resends unchanged materials on every pass, saturating the interface and, on the receiver, triggering unnecessary reprocessing. The fix is not to add filters to BD10 but to switch the scenario to change pointers for ongoing distribution.
- Silent segment gaps from the distribution model, not from BD10: fields present in the material master but excluded by segment filtering on the model do not appear in the outbound IDoc even though the IDoc status shows success. This looks like a mapping bug on the receiving side but is actually a filter configuration issue upstream, on the model, not in BD10's own selection logic.
- Status 51 on the receiver blamed on BD10: once EDIDC/EDIDS on the sending side show a clean dispatch status, further errors are almost always inbound processing or mapping problems on the target system, not something a BD10 rerun will fix.
Whose problem this is
Functional (MM/LE master data or integration team) owns the selection criteria, timing, and business justification for the send. Basis or the interface team owns the distribution model, partner profile, and port configuration, and monitors IDoc status. ABAP is involved only if custom segments or Z-fields require enhancement of the MATMAS structure. A good handover states the material numbers and receiver system involved, the resulting document numbers, and the current EDIDC/EDIDS status for each.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/bd10ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.