top of page
Search

Procurement + EDI in D365: Why It “Works” Until It Doesn’t

  • Beau Schwieso
  • 14 minutes ago
  • 6 min read




If you have ever heard someone say “EDI is just mapping,” you have witnessed the origin story of a future war room.


Because EDI is not a connector. EDI is not a one-time technical project. EDI is a living relationship between your business rules and your supplier’s interpretation of them, mediated by a translator, wrapped in compliance timelines, and held together by master data that Procurement swears is clean.


The funniest part is that EDI usually does work. It works in the demo. It works in the test environment with three handpicked scenarios. It works until that first real supplier shipment shows up with a partial, a substitution, a different pack configuration, and freight charges that “have always been on the invoice.” Then suddenly Procurement is asking why receiving cannot find the ASN, AP is asking why match rates fell off a cliff, and IT is staring at an error log that might as well say: “Good luck, friend.”


Here is the truth: if you do not design ownership, monitoring, and exception handling up front, you are not implementing EDI. You are installing a surprise generator.




What we actually mean by Procurement + EDI

Procurement EDI is the automation of procure-to-pay documents between your ERP and your supplier or trading partner network.

Most common (ANSI X12):

  • 850 Purchase Order

  • 855 Purchase Order Acknowledgment

  • 856 Advance Ship Notice (ASN)

  • 810 Invoice

  • 997 Functional Acknowledgment (did the partner receive and parse the file)



In Dynamics 365 Supply Chain Management, receiving can be recorded against purchase orders, and it can be automated via integrations such as EDI.

The golden rule

If you want EDI to reduce labor, you must decide what you will do when it fails.

That means you need, at minimum:

  • A clear “source of truth” per field (who owns item numbers, UOM, vendor item cross references, ship-to details)

  • A triage process (who fixes what, how fast, and how you keep work moving)

  • Monitoring that is business-readable (not just “it failed”)


The 10 failure modes that hit Procurement and AP the hardest

These are the ones that show up after go live and create real operational pain.


1) Item identity mismatch

Symptom: ASN or invoice fails import, or lands but cannot match.

Root causes: vendor item number not cross-referenced, wrong external item ID, substitution logic not agreed.

Prevention: vendor item cross reference governance, clear substitution rules, onboarding packet with examples.

Detection: daily exception queue, “top 10 failing items” report.


2) Unit of measure (UOM) and conversion gaps

Symptom: quantities look wrong, match fails, receipt over/under.

Root causes: supplier sends “CS” but you expect “EA”, conversions missing or wrong, rounding differences.

Prevention: lock UOM per supplier-item, verify conversions with real pack examples, not spreadsheets.

Detection: tolerance breach alerts, “quantity variance” trendline.


3) Pack structure lies (the ASN is technically correct, and functionally useless)

Symptom: warehouse cannot receive efficiently, load and case structure mismatches.

Root causes: partner sends ASN at the wrong level (line vs pack), mixed pallets, partials, missing license plates or carton IDs.

Prevention: define minimum ASN requirements per supplier tier, enforce required segments, run ugly-path tests (partials, mixed pallets).

Detection: “receipt effort” metric, receiving exceptions.


If you are using inbound ASN imports via data entities, D365 provides composite entities for inbound ASNs that support load, shipment, and packing structure details.

4) Timing gaps (invoice arrives before receipt, or receipt arrives before ASN)

Symptom: AP cannot post, Procurement gets escalations, “why is this blocked” becomes a daily meeting.

Root causes: supplier sends invoice on ship, not on receipt, ASN delayed, internal receiving backlog.

Prevention: agree event timing with suppliers, align AP posting rules, plan for “receipt-first” scenarios.

Detection: aged match exceptions by cause.


5) Price and charge variance (freight, fuel, misc charges)

Symptom: invoice match fails, or passes but costs go sideways.

Root causes: charges not modeled (or modeled inconsistently), price updates not synchronized, supplier adds “always included” charges.

Prevention: define charge strategy (line vs header, separate lines vs charges), update cadence, vendor compliance rules.

Detection: variance buckets with thresholds (by supplier, by category).


6) Taxes and tax-inclusive assumptions

Symptom: invoice totals do not match, AP reworks invoices, suppliers get short-paid.

Root causes: different tax calculation rules, tax included vs excluded mismatch, rounding.

Prevention: document tax assumptions and invoice structure per region and supplier type, validate totals in testing.

Detection: “invoice total mismatch” exception rate.


7) Duplicate documents and idempotency failures

Symptom: duplicated ASNs or invoices, double receipts, double liability risk.

Root causes: retry logic resends without unique keys, acknowledgments not used, partner resends on timeout.

Prevention: enforce unique document keys, idempotent processing rules, use acknowledgments (997 or EDIFACT CONTRL).

Detection: duplicate key alerts.


8) Unowned “small” fields that become big failures

Symptom: errors on ship-to, dock, delivery window, carrier codes.

Root causes: master data not standardized, ship-to mapping inconsistent by facility.

Prevention: ship-to governance, facility onboarding checklist, controlled code lists.

Detection: top failing fields report.


9) Overly strict validations with no business bypass

