top of page

Say goodbye to long nightly batch jobs - MP Planning Optimization and use of plan filters!

On 5/11/20 Microsoft announced that the built-in master planning engine is scheduled to be made obsolete (deprecated). (See more details under: Depreciated Feature) In that context, the Planning Optimization add-in was introduced as replacement. The add-in - once installed via LCS and turned on in the D365 for Supply Chain Management master planning parameters - enables master planning calculations to occur outside Dynamics 365 Supply Chain Management and the related SQL database. This leads to improved performance and minimal impact on SQL database during master planning runs. Thus, master planning runs can be scheduled/executed during office hours and planners can react to demand/supply changes ad hoc and in a more timely manner leading to higher efficiency in planning and purchasing operations.

From a process perspective, when a master planning run is triggered manually or via batch job the D365 for Supply Chain Management client sends a signal to request a planning run from Planning Optimization. As a result, Planning Optimization requests the required data via integrated connector. Via connector requested information such as setup, master and transactional data from SQL DB is sent to Planning Optimization. In general, the connector translates information between D365 for Supply Chain Management and Planning Optimization service. The Planning Optimization service holds planning related data in memory and does the required calculations. Lastly, the planning result is sent back to D365 for Supply Chain Management DB via connector (e.g. such as a planned order). It also sends a notification that the planning run is fulfilled what can be inquired on via Master planning/Setup/Master plans form and on the Actionpane under History.

Prerequisites for planning optimization

Dynamics 365 for Supply Chain Management version 10.0.7 or later needs to be running on an high-availability environment Tier 2 box or higher (The Planning Optimization add-in installation for an cloud-hosted Tier 1 box will fail). Additionally, please ensure that the environment used to install the add-in via LCS is set up for Power Platform integration. You can set this up at time of environment deployment or at a later point in time after deployment (See both paths and details herefore under: Prerequisites).

Planning Optimization - Installation and Configuration

1. Enable Planning Optimization License Key:

For that, we need to put our environment into maintenance mode. We can do so via LCS - Sign in with your credentials into LCS via, select your LCS project, and find your environment on the right hand side. Click on "Full details".

On the next form, enable maintenance mode via maintain/enable maintenance mode.

After completion, the environment state will show "In Maintenance". That said only sysadmins will have access to the environment for now.

Now under System administration > Setup > License configuration and on the configuration keys tab, enable the check box for Planning Optimization.

After completion, turn off maintenance mode by clicking Disable Maintenance Mode under the same maintain menu path in LCS. This will set the environment back into "Deployed state". Users can sign in again.

2.Install the Planning Optimization Add-in

As a next step, we install the actual add-in via LCS. Select your LCS project and as explained above find your environment on the right hand side and click "Full details". On the environment add-ins fast tab select install a new add-in.

Note: Power platform integration is already set up here as completed during deployment. Make sure this is installed as explained in the prerequisite above.

Select Planning Optimization to be installed.

After following the wizard and confirming the installation, you can see that the add-in is in "Installing" status on your environment details form in LCS. This takes a few minutes.

After a few minutes, validate that the status changed to "Installed". The Planning Optimization add-in connects the service to the environment. Short, now we are ready to jump into D365 for Supply Chain Management and activate Planning Optimization.

3. Activate Planning Optimization in D365FO

Log into you D365 for Supply Chain Management environment, and navigate to Master planning > Setup > Planning Optimization parameters. Here, check the use Planning Optimization flag to "Yes". If set to "No", the built-in planning engine would be used for master planning. (what we do not want any longer :) )

Note: This is a global setting and thus applies to all legal entities. At this point, it is not possible to use it only for some LEs while other LEs drive master planning by legacy built-in master planning.

Lastly, make sure that the connection status shows "Connected".

Demonstration/End-to-end process - Planning Optimization and use of plan filters

Once set up, plan filters for master plans will always be applied during master planning runs. Plan filters are for example very useful when you want to limit a specific master plan for specific items only.

Find plan filters under Master planning/Setup/Master plan:

If there is an additional run time filter added to your master planning run, only the intersection of the two filters is considered to be included in the master planning run.

Find runtime filter under Master planning/Run/Master planning:

In our demo, we will simply concentrate on the plan filter, we navigate to Master planning/Setup/Master plan and on the Actionpane under Plan filters we specify our criteria.

In our scenario, we specify this master plan to only consider 3 items: A0001, A0002 and 1000.

Let's check the item coverages for the above 3 items under Product Information Management/Product/Released Products and on the Actionpane under Plan/Item coverage.

Item coverage for A0001:

Item coverage for A0002:

Item coverage for 1000:

All 3 item coverages are referenced with the coverage group "Auto" that runs with min/max master planning coverage code.

Find "Auto" coverage group under Master planning/Setup/Coverage/Coverage groups:

Master plan is ran with no additional runtime filter for the above referenced master plan via Master planning/Run/Master planning. As all 3 items do have 0 onhand in warehouse 11 and onhand is thus below specified min quantities on the item coverage, the following 3 planned orders are suggested to be created to stock up to the on the item coverage specified max quantity values.

Under Master planning/Setup/Master plan and on the Actionpane under History, find past planning optimization master planning runs.

Here, we can see our prior executed run in status "processed".

Now, we create, confirm and receive a purchase order from scratch for item 1000 and a quantity of 300. The 300 that we have now onhand is still below the 400 specified as minimum for item 1000. Based on the above and since we didn't firm the planned orders yet, we would expect that the requirement quantity on the planned order will be updated to 780-300=480.

Purchase order created for item 1000 and quantity of 300:

Purchase order confirmed and received:

Now, we run master planning again.

Within seconds, we get a notification that the run was successful.

Reviewing the planned orders, as expected, the requirement quantity for our planned order for item 1000 is updated to 480.

You can see past runs under history as explained above - if a run fails you would see a log that can be leveraged for investigation. Here, all my runs went successful.

Short, Planning Optimization aids to higher performance, efficiency and more agility in a fast pace environment on the procurement and planning side.

Note: Please note that when Planning Optimization is enabled that master planning does not use all fields and setups specified on master plans, coverage groups, etc.. Find all fields and setups that are neglected under: Paramaters.

Recent Posts

See All

Demand Forecasting Configurations And Process Flow

Demand forecasting options: -Based on historical transactions (loaded via DMF in staging table) Example: New product that was maintained in separate system prior. -Based on historical transactions in


bottom of page