Skip to Content
Technical Articles

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.

You must be Logged on to comment or reply to a post.
  • 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?



    • 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