Objective: Introducing time delay in the process chain with help of standard SAP provided program RSWAITSEC.
Background: With the use of interrupt process type in the process chain we can give the fixed delay to the subsequent process types when the interrupt step is reached. But when we use the standard interrupt process type we have to mention the date and time or event name.
In many cases interrupt step might not help, if suppose an interrupt step is introduce to delay the subsequent processes by a definite period of time, and if all the steps above to the interrupt gets completed early then instead of passing the trigger to the subsequent step after the desired wait time, the interrupt will force the chain to wait till the conditions in the interrupt are satisfied.
In order to achieve the delay in the trigger flow from one process type to another in a process chain without any condition for the fixed time limit or event raise we can use this RSWAITSEC Program.
Scenario: In our project one of the master data chain is getting scheduled at 23.00IST. This load supplies data to the report which is based on 0CALWEEK. The data load and an abap program in the process chain make use of SY-DATUM, so a load that starts on sunday 23:00 if doesn’t complete by 23:59:59 hours (1 hour duration) then the entire data gets wrongly mapped to the next week. .This will cause discrepancy of data.
So it was required to schedule chain at 23:00 IST everyday except sunday, and at 22:45:00IST (15mins earlier) on Sundays.
Different Ways to Achieve the above Situation:
- Creating two different process chains and scheduling the 1st process chain at 23.00 IST for Monday to Saturday (Using factory calendar), scheduling the 2nd at 22.45 IST only for Sunday.
Disadvantage of 1st method:
Unnecessarily creating two chains for the same loads, this makes way to have multiple chains in the system.
2. Scheduling the same chain at 22.45IST and adding the decision step to find and give interruption of 15mins for Monday to Saturday. So on Sunday it will get start at 22.45.
Process Chain with Interrupt Process Type:
Disadvantage of 2nd method:
If suppose you want execute this chain with immediate in other time, then my interruption step will wait until 23.00 IST to get start the load for Monday to Saturday loads.
Better Way of Achieving with RSWAITSEC program:
Scheduling the chain at 22.45 and adding the decision step to find whether its Sunday or other. If Sunday then next step would be directly to the local chain, if the particular day is between Monday to Saturday then the next step would be with RSWAITSEC program(SAP std program). In the program variant we have to mention the desired time delay in Secs(900 Secs).
Compared to above two methods, this will be the better way to achieve the desired output. Even though if I run the process chain with start process as immediate on other than Sunday’s my local chain will not wait until 23.00IST to reach, it will wait for 15mins and it will get triggered.
As this is the SAP provided one no need to move any TP for this, even in production we will be able to use directly.
Process chain with RSWAITSEC:
ABAP Process type with RSWAITSEC Program(which shown in the above PC):
Setting the Variant value (required time):
In the variant value we need to mention the desired limit of delay in Seconds. My requirement is of with 15mins of delay, so I have given 900sec in the variant value.
So we can use this program in any stages of process chain to give the fixed period of delay.
Hope this will be helpful.