Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
looping on a specific value. You can do that by defining a repeat attribute.
You can iterate over sequences of:
...
Ecf Script
We will add a new task /test/f4/f5/t1.
Create new ecf script file $HOME/course/test/f4/f5/t1.ecf to use these variables.
Code Block | ||||
---|---|---|---|---|
| ||||
%include <head.h> ecflow_client --label=info "My name is '%NAME%' " " My value is '%VALUE%' " " My date is '%DATE%' " # Note the use of repeat date generated variables DATE_YYYY, DATE_MM, DATE_DD, DATE_DOW to automatically reference year,month,day of the month,day of the week # These can also be used in trigger expression. ecflow_client --label=date "year(%DATE_YYYY%) month(%DATE_MM%) day of month(%DATE_DD%) day of week(%DATE_DOW%)" sleep %SLEEP% %include <tail.h> |
Text
Let us modify the suite definition file again
Code Block |
---|
# Definition of the suite test. suite test edit ECF_INCLUDE "$HOME/course" edit ECF_HOME "$HOME/course" family f4 edit SLEEP 2 repeat string NAME a b c d e f family f5 repeat integer VALUE 1 10 task t1 repeat date DATE 20101230 20110105 label info "" label date "" endfamily endfamily endsuite |
Python
Code Block | ||||
---|---|---|---|---|
| ||||
import os from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date,Label, \ RepeatString,RepeatInteger,RepeatDate def create_family_f4(): return Family("f4", Edit(SLEEP=2), RepeatString("NAME", ["a", "b", "c", "d", "e", "f" ]), Family("f5", RepeatInteger("VALUE", 1, 10), Task("t1", RepeatDate("DATE", 20101230, 20110105), Label("info",""), Label("date","")))) print("Creating suite definition") home = os.path.join(os.getenv("HOME"), "course") defs = Defs( Suite("test", Edit(ECF_INCLUDE=home, ECF_HOME=home), create_family_f4())) print(defs) print("Checking job creation: .ecf -> .job0") print(defs.check_job_creation()) print("Checking trigger expressions") assert len(defs.check()) == 0,defs.check() print("Saving definition to file 'test.def'") defs.save_as_defs("test.def") |
What to do
- Type in the changes
- Replace the suite definition
- How many times will /test/f4/f5/t1 run?
- In ecflow_ui , try to modify the values of a repeat
- Since we are using 2 second delay, remember to use f5(refresh) to see the intermediate values. The default is to refresh every 60 seconds.
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|