By Mohanavel at
scn.sap.com
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:
1.
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.
0 comments:
Post a Comment