-
Adding “In Approval” Stage in Purchase Requisition Workflow
Suggested by Mohamed Radwan – New – 0 Comments
Enhance the standard Purchase Requisition workflow in Dynamics, which currently has “Draft,” “In Review,” and “Approved” stages, by adding an intermediate “In Approval” stage. This new stage would provide clearer visibility into the exact phase of the workflow, distinguishing requests that are under review from those awaiting final approval.
Idea:
Implement an additional status called “In Approval” after “In Review.” This distinct stage will help users quickly identify whether a PR is still being evaluated or has moved on to final sign-off. It would reduce the need for manual checks in workflow history, offering better transparency for teams involved in the purchase process.
-
Support for capacity setup on main resources on Planning optimization
Suggested by Gabriel Sotiriu – New – 0 Comments
Currently, Planning optimization is not supporting the scenario where we have 3 parallel operations (one primary and 2 secondary), where resource assigned for primary operation has limited capacity associated to it and formula assigned on operation is Capacity while the resources associated to secondary operations have unlimited capacity.
When such situation is found, Planning optimization is generating error like "Capacity could not be found” during scheduling.
Same scenario works under legacy Master planning engine.
Scenario has been raised to Planning product group (under https://fix.lcs.dynamics.com/Issue/Details?bugId=1029575&dbType=3) and it has been deemed as being a gap in the current design of Planning optimization engine.
Below steps can be used to validate the scenario:
1. Navigate to Working time templates. Create new working time template = 1113 and set following time shifts:
Monday: From 06:00 to 24:00
Tuesday to Friday: From 00:00 to 24:00
Saturday: From 00:00 to 06:00 (Closed for pickup = Yes)
Sunday: Closed for pickup = Yes.
2. Navigate to Calendars form. Create new calendar = 1113 and calculate working times based on working time template = 1113.
3. Navigate to Route groups. Create new route group = 1113_std with Setup time = Yes and Run time = Yes under Estimation and costing. Check Activation for all job types, check Job scheduling and Working times for Setup, Process and Transport job types and check Capacity for Setup and Process job types.
- Then, created new route group = 1113_sec with Setup time = Yes and Run time = Yes under Estimation and costing and under Automatic route consumption. Also, check Report operation as finished = Yes. Check Activation, Working times and Capacity for Setup and Process job types. Note that Job scheduling is NOT checked.
4. Navigate to Resources form. Create new resource = 1113_Tool with Type = Tool, route group = 1113_std, Setup category = Polishing, Run time category = Polishing, Quantity category = Polishing. Set Capacity unit = Strokes/hour, Capacity = 3480, Batch capacity = 80. Set Finite capacity = No, Calendar = 1113 and assign resource to resource group = 1110.
- Next, still on Resources, create new resource = 1113_Mach with Type = Machine, route group = 1113_sec, Setup category = Polishing, Run time category = Polishing, Quantity category = Polishing. Set Finite capacity = No, Calendar = 1113 and assign resource to resource group = 1110.
- Next, still on Resources form, select resource = 1113 and update route group = 1113_sec, Finite capacity = No and Calendar = 1113.
- Then, click on Resource group = 1110 and, on Resource groups from, for selected resource group = 1110, assign calendar = 1113.
5. Navigate to Coverage groups form. Create new coverage group = Period45 with coverage code = period, coverage period = 45, coverage time fence = 365, negative days = 365, positive days = 365, BOM explosion time fence = 365, Capacity scheduling time fence = 365.
6. Navigate to Master plans form. Update StaticPlan and set Scheduling method = Job scheduling, Finite capacity = No. Set Coverage = Yes (365 days), Explosion = Yes (365 days) and Capacity = yes (365 days).
7. Navigate to Released product details. Create new item number = gs1113 with item model group =FIFO, item group = AudioRM, storage dimension = SiteWH, tracking dimension None. Under Plan fast-tab, set Coverage group = Period45.
8. For newly created item number gs1113, go to menu Plan – Default order setting. Set Default order type = production and, under Inventory fast tab, set Min. order quantity = 2000 and standard order quantity = 2000.
9. For newly created item number gs1113, go to menu Engineer – Route and create new route and route version with name = gs1113 on Site = 1. Add operations as follows:
- Oper. No. 10 – Primary, Operation = Assembly, Route group = 1113_std. Under Setup tab, set Formula = Capacity, Factor = 18. Under Times tab, set Setup time = 1.5 and Run time = 1 for Process quantity = 1. Under Resource requirements, set Requirement type = Resource and assign resource 1113_Tool.
- Oper. No 10 – Secondary 1, Operation = Finishing, Route group = 1113_sec. Under Resource requirements, set Requirement type = Resource and assign resource 1113_Mach (accept resource defaults).
- Oper. No. 10 – Secondary 2, Operation = Packing, Route group = 1113_sec. Under Resource requirements, set Requirement type = Resource and assign resource 1113 (accept resource defaults).
- Approve and activate the route version.
10. Navigate to All sales orders form. Create new sales order for customer account = US-001, on Site = 1, Warehouse = 11. Delivery date control = None. On Sales line, add item number = gs1113, quantity = 2000.
11. After saving the sales order, go to sales line menu Product and supply – Net requirements. On Net requirements from, submit Planning optimization for item gs1113 under StaticPlan.
12. Planning process will complete with an error.
-
Landed Cost for Quality management for warehouse processes
Suggested by Maria Voigt – New – 0 Comments
At the moment it is not possible to use the new quality management for warehouse processes feature and logics for ALL delivery terms that requiere Landed Cost.
That means that for the most import purchases it is not possible to work with warehouse work for quality inspections as the typical delivery term is FOB and not DDP.
In my case the customer has 80% FOB and 20% DDP and the main warehouse is internal and not an external logistic system. Without making Goods-In-Transit-Orders possible for quality mangement for warehouse processes the oranisation of taking away the sampling quantity and all the sampling plans is not supported by the system and has to be done manually. So the quality management provided by dynamics365 doesn't make sense at all for a warehouse with warehouse work.
-
Stop auto-update of confirmed receipt date in purchase order
Suggested by Agon Abazi – New – 0 Comments
Sometimes, vendors inform purchasers that transporters are experiencing delays, which means the Confirmed receipt date may shift slightly. In such cases, we need the flexibility to update the Confirmed receipt date manually without triggering an automatic change to the Confirmed ship date
-
System should display only active engineering version when creating production order
Suggested by Riley Chu – New – 0 Comments
When creating production order for engineering items, system displays all the engineering versions available, even the non active one. If we select the non-active version, after production order is created system will block this order from processing further.
We expected the system to only show the active engineering version when creating order, as sometimes users can accidentally select the non active one.
-
Enable Handling of Null or Missing Unit Prices in PunchOut Checkout for external vendors
Suggested by Mohamed Radwan – New – 0 Comments
After checking out items from a PunchOut site, an error occurs if the items do not include a unit price. In Issue #1039223, the product group determined this behavior is currently by design: the external vendor’s catalog is expected to provide a valid item price when returning the cart. If the external system does not supply a price, the checkout process fails with error Failed to parse cXML with exception Object reference not set to an instance of an object.
Idea:
Implement a mechanism that gracefully handles missing or null unit prices during the PunchOut checkout process. This could involve:
- Setting a default or placeholder price when a null value is returned.
- Prompting users to manually input a price if none is provided by the external vendor.
- Providing an informative error message or validation step to ensure a better user experience.
-
Automatically Apply Dependencies to Dynamically Created Batch Tasks in FormLetter Posting Jobs
Suggested by Kareem Essam – New – 0 Comments
In Dynamics 365 Supply Chain Management, batch jobs related to sales order processing (e.g.,
SalesOrderConsumptionAndConfirmation
) can dynamically create new tasks during runtime usingFormLetterServiceController
and related classes. However, these dynamically created tasks do not inherit the parent job's task dependencies, causing tasks to trigger out of sequence.This behavior leads to race conditions where tasks execute simultaneously instead of sequentially, resulting in:
- Incorrect order processing
- Task cancellations
- Significant business impact, including lost sales
We propose a product enhancement to ensure:
- All dynamically created batch tasks automatically inherit appropriate dependencies, especially when part of a chain (e.g., Job1 → Job2 → Job3).
- This would preserve execution order and maintain task integrity even when additional tasks are generated on the fly.
This change would improve the reliability of complex posting jobs and reduce the need for custom solutions or manual workarounds.
-
Reapproval rule for purchase orders does not working as expected.
Suggested by Vivienne Le – New – 0 Comments
Based on our documentation and logical expectations, the Reapproval Purchase Order Rule in Purchasing Policies should function as follows:
- If a field listed in the “Selected” panel is modified, the workflow should trigger reapproval.
- If a field in the “Available” panel is changed, the workflow should proceed with auto-approval.
Our Expected Behavior:
- Any changes that impact the Total Amount (e.g., tax, quantity) should cause the workflow to be reassigned for reapproval.
- Changes to other fields that do not affect the Total Amount should allow the workflow to auto-approve.
To align with this logic, we have included the following fields in the “Selected” panel:
- Accounting Distributions.Changed
- Purchase order lines.Net amount
- Purchase orders.Currency
- Purchase orders.Requester
All other fields remain in the “Available” panel.
The Product Group has suggested removing the Accounting Distributions.Changed field from the “Selected” section.
But this recommendation may not be acceptable for our customer. Removing this field could allow users to add additional charges without triggering reapproval, potentially leading to unauthorized approvals and payments—posing a risk of misuse.
Please kindly fix this issue in a future update to ensure the reapproval logic works as intended and maintains necessary financial controls.
-
Reapproval workflow rule for Purchase order
Suggested by Vivienne Le – New – 0 Comments
Reapproval rule for purchase orders does not working as expected.
- If any changes are made that affect the Total Amount—such as tax, quantity, etc—the workflow is reassigned to another user.
- If changes are made to other fields that do not impact the Total Amount, the workflow proceeds with auto-approval.
-
Extending EDT to allow LP to use more than 50 characters without facing error "the length of the specified literal string exceeds max limit when releasing a sales order load to warehouse"
Suggested by Ahmed Abdelaal – New – 1 Comments
Customer has extended at a customer our ItemIdBase data type from 20 to 60 characters.
It all goes fine within D365FO until we try to Release a sales order to the warehouse for an item number with a length of 60 characters.
However, as this is a platform kernel issue, PG concluded that it is less likely to be changed from code point of view.
Customer posted on Yammer to raise awareness in case multiple users can benefit from this additional functionality and we have raised this idea for the same to be tracked internally.