Today I would like to spend the MKS on the logic, how the SAP Supply Chain Execution Package Builder (SCE PB) handles products when building packages, especially mixed packages (or pallets).
In the standard process, the SCE PB receives line items based on product / material master data and tries to package them following the target package type assignment. So far this had 3 phases:
- Create full packages of the product
- Create layer based mixed packages
- Create volume based mixed packages
For phase 2 and 3 the PB did not take any grouping of the products into account, but combined them using internal optimization algorithms. Nevertheless, it was possible using either the input item structure or the enhancements to supply a processing sequence. If this was available, the PB strictly followed this sequence product by product filling up mixed packages until they were complete and starting the next one. This function was introduced to support warehouse specific pick sequences. This stays untouched by what I will describe next.
For scenarios where the SCE PB shall determine a reasonable product sequence and combination in mixed packages, the reference material for Package Building that I did introduce with
MKS81 will be used. Remember, now it is possible to define per product a reference product and even structure this as a hierarchy. Here is an example:
Reference Material Hierarchy
The SCE PB will now run through the following phases to create packages:
- Full Product Packages per Location/Customer
- Full Product Packages
- Full Reference Product Packages per Location/Customer
- Full Reference Product Packages
- Mixed Packages considering Location and Customer soft constraints
- Mixed Packages ignoring soft constraints
How are full packages created for a single product?
To enable the SCE PB to create full packages, the full package quantity is required either on the product itself or on a superior reference product. The PB will find the target package material in the package type assignment. From there it will either use the defined package unit of measure or if not defined the base unit of measure of the package material. With this unit of measure it will check in the product definitions if the full package quantity is defined.
So using the material hierarchy above as example: All products are assigned to target package material CHEP_PALLET with base unit of measure CPL. If for example product A1 is supplied, the PB will check if it finds a full package quantity in the alternative unit of measure definitions of the product for CPL. In case yes, it will use it. If not, it will climb up the material hierarchy (CAN_SMALL -> CAN -> AMBIENT) and use the one it finds first. If it does not find any full package quantity, the product will be processed completely using the mixed packaging algorithms.
Let's assume in our example the full package quantity is defined on the first level reference products. For product A1 it will be defined then on CAN_SMALL with 100 EA <-> 1 CPL.
Now it is pretty straight forward: If the PB receives product A1 with a quantity of 140 EA, it will apply the full package quantity and immediately create a full package having 100 EA of product A1 assigned. The remaining 40 EA will be processed further.
This logic will be applied per product, so completely separate also for A2, B1, C1, and so on.
Basic idea here is that such a product pure full package / pallet come out of the factory in this shape with this product quantity and can be handled in the warehouse without repacking effort. It can directly be passed to the transport.
Depending on the scenario it is possible that all products are after this completely packages (ordered quantity always in full packages), some full packages are created, or even no full packages are created (low volume scenarios). All remaining not packaged products are passed to the next phase.
Why is there a difference between step 1 and 2?
Even though this is a look ahead: The PB can receive in the newly supported processes the same product multiple times (different customer / different location). It will in those cases always try to create the most homogeneous packages. I will explain this in more detail in one of the next MKS.
How are full packages created for a grouped products?
This is new: Now the PB will group all remaining products by their first level reference product for package building if this has a full package quantity defined. It will then apply this quantity and if sufficient product quantity is available create again full packages (having multiple products on it). Here it will always use the product with the biggest quantity and fill it up. Of course depending on the product set this can again lead to 0, 1 or more result packages / pallets.
Basic idea here is that as long as the reference product declares that its sub products package the same, the same packaging pattern can be used and will create a stable target package / pallet. In reality, such mixed packages require effort in the warehouse.
Following the example: We had 40 EA or product A1 left. Assume we also have product A2 with 170 EA. So again a full product pure pallet with 100 EA is created. The leftover quantity of 70 EA will now be combined with A1 and result in a pallet with 70 EA A2 and 30 EA A1. The leftover quantity of 10 EA of A1 will be passed to the next phases.
The same will happen for all products under CAN_LARGE, PET_SMALL, PET_LARGE, GLASS_SMALL, GLASS_LARGE, and KEG.
In our example NO full package quantity is defined on the next level (CAN, PET, GLASS). Technically, the PB does not care and would also do this. So in case for example the first level reference material is used to model some other product grouping (for example flavor), this would also work.
Phase 3 and 4 is now complete and the PB switches into consolidation mode.
How are mixed packages created without a full package quantity?
Independently if volume or the new optimizer mixed package building shall be applied, the PB will stick to the grouping and try to create layer based full mixed packages (only in case towered mixed packages are configured this is skipped). In the package type assignment it is possible to define a layer unit of measure. If the PB find on the product the corresponding entry, it will transfer the product into a layer and try to combine it with other products of the same group.
In our example: Let's assume all products shall use layers with unit of measure LY1. For product A1 this is 10 EA <-> 1 LY1, so we have exactly 1 layer. The PB also has product B1 with 36 EA, where 12 EA make a full layer (so we have 3 layers of this product). Depending on the defined limits, the combination of those 4 layers can lead to a layer based mixed pallet that is complete. If this is the case, the PB will use this result. If not, it will apply volume based or optimizer mixed package building in combination with other products of this group not filling a complete layer. Assume there would be 11 EA product A1, 47 EA B1, and some others, those could together end up as a sufficient mixed pallet.
Here again the PB would respect customer and location constraints.
The PB would now climb up the reference material hierarchy until all products are packaged. In a low order volume scenario this would ensure mixed packages that are as homogeneous as possible. But the result can of course also be a pallet on the AMBIENT level having products out of all sub ordinate product groups.
After each of the consolidation rounds, it is possible in the enhancement method SET_PACKAGE_COMPLETE to take a look at the result and mark it as okay even though it did not completely reach the limit. Especially in the PBO case it might occur that the result is of the limit, but good enough. I will work on a better option in standard (target fill rate maybe).
Can the combination of multiple product groups be manipulated?
Yes, in the product relationship profile it is possible under the consolidation settings to define a consolidation sequence. CAN first with PET, second with GLASS. PB will use the product group wth the biggest volume as leading product group.
I add some screenshots from the system with another example:
This topic makes it very transparent how important it is to set up the material hierarchy in a meaningful manner.