EBS Warehouse Management Cartonization APIs
Background
Cartonization is the process of evaluating the items included in an order to determine the number and type of each shipping carton needed.
It generally has been used in two contexts: 1) the ability to predict number of cartons based on an order for the purposes of quoting shipping charges, and 2) controlling how an order is packed during the fulfillment process.
Many factors that influence the cartonization process are weight, height, length and width of each item along with the packaging and shipping constraints and economical efficiency.
This document primarily focuses on Oracle R12 Warehouse Management System’s cartonization APIs. These APIs can be utilized to implement business-specific cartonization rules and manipulate cartonization tasks. For most of its part, this document refers to cartonization processes involved in a FMCG retail warehouse.
What is in this document?
Cartonization – what it means for this document
| Type | Dims (m) | Vol capacity (cu. M) | Wt capacity (kg) |
| a. Euro Pallet b. US Pallet |
|
| a.660 kg b. 1134 kg |
| a. Small Rollcage b. Large Rollcage |
|
|
|
Cartonization involves two types of entities :
Following are some examples of Container Items – which we will consider.
Cartonization Entities
| Item | Dims (m) | Vol (cu. M) | Weight (kg) |
| SOFT DRINKS TYPE A 2LT 6PK | L = 0.203m, W = 0.309m, H = 0.336 m | 0.02107 m3 | 13.2 kg |
| HEALTH DRINKS TYPE A 1kg BOX PK of 16 | L = 0.4 m, W=0.24 m, H = 0.2m | 0.0192 m3 | 16.5 kg |
| COOKIE TYPE A PK OF 8 | L = 0.42m, W = 0.20m , H = 0.20m | 0.0208 m3 | 1.2 kg |
Following are some examples of Contained Items
Cartonization Entities .. contd
Packaging constraints that normally exists..
The Problem
Let us consider one scenario :
A domestic customer orders the following items
Since the ordered quantities are less than full-pallet, cases will be picked from CASE subinventory. And it is a domestic order. Hence, as per our warehouse business rules, the order needs to be packed in RollCages.
Moreover, it is desirable to ensure that no heavy cases should be stacked over COOKIE cases.
And this is how items are present in CASE sub-inventory :
Cartonization feature in Oracle WMS :
(what the User Guide says)
With container management features, Oracle Warehouse Management can automatically suggest packing configurations for groups of items. Optionally, cartonization may be based on the following packing requirements, Oracle Warehouse Management cartonization routines suggest the best carton selection for a grouping of items:
• Container weight capacity
• Volume
• Item and container dimensions
• Item's packaging restrictions
The system can determine the best carton size in which to pack the material being picked for shipment.
Oracle Warehouse Management uses cartonization for the following tasks:
• Sales order and manufacturing picking (pick release)
• Cartonization prior to WIP completion
• Mobile bulk packing
• Cartonization at task release
Cartonization feature in Oracle WMS (contd) :
(what the User Guide says)
Setting Cartonization Rules on the Rules Workbench
Use the Rules Workbench to define default cartonization rules across pick release batches for the selected organization. Select from the following cartonization options:
• Single item: 1-1 relationship of the same item in a container.
An Item is always matched to the same container based on the static relationship setup in the item/container relationship window.
Handled through Item – Container relationship
• Mixed item: Multiple items in a carton based on item category relationships.
Uses the Contained-Container Item capacity and dimension restrictions defined on the Master Item window and checks it against the category and category set setup as well.
Handled through Category-Category Set relationship
• Pick slip grouping rule: One carton per pick slip.
Generate an LPN for all items that belong to the same pick slip.
Handled through pick slip grouping rule
• Custom algorithim: Customers can develop custom APIs to determine their own cartonization requirements.
Uses a stub API to interface with customer-defined cartonization rules.
Handled through custom logic implemented in Custom API
Cartonization feature in Oracle WMS (contd..):
(additional references) –
Using standard Cartonization feature of WMS
Key Setups for this type of cartonization -
Warehouse Parameter
Subinventory Parameter
Let us consider the standard “Mixed Item” algorithm of Oracle WMS
Key Setups for cartonization (contd) -
Container Item Definition
Key Setups for cartonization (contd) -
Contained Item Definition
Key Setups for cartonization (contd) -
Rules Workbench
The execution – using “Mixed Items” rule
Order and Line
The execution – using “Mixed Items” rule (contd..)
Pick Released the lines
The execution outcome – using “Mixed Items” rule
This is how WMS did the cartonization
Using this algorithm -
The container item chosen for this order is EURO Pallet
The execution outcome – using “Mixed Items” rule (contd..)
…and the tasks generated.
The problem in using “Mixed Items” rule in this case
Other solution options.
So, it might be necessary to use a different cartonization algorithm.
Now, what are the options?
Other options ?
So, in either case, we need the WMS cartonization APIs to modify the tasks based on cartonization results.
But there is no detailed documentation about how to use the APIs. Hence this document.
Cubing flow | |
| |
| |
| |
The steps involved in the flow…
Book Order
Delivery Line Created
Delivery Created
Order Management
WMS
Pick Release
Tasks Created
Perform Cubing
OTM/Custom Cubing Program/3rd Party software
Extract Task Info
Extract Cubing Result
Update Tasks with LPN
Start
End
Use Label Pick
Print Label
Send the following delivery information from EBS to a third party cubing software / OTM
NAME | TRANSACTION_TEMP_ID | ITEM | QTY | SOURCE LOCATOR | DESTINATION LOCATOR | CONTAINER_ITEM_ID | CARTONIZATION_ID |
6263966 | 29088599 | IFC SOFT DRINKS TYPE A 2LT 6PK | 30 | CASE1.52.1 | STG1.1.1 | | 11294 |
6263966 | 29088602 | IFC COOKIE TYPE A PK OF 8 | 20 | CASE2.11.2 | STG1.1.1 | | 11295 |
6263966 | 29088605 | IFC HEALTH DRINK TYPE A 1kgX16 | 20 | CASE2.51.5 | STG1.1.1 | | 11296 |
Tasks created in WMS are as follows:
Used the wms_cartonization_pub to stamp an LPN id on each task for tracking. Can use some other logic as well.
A recording
OTM came up with following solution – based on the configs I did…
Container Type | Container # | ITEM | QTY |
IFC ROLLCAGE A | 20170220-0001-003 | IFC COOKIE TYPE A PK OF 8 | 20 |
FC ROLLCAGE B | 20170220-0001-004 | IFC SOFT DRINKS TYPE A 2LT 6PK | 30 |
IFC HEALTH DRINK TYPE A 1kgX16 | 20 |
A recording
Cube IQ came up with the following solution…(again – based on my configs)
Container Type | Container # | ITEM | QTY |
FC ROLLCAGE B | 1 | IFC SOFT DRINKS TYPE A 2LT 6PK | 15 |
IFC HEALTH DRINK TYPE A 1kgX16 | 20 | ||
IFC COOKIE TYPE A PK OF 8 | 20 | ||
IFC ROLLCAGE A | 2 | IFC SOFT DRINKS TYPE A 2LT 6PK | 15 |
BIG ROLLCAGE
SMALL ROLLCAGE
HEALTH DRINKS Qty = 20
SOFT DRINKS Qty = 30
COOKIES Qty = 20
Let me consider the solution suggested by the Cube IQ (as it will cover all the scenarios I wanted to test)
Pick 20 cases of IFC HEALTH DRINK TYPE A 1kgX16
TASK 1
Pick 30 cases of IFC SOFT DRINKS TYPE A 2LT 6PK
TASK 2
Pick 20 cases of IFC SOFT DRINKS TYPE A 2LT 6PK
TASK 3
CASE2.51.5
CASE1.52.1
CASE2.11.2
Pick 15 cases of IFC SOFT DRINKS TYPE A 2LT 6PK
TASK 2b
Pick 15 cases of IFC SOFT DRINKS TYPE A 2LT 6PK
TASK 2a
So, we have multiple tasks into 1 Rollcage as well as 1 task into multiple Rollcage
The following flowchart provides a sample logic to update the WMS tasks based on what the cubing algorithm suggested (along with API references.)
Consider each rollcage and start processing each inventory_item_id - quantity combination – one by one
Use WMS_CONTAINER_PUB.GENERATE_LPN to generate the lpn_id for the new container of specific container type
Does sum of individual tasks completely match the required quantity ?
Use WMS_TASK_MGMT_PUB.modify_task to update the lpn_id for the task/s (use p_new_carton_lpn_id parameter)
Use WMS_CARTNZN_PUB.UPDATE_MMTT to update the container_item_id for the task (use p_container_item_id)
Identify all the tasks that are required to make up the quantity for the item in that container
For those task, which get completely consumed – update the lpn_id using WMS_TASK_MGMT_PUB.modify_task and container_item_id using WMS_CARTNZN_PUB.UPDATE_MMTT
For the remaining task, split the task such that another task gets created for the balance quantity required using WMS_TASK_MGMT_PUB.split_task.
Use WMS_TASK_MGMT_PUB.modify_task to update the lpn_id for the task (use p_new_carton_lpn_id parameter)
Use WMS_CARTNZN_PUB.UPDATE_MMTT to update the container_item_id for the task (use p_container_item_id)
Choose one inventory_item_id - quantity combination
Yes
No
Setp 1. Generate LPN for Big Rollcage…
Setp 2. Consider 1st item in this Rollcage – 20 cases of Health Drink. Find the tasks for this item.
Since the entire task quantity gets consumed in this container, go ahead and update the task with lpn_id and container_item_id
Setp 3. Consider 2st item in this Rollcage – 15 cases of Soft Drink. Find the tasks for this item.
Here, only 15 cases need to go to Big Rollcage. So need to split the task so that one task is created with 15 qty, and the original task has the remaining qty – 15 in this case
Finally, update the new task with lpn_id and container_item_id
Setp 4. Consider 3rd item in this Rollcage – 20 cases of Cookies. Find the tasks for this item.
The entire task qty will be allocated to this LPN. So, update the task with lpn_id and container_item_id
This completes the big rollcage. Next, consider the Small rollcage.
Setp 1. Generate LPN for Small Rollcage…
Setp 2. Consider 1st item in the Small Rollcage – 15 cases of Soft Drinks. This is the only item in the LPN. Search the task.
The entire task qty will be allocated to this LPN. So, update the task with lpn_id and container_item_id
So, this completes the task-level processing.
Next, to execute tasks using MSCA. Will use Label Picking.
A Recording
If you have noticed, the system consolidated the LPN for Small Rollcage into that of the Big Rollcage!
It is because the Operation Plan for the organization was the Default – LPN based consolidation in staging lane within delivery
We can see the nesting in Material Inquiry screen as well
But what we actually needed were 2 different rollcages (LPN)
So we changed the Operation Plan to Direct consolidation in staging lane within delivery
Now we see the LPNs getting created as desired…
END