The following scenario is presented: There are change orders (CO) that have a sequence
of approval and execution tasks with a defined implementation date. These CO may be
emergency, normal, accelerated or emergency type. We want to restrict that you can approve
change orders that have a past implementation date unless those are Emergency CO type.
An attempt was made to configure both the data partition and spl, and the expected result
was not completely obtained. I'm going to write the 2 ways I tried to do it:
1) By data partition for the name of the table: Workflow_Task and type of restriction: Update
was configured as follows:
NOT((chg.sched_start_date> EndAtTime ('PAST_HOUR')) and (chg.chgtype! = 300) and
( sequence <100))
In this case I am indicating that if the window start date or implementation date is
greater than the current time and the change is different from emergency and that the
sequence is less than 100 (1st execution task) and all that denied, show me the message
that the approval of the respective tasks is not allowed because the window date has
already passed. This works for the CO that are emergency and no matter if the window is
expired or not and if the sequence is less than or greater than 100. The problem occurs
when you want to work with CO approvals that are NOT EMERGENCY type and trying to
implement the restriction with the indicated conditions but the result is not successful.
2) Additionally, the second way to implement the solution via SPL with the following code:
wf :: zValidaVentanaVencida (...)
{
string message;
if ((chg.sched_start_date <now ()) && (chg.chgtype! = 300) && (sequence <100) &&
( chg.status! = 'CNCL'))
message for user;
end_if
}
But it was observed that when canceling a CO for updating CO status, the tasks remained
in Pending and did not close massively when at least one of the WF tasks (that's why the
chg.status! = 'CNCL' was placed to avoid this scenario) or when they rejected a WF
task (which automatically cancels the CO) the task is marked as rejected but the following
tasks remain in its original state and therefore there is no mass closure of said tasks
of that CO. (This is where I can't find the solution).
Take into account that both things were implemented separately, that is, the restriction
by data partition or by SPL.
I would like to get the solution by the data partition but I write the two ways in order to
get the solution.
Attentive to your comments or suggestions. I hope you can help me in this issue.
Thanks a lot.
Carlos Ramirez
TDI Consultant