Clarity Service Management

Expand all | Collapse all

Data partitioning with multiple conditions

  • 1.  Data partitioning with multiple conditions

    Posted 06-12-2018 09:50 PM
    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


  • 2.  Re: Data partitioning with multiple conditions

    Posted 06-13-2018 04:06 AM

    Hi

    Assuming that 300 is your emergency change type, I will try the below:

     

    (chg.chgtype == 300) OR (chg.chgtype != 300 AND sequence <100 AND NOT(chg.sched_start_date> EndAtTime ('PAST_HOUR')))

     

    /J



  • 3.  Re: Data partitioning with multiple conditions

    Posted 06-13-2018 10:20 AM

    Thanks for the answer Jerome. Emergency is the code 300 (I forgot to write it). I tried the code you sent but doesn't work with all the cases. I'm still trying another forms to get the solution. If you have other ideas, let me know.

     

    Thanks for the help.

    CR.