TL;DR
A Power Fx formula now overrides work pool, work priority, location directive codes and work classes at work creation. Its own page names the feature Production Ready Preview, and the release plan agrees once you read the legend — public preview carries a check mark and a full release date, general availability a bare month and none. Previewed, not generally available, on by default from 10.0.49.
Power Fx is in the warehouse execution path. What does dynamic work classification decide?
A Power Fx formula now runs at work creation and overrides four things about the work your pickers receive. That is a low-code expression inside a warehouse execution path, worth understanding before somebody discovers it and starts writing formulas.
What it decides: four fields, at runtime, instead of many templates
Dynamic work classification [PRP] (ms.date 2026-07-27) states the problem it exists to solve:
"Without dynamic classification, each combination requires its own work template, which can lead to a large and complex configuration."
"When warehouse work is created, the system evaluates a Power Fx formula to override the work pool, work priority, location directive codes, and work classes on the generated work. The formula can look up values from the work header and associated records, including the load, shipment, wave, and transportation appointment."
There is a second capability, reclassification: "If a load changes after work has been created (for example, the carrier is reassigned), the system can reevaluate the formula and update the associated work."
So one work template plus one rule can do what several used to. Chapter 5 is the static version of these decisions.
Its status looks like two answers. The release plan's own legend gives you one
This is the part to get right, because two pages describe the status and people quote whichever they found. They agree — but only if you read the legend.
- The feature's own documentation (
ms.date2026-07-27) — The feature "named (Production Ready Preview) Dynamic work classification must be turned on in feature management. As of Supply Chain Management version 10.0.49, this feature is turned on by default." - The 2026 release wave 1 plan (
ms.date2026-07-28) — Row "[Automate dynamic work classification with Power FX]" shows Public preview with a check mark and Apr 24, 2026, and General availability reading Jun 2026 with no check mark
The legend decides how to read those columns, in two sentences. On dates: "In the General availability column, the feature will be delivered within the month listed… Released features show the full date, including the date of release." And on the symbol: "This check mark … shows which features have been released for public preview and general availability."
Apply both. Public preview carries a check mark and Apr 24, 2026 — a full date, so released. General availability carries Jun 2026, a bare month with no check mark, so not released, whatever the calendar says.
Which is exactly what the feature's own page says. The string in feature management reads (Production Ready Preview). The two pages are not in conflict; they report one status through two artefacts, and the legend makes them line up. So: [PRP], on by default from 10.0.49, and the general-availability month is not a date to plan a cutover around.
Two smaller things from the same pages. The version floor is plain — "You must be running Microsoft Dynamics 365 Supply Chain Management version 10.0.48 or later" — and the release plan describes itself as listing "features that are planned to release from April 2026 through September 2026".
Microsoft also spells it differently across the two pages: Power Fx on the product page, Power FX in the release-plan title. Both reproduced as found.
The four override fields, and the one that skips your first pick and put
WorkPoolId— Type: String · What Microsoft says it does: "Overrides the work pool on the created work."DefaultWorkPriority— Type: Number · What Microsoft says it does: "Overrides the priority on the created work."DirectiveCodeOverrides— Type: Record · What Microsoft says it does: Each field name is a directive code to replace, the value is the new one. "Applies to all pick/put pairs."WorkClassOverrides— Type: Record · What Microsoft says it does: Each field name is a work class to replace. "Applies only to the second and subsequent pick/put pairs. To change the work class of the first pick/put pair, use the initial work line formula instead."
Read the last row twice. The obvious formula does not touch the first pick and put — which for most outbound work is the pick that matters.
The mechanism is a second formula. Set Rule scope to Work and initial work lines and the rule gains an Initial work line formula FastTab, which runs "as the first pick work line is assigned to a new work record" and can override WorkPoolId and WorkClassId.
Practically: the work class on your first pick line and the work class on the rest are set by two different formulas, and missing that produces a rule that half works.
The data a formula can reach is published as objects: workTable plus .Load, .Shipment, .Wave and .Appointment; the initial work line formula reaches workLine and its item and load records.
Blank preserves. An empty string clears.
"ReturningBlank()for a field (or omitting it) preserves the original value from the work template. Returning an empty string ("") actively clears the value. For example, returningBlank()forWorkPoolIdkeeps whatever work pool was set on the work template, while returning""removes the work pool entirely."
Two expressions that look interchangeable to anyone who has not read that paragraph, with opposite effects on live work. A formula returning "" on an untested branch strips the work pool.
The grouping dependency, and it is chapter 5's setting
"When you use dynamic work classification with a work template, make sure the template's grouping settings align with your formula logic. For example, if your formula classifies work based on zone, the work template should group work creation by zone so that each work header contains lines from only one zone."
That is Work header breaks, which chapter 5 covers. The dependency runs both ways: a formula that classifies by zone needs a template that groups by zone, or one work header carries lines from several.
Microsoft's fourth example is that case: a work class per zone so "picks from a freezer zone can be restricted to workers with appropriate cold-weather gear." The formula returns a record, and reproducing only its inner call is how a reader ends up with a no-op — it is { WorkClassId: Concatenate("S-", workLine.ZoneId) }, with { WorkPoolId: … } as the alternative.
Two settings reserved for future use, and an example that appears to need one
Two controls are explicitly inert. Reclassification schedule ID — "This setting is reserved for future use and has no effect in the current release." The Work reclassification schedules button carries the same statement, in its own words.
Now read the Important callout under Microsoft's third example, which prioritises work by minutes remaining until the shipping deadline:
"The time-remaining approach requires the reclassification batch job to run on a recurring schedule (for example, every hour) to keep priorities current."
Those two statements sit on the same page and a reader designing that example needs both. One says the schedule setting is inert; the other says the approach requires a recurring batch job. They may refer to different mechanisms, and this article does not resolve which, because the page does not say.
What it does say is which approach to prefer: the time-of-day formula "is more efficient because work only needs reclassification when the load's scheduled shipping time changes."
The other reclassification control is real: Work classification on load update on the Work FastTab of Warehouse management parameters, values Disabled or Synchronous, with the Note that synchronous means "the user might experience a brief wait during load updates."
There is also a Preview button, to "test a rule against an existing work header and see the results without making changes." Use it before anything reaches a picker.
How we optimize alongside this, and where we would draw the line
Pick-Path & Slotting Optimizer decides which orders travel together and which item earns which slot, writing the answer back into the wave, cluster and slotting objects Dynamics 365 executes, behind an approval step. Dynamics is the system of record; the optimization above it is a modelling problem.
A working demo exists; it is not off the shelf. We build it against your systems and your constraints on request, and we have no delivered warehouse engagements — so this is a capability, not a report on somebody's building.
Dynamic work classification is the clearest example of the boundary: it is genuinely programmable, and it still classifies work rather than deciding what the work should be.
We would not put a model inside a Power Fx formula. A formula that calls a model at work creation couples your data science to your picking runtime.
We would not build a customer's foundation on a Production Ready Preview name either. We design against the documented fields and let the label settle.
What to do this week
- Read the feature name in feature management, not a summary. The string beside the toggle is the status you are actually running. 2. Check your version against the 10.0.48 floor, and note that 10.0.49 turns the feature on by default. 3. If you write a rule, write both formulas. The work formula does not touch the first pick/put pair; the initial work line formula does. 4. Check the work template's header breaks against your formula's logic. Classify by zone and the template must group by zone.
About Cognilium Cognilium is the AI optimization layer for Dynamics 365 — complementary apps that optimize the pricing, inventory, warehouse and planning decisions your ERP manages but can't optimize. Built on Power Platform, Dataverse and Azure. https://cognilium.ai · https://www.linkedin.com/company/37180269/
If someone on your team is about to write warehouse logic in Power Fx, book a fifteen-minute call and we will read the rule with you — what it can override, and where it stops. No deck. https://cognilium.ai
Sources
- Dynamic work classification
- New and planned features for Dynamics 365 Supply Chain Management, 2026 release wave 1
Sources
Share this article
The methods behind the articles — slotting, batching, routing — and the data each one needs.
Mudassir Marwat
Founder & CEO, Cognilium AI
Mudassir Marwat
Founder & CEO, Cognilium AI
Mudassir Marwat's argument is that ERP systems record decisions they never optimise.
