We already saw that ecFlow has some variable‘s, like ECF_HOME.
There are three kinds of variables:

Ecf Script

In the previous example, we have copied the file t1.ecf to the file t2.ecf.

Edit those two files so they call the unix sleep command with a variable
called SLEEP as a parameter.
%include <head.h>
echo "I will now sleep for %SLEEP% seconds"
sleep %SLEEP%
%include <tail.h>

Text

Then add the variable to the suite definition:

# Definition of the suite test.
suite test
   edit ECF_INCLUDE "$HOME/course"   # replace '$HOME' with the path to your home directory
   edit ECF_HOME    "$HOME/course"
   family f1
      task t1
         edit SLEEP 20
      task t2
         edit SLEEP 20
   endfamily
endsuite

Python

#!/usr/bin/env python2.7
import os
import ecflow  

def create_family_f1():
    f1 = ecflow.Family("f1")
    f1.add_task("t1").add_variable("SLEEP", 20)
    f1.add_task("t2").add_variable("SLEEP", 20)
    return f1      
      
print "Creating suite definition"   
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE", os.getenv("HOME") + "/course")
suite.add_variable("ECF_HOME",    os.getenv("HOME") + "/course")

suite.add_family( create_family_f1() )
print defs

print "Checking job creation: .ecf -> .job0"   
print defs.check_job_creation()

print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def")

What to do

  1. Do the modifications
  2. Replace the suite
  3. Watch in ecflowview. You should see the tasks with a status active for 20 seconds