Skip to main content

Firm and pin a planned order

A planning run owns everything it proposes. Run it again and every Planned order is thrown away and recomputed — which is exactly what makes the plan safe to run as often as you like, and exactly what loses a decision you made against yesterday's numbers.

Firming is how you take one order back off the engine. A firm order survives the next run untouched, and later runs count it as supply rather than planning the same shortage twice. You can go further and pin a quantity, a due date, or both, so the number you agreed with a supplier is the number that reaches the real order.

The state model behind this — who owns the numbers in each state, and why only release is irreversible — is in Planned, firm and released. This page is the mechanics.

Before you begin

  • You need a completed run selected in the MRP Run picker on the Workbench. See Run a planning cycle.
  • Only an order still in the Planned state can be firmed. Anything already firm or released is skipped and counted, so the message tells you why the number firmed differs from the number you selected.
  • You need permission to work the plan — Run under MRP Planning in Roles & Permissions. Read access alone lets you look at the plan without changing it.

Steps

  1. Go to ManufacturingPlanning, then open the Workbench.

  2. Find the order you want to hold. The State filter set to Planned narrows the table to suggestions the engine still owns.

  3. Tick its checkbox. The bulk action bar appears above the table showing N selected.

  4. Click Firm. With exactly one row ticked, the Firm Planned Order dialog opens.

  5. Decide what you're holding.

    • To hold the order exactly as the engine proposed it, leave both fields empty. Each hint names the value you're keeping — "Leave empty to keep the planned quantity — 804." and "Leave empty to keep the planned due date — Sep 21, 2026." — so the resting state is visible without typing anything.
    • To pin a different number, enter a Firm Quantity, a Firm Due Date, or both. A pin overrides the engine from that point on.
  6. Click Firm.

The row's State becomes Firm and a message confirms how many orders firmed. The next run leaves it alone.

What a pin actually changes

A pin is not a display preference. Both Carry Out and the next planning run read the pinned value in place of the engine's own — so a pinned quantity is the quantity on the purchase order, the manufacturing order or the transfer, and a pinned due date is the date that document promises.

That is the reason to pin, and the reason to be deliberate about it. Firming without a pin holds the engine's own numbers, which is usually what you want. Pin when you've agreed something the engine doesn't know about: a minimum the supplier quoted, a batch size the line actually runs, a delivery date already confirmed.

A pin describes one order

The Firm Quantity and Firm Due Date fields appear only when exactly one row is selected. Select several and click Firm, and all of them firm immediately, each keeping its own planned quantity and date — there's no dialog, because one quantity stamped across a mixed selection would be wrong for every row but one.

The plan enforces the same rule underneath. A pin sent against several orders, or against a whole filtered set, is refused with "A firm quantity or due date pins one planned order, so it can only be sent with a single planned order selected. Firm the others without a pin, or firm them one at a time."

Quantities the plan refuses

A pinned quantity has to be a real order quantity, because it's what a supplier gets asked for:

  • Zero or a negative number — "The firm quantity must be greater than zero. Leave it empty to keep the planned quantity."
  • A quantity at a scale no order reaches — "That firm quantity is too large to be a real order. Pin a quantity below 1,000,000,000."
  • More than six decimal places.

The message appears under the field as you type, and the Firm button stays unavailable until the value is usable.

Seeing what you pinned

Two things on the table show a pin:

  • The Firm Qty column carries the pinned quantity, and a dash when nothing is pinned. If you don't see the column, add it from Columns in the table toolbar.
  • The Qty cell of a pinned row carries a pin marker. Hover it and the tooltip names both numbers — what you pinned and what the engine planned — along with a reminder that Carry Out orders the pinned figure.
note

Qty keeps showing the engine's own number on a pinned row. That's deliberate — comparing the two is how you see what your decision changed — but it does mean Qty is not the quantity that gets ordered when Firm Qty is filled in.

Unfirming

Select the order and click Unfirm. The State goes back to Planned and the pin is cleared, so the next run recalculates the order from scratch. There's no confirmation step, because nothing is lost that a run can't reproduce.

Unfirm only affects rows that are currently firm. Anything still planned or already released is skipped and counted in the message.

caution

Unfirming clears the pinned quantity and due date as well as the lock. Firming the order again starts from the engine's numbers, not from what you pinned before.

Editing a planned order

Firming holds a suggestion as it stands. Editing changes it first.

Click the pencil on the row to open Edit Planned Order. The top of the dialog shows what the run worked from — Warehouse, Net Requirement, Lead Time and Release Date — and those aren't editable, because they're outputs of the run rather than choices.

What you can change:

FieldNotes
Supply TypeMake, Buy or Transfer. Changing it swaps the field below.
QtyReplaces the engine's quantity, including any round-up lot sizing applied.
Due DateThe Release Date moves with it — due date minus lead time, across your working calendar.
SupplierShown for a Buy order.
Bill of MaterialsShown for a Make order. It has to be a recipe for this product.
Source WarehouseShown for a Transfer. It can't be the warehouse the order is replenishing.

Save Changes stays unavailable while the form can't produce a workable order, and its tooltip says which rule is unmet — a quantity of zero, a missing due date, a Make order with no recipe, a Transfer pointing at its own warehouse. You're told before you save, rather than after.

note

Editing doesn't firm the order. An edited order that stays Planned is recalculated like any other on the next regenerative run, and your change goes with it. Firm the order if the edit needs to survive.

A released order is read-only here. The dialog says so and points you at the document it created.

Accepting and un-accepting

Accept marks an order as reviewed. It creates nothing, changes nothing about how the order behaves, and the Accepted column is the only thing that moves. Unaccept clears the mark again. Both confirm how many orders they applied to.

Its value is triage on a plan too big to work in one pass: sweep the table once marking what you agree with, filter to what you accepted, and carry those out. A colleague picking the plan up afterwards can see what's been looked at.

Accepting is not a prerequisite for anything. Carry Out works on an unaccepted order, and on one that was never firmed.

Dismissing an order

Dismiss removes a suggestion from the plan. It asks first — "Dismiss 1 planned order?" — and warns that dismissed orders are deleted, and will reappear on the next run if the demand behind them still exists.

That last part is what makes dismiss the right tool for a suggestion you disagree with only today, and the wrong tool for one you disagree with permanently. If an order keeps coming back, the cause is the demand or the item's policy, not the plan — see Trace why an order exists and Set item planning policies.

You can also dismiss a single row from its right-click menu, which asks exactly the same question.

An order that's already been carried out can't be dismissed. If your selection includes one, the whole dismiss is refused and you're asked to untick it — the released order is the only record linking the plan to the document it produced.

Next steps

Last verified: