-
Notifications
You must be signed in to change notification settings - Fork 2
Enhanced Transport Planning Constraints
- Introduction
- Getting Started
- Configuring Transport Settings
- Setting Up Vehicles
- Setting Up Addresses
- Configuring Pick and Drop Modes
- Managing Plate Coding Rules
- Managing Truck Ban Constraints
- Managing Ad-Hoc Transport Factors
- Using the System
- Common Tasks
- Troubleshooting
The Transport Planning Constraint System helps ensure that vehicles are assigned correctly by checking various rules and restrictions. This system can:
- ✅ Ensure vehicles arrive within specified time windows
- ✅ Restrict pick/drop operations to certain days of the week
- ✅ Enforce license plate coding rules (e.g., odd/even days)
- ✅ Block vehicles from banned areas or routes
- ✅ Handle temporary issues like road closures or port congestion
This guide will walk you through setting up and using these features.
Before using the constraint system, make sure you have:
- Access to Transport Settings
- Permission to create/edit vehicles, addresses, and constraint rules
- Basic understanding of your transport operations
-
Enable the System
- Go to Transport Settings
- Open the Constraint Features tab
- Check "Enable Constraint System"
- Set "Constraint Checking Mode" to "Warning" (to start safely)
-
Enable Individual Features
- Enable only the constraints you need
- Start with one or two features to learn the system
- You can enable more later
-
Test with a Transport Plan
- Create a test Transport Plan
- Run auto-allocation
- Review the results to see how constraints work
- Go to Transport module
- Click on Transport Settings (or search for it)
- Open the Constraint Features tab
-
Check "Enable Constraint System"
- This is the master switch
- When unchecked, all constraint checking is disabled
-
Select "Constraint Checking Mode"
- Strict: Blocks vehicle assignment if constraints fail (recommended for production)
- Warning: Allows assignment but shows warnings (recommended for testing)
- Disabled: Skips all constraint checking
Enable only the features you need:
- ☑️ Enable Time Window Constraints - Check pick/drop time windows
- ☑️ Enable Address Day Availability - Check day-of-week restrictions
- ☑️ Enable Plate Number Coding Constraints - Check license plate rules
- ☑️ Enable Truck Ban Constraints - Check area/route bans
- ☑️ Enable Ad-Hoc Transport Factors - Consider temporary issues
Tip: Start with "Warning" mode and enable one constraint at a time to learn how each works.
Routing Settings:
- Default Average Speed: Set default speed if vehicles don't have avg_speed (e.g., 50 km/h)
- Require Vehicle Average Speed: If checked, vehicles without avg_speed will be skipped
Loading/Unloading Time Defaults:
- Set default base times (e.g., 15 minutes)
- Choose calculation method (Volume-Based, Weight-Based, or Combined)
- Set rates (e.g., 5 minutes per m³, 2 minutes per 100kg)
Ad-Hoc Factors:
- Delay Threshold: Maximum delay before blocking route (e.g., 60 minutes)
- Blocking Impact Types: Which impact types should block routes
For first-time setup:
✅ Enable Constraint System: Checked
Constraint Checking Mode: Warning
✅ Enable Time Window Constraints: Checked
✅ Enable Address Day Availability: Checked
❌ Enable Plate Number Coding: Unchecked (enable later)
❌ Enable Truck Ban Constraints: Unchecked (enable later)
❌ Enable Ad-Hoc Factors: Unchecked (enable later)
For the constraint system to work properly, vehicles need:
- Average Speed (required for time calculations)
- License Plate Number (required for plate coding)
- Vehicle Type (used for exemptions and restrictions)
- Go to Transport Vehicle list
- Open an existing vehicle or create a new one
- Fill in the required fields:
-
Avg Speed: Enter average speed in km/h (e.g., 45, 50, 60)
- This is used to calculate travel times
- If not set, system uses default from Transport Settings
-
License Plate Number: Enter the vehicle's license plate (e.g., "ABC-1234")
- Used for plate coding constraint checks
- Last digit is used for odd/even day rules
-
Vehicle Type: Select the vehicle type
- Used for exemption checks (plate coding)
- Used for truck ban restrictions
Vehicle Code: TRUCK-001
Vehicle Name: Delivery Truck 1
Vehicle Type: Heavy Truck
Avg Speed: 50 km/h
License Plate Number: ABC-1234
Capacity: 5000 kg, 20 m³
- Set avg_speed based on typical road conditions in your area
- Use consistent license plate format for easier management
- Group similar vehicles with same vehicle type for easier rule management
Time windows define when pickups and deliveries can occur at an address.
- Go to Address list
- Open the address you want to configure
- Scroll to custom fields section
- Set the following fields:
- Custom Pickup Window Start: Earliest time for pickup (e.g., 08:00)
- Custom Pickup Window End: Latest time for pickup (e.g., 17:00)
- Custom Drop Window Start: Earliest time for delivery (e.g., 09:00)
- Custom Drop Windows End: Latest time for delivery (e.g., 18:00)
Note: These are Time fields - enter time in HH:MM format (24-hour).
Address: Warehouse A
Pick Window: 08:00 - 17:00
Drop Window: 09:00 - 18:00
Day availability restricts which days of the week pickups and deliveries are allowed.
- Open the Address
- Find the day availability checkboxes
- Check the days when operations are allowed:
For Pickups:
- ☑️ Custom Pick Monday
- ☑️ Custom Pick Tuesday
- ☑️ Custom Pick Wednesday
- ☑️ Custom Pick Thursday
- ☑️ Custom Pick Friday
- ☐ Custom Pick Saturday (unchecked = not available)
- ☐ Custom Pick Sunday (unchecked = not available)
For Deliveries:
- ☑️ Custom Drop Monday
- ☑️ Custom Drop Tuesday
- ... (same pattern)
Important:
- ✅ Checked = Available on that day
- ❌ Unchecked = NOT available on that day
Address: Port Terminal
Pick Available: Monday, Wednesday, Friday only
Drop Available: Monday, Wednesday, Friday only
Weekend: Not available
Address: Customer Warehouse
├─ Pick Window: 08:00 - 16:00
├─ Drop Window: 09:00 - 17:00
├─ Pick Days: Monday-Friday (checked)
├─ Drop Days: Monday-Friday (checked)
└─ Weekend: Not available
Pick and Drop Modes control how loading and unloading times are calculated based on cargo size.
The system can calculate loading/unloading time in different ways:
- Fixed Time: Same time regardless of cargo size
- Volume-Based: Time increases with cargo volume (m³)
- Weight-Based: Time increases with cargo weight (kg)
- Volume and Weight Combined: Uses both volume and weight
- Go to Pick and Drop Mode list
- Open an existing mode or create a new one
- Go to "Loading and Unloading Time" tab
- Configure loading time:
- Base Loading Time: Minimum time required (e.g., 15 minutes)
-
Loading Time Calculation Method: Choose method
- Fixed Time: Use base time only
- Volume-Based: Add time per m³
- Weight-Based: Add time per 100kg
- Volume and Weight Combined: Use both
- Loading Time per m³: Additional minutes per cubic meter (e.g., 5)
- Loading Time per 100kg: Additional minutes per 100kg (e.g., 2)
- Maximum Loading Time: Cap on total time (0 = no limit)
- Configure unloading time (same fields, prefixed with "Unloading")
Mode: Quick Load
Base Loading Time: 15 minutes
Calculation Method: Fixed Time
Result: Always 15 minutes, regardless of cargo size
Mode: Standard Loading
Base Loading Time: 15 minutes
Calculation Method: Volume-Based
Time per m³: 5 minutes
Maximum: 120 minutes
Examples:
- 0.5 m³ cargo: 15 + (0.5 × 5) = 17.5 minutes
- 5 m³ cargo: 15 + (5 × 5) = 40 minutes
- 20 m³ cargo: 15 + (20 × 5) = 115 minutes (capped at 120)
Mode: Heavy Cargo
Base Loading Time: 20 minutes
Calculation Method: Weight-Based
Time per 100kg: 3 minutes
Examples:
- 500 kg: 20 + (500/100 × 3) = 35 minutes
- 2000 kg: 20 + (2000/100 × 3) = 80 minutes
- Use Fixed Time for consistent operations
- Use Volume-Based for bulky cargo
- Use Weight-Based for heavy cargo
- Use Combined for complex scenarios
- Set maximum times to prevent unrealistic calculations
Plate coding rules restrict vehicles based on their license plate numbers (e.g., odd/even day schemes).
- City-wide traffic management schemes
- Odd/even day restrictions
- Last digit coding rules
- Regional vehicle restrictions
- Go to Plate Coding Rule list
- Click New
- Fill in the basic information:
- Rule Name: Descriptive name (e.g., "Odd-Even Day Scheme")
-
Coding Type: How to extract the digit
- Last Digit (most common)
- First Digit
- Odd/Even
- Custom Pattern
- Start Date: When rule becomes active
- End Date: When rule expires
- Is Active: Check to enable the rule
- Time Restriction: Check if rule only applies during certain hours
- Restricted Start Time: Start of restricted period (e.g., 07:00)
- Restricted End Time: End of restricted period (e.g., 20:00)
Click Add Row in the "Restricted Digits" table:
- Restricted Digit: The digit that's restricted (0-9)
- Restricted Day: Which day it's restricted (optional - leave empty for all days)
Rule Name: Odd-Even Day Scheme
Coding Type: Last Digit
Start Date: 2026-01-01
End Date: 2026-12-31
Is Active: Yes
Restricted Digits:
├─ Digit 1, 3, 5, 7, 9 → Monday, Wednesday, Friday
└─ Digit 0, 2, 4, 6, 8 → Tuesday, Thursday, Saturday
Result:
- Vehicles ending in 1,3,5,7,9: Allowed Mon/Wed/Fri only
- Vehicles ending in 0,2,4,6,8: Allowed Tue/Thu/Sat only
Some vehicle types may be exempt from plate coding (e.g., emergency vehicles):
- Go to Vehicle Type list
- Open the vehicle type
- Check "Exempt from Plate Number Coding"
- Save
Vehicles of this type will skip plate coding checks.
- Use clear, descriptive rule names
- Set appropriate date ranges
- Test rules in "Warning" mode first
- Mark exempt vehicle types clearly
Truck ban constraints restrict vehicles from specific areas or routes during certain times.
- City center restrictions
- Residential area bans
- Rush hour restrictions
- Weight-based bans
- Route-specific bans
- Go to Truck Ban Constraint list
- Click New
- Fill in the information:
- Ban Name: Descriptive name (e.g., "City Center Rush Hour Ban")
-
Ban Type: Type of ban
- Area Ban: Specific addresses/areas
- Route Ban: Specific routes
- Time-Based Ban: Time restrictions only
- Weight-Based Ban: Weight restrictions
- Vehicle Type Ban: Vehicle type restrictions
- Start Date: When ban starts
- End Date: When ban ends
- Is Active: Check to enable
- All Day: Check if ban applies all day
- Start Time: If not all day, start time (e.g., 07:00)
- End Time: If not all day, end time (e.g., 09:00)
Click Add Row in "Restricted Addresses/Areas":
- Address: Select the banned address
- Radius (km): Area around address (0 = exact address only)
Example:
Address: City Center Plaza
Radius: 2 km
Result: Bans all addresses within 2 km of City Center Plaza
Click Add Row in "Restricted Routes":
- From Address: Starting point
- To Address: Destination
- Route Name: Optional name (e.g., "Highway 1")
Note: Route bans work in both directions (A→B and B→A).
Restricted Vehicle Types:
- Click Add Row in "Restricted Vehicle Types"
- Select vehicle types that are banned
- If empty: Ban applies to ALL vehicle types
Weight Restrictions:
- Minimum Vehicle Weight: Vehicles above this weight are banned
- Leave empty if not applicable
Ban Name: City Center Rush Hour Ban
Ban Type: Area Ban
Start Date: 2026-01-01
End Date: 2026-12-31
All Day: No
Start Time: 07:00
End Time: 09:00
Restricted Addresses:
├─ City Center Plaza (radius: 2 km)
└─ Main Street (radius: 0 km - exact only)
Restricted Vehicle Types:
└─ Heavy Truck
Min Weight: 5000 kg
Result:
- Heavy trucks over 5000 kg
- Banned from City Center area (2 km radius)
- During 07:00-09:00 only
- Use radius for area bans (0 = exact address)
- Set appropriate time windows
- Specify vehicle types if ban doesn't apply to all
- Test in "Warning" mode first
Ad-Hoc Transport Factors handle temporary issues like road closures, port congestion, or special events.
- Road closures
- Port congestion
- Weather events
- Traffic incidents
- Construction
- Special events
- Go to Ad-Hoc Transport Factor list
- Click New
- Fill in the information:
- Factor Name: Descriptive name (e.g., "Highway 1 Road Closure")
-
Factor Type: Type of issue
- Road Closure
- Port Congestion
- Weather Event
- Traffic Incident
- Construction
- Special Event
- Other
- Severity: Low / Medium / High / Critical
- Start Date/Time: When issue starts
- End Date/Time: When issue ends
- Is Active: Check to enable
-
Impact Type: How severe the impact is
- Complete Blockage: Route/address completely unavailable
- Partial Blockage: Limited access with delays
- Delays Only: Accessible but with delays
- Access Restricted: Access restrictions apply
-
Estimated Delay (minutes): Expected delay (for Partial Blockage/Delays Only)
Affected Addresses:
- Click Add Row in "Affected Addresses/Areas"
- Select address
- Set radius (km) if area is affected
- Set impact type for this address (optional - overrides factor impact type)
Affected Routes:
- Click Add Row in "Affected Routes"
- Select From Address and To Address
- Set impact type for this route (optional)
- Click Add Row in "Restricted Vehicle Types"
- Select vehicle types affected
- If empty: Affects all vehicle types
- Alternative Route Suggestions: Text field for suggested alternatives
Factor Name: Highway 1 Road Closure
Factor Type: Road Closure
Severity: High
Start: 2026-01-20 06:00
End: 2026-01-20 18:00
Impact Type: Complete Blockage
Affected Routes:
└─ From: City A, To: City B
Alternative Routes: Use Highway 2 via City C
Result:
- Route City A → City B completely blocked
- During specified time period
- Alternative route suggested
Factor Name: Port Terminal Congestion
Factor Type: Port Congestion
Severity: Medium
Start: 2026-01-15 08:00
End: 2026-01-15 16:00
Impact Type: Delays Only
Estimated Delay: 120 minutes
Affected Addresses:
└─ Port Terminal (radius: 0 km)
Result:
- Port Terminal accessible but with 2-hour delays
- During specified time period
- Set accurate start/end times
- Use appropriate impact types
- Provide alternative routes when possible
- Deactivate factors when issues are resolved
- Use severity to prioritize factors
The constraint system works automatically when you run Transport Plan auto-allocation.
- Go to Transport Plan list
- Open or create a Transport Plan
- Click Auto-Allocate and Create Run Sheets
- Review the results
The system will show:
- ✅ Vehicles Assigned: Successfully assigned vehicles
⚠️ Warnings: Constraint violations in Warning mode- ❌ Blocked: Vehicles blocked by constraints (in Strict mode)
- 📊 Debug Information: Detailed constraint check results
Debug output shows:
- Which constraints were checked
- Why vehicles were accepted or rejected
- Estimated delays
- Alternative suggestions
Example Debug Output:
Vehicle TRUCK-001: Selected
- Time window check: Passed
- Day availability check: Passed
- Plate coding check: Passed (exempt vehicle type)
- Truck ban check: Passed
- Ad-hoc factors: 30 min delay (within threshold)
Vehicle TRUCK-002: Blocked
- Time window check: Failed (cannot meet drop window)
- Reason: Estimated completion 19:00, window ends 18:00
- ✅ Vehicles are assigned even if constraints fail
⚠️ Warnings are shown in debug output- 📝 Use this to see what would be blocked
- 🔍 Good for testing and learning
- ✅ Vehicles are assigned only if all constraints pass
- ❌ Vehicles are blocked if any constraint fails
- 🚫 Use this in production for compliance
- ⚡ Faster allocation (skips invalid vehicles early)
- ✅ All constraint checks are skipped
- ⚡ Fastest mode
⚠️ No validation performed- 🔧 Use only if constraints are not needed
Scenario: You want to enforce time windows for all warehouse addresses.
Steps:
- Go to Address list
- Filter by address type or location
- For each address:
- Open the address
- Set Pick Window Start/End
- Set Drop Window Start/End
- Save
Tip: Use bulk edit if your system supports it, or create a script to update multiple addresses.
Scenario: City requires odd/even day restrictions based on license plate.
Steps:
- Create Plate Coding Rule:
- Name: "City Odd-Even Scheme"
- Coding Type: Last Digit
- Add restricted digits:
- 1,3,5,7,9 → Monday, Wednesday, Friday
- 0,2,4,6,8 → Tuesday, Thursday, Saturday
- Mark exempt vehicle types (if any):
- Open Vehicle Type (e.g., "Emergency Vehicle")
- Check "Exempt from Plate Number Coding"
- Enable in Transport Settings:
- Check "Enable Plate Number Coding Constraints"
- Set mode to "Warning" first, then "Strict"
Scenario: Ban heavy trucks from city center during rush hour.
Steps:
- Create Truck Ban Constraint:
- Name: "City Center Rush Hour Ban"
- Ban Type: Area Ban
- Time: 07:00-09:00 (not all day)
- Add restricted addresses (city center addresses)
- Add vehicle type: "Heavy Truck"
- Enable in Transport Settings:
- Check "Enable Truck Ban Constraints"
- Set mode to "Warning" first
Scenario: Highway is closed for maintenance for one day.
Steps:
- Create Ad-Hoc Transport Factor:
- Name: "Highway 1 Maintenance Closure"
- Type: Road Closure
- Start/End: Specific date and time
- Impact Type: Complete Blockage
- Add affected route (From/To addresses)
- Add alternative route suggestion
- Enable in Transport Settings:
- Check "Enable Ad-Hoc Transport Factors"
- After closure ends:
- Deactivate the factor (uncheck "Is Active")
Scenario: Loading time should increase with cargo volume.
Steps:
- Open Pick and Drop Mode (e.g., "Standard Loading")
- Go to "Loading and Unloading Time" tab
- Set:
- Base Loading Time: 15 minutes
- Calculation Method: Volume-Based
- Time per m³: 5 minutes
- Maximum: 120 minutes
- Save
Result:
- Small cargo (1 m³): 20 minutes
- Medium cargo (5 m³): 40 minutes
- Large cargo (20 m³): 115 minutes
Check:
- ✅ Transport Settings → Enable Constraint System is checked
- ✅ Individual constraint toggles are enabled
- ✅ Constraint rules are active (Is Active = checked)
- ✅ Date/time ranges include the scheduled date
- ✅ Vehicle data is correct (avg_speed, license_plate_number)
Solution: Review debug output to see which constraint is blocking. Temporarily switch to "Warning" mode to see what would be blocked.
Check:
- ✅ Time windows are set on addresses
- ✅ Vehicle has avg_speed set
- ✅ Distance is calculated correctly
- ✅ Loading/unloading times are configured
Solution:
- Verify vehicle avg_speed is realistic
- Check if distance calculations are correct
- Review loading/unloading time calculations
- Adjust time windows if needed
Check:
- ✅ Plate Coding Rule is active
- ✅ Date range includes scheduled date
- ✅ Vehicle has license_plate_number set
- ✅ Vehicle type is not exempt
Solution:
- Verify license plate format (last digit should be numeric)
- Check if vehicle type is marked as exempt
- Review rule date ranges
- Test with different vehicles
Check:
- ✅ Constraint caching is enabled
- ✅ Number of active constraints is reasonable
- ✅ Cache refresh interval is appropriate
Solution:
- Enable constraint caching in Transport Settings
- Increase cache refresh interval
- Reduce number of active constraints
- Increase timeout value if needed
Check:
- ✅ Vehicles have avg_speed set
- ✅ Cargo weight/volume is set on Transport Leg
- ✅ Default values are configured in Transport Settings
Solution:
- Set avg_speed on all vehicles
- Ensure cargo data is entered
- Configure defaults in Transport Settings
- Enable "Require Vehicle Average Speed" if you want strict validation
If you encounter issues:
- Check Debug Output: Review Transport Plan allocation debug messages
- Test in Warning Mode: Switch to Warning mode to see what's happening
- Review Constraint Data: Verify constraint rules are set up correctly
- Check System Logs: Look for error messages in system logs
- Contact Support: Reach out to your system administrator
☐ Enable Constraint System
☐ Set Constraint Checking Mode (Warning/Strict)
☐ Enable Time Window Constraints
☐ Enable Address Day Availability
☐ Enable Plate Number Coding Constraints
☐ Enable Truck Ban Constraints
☐ Enable Ad-Hoc Transport Factors
☐ Set Default Average Speed
☐ Configure Loading/Unloading Defaults
☐ Avg Speed is set
☐ License Plate Number is set
☐ Vehicle Type is selected
☐ Capacity information is complete
☐ Pick Window Start/End is set
☐ Drop Window Start/End is set
☐ Day availability checkboxes are set
☐ Rule name is descriptive
☐ Date range is correct
☐ Is Active is checked
☐ Restrictions are properly configured
☐ Vehicle/address matches are correct
- Begin with one or two constraint types
- Use "Warning" mode initially
- Test thoroughly before switching to "Strict"
- Regularly update vehicle information
- Keep constraint rules current
- Deactivate expired constraints
- Remove old ad-hoc factors
- Use clear names for rules and constraints
- Include dates or locations in names
- Document special cases
- Test constraints in "Warning" mode
- Verify calculations are correct
- Check edge cases (boundary times, etc.)
- Review impact on existing operations
- Review constraint violation patterns
- Adjust rules based on actual operations
- Optimize for performance
- Keep constraints relevant
The Transport Planning Constraint System helps ensure vehicles are assigned correctly by validating against various rules and restrictions. By following this guide, you can effectively set up and use the system to improve your transport planning operations.
Remember:
- Start with "Warning" mode to learn the system
- Enable constraints gradually
- Keep data updated
- Test thoroughly before production use
For technical details, refer to the Implementation Guide or Design Document.
Document Version: 1.0
Last Updated: 2026-01-08
For: End Users and Administrators
Getting Started
- Getting Started
- Recent Platform Updates
- CargoNext v1 — Release Notes
- CargoNext v1 — Astraea Press Release
- Document Management
- Milestone Tracking
- Customer Portal
Setup and Settings
- Logistics Settings
- Credit Management
- Default Details and Relationships
- Sea Freight Settings
- Air Freight Settings
- Transport Settings
- Warehouse Settings
- Customs Settings
Sea Freight
- Sea Freight Module
- Sea Booking
- Sea Shipment
- Sea Consolidation
- Master Bill
- Shipper
- Consignee
- Container Type
- Container Management
Air Freight
Transport
- Transport Module
- Transport Order
- Transport Job
- Transport Consolidation
- Transport Leg
- Transport Plan
- Run Sheet
- Proof of Delivery
- Transport Template
- Load Type
- Transport Order — Inter-module Field Copy
Customs
Warehousing
- Warehousing Module
- Inbound Order
- Release Order
- Transfer Order
- VAS Order
- Stocktake Order
- Warehouse Job
- Warehouse Contract
- Gate Pass
- Periodic Billing
- Storage Location
- Handling Unit Type
Pricing Center
- Sales Quote
- Sales Quote — Separate Billings and Internal Job
- Change Request
- Sales Quote – Calculation Method
Job Management
- Job Management Module
- Revenue Recognition Policy — Accounts, Dates, and Charges
- Proforma GL Entries
- WIP and Accrual Reversal on Invoicing
Sustainability
Intercompany
Special Projects
Pages
Features
Reports
Glossary