Table of Contents

LOADING METER: Loading Meters Calculation for Document Lines

Overview

The LOADING METER function calculates the loading meters required for a single document line. Loading meters represent the linear space occupied in a transport vehicle, standardized to a common measurement unit.

Purpose

To provide a standardized measurement of space utilization for individual line items, enabling:

  • Accurate cost calculation per line
  • Load planning optimization
  • Integration with Transportation Management Systems
  • Consistent measurement across different handling unit types

Parameters

Parameter Name Type Description Default Value
STACKING FACTOR COND Code[10] Condition code containing a stacking factor. This factor adjusts the calculation when items can be stacked more efficiently. If not specified or zero, defaults to 1. '' (empty)
WEIGHT CARR.TYPE Code[20] Handling Unit type filter. When the document line's handling unit type matches this filter, the calculation switches to weight/volume-based method instead of quantity-based. '' (empty)
INTERLEAVE COND Code[10] Override condition filter for interleave handling units. If specified, this condition determines whether interleave handling units are used, overriding the default interleave logic. '' (empty)

Algorithm

The GetLoadingMeterQty procedure calculates loading meters using one of two methods based on the handling unit type.

Method Selection

The calculation method is determined by comparing the document line's handling unit type with the WEIGHT CARR.TYPE parameter:

  • If handling unit type matches WEIGHT CARR.TYPE: Use weight/volume-based calculation
  • Otherwise: Use quantity/stacking factor-based calculation

Calculation Methods

Method 1: Weight/Volume-Based Calculation

Used when DocumentLine."Handling Unit Type Code" matches the WEIGHT CARR.TYPE filter.

Step 1: Calculate Weight Factor

WeightFactor = DocumentLine."Gross Weight" / CarrierType."Pick Max. Load Weight"

Where:

  • DocumentLine."Gross Weight" = Total gross weight of the line
  • CarrierType."Pick Max. Load Weight" = Maximum weight capacity of the handling unit type

Step 2: Calculate Volume Factor

VolumeFactor = (DocumentLine.Quantity × ItemUnitOfMeasure.Cubage) / CarrierType."Pick Max. Load Cubage"

Where:

  • DocumentLine.Quantity = Item quantity
  • ItemUnitOfMeasure.Cubage = Volume per unit
  • CarrierType."Pick Max. Load Cubage" = Maximum volume capacity of the handling unit type

Step 3: Determine Result

Result = MAX(WeightFactor, VolumeFactor) × CarrierTypeGroup."Loading Meter Factor"

The maximum of weight and volume factors is used, ensuring both constraints are respected.

Method 2: Quantity/Stacking Factor-Based Calculation

Standard method used when handling unit type does not match WEIGHT CARR.TYPE.

Step 1: Determine Stacking Factor

IF STACKING FACTOR COND is specified THEN
    StackingFactor = GetDecimalCondition(ConditionSetID, StackingFactorConditionCode)
ELSE
    StackingFactor = 1
END IF

IF StackingFactor = 0 THEN
    StackingFactor = 1
END IF

Step 2: Retrieve Handling Unit Type UOM

Get the CarrierTypeUOM record for:

  • Customer Item (DocumentLine."No.")
  • Unit of Measure (DocumentLine."Unit of Measure Code")
  • Handling Unit Type (from handling unit type group filter)

Ensure CarrierTypeUOM."Qty. per UOM Code" is defined.

Step 3: Calculate Full Handling Units

FullCarriers = DocumentLine.Quantity div CarrierTypeUOM."Qty. per UOM Code"

Where div = integer division (whole number only).

Step 4: Calculate Orderpick Handling Units

OrderpickQty = DocumentLine.Quantity mod CarrierTypeUOM."Qty. per UOM Code"
OrderpickCarriers = OrderpickQty / CarrierTypeUOM."Qty. per UOM Code"

Step 5: Check for Interleave Adjustment

IF all of the following conditions are met:

  • CarrierTypeUOM."Qty. per Layer" > 0
  • DocumentLine.Quantity >= CarrierTypeUOM."Qty. per Layer"
  • OrderpickQty <> 0 (not a full handling unit)

THEN check for interleave:

IF INTERLEAVE COND is specified THEN
    Interleave = HasBooleanCondition(ConditionSetID, InterleaveConditionFilter)
ELSE
    Interleave = GetInterleaveCarriers(ConditionSetID)
END IF

IF Interleave THEN
    Height = CarrierTypeUOM.Height (or ItemUnitOfMeasure.Height if CarrierTypeUOM.Height = 0)
    NoOfLayers = CarrierTypeUOM."Qty. per UOM Code" div CarrierTypeUOM."Qty. per Layer"

    IF OtherLinesExists AND NoOfLayers > 0 THEN
        InterleavePalletHeightFactor = CarrierType.Height / (NoOfLayers × Height + CarrierType.Height) / StackingFactor
        OrderpickCarriers += InterleavePalletHeightFactor

        IF OrderpickCarriers >= 1 THEN
            OrderpickCarriers = 0
            FullCarriers += 1
        END IF
    END IF
