Advanced Planning
Release: Advanced Planning – 28.0.9694.37961
Description
This is the initial release of the Advanced Planning application for Microsoft Dynamics 365 Business Central. This extension enhances the standard regenerative planning engine with advanced inventory exclusion logic (blocked lots, expired tracking, inspection status, QRS shelf-life), automated planning calculation scheduling via Job Queue, demand forecast import/export capabilities, and comprehensive planning log information for audit and troubleshooting. Particularly relevant for Food & Beverage industries where lot tracking, expiration management, and quality-based supply exclusion are critical for accurate MRP/MPS calculations.
User Stories
| Title | Description | Setup Instructions | Impact on previous version |
|---|---|---|---|
| [22570] – Advanced Regenerative Plan | Extends the standard Calculate Regenerative Plan to exclude blocked, expired, and quality-rejected inventory from supply evaluation. Implements an interface-based architecture (AdvancedPlanning Interface) with pluggable tracking codeunits (BlockedTracking, ExpiredTracking, QRSTracking, INSTracking). Items excluded from planning are logged with detailed exclusion reasons. | Configure exclusion options in Advanced Planning Setup (Page 8121100). Assign briAPL_Basic or briAPL_Admin permission set to users. | First release — no impact on previous versions. |
| [22572] – Planning Worksheet Enhancement | Extends the Planning Worksheet page with a Log Planning Information factbox and action, allowing users to view detailed planning evaluation results directly from the worksheet. | No additional setup. Feature activates automatically once APL is installed. | First release — no impact on previous versions. |
| [22574] – Automated Planning Calculation | Enables users to save planning calculation profiles (item filters, MPS/MRP flags, date formulas, forecast options) and schedule them as recurring Job Queue entries. Profiles can be created from the Calculate Plan report via a “Save to Job Queue” option. | Use the Save to Job Queue action from Calculate Plan – Planning Worksheet report. Manage profiles via Req. Wksh. Names page (Run Now / Edit actions). Requires briAPL_Admin permission set for Job Queue administration. | First release — no impact on previous versions. |
| [22576] – Demand Forecast Export | Allows exporting demand forecast entries to Excel with configurable filters (date range, forecast type, item/location/variant), multiple view-by periods, and optional conversion to Sales Unit of Measure. | Access Export action from Demand Forecast Card or Demand Forecast Names page. | First release — no impact on previous versions. |
| [22599] – Demand Forecast Import | Provides a wizard-based import of demand forecast entries from Excel files. Supports row-by-row validation (item existence, variant, location, UoM, period date, duplicates, negative quantities), inline error correction, Update Mode (replace) and Add Mode (accumulate). | Access Import action from Demand Forecast Card or Demand Forecast Names page. | First release — no impact on previous versions. |
| [22600] – Log Planning Information | Introduces a dedicated table and pages to log supply and demand entries evaluated during planning calculations, including lot/serial/package tracking, expiration dates, sell-by dates, and planning outcome (Included/Excluded). Provides a hierarchical view and an Unplanned Items page. | Automatically populated during planning calculations when APL is active. | First release — no impact on previous versions. |
| [22601] – QRS Integration | Integrates with the Bricklead QRS (Quality & Regulatory Standards) module to evaluate lot sell-by dates and minimum shelf-life requirements during planning. Uses SellByEvaluationMethod enum for flexible evaluation. | Requires QRS module to be installed. Configuration in Advanced Planning Setup. | First release — no impact on previous versions. |
| [22602] – INS Integration | Integrates with the Bricklead INS (Inspection Status) module to evaluate inspection statuses and exclude-from-planning flags during supply evaluation. | Requires INS module to be installed. Configuration in Advanced Planning Setup. | First release — no impact on previous versions. |
| [22604] – Assisted Setup Wizard | Provides a guided setup wizard registered in Business Central’s Guided Experience for first-time configuration of Advanced Planning options (inventory exclusion toggles). | Access from Assisted Setup in Business Central. | First release — no impact on previous versions. |
| [22974] – Notification Management | After planning calculation, notifies the user if items were left unplanned. Notification includes a drill-down link to Log Planning Information and can be permanently dismissed via My Notifications. | No additional setup required. | First release — no impact on previous versions. |
| [23170] – Permission Sets | Introduces a three-tier permission model: Admin (full access + Job Queue Admin), Basic (full RIMD on all APL objects), and Read (read-only access). | Assign appropriate permission set (briAPL_Admin, briAPL_Basic, or briAPL_Read) to users. | First release — no impact on previous versions. |
Bugs
| Title | Description | Impact on previous version |
|---|---|---|
| [22609] – FIX StrLen to MaxStrLen | Corrected usage of StrLen to MaxStrLen in string length evaluations to prevent potential runtime errors when handling text fields at maximum capacity. Verified in RequisitionLineSubscr.Codeunit.al. | First release — no regression risk. |
Events
| Status | Type | Object Name | Event Name | Description |
|---|---|---|---|---|
| New | IntegrationEvent | briAPL_AutomatedPlanCalc (Codeunit 8121113) | OnBeforeRun | Raised before the automated regenerative plan calculation executes. |
| New | IntegrationEvent | briAPL_AutomatedPlanCalc (Codeunit 8121113) | OnAfterRun | Raised after the automated regenerative plan calculation completes. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnBeforeSaveCalculateRegenerativePlanProfile | Allows skipping or overriding the save profile procedure. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnAfterSaveCalculateRegenerativePlanProfile | Raised after saving the planning calculation profile. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnAfterSetAutomatedPlanningCalculationDates | Raised after setting planning dates on the profile. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnAfterCreateAutomatedPlanningCalculationOnBeforeInsert | Raised before inserting the planning profile record. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnAfterCreateJobQueueEntryOnBeforeInsert | Raised before inserting the Job Queue entry for the profile. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnBeforeRunAutomatedPlanningCalculation | Allows skipping or overriding the automated calculation execution. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnRunAutomatedPlanningCalculationOnBeforeCalculatePlanPlanWkshRun | Raised before running the Calculate Plan report in automated mode. |
| New | IntegrationEvent | briAPL_AutomaticPlanCalcMgmt (Codeunit 8121109) | OnAfterRunAutomatedPlanningCalculation | Raised after the automated calculation completes. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnCreateSupplyEntryOnBeforeInsert | Allows modification of supply log entries before insertion. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnCreateDemandEntryOnBeforeInsert | Allows modification of demand log entries before insertion. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnCreateSummaryEntryOnBeforeInsert | Allows modification of summary log entries before insertion. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnBeforeRecalculateSummaryEntryQuantities | Allows overriding summary quantity recalculation. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnCalculateSummaryEntryQuantitiesOnBeforeModify | Allows modification of summary quantities before record modification. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnAfterApplyRelatedFilters | Allows applying additional filters after standard filters. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnAfterGetDescriptionFromInventoryProfile | Allows overriding description generation from inventory profile. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Table 8121101) | OnCreateReorderingPointDemandEntryOnBeforeInsert | Allows modification of reordering point demand entries before insertion. |
| New | IntegrationEvent | briAPL_LogPlanningInformation (Page 8121101) | OnAfterSetUIAvailability | Allows modification of UI availability variables on the Log Planning Information page. |
| New | IntegrationEvent | briAPL_UnplannedItemSubform (Page 8121104) | OnAfterSetUIAvailability | Allows modification of UI availability variables on the Unplanned Item Subform page. |
| New | IntegrationEvent | briAPL_QRSIntegrationHandler (Codeunit 8121119) | OnBeforeQRSInstalled | Allows overriding the QRS installed check. |
| New | IntegrationEvent | briAPL_INSIntegrationHandler (Codeunit 8121115) | OnBeforeInspectionStatusInstalled | Allows overriding the INS installed check. |
| New | IntegrationEvent | briAPL_ExtensionMgt (Codeunit 8121100) | OnBeforeIsBasic | Allows overriding the license/basic permission check. |