In addition to the manual packing functionality that was introduced in my previous post, the new Warehouse management system also provides a feature, Containerization, which supports an automated or guided packing process. In this process, containerization assists the user by:
By using this feature, you will not only have an overview of the quantity and types of containers that are going to be used for packing prior to the picking of goods, but you’ll also have work created in a way that the work lines are split into quantities that fit the containers. This allows and guides the warehouse workers to pick the items directly into the chosen container. Compared to the manual packing process, tasks such as creating containers, assigning items, closing containers are automated by the system.
The containerization logic is integrated into waves as an optional process and when enabled, it is executed as part of the processing of the wave. During the processing of a wave, containerization is performed prior to the creation of work. This allows the system to utilize the generated container structure information to guide the work creation process. You can also configure wave templates to automate the wave process so that containerization is executed upon release of the source orders.
Currently, this feature is primarily aimed at assisting the user with the planning of container structure and work in the packing process. We do not support any manual packing operations on the containers created by the system or modification of the container structure, which you are able to do in the manual packing flow on the containers created by the user. For example, you cannot delete, re-open or change item quantity inside the container. Right now, there is also no support on the Mobile device implemented for the warehouse workers to validate things such as item quantity, product configuration, or physical dimensions as they actually pack goods into containers.
This blog post describes the necessary setup for containerization and provides an example of a basic automated packing flow.
Figure 1. Wave template (Warehouse management > Setup > Waves > Wave templates)
A wave template is the entry point to the containerization process. In the screenshot above, the containerization method is shown as an optional method on the right side of the window. To enable containerization, move it to the Selected methods pane on the left by clicking the arrow button.
Figure 2. Wave template with Containerization method added
Enter a Wave step code for the added method, which can be any code. This code will be used later in the setup.
Note: It’s possible to add the method more than once and assign different wave step codes. To do this, you need to set this method to repeatable in the Wave process methods form (Warehouse management > Setup > Waves > Wave process methods).
Figure 3. Container types (Warehouse management > Setup > Containers > Container types)
You can define your containers in the Container types form. Configure the physical dimensions of containers including tare weight, maximum weight, maximum volume, length, width, and height. In this example we have three different sizes of boxes.
Figure 4. Container group setup (Warehouse management > Setup > Containers > Container groups)
You can include a set of container types in a group.
Note: When containerization is executed, a selected container group will be processed and when there are more than one containers in the group, the system will determine which container is the best fit for the goods to be packed. This is done by using a “downsize” logic. For each container that is found in the group and that meets the requirement (volume, weight, etc.), the system will attempt to find a smaller container that also fits the goods, and the currently found container will be “downsized” into a smaller one. For this to function correctly, it’s important that you order the containers in a container group by size, from large to small.
Figure 5. Container build template (Warehouse management > Setup > Containers > Container build template)
The container build template is the core setup for this feature, based on which the containerization process is performed. Each container build template defines one containerization process that will be used by a wave template.
As mentioned earlier, you can have a container build template that is used on multiple wave template, or vice versa, multiple container build templates that point to the same wave template. The former allows you to re-use the container build template in different wave configurations. The latter is useful when: 1) You have set up multiple container build templates and want the system to choose the proper one based on the template query criteria during processing of the wave. For example, if you want to use different containers for two different items and they are both placed on a sales order, you can set up two templates with query condition on item number so that both items have the corresponding containers generated during the process. 2) You need to build a nested container structure, that is, a container inside a container.
As mentioned earlier, you can have a container build template that is used on multiple wave template, or vice versa, multiple container build templates that point to the same wave template.
The former allows you to re-use the container build template in different wave configurations. The latter is useful when:
1) You have set up multiple container build templates and want the system to choose the proper one based on the template query criteria during processing of the wave. For example, if you want to use different containers for two different items and they are both placed on a sales order, you can set up two templates with query condition on item number so that both items have the corresponding containers generated during the process.
2) You need to build a nested container structure, that is, a container inside a container.
Figure 6. Mixing logic breaks
Figure 6. Mixing logic breaks
Note: By design, containers always break by Shipment ID.
Note: By design, containers always break by Shipment ID.
Figure 7. Item physical dimensions (from the Released product form > Manage inventory > Physical dimensions)
To calculate containers correctly, item physical dimensions must be set properly. Open the Physical dimensions form from the item detail page and set the weight, width, depth, and height (volume will be calculated). If there are multiple units in the unit sequence group for the item and they are all used during the outbound process, make sure to set physical dimensions for all units (for the above item, the unit conversion is 1PL = 50EA).
For this example, we have a work template that takes items directly to baydoor, and not to a packing location, which is different than the manual packing flow.
Now that the necessary setup is done, we’ll work through a simple outbound flow that uses containerization to build up a single-level container structure.
Figure 8. Sales order
Here we have a sales order with three lines. For the first item, we only have one EA and for the second item, we have some quantity that is in PL and some that is less than one PL quantity (1PL = 50EA for 000148_202). Assume that we have enough on-hand inventory for both items and all sales lines have been reserved.
Now we release the sales order to warehouse. Based on the wave template setup, this step should create, process, and then release the wave. Upon the processing of the wave, containerization executes the following steps:
1. The container build template with matching wave step code on the wave template is selected.
2. The query criteria of the template is checked for the current allocation line. If met, the system starts processing the template to create containers for the allocation line. This process is illustrated in figure 9 below.
Figure 9. Containerization logic for packing an allocation line
3. If the query criteria is met but the container build template fails to pack the allocation line (due to, for example, dimension not being met), the line will still be assigned to the container. However, the created container will have field Container has errors, enabled, indicating that the containerization process failed here and you will also receive an error.
4. Continue the same process on the next allocation line until there are no more items to be packed.
Figure 10. Shipment details
If you open the shipment from the sales order, you can view the created container structure by clicking the Container structure button on the Shipment details form.
Figure 11. Container structure (from Shipment detail form > Transportation > Container structure)
As shown in the screenshot above, five containers are created (I opened the form five times to show the content in all the containers).
Figure 12. Containers (from Shipment detail form > Transportation > View containers or Warehouse management > Inquiries > Containers)
You can also open the Containers form to view all the created containers and related information. Here you can do things such as print container content and view accessorial charges. Compared to the manual packing flow, buttons such as New, Delete, and Reopen appear unavailable in this form for containerization-created containers. Again, this is because we currently don’t support these operations.
Now, let’s look at how the work was generated as part of the wave processing.
Figure 13. Work
The work lines are broken into quantities that match our container structure, each with the container ID assigned. You may notice that the fourth and fifth work lines belong to the same container. This is because they are for two different sales lines with different units and to be picked from different locations. Based on our configuration, they should still be packed into the same container.
The warehouse worker can go to the location, pick the items, and pack them directly into the containers as guided by the created work lines using Mobile device. The procedure of completing the work on Mobile device is the same as completing an usual outbound picking work.
After the work is completed, the status of containers will be automatically updated to Closed, which is different from the manual packing flow where you need to manually mark containers as closed.
After that you can confirm the outbound shipment and the goods are then ready for shipping.
Here are a few things that are worth noting when using containerization.
Figure 14. Allow splitting of work on Mobile device menu item
Splitting of work through Mobile device is not supported when containerization is enabled. The Allow splitting of work option allows the warehouse worker to split work line quantities on the mobile device during the execution of work. This is not supported right now. If selected, the mobile user will receive an error and will be prevented from proceeding.
Figure 15. A container with remaining volume larger than a single item but cannot fit in one more item
As explained earlier in the containerization logic, when the system calculates the remaining available volume of a container, it adds up volume of the existing items inside and deducts this number from the maximum allowable volume of the container. This may lead to a situation where the remaining volume of a container is larger than the volume of one or more items but you actually cannot fit in any more, as illustrated in the above graph. This is where the Container utilization percentage in the Container groups setting becomes useful. It allows you to specify a container usage margin so that the calculated packing quantity reflects the actual container capacity for a particular item.
As mentioned above, you cannot manually delete the containers created during containerization process. However, the created containers will be deleted when the work is cancelled.
This blog post has given you an introduction to the new containerization feature and shown the necessary setup and the basic workflow. Compared to the manual packing flow where you first move the goods to the packing location and then have the packer conduct the packing process of selecting containers, assigning items, and closing containers, containerization provides a way to accommodate the scenario where you would like to have the system automatically generate the container structure, so the warehouse worker can pick the goods directly into containers with optimal picking routes. It’s a useful tool that helps you with work planning in the packing process. Optimized work creation based on containers and reduced manual operation makes the packing process more efficient.
Thanks for reading! We look forward to your feedback on this new feature.
Thank you Jilong for this great post.
I've followed all the steps and everything works fine.
The only issue I found is that I cannot see the container Id assigned to the work lines into the mobile device, even when the pick lines are splitted by container properly.
Any idea is appreciated.
I believe the filed is not shown by default, but you can add it using right click--> Personalise --> Add fields.
Hi, Thank you for your post,
I've a question with your unit conversion and physical dimensions.
You said, 1PL = 50ea but the weight of each is 2.00 and the weight of a pallet is 50.0 but a pallet contains 50each so weight = 50 * weight of each = 50 * 2 = 100.
I'm wrong ?
Thanks in adavnce
Yes, you are right.
If the wight of a pallet was setup as 100 in the physical dimensions form, the container structure that is created would have been slightly different, such as there would be large container for each pallet of the item 000148_202.
In your example 1PL=50each. And 2 pallets fit into one container. Why system suggest to use 4 containers for item 000148_202. It looks logically that 3 containers will be enough (I mean 2 pallets fit into 1 container and one container can include 100 items. We should shipped 290 items. So, 290/100 = 2,9 containers.)
Note the physical dimensions of this item: unit "ea" has weight 2 and unit "PL" has weight 50. In the large container, we have set as max. weight = 100. In order not to exceed the max weight of the container which has 1 PL, we can only add 25 ea (total weight = 50 (from the PL) +25*2=100 which is the max weight)
Thank you for explanation. I haven't analysed the parameter weight... oh.. Very similar question was discussed by David some comments above. Let's suppose that mass conservation law doesn't work in Contoso demo data ;-)
with the best regards,
Hello, thanks for your blog. It was excellent! But I have a problem. I can´t see the container Id assigned to the work lines into the mobile device either. Some idea about what is the problem???
Thanks for this blog. Is very helpful. Our client would like to ship each container separately and would like to post packing slip for each container. Any ideas how we can achieve that? We have been able to split our work based on each container. So 1 container is 1 work, but how do we ship each container now
Is there a specific set up for "Master Pack" Logic. Our OEM sends in master packs of 10, for example. If a customer orders 15 I want the 10 to ship out as a Case Pack and 5 to ship as eaches. How do I set this up?
I followed all steps, but somehow, AX converts my third sales order line from 40 ea to 1 pl and assigns this pallet to the last container of the second sales order line (where only 1 pallet has been packed so far).
How do I enforce that the third sales line is allocated as 'ea' to the containerization?
In addition to my previous post: during my testing, the quantities in the generated containers are always expressed in the inventory uom of the item, not the sales uom as in the above example. Any idea what I'm missing here?
Sorry for spamming.
Just managed to solve the issue I reported earlier after reading another post from Mr. Zhang (blogs.msdn.com/.../combined-use-of-manual-packing-and-containerization-functionalities-in-an-outbound-process.aspx). The requirement is that the location directive for sales orders must be set in such way that there is a sequence that restricts the UOM to PL and a sequence without this restriction, but that allows splitting.