END IF

Where OtherLinesExists = true if there are other document lines in the same document.

Step 6: Apply Stacking Factor and Calculate Result

FullCarriers = FullCarriers / StackingFactor
Result = (FullCarriers + OrderpickCarriers) × CarrierTypeGroup."Loading Meter Factor"

Mermaid Flowchart

flowchart TD
    Start([Start: GetLoadingMeterQty]) --> Validate{DocumentLine Type = Cust. Item<br/>AND No. <> ''<br/>AND Quantity <> 0?}

    Validate -->|No| Exit[Exit]
    Validate -->|Yes| GetCarrierType[Get Shipment Handling Unit Type]

    GetCarrierType --> CheckCarrierTypeGroup[Ensure Handling Unit Type Group<br/>and Loading Meter Factor]

    CheckCarrierTypeGroup --> CheckWeightMethod{Handling Unit Type matches<br/>WEIGHT CARR.TYPE filter?}

    CheckWeightMethod -->|Yes| WeightMethod[Weight/Volume Method]
    CheckWeightMethod -->|No| QuantityMethod[Quantity/Stacking Factor Method]

    WeightMethod --> CalcWeightFactor[WeightFactor = Gross Weight / Max Load Weight]
    CalcWeightFactor --> CalcVolumeFactor[VolumeFactor = Quantity × Cubage / Max Load Cubage]
    CalcVolumeFactor --> WeightResult[Result = MAX WeightFactor, VolumeFactor × Loading Meter Factor]
    WeightResult --> End

    QuantityMethod --> GetStackingFactor{STACKING FACTOR COND<br/>specified?}
    GetStackingFactor -->|Yes| StackFactorCond[Get Stacking Factor from Condition]
    GetStackingFactor -->|No| StackFactor1[Stacking Factor = 1]
    StackFactorCond --> CheckStackZero{Stacking Factor = 0?}
    CheckStackZero -->|Yes| StackFactor1
    CheckStackZero -->|No| GetCarrierTypeUOM
    StackFactor1 --> GetCarrierTypeUOM[Get Handling Unit Type UOM]

    GetCarrierTypeUOM --> CalcFullCarriers[FullCarriers = Quantity div Qty. per UOM Code]
    CalcFullCarriers --> CalcOrderpickQty[OrderpickQty = Quantity mod Qty. per UOM Code]
    CalcOrderpickQty --> CalcOrderpickCarriers[OrderpickCarriers = OrderpickQty / Qty. per UOM Code]

    CalcOrderpickCarriers --> CheckInterleave{Qty. per Layer > 0<br/>AND Quantity >= Qty. per Layer<br/>AND OrderpickQty <> 0?}

    CheckInterleave -->|Yes| CheckInterleaveCond{INTERLEAVE COND<br/>or default interleave?}
    CheckInterleaveCond -->|Yes| CalcInterleave[Calculate Interleave Adjustment]
    CalcInterleave --> ApplyStacking
    CheckInterleaveCond -->|No| ApplyStacking
    CheckInterleave -->|No| ApplyStacking[FullCarriers = FullCarriers / StackingFactor]

    ApplyStacking --> QuantityResult[Result = FullCarriers + OrderpickCarriers × Loading Meter Factor]
    QuantityResult --> End([End])

Calculation Steps

Weight/Volume-Based Method

  1. Get Weight Factor:

    WeightFactor = Gross Weight / Pick Max. Load Weight
    
  2. Get Volume Factor:

    VolumeFactor = (Quantity × Cubage) / Pick Max. Load Cubage
    
  3. Calculate Result:

    Result = MAX(WeightFactor, VolumeFactor) × Loading Meter Factor
    

Quantity/Stacking Factor-Based Method

  1. Determine Stacking Factor:

    • Retrieve from condition if STACKING FACTOR COND is specified
    • Default to 1 if not specified or zero
  2. Calculate Full Handling Units:

    FullCarriers = Quantity div Qty. per UOM Code
    
  3. Calculate Orderpick Handling Units:

    OrderpickQty = Quantity mod Qty. per UOM Code
    OrderpickCarriers = OrderpickQty / Qty. per UOM Code
    
  4. Apply Interleave Adjustment (if applicable):

    • Check if interleave is required
    • Calculate interleave pallet height factor
    • Adjust orderpick handling units accordingly
  5. Apply Stacking Factor:

    FullCarriers = FullCarriers / StackingFactor
    
  6. Calculate Final Result:

    Result = (FullCarriers + OrderpickCarriers) × Loading Meter Factor
    

Examples

Example 1: Weight/Volume-Based Calculation

Scenario:

  • DocumentLine."Handling Unit Type Code" = 'HEAVY' (matches WEIGHT CARR.TYPE filter)
  • DocumentLine."Gross Weight" = 500 kg
  • CarrierType."Pick Max. Load Weight" = 1000 kg
  • DocumentLine.Quantity = 100 pieces
  • ItemUnitOfMeasure.Cubage = 0.01 m³ per piece
  • CarrierType."Pick Max. Load Cubage" = 2 m³
  • CarrierTypeGroup."Loading Meter Factor" = 0.4

