Skip to Content
Product Information
Author's profile photo Marcus Zahn

Monday Knowledge Snippet (MKS) – 102 Package Building from simple to complex scenarios (part II)

Let us continue developing the package building scenario from simple to complex, that we kicked off in MKS101. So far we only used a single product having some alternative unit of measures defined and a package type assignment. The results already looked okay with such a minimal set of definitions. No package building profile so far. No package material. No layer definitions. No optimizer.

Our last pallet contained only 5 EA (half of the full package quantity) and everything looked okay except the height:

700mm kind of looks strange at first sight: From the dimensions we can derive that 2 EA form a full layer and then we would have 2 full layers (560mm) and a single piece on top (280mm) making it 840mm, Well, the PB does not automatically derive layers and in this simple mode of course does not consider the pyhsical shape of the product. But we can help the engine by adding this layer info to the product:

We only fill the quantity and no other field. It is possible though to set a layer height other than the product height to model something customer specific. In case not filled, PB uses the product height.

As there can be many packaging and layer definitions in the product (for example for a EU pallet and a pallet cage), we need to tell the PB in the package type assignment which layer definition it shall use:

Running the scenario again, we see that the height is as desired:

That’s as good as it gets working only with packaging and layer units of measure. The package material is only included in the full packages, but not in the incomplete packages. The PB does not derive the weight and height of the package material out of a relation between the product definitions and full package quantity. There would be too many assumptions in this.

Now let’s add another product to start consolidation. Yes, that is also possible without a package building profile and a package material. One note: I do not go back to the very, very basic product settings we started with (no product dimensions, no layer). I think I explained what those are for and you can try out what happens when you combine multiple product with such basic definitions: Full packages are created okay and the consolidation brings up missing or inconsistent package attributes. So here is the new product:

I defined the very same package type assignment and then run the PB for both products. Because I am a fan of simplicity, I do not try out 127 EA of PRODUCT_A and 87 EA of PRODUCT_B (like some people I know would start with), but a simple 1 EA + 1 EA combination. That might help me to understand what is going on:

Nice! My first mixed package! The package attributes look also quite nice: The PB set the height to the tallest product as the combined volume of the products fits within this space.

Next try to check if the full package quantity still works:


Next try to see that the layers I have defined are working:

That’s bad. I used for PRODUCT_A a quantity of a full layer + 1 EA and the same for PRODUCT_B. Mixing worked, but the height is not what I was expecting (280mm + 350mm + 350mm = 980mm). It looks calculated (like we had it with the single product and no layers): Total product volume / package surface.

Why is this? The answer is simple: The PB does not use layers until it has a limit it can stack the layers against. Why does it still create a mixed package using the volume based approach? Because there the logic is different. You can play around with the quantities and check the results. If you encounter something interesting (at least I did :-)): Feel free to post it here. No tickets please. 🙂


You might wonder hy the full package height is not used as maximum also for the mixed package. The PB was intended to do so, but the first friontrunner customers had some scenarios where this was not desired. Nevertheless, this feature can still be acvtivated using BAdI method /SCMB/IF_PB_ENHANCE~ADJUST_SETTINGS and setting parameter s_settings-apply_full_pkg_height_limit = ABAP_TRUE.


So let’s do define a height limit. My preferred spot would be the package material, but since we don’t have one yet we stick to the package type assignment. Typically here you would only need to enter customer or product specific limits.

Back to package building:

Much better!

More to come…

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Marcus Zahn
      Marcus Zahn
      Blog Post Author

      Here is the link to the LinkedIn discussion:

      Author's profile photo Nitesh Saluja
      Nitesh Saluja

      Hello Marcus,


      Thanks for the wonderful insights on PB functionality. My question is not directly related to the blog. Question is – Can Package building consider Warehouse specific rules like Aisle and Pick Sequence  (considering the product are slotted from heavy to light) for building Pallets?


      Best Regards


      Author's profile photo Marcus Zahn
      Marcus Zahn
      Blog Post Author

      Yes, from the very beginning pick sequence was on our mind. Quite a funny story. It is possible to do this by supplying an item order sequence when calling the PB or determining this within the enhancement. Actually the first two live customers have been using the PB for EWM with the pick sequence.

      This work only with the volume based and layer based mixed package building, not with the detailed mixed package building (Package Builder Optimizer).