Symptom: EDI stops the business for non-critical issues.

Root causes: “fail the file” rules when you should “warn and continue,” no staged processing.

Prevention: define severity levels (stop-ship vs warn), staged processing, fallback workflows.

Detection: exception backlog aging.


10) No monitoring, no alerts, no one on point

Symptom: you discover failures because someone calls.Root causes: logs exist but nobody watches them, no SLA, no operational rhythm.Prevention: monitoring dashboard, daily triage, escalation paths, clear RACI.Detection: if your first alert is an angry email, your detection method is “human suffering.”


Build EDI like an operating model, not a project

Here is a practical ownership split that works in real life.

Suggested RACI (high level)

Procurement Operations

  • Own supplier onboarding rules and compliance

  • Own master data expectations (vendor item cross refs, lead times, ship-to rules)

  • Own PO change policy, substitutions, partial acceptance


Warehouse/Receiving

  • Own ASN minimum requirements and receiving process

  • Own exceptions that block physical flow


Accounts Payable

  • Own invoice match policy, tolerances, and charge handling

  • Own invoice exceptions and supplier communication


IT / Integration Team

  • Own transport, mappings, retries, security, and technical monitoring

  • Own uptime, performance, and incident response


EDI Provider / Network

  • Own translation, partner setup, and standards compliance


Mechanically, D365 supports multiple integration patterns including OData and event-based patterns (business events and data events) that external systems can subscribe to or call into, which is commonly used as the ERP side of an EDI flow.

(Translation: your EDI translator and middleware do the EDI-specific heavy lifting. D365 is usually handling structured business documents via APIs, entities, or events.)


The only testing approach that prevents go-live pain

Stop testing EDI like a demo. Test it like your worst supplier.


1) Golden path (yes, still do it)

  • PO created and transmitted

  • PO acknowledged

  • ASN received and imported

  • Receipt posted

  • Invoice received and matched


2) Ugly path (this is where value is)

  • Partial shipment with backorder

  • Substitutions (allowed and not allowed)

  • Mixed pallets, mixed cases

  • UOM differences that rely on conversions

  • Price change after PO sent

  • Charges added at invoice time


3) Failure path (prove your exception process)

  • Unknown item number

  • Invalid ship-to

  • Duplicate ASN and duplicate invoice

  • Invoice before receipt and receipt before ASN

  • Missing required pack identifiers


Deliverable you should insist on: a one-page “What we do when” guide that every AP and receiving lead can follow without IT translating error codes.

Go-live readiness: the 30 point checklist that actually matters

Print this. Use it. Argue about it early, not at 2:00 AM.


Supplier onboarding and governance

  •  Supplier tiers defined (who gets EDI now vs later)

  •  Onboarding packet includes: field requirements, examples, timing rules, contacts

  •  Vendor item cross reference ownership defined

  •  UOM and conversion strategy validated with real pack examples

  •  Substitution rules documented and agreed

  •  Charge policy documented (freight, fuel, misc, rebates)


D365 document readiness

  •  PO numbering and external document keys agreed for idempotency

  •  Ship-to and location master data standardized

  •  Receiving process aligns with ASN structure (pack, case, pallet expectations)

  •  AP match policy and tolerances set intentionally (not defaults, not vibes)

  •  Exception queues are visible to business users (not just IT)


Integration reliability

  •  Retry rules are safe (do not create duplicates)

  •  Functional acknowledgments are used and monitored (997 or EDIFACT CONTRL)

  •  Alerts exist for: failures, delays, volume spikes, duplicate keys

  •  Support model is defined (Tier 0, Tier 1, Tier 2) with SLAs

  •  Runbooks exist for top 10 failures, with screenshots and decision points


Cutover plan

  •  Transition rules for in-flight POs (what is EDI vs manual during cutover)

  •  Document timing freeze windows agreed with suppliers

  •  First-week hypercare schedule with named owners (not “the team”)

  •  Daily triage meeting cadence with a short agenda and decision authority

  •  Metrics baseline captured (match rate, ASN success rate, cycle time)


KPIs that tell you if EDI is helping or hurting

If you track nothing else, track these:


Procurement

  • PO acknowledgment rate and cycle time

  • Supplier compliance rate (on-time ASN, required fields present)

Receiving

  • ASN import success rate

  • Receipt cycle time (dock-to-receipt)

  • Exceptions per 100 ASNs

AP

  • First-pass match rate (2-way or 3-way)

  • Average time to resolve invoice exceptions

  • Charge variance rate

IT

  • Time to detect and time to resolve EDI failures

  • Volume anomalies (spikes, drops)

  • Duplicate document attempts blocked


When you should NOT use EDI

Unpopular but true.

  • Low-volume suppliers where onboarding costs outweigh the labor savings

  • High-variability buying where every document is “special”

  • Environments where you cannot sustain master data governance

  • Teams that refuse to own exceptions and want IT to “just fix it”


In those cases, supplier portals, structured templates, or lighter integration patterns can be more sane.


DynamicsDad sign-off:


If your EDI is “quiet,” go check on it. Quiet EDI is how you end up in a loud meeting.

DynamicsDad


 
 
 
bottom of page