Calculation:

  1. WeightFactor = 500 / 1000 = 0.5
  2. VolumeFactor = (100 × 0.01) / 2 = 1 / 2 = 0.5
  3. MAX(0.5, 0.5) = 0.5
  4. Result = 0.5 × 0.4 = 0.2 Loading Meters

Result: 0.2 Loading Meters

Example 2: Quantity-Based Calculation (Simple)

Scenario:

  • DocumentLine."Handling Unit Type Code" = 'EUR' (does not match WEIGHT CARR.TYPE)
  • DocumentLine.Quantity = 150 pieces
  • CarrierTypeUOM."Qty. per UOM Code" = 50 pieces per handling unit
  • CarrierTypeGroup."Loading Meter Factor" = 0.4
  • STACKING FACTOR COND: Not set (defaults to 1)
  • No interleave required

Calculation:

  1. StackingFactor = 1
  2. FullCarriers = 150 div 50 = 3
  3. OrderpickQty = 150 mod 50 = 0
  4. OrderpickCarriers = 0 / 50 = 0
  5. FullCarriers = 3 / 1 = 3
  6. Result = (3 + 0) × 0.4 = 1.2 Loading Meters

Result: 1.2 Loading Meters

Example 3: Quantity-Based with Orderpick Handling Units

Scenario:

  • DocumentLine."Handling Unit Type Code" = 'EUR'
  • DocumentLine.Quantity = 175 pieces
  • CarrierTypeUOM."Qty. per UOM Code" = 50 pieces per handling unit
  • CarrierTypeGroup."Loading Meter Factor" = 0.4
  • STACKING FACTOR COND: Not set
  • No interleave required

Calculation:

  1. StackingFactor = 1
  2. FullCarriers = 175 div 50 = 3
  3. OrderpickQty = 175 mod 50 = 25
  4. OrderpickCarriers = 25 / 50 = 0.5
  5. FullCarriers = 3 / 1 = 3
  6. Result = (3 + 0.5) × 0.4 = 1.4 Loading Meters

Result: 1.4 Loading Meters

Example 4: Quantity-Based with Stacking Factor

Scenario:

  • DocumentLine."Handling Unit Type Code" = 'EUR'
  • DocumentLine.Quantity = 200 pieces
  • CarrierTypeUOM."Qty. per UOM Code" = 50 pieces per handling unit
  • CarrierTypeGroup."Loading Meter Factor" = 0.4
  • STACKING FACTOR COND = 'STACK2' (value = 1.5)
  • No interleave required

Calculation:

  1. StackingFactor = 1.5
  2. FullCarriers = 200 div 50 = 4
  3. OrderpickQty = 200 mod 50 = 0
  4. OrderpickCarriers = 0
  5. FullCarriers = 4 / 1.5 = 2.666...
  6. Result = (2.666... + 0) × 0.4 = 1.066... Loading Meters

Result: 1.066... Loading Meters

Example 5: Quantity-Based with Interleave Adjustment

Scenario:

  • DocumentLine."Handling Unit Type Code" = 'EUR'
  • DocumentLine.Quantity = 150 pieces
  • CarrierTypeUOM."Qty. per UOM Code" = 90 pieces per handling unit
  • CarrierTypeUOM."Qty. per Layer" = 50 pieces
  • CarrierTypeUOM.Height = 0.20 meters
  • CarrierType.Height = 0.15 meters (interleave pallet)
  • CarrierTypeGroup."Loading Meter Factor" = 0.4
  • STACKING FACTOR COND: Not set
  • Interleave required (GetInterleaveCarriers = TRUE)
  • Other lines exist in document

Calculation:

  1. StackingFactor = 1
  2. FullCarriers = 150 div 90 = 1
  3. OrderpickQty = 150 mod 90 = 60
  4. OrderpickCarriers = 60 / 90 = 0.666...
  5. Check interleave: Qty. per Layer (50) > 0, Quantity (150) >= 50, OrderpickQty (60) <> 0 → TRUE
  6. Height = 0.20 meters
  7. NoOfLayers = 90 div 50 = 1
  8. InterleavePalletHeightFactor = 0.15 / (1 × 0.20 + 0.15) / 1 = 0.15 / 0.35 = 0.428...
  9. OrderpickCarriers = 0.666... + 0.428... = 1.095...
  10. Since OrderpickCarriers >= 1: OrderpickCarriers = 0, FullCarriers = 1 + 1 = 2
  11. FullCarriers = 2 / 1 = 2
  12. Result = (2 + 0) × 0.4 = 0.8 Loading Meters

Result: 0.8 Loading Meters

Important Notes

  • The weight/volume method uses the maximum of weight and volume factors to ensure both constraints are respected
  • The stacking factor reduces the number of handling units needed when items can be stacked more efficiently
  • Interleave adjustments only apply when there are other lines in the document and orderpick handling units exist
  • When interleave adjustment causes orderpick handling units to exceed 1, it converts to a full handling unit
  • Loading meter factor is handling unit type group-specific and must be configured in master data