Supply Chain Management Blogs by SAP
Expand your SAP SCM knowledge and stay informed about supply chain management technology and solutions with blog posts by SAP. Follow and stay connected.
Showing results for 
Search instead for 
Did you mean: 
I'm often asked, "why does the optimizer don't plan my freight unit at all" or "why is the proposal not finding any route". This guide aims to give you some information about the first steps an application (TM ABAP not VSR-engine) developer will do when checking an TM-PLN-VSR* or TM-PLN-TP incident with a not found routing.

With this guide I will give all of you some steps on your own. As it's a PLN issue it might also help to read my blog How to create/process/analyses incidents for component TM-PLN*

Anyways this blog is focus on getting "any" VSR results and will not dig into cost analysis for the question "why does VSR not create the routing I expected".

I also numbered the different steps but except of step 1 and 2 this is not really a "processing sequence" but depends case by case.

Typical Error Message which Might Frustrate You

1. Make the scenario as small as possible

Basically, the best tip for any issue in planning does also fit here. To help yourself (and any other people around) analyzing the issue you should try to remove as many data as possible which might disturb your focus. If you e.g. wonder why certain freight units are planned while others aren't the first thing to do is removing all the freight units which are working fine from your focus. It also helps to solve issues one by one, so if you have an issue with a bunch of freight units it might help to first only look at one of them.

2. Describe your expectation

Always define yourself and any other people you are asking the expected result. Just saying "I guess there should be a routing found" makes it incredible hard for anyone else to analyze a foreign scenario. So always describe "I guess there should be a routing from A to B with Resource X, then Schedule J should be taken shipping the goods from B to C ...". It really helps to easier understanding the network setup and finding issues in the scenario. It will even help yourself to be aware of the complete expected result.

3. Split the Freight Unit Stages Manually

Often people want the VSR to find a routing while the freight unit is just having one stage end to end (e.g. you have a freight unit A to E and want the VSR finding the hubs B, C and D to be used). If the VSR is not finding a result for such scenario it makes sense to make the scenario even smaller one more time.  You can do that by manually split the stages into the correct routing and call the VSR one by one (each time selecting just one stage) in the transportation cockpit. With that you can isolate the stage which has an issue and focus on these only.

4. Make sure the planning horizon is big enough

Sometimes I get issues where an intermodal transport from China to Europe should get planned via VSR involving trucks for pre- and on-carriage and a schedule for the ocean transport which should get planned within a one-week planning horizon and obviously fails on the ocean stage. Even though it's not the most common source of issue I can recommend you have a short check on planning horizon and acceptable start and end dates of the freight unit.

5. Use the Explanation Tool

Searching issues in the VSR might get easier if you are activating the explanation tool (by setting user parameter /SCMTMS/EXP to X [transaction su3]). Search especially in the "result" section for messages for the different objects in the run.

Keep in mind that the explanation tool creates a performance overhead for the application so do not activate it just "always running" in productive system.

6. Try the Path-Finder

From the explanation tool you can directly call the path finder for a freight unit to check whether it's somehow possible to route the freight unit though the network. If this didn't find a result this might indicate a missing connection in your network. I think at time being the "Find Network Path" is always called end to end (not 100% sure on that one).

Keep also in mind that the "show network path" will search on your full network in the system. If you find a connection there it's still on you to search whether (and if not why) the connections you saw there made it into the VSR input tables.

Path-Finder in the Explanation Tool

7. Make sure transshipment locations are maintained

If you want to ship via multiple hubs you need to make sure that the transshipment locations are maintained.

8. Make sure schedule departures are created

Sometimes it's just forgotten to create the schedule departures based on the schedule rules.

9. Validity issues

Sometimes you will wonder that lanes you created in the system aren't found in the VSR run. This usually happens if the validity of your lane has not started at the begin of planning horizon.

Currently in TM the lane is either valid for a VSR run or not. Therefore only such lanes are evaluated which are valid at the timestamp begin of planning horizon.

10. Relax Constraints

In VSR there are multiple constraints which can get relaxed for the VSR processing. Therefore, in case you didn't get a result you should deactivate those (in a copy of your planning profile). If then a result is found, activate them again one by one to find out which constraint is creating an issue. Rushing through the planning profile I found the following:

  • Optimizer Settings: Consider Subsequent Planned Stages as Hard Time Constraint -> Deactivate it

    • If it fails due to this constraint, check for previous stages of the same requirement document. This one should be planned to late, so that it's impossible to plan the successor

  • Optimizer Settings: Consider Capacities -> Set it to "no"

    • If it fails due to this constraint, check your freight unit sizes and your capacities (keep in mind any capacity adjustment factors

  • Optimizer Settings: Consider Load Planning

    • If it fails due to this constraint, check length, width, height of the requirement and the trucks

  • Optimizer Settings: Default Route Settings -> Make sure it's not set to "Only Consider Default Routes

    • If it fails due to this constraint, check the default route which is foreseen can get fulfilled

  • Cost and Constraint Settings: Means of Transport Specific Maximum -> there are multiple maximum you can maintain -> set all of them to *

    • If it fails due to this constraint, check which one it is and why

  • Cost and Constraint Settings: Means of Transport Specific Accept Freight Orders Below Target Utilization -> Make sure "bad utilized" freight orders are accepted

    • If it fails due to this constraint, your scenario is working correctly and you would not accept the freight order created

As the list is quite long, I can tell you that I usually focus on the capacities constraint.

Relaxable VSR Constraints in Optimizer Settings


Relaxable VSR Constraints in Cost and Constraint Settings

11. Check for time constraints

Sometimes to strict and short acceptable times are preventing the VSR finding any solution. Therefore it helps to rebuild the expected solution manually and check whether manual scheduling can schedule it. If not you have to find out whether your PUDL windows are as strict that you create "unplannable" requirement documents.


Hope you will find this "check-list" helpful and don't get frustrated setting up a new scenario.

To read more of mine follow: Tuesday Knowlegde Snippet Series
1 Comment