Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt
hiddentrue

By using a combination of a dummy task and trigger, we can achieve the effect of 'OR' in time dependencies of different types. This technique will work for any complex dependency and has the added advantage of allowing us to manually free the dependencies via the GUI. 

How can I logically or time dependencies of different types?

Step-by-step guide

It is important to understand how time dependencies work first.

When we have multiple time dependencies of the same type, they are 'or' ed. i.e.

Code Block
       time 10.00
       time 12:00             # Task will run when time is 10:00 OR 12:00

Likewise, if we have:

Code Block
       date 1.12.2012
       date 2.12.2012         # Task is free to run only on first or second of December.

When *different* types of time dependencies are added to the same Node, then the task is only free to run when both are satisfied:

Code Block
       time 10:00
       date 1.12.2015         # task is only free to run at 10 am on the first of December

This effectively means that mixed time dependencies are logically 'and'ed.

Now suppose we wanted to run the task, at 10.00  *OR* when the date is 1.12.2015.

There are two approaches:

  1. For real-time, use the suites times based variables. For further example see: Time Triggers

    Code Block
    trigger TIME >= 1000 or ECF_DATE == 20151201


  2. Place each time attribute under a dummy task, and use a trigger

    Code Block
    task dummy_time_trigger
              edit ECF_DUMMY_TASK ""   # Tell server & checking not to expect .ecf file
              time 10:00
    
    task dummy_date_trigger
              edit ECF_DUMMY_TASK ""   # Tell server & checking not to expect .ecf file
              date 1.12.2015
    
    task time_or_date
              trigger dummy_time_trigger == complete or dummy_date_trigger == complete

    By using a combination of a dummy task and trigger, we can achieve the effect of 'OR' in time dependencies of different types. This technique will work for any complex dependency and has the added advantage of allowing us to manually free the dependencies via the GUI.  

Content by Label
showLabelsfalse
max5
spaces~usa
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel = "ecflow-faqs" and label in ("suites","dependencies") and type = "page" and space = "UDOC"
labelskb-how-to-article