SAP for Automotive Blogs
Explore blog posts by automotive thought leaders and SAP experts, paving the way for a smoother journey with SAP. Post a blog to share your own expertise.
cancel
Showing results for 
Search instead for 
Did you mean: 
rohit_chauhan
Contributor

Multiple elementary action can be linked together via Interlinking Actions in VMS. When an Interlinking Actions is fired all the elementary actions are executed as per the order defined in configuration.


It is a great idea to minimize turnaround time. Without leaving the main program, system is capable of performing all the actions required. With Interlinking Actions, users fire only 1 action to carry out series of tasks, which is helpful as they do not have to remember the sequence and in error will not break the sequence of operations. Also, if Interlinking Action is triggered via an External System, only one call can carry out all the actions.


However, there is a limitation of Interlinking Actions. Consider a scenario where an Interlinking Action INTA, has 3 elementary actions assigned ORD1, GORE and INIV. I am taking SAP defined elementary actions to give more clarity in the example taken. The limitation, which I’ll highlight, may not be replicated using these actions specifically.































Sequence



Action



Old Status



New Status



1



ORD1



X010



X020



2



GORE



X020



X030



3



INIV



X030



X040



If action INTA runs successfully till the end, the vehicle will move from status X010 to X040 and would have created a purchase order, goods receipt and invoice verification.


But, if action INTA fails mid-way e.g. during GORE action i.e. only ORD1 has been executed. The reason for failure could be anything, posting period, object locking etc. The vehicle’s status would become X020 and Interlinking Action INTA will return an error. Vehicle will have a purchase order created and remain pending for GORE and INIV actions.


Now, if INT1 action is executed again, VMS will not allow it as to start INTA, the vehicle must be at X010 status.  User will have to execute the remaining actions one by one, which needs user to remember the action sequences for interlinking actions.


Due to this problem in past implementations, I resorted to developing a custom program to clean up such vehicles. The program would read vehicle’s status from VLCVEHICLE table and determine whether last status (as per Interlinking action’s configuration) has been achieved or not. If not, then program will carry out remaining actions using BAPI_VEHICLE_CHANGE_MULTIPLE.


An improvement in the standard design of SAP VMS for interlinking action to counter above scenario would save a custom development and time.


VMS engine already identifies upon action execution whether the fired action is an Interlinking or an Elementary action, so in case an Interlinking action fails, either system should roll back all the actions done successfully prior to failure and bring vehicle to the state where it was before firing the interlinking action (status X010 and deletion of purchase order in our case) or an Interlinking Action should be able to determine the spot from where it has to start the sequence of actions. In our example, re-firing INT1 will only carry out GORE and INIV as ORD1 is already completed.


The above options can also be made available in configuration as a choice where one can choose to either roll back or enable re-firing of an interlinking action to counter the problem.


I would like to know if anyone else has encountered similar problem and how it was resolved. Also I would like to see suggestions from other experts on how to build this functionality in a better  way.



8 Comments