Welcome to our insightful update on enhancing warehouse management in Dynamics 365 Business Central. This post delves into “AdvancedReservationPicking” – our method to refine the ‘Create Pick’ process, particularly for efficiently managing reserved items.
Confronted with the need to synchronize warehouse picks with actual reservations, we’ve crafted a tailored solution. It enhances precision and integrates effortlessly with Business Central’s existing functionalities. Join us as we provide a concise overview of this custom development and showcase a real-world scenario that highlights its tangible advantages.
Table of Contents
Intro
Efficiently managing the picking process in warehouse management is a crucial challenge in Dynamics 365 Business Central. Our solution focuses on enabling warehouse shipments to create picks specifically for sales lines with reserved items, enhancing inventory control. We’ve added a new button to the Warehouse Shipment page, ensuring the standard process remains unchanged while introducing our improved picking method. This addition lets users access enhanced functionality seamlessly without altering their usual workflows.
Scenario
This section illustrates a real-world scenario demonstrating the effectiveness of our custom solution in Dynamics 365 Business Central. The scenario showcases the difference between the native ‘Create Pick’ process and our enhanced ‘Create Pick (Only Reserved)’ functionality.
1. Sales Order with Partial Reservation
The first image displays a sales order containing 70 units of an item, but only 50 units are reserved. This sets the stage for our scenario, highlighting the partial reservation.
2. Item Reservation Details
In the second image, we see the reservation details for the item, showing a total of 150 units in inventory, with 50 units specifically reserved. This provides context for the available and reserved quantities.
3. Native ‘Create Pick’ Process
The third image demonstrates the invocation of the standard ‘Create Pick’ action within the warehouse shipment. This is the typical process used in Business Central.
4. Resulting Warehouse Pick from Native Process
Following the native process, the fourth image shows the warehouse pick created for 70 units. This aligns with the total quantity in the sales order but does not consider the reservation specifics.
5. Using the Custom ‘Create Pick (Only Reserved)’ Action
After resetting the scenario (deleting the initial pick), the fifth image captures the use of our custom ‘Create Pick (Only Reserved)’ button. This is where our enhanced process comes into play.
6. Warehouse Pick Result from Custom Process
Finally, the sixth image shows the warehouse pick created using our custom process. Notably, it correctly includes only 50 units, precisely matching the reserved quantity, showcasing the effectiveness of our solution in handling partial reservations.
Code
Codeunits
1. Isolated Storage
The Codeunit 50101 “Isolated Storage” plays a crucial role in our enhanced warehouse picking process. It leverages the concept of isolated storage in Dynamics 365 Business Central to store and manage temporary data specific to our custom picking logic. This codeunit acts as a bridge, ensuring that our enhanced picking process is triggered only under certain conditions, without permanently altering or storing the state within the user’s session or the database.
2. Warehouse Events
This codeunit subscribes to the OnAfterCreateTempLineCheckReservation
event in the “Create Pick” codeunit. The key functionality here is the conditional execution of a custom picking process. It leverages isolated storage to determine whether to trigger this custom process. When triggered, it adjusts the quantities to pick based on the reserved quantities, aligning the picking process more closely with actual inventory reservations. This approach ensures that the picking process is both efficient and reflective of current inventory states, particularly focusing on reserved items.
PageExt
1. Warehouse Shipment
This page extension adds a new action to the “Warehouse Shipment” page, named “CreatePickCustom“. This action is designed to trigger a custom process for creating warehouse picks. When the user clicks this button, it stores a specific value (‘CreatePickCustom‘) in isolated storage. This value is used as a flag to activate the custom logic in the event subscriber within the “Warehouse Events” codeunit. After setting this flag, it proceeds to call the standard pick creation process, ensuring seamless integration with the existing system.
The addition of this custom action allows users to opt into the enhanced picking process, specifically targeting reserved items, without disrupting the standard workflow. This design choice maintains the integrity of the native application while providing a flexible, user-initiated option for advanced functionality.
Conclusion
In conclusion, our enhancements in Dynamics 365 Business Central’s picking process bring notable improvements in efficiency and inventory control. By focusing on reserved items, we’ve streamlined warehouse operations to better meet modern demands. The selection of the OnAfterCreateTempLineCheckReservation
event in the “Create Pick” codeunit, after extensive testing, highlights the versatility and depth of Business Central.
We thank you for your interest in our project. For a deeper dive, the complete code with explanations is available on Github repository. We welcome your reviews, usage, and contributions to further enhance Business Central’s capabilities.