Skip to Content
Technical Articles
Author's profile photo Tobias Berger

TKS #2 – Scheduling – Manual Planning and Embedded Scheduling

Manual Planning

Usually with a manual planning action (like assigning a freight unit to a truck, changing stops…) you are changing freight documents in a way that times need to get redetermined to create an executable plan. Therefore, I highly recommend you to add scheduling to all of your manual planning actions. As most of you will know manual planning is controlled by a process controller strategy and therefore you should add the strategy method “VSRI_SCHED” to your MP strategy.



Manual Planning Strategy Method for Scheduling in Process Controller

Embedded Scheduling

The scheduling engine is part of TM optimizer engines which are not written in ABAP code but in C++ and are connected via RFC. This brings two drawbacks for customers – more setup & no customer enhancements possible inside the engine. I would rate both as not really critical as usually the current TM customers want to use any of the other optimizer engines (like VSR, LCO, LSO…) and will have to do the setup on their own and I would rather recommend to exchange the input data for the scheduling engine instead of the engine as such (I will give some hints in a later blog).

Anyways for the so-called Basic Shipping Functionality all optimization engines (including VSS) are not included. So, till 2020 all the times needed to be maintained manually (or stay on the default timings), when just using Basic Shipping. To close that gap SAP decided to introduce the so called “Embedded Scheduling” which is a new engine written in ABAP, exchanging the engine call via RFC.

You can easily switch between the engines with changing the scheduling strategy in the planning profile of your scheduling settings to the strategy VSS_EMBED.


Scheduling Strategy in Planning Profile


Basically, both engines trying to solve the same problem (creating times which fit well to the document time windows, constraints and the scheduling direction) they are not a copy of each other, but the new engine was created independently. Therefore, one of the most important statements of mine is: Embedded Scheduling will create semantical correct results BUT not the same results as the optimizer services engine. Semantical correct in this case means that there aren’t any constraints violated.

As the implementation of the algorithm is quite new, I’m happy for feedback if you encounter weird looking scheduling results (e.g. huge – not with e.g. operating time windows explainable – gaps between load and travel activities) and I guess we will have to sharpen it a little troughing the next releases.

Now let’s spend some words on differences between the embedded scheduling and the optimizer engine based once. Basically, there are only a few. Both engines will consider the most constraints like acceptable and requested times, vehicle availabilities, and operating times but the embedded scheduling does not support the so called scheduling constraints you can maintain in the customizing (and which are our current approach to model driver regulations). But there is also a feature only embedded scheduling has, which is a simple cost-based approach which you can activate in the scheduling settings. This mode is less orientating on the scheduling direction but more on the requested dates and maintained earliness and lateness costs.


Enable Cost-Based Scheduling Approach in Scheduling Settings

Regarding performance the new engine performs better in small volume scenarios (volume in matter of stops and requirement documents) because there is no call to an external service needed. With a few hundreds of stops or requirement documents scheduled at once the optimizer services will getting the faster engine. Anyways I don’t expect performance issues with embedded scheduling.

As the new embedded scheduling engine is directly plugged into the old code using the same interface as the optimizer services once I would expect customer enhancements you did before to work independent on the engine you use.

On long term SAP will invest more in the embedded scheduling so I recommend getting familiar with it. If you use scheduling constraints for sure you need to stick with scheduling via optimizer services for now.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Narender Singh Khatri
      Narender Singh Khatri

      Thanks Tobias, This feature seems very useful.
      1-Is it also available with the advanced shipping option (I mean does the fact that one has rfc to VSR/VSS engine, in anyway prohibit using embedded scheduling?)
      2- With which version/release level is this functionality available- S/4 HANA 2020 or can we also upgrade the SP level of 1909?



      Author's profile photo Tobias Berger
      Tobias Berger
      Blog Post Author

      Hi Narender,

      Very happy about both good questions.

      1. The embedded scheduling is part of both - basic shipping and advanced TM (or however the two options are called right now). You can use it in advanced option to e.g. decrease load on the optimizer engine server or if you don't use VSR, LSO,LCO all but just plan basic scenarios manually you could even run TM without the optimization engines at all. All you need to do is exchanging the scheduling strategy - for a fresh installation of newer TM releases it will even be the default to use embedded scheduling and not calling out of ABAP anymore
      2. It's available from S/4HANA 2020 and there will be no downport of the component


      Author's profile photo Nary Razafintsalama
      Nary Razafintsalama

      Hi Tobias, thanks for the very useful read.

      Does that mean that we can now (using S4 2020 release) use the transportation cockpit with the embedded scheduling engine without the advanced TM licence ?

      Best regards,


      Author's profile photo Tobias Berger
      Tobias Berger
      Blog Post Author

      Hi Nary,

      Sadly this is not the case - you are allowed to use the embedded scheduling engine (which can be called after manual planning [e.g. from freight order UI assigning new freight units]) but transportation cockpit is still only allowed with the advanced engine.


      Author's profile photo Toshihiro Kawaberi
      Toshihiro Kawaberi

      Dear Tobias,

      Thank you, its very useful.

      I tried to use VSS_EMBED in scheduling settings unfortunately, it is not working.

      Can you please help me which settings are required for manual planning to work.

      Thank you.

      Author's profile photo Tobias Berger
      Tobias Berger
      Blog Post Author

      Hi Toshihiro,

      Can you give me some more details on what's not working.

      Usually it should work similar as with VSS_SCHED. Is it working with that strategy? Can you check process controller customizing whether the strategy is correctly contain "VSS_PRE", "VSS_EMBED" and "VSS_POST"?



      Author's profile photo Sachin arora
      Sachin arora

      Too complex for  a beginner in SAP TM to understand. An example would be helpful. For  eg.some important scheduling config with screenshots and how it impacts outcome with screenshots will be really helpful

      Author's profile photo Tobias Berger
      Tobias Berger
      Blog Post Author

      Hi Sachin,

      Valid feedback - maybe I will do a more beginner like "how to setup" in the future.

      Till that I would recommend to check out all of the scheduling blogs written from myself so far, you can find them here.

      I guess especially the loading duration one might be a good read for you.


      Author's profile photo varsha kommineni
      varsha kommineni

      Hi Tobi


      This blog is very helpful, Thanks to your efforts!

      we will be using Basic TM in our Project, therefore we want to use scheduling strategy VSS_EMBED with Backward scheduling.

      Though I give backward scheduling in planning profile system is doing forward scheduling in freight order. Can you please help and let me know if there are any additional configs to be set up apart from assigning Backward scheduling in Planning profile..

      Thanks and Regards,

      Varsha Kommineni.