When the two systems disagree

Somebody will edit the published BOM in your ERP, usually for a good reason. The only question that matters is whether the system tells you, or overwrites their work at two in the morning and lets them find out from a shortage report.

ERPShipped in segment S15 · 905 words
REV C — RESOLVEDREV D — RESOLVEDas at 2026-03-01, unit 900, FRA-2as at 2026-08-25, unit 1420, FRA-2100-4420 Housing×1100-4420 Housing×1=220-0310 Gasket×2220-0310 Gasket×4~330-1102 Control board×1330-1140 Control board×1+410-0233 Bracketunder 100-4420410-0233 Bracketunder 330-1140+ added− removed~ changed→ moved= unchangedGlyph and left rule carry the meaning, so the diff survives greyscale printing and colour-vision deficiency.

What it is, and what it is not

A comparison between what Manufacturing PLM resolved and what your ERP actually holds, turned into work items that name the object, the field, both values, and which system owns it under the system-of-record matrix.

It is not conflict resolution in the version-control sense. There is no merge, no three-way diff and no automatic winner, because the two systems are not two branches of the same document — one of them owns each fact, and a disagreement means either the owner's value did not arrive or somebody changed a value they do not own.

It is also not an alert. An alert says the systems disagree; a reconciliation task says which object, which field, what each system holds, who owns it, and what the options are. The first is noise within a week.

The mechanism: it is a diff, computed properly

Both sides are resolved before they are compared, exactly as in BOM compare. Manufacturing PLM resolves the structure under the conditions the publication used; the ERP's structure is read as it stands. Only then are they diffed.

That produces the same five difference kinds as any other comparison — added, removed, changed, moved, unchanged — and the first four become the reconciliation queue. A line added in the ERP is a line somebody added deliberately. A line removed is one that failed to publish or was deleted. A quantity changed is the most common and the most quietly consequential.

Comparing a resolution against a stored structure would report every effectivity and variant decision as a difference, which would fill the queue with noise and train everybody to dismiss it. That is the failure mode of most integration monitoring, and it is why the comparison goes through the engine rather than beside it.

The failure it prevents

A planner adds a packaging line to the assembly in the ERP, because packaging has always been maintained there and nobody wrote down that it moved to engineering. Two weeks later Manufacturing PLM republishes after a minor change and the packaging line is gone.

Nothing errored. Both systems did what they were configured to do. The line gets re-added, disappears again, and by the third cycle the site has stopped trusting the integration and is maintaining the ERP BOM by hand — which is the outcome the whole project existed to prevent.

A reconciliation task changes that sequence at the first occurrence. The planner's line is not deleted; it is reported, with both values, in the same work queue as everything else. Somebody decides whether packaging belongs in the engineering BOM or whether the MBOM row of the matrix should move — and either answer is fine, because the point is that the question got asked in week one rather than month four.

How it meets the rest of the product

Tasks land in the ordinary work queue rather than a separate integration console, because a console nobody opens is where reconciliation work goes to be ignored. They carry an owner, an age and an escalation like any other task.

Resolving a difference in favour of Manufacturing PLM means raising a change, not editing a published structure — so the correction runs through change control with an impact set, an approver and an effectivity date. Resolving in favour of the ERP means either accepting the value or moving the matrix row, and moving a row is a configuration decision with a preflight.

Every sync is an attributed audit row naming the connector, the run and the direction, so “who changed this value” has an answer that names a system rather than trailing off. Sync history is queryable, and a reconciliation task links to the run that produced it.

Agents inherit the matrix, so no agent can resolve a difference by writing a field its owner masters. The Supplier and Cost agents surface reconciliation context in their answers rather than acting on it.

How it meets your ERP

The behaviour is identical across all six connectors because the disagreement is the same shape regardless of vendor. What differs is which fields are in scope, and that comes from each connector's published field map.

Nothing is overwritten on the strength of a matrix row alone. Ownership decides who is right in principle; it does not authorise a silent write over somebody's deliberate edit. The matrix tells the task which side to recommend, and a person accepts it.

Where a connector supports it, Manufacturing PLM reads back enough context to make the decision informed — whether the edited item has open purchase orders, whether the quantity change has already driven procurement. A difference with a purchase order behind it is a different conversation from one on a part nobody has bought yet.

Where the boundary is

Manufacturing PLM will not decide for you. There is no auto-resolve setting, and there deliberately will not be one: a rule that silently applies the matrix is indistinguishable from the overwrite behaviour this exists to replace, and the first time it discards a legitimate edit the integration loses its credibility permanently.

It also cannot reconcile what it cannot see. Fields outside the connector's field map are not compared, so a difference in an ERP field Manufacturing PLM does not read is invisible here. That is an argument for mapping the fields that matter rather than a claim that the queue is complete.

Facts

OutputA task naming object, field, both values and the owner
NeverA silent overwrite — at any setting
ComparisonBoth sides resolved first, then diffed
Difference kindsAdded · removed · changed · moved · unchanged
Lands inThe ordinary work queue, not an integration console
Resolving toward Manufacturing PLMRaises a change, with impact set and effectivity
Resolving toward the ERPAccept the value, or move the matrix row
Auto-resolveNot offered, and deliberately never will be

Frequently asked

Why not just overwrite with the owning system's value?

Because somebody edited it for a reason, often a good one. A PLM that silently wins that argument at two in the morning gets switched off within a quarter, and the value it discarded was frequently the packaging line that the ERP had always owned.

Is there an auto-resolve setting?

No, and there will not be. A rule that silently applies the matrix is indistinguishable from the overwrite behaviour this replaces, and the first time it discards a legitimate edit the integration loses credibility permanently — which is expensive to get back.

Where do reconciliation tasks appear?

In the ordinary work queue with an owner, an age and escalation, like any other task. A separate integration console is where this work goes to be ignored, because the people who need to act on it do not open the console that IT monitors.

How do we fix a difference in Manufacturing PLM's favour?

By raising a change, not by editing the published structure. The correction runs through change control with a computed impact set, an approver and an effectivity date — so the fix is itself a record rather than an untracked edit that the next sync argues with.

Why resolve both sides before comparing?

Because comparing a resolution against a stored structure reports every effectivity and variant decision as a difference. The queue fills with noise, people learn to dismiss it, and the one real difference arrives looking exactly like the forty false ones.

Does it see every field?

Only the fields in the connector's published map. A difference in an ERP field Manufacturing PLM does not read is invisible here, which is an argument for mapping what matters rather than a claim that the queue is complete. The map is published per connector.

Can an agent resolve these for us?

No. Agents inherit the system-of-record matrix, so none can resolve a difference by writing a field its owner masters. They surface reconciliation context inside their answers — a cost explanation noting an unreconciled quantity — rather than acting on it themselves.