The following function is useful when you need to run several tasks (DL, CFS, CFData Loads, Calculated Field Sets, Calculation Flows,...) in a sequence (so and ensure that they wait for each other).
Control Table
SequenceName | Order | Type | TaskName | State | LastRun |
---|---|---|---|---|---|
DM X load | 1 | DL | SalesDFtoDS | <no value> / RUNNING / DONE / ERROR | |
DM X load | 2 | DL | SalesDStoDM | ||
DM X load | 3 | DL | SalesDMCalculation |
- SequenceName - you – You can have more sequences. All tasks which should run in one sequence must have the same SequenceName.
- Order - this is used to execute the tasks in correct order. When 2 – Sets the order in which the tasks should be executed. When two or more tasks in the sequence have the same OrderOfTask number, then they will be run in parallel.
- Type - – Determines what should be executed.
- TaskName - – Defines the name of the DL / , CFS / .etc..
- State - what is happening with – Informs about the task.
- <nothing> - should be executed
- RUNNING - is running now
- DONE - finished successfully
- ERROR - finished with ERROR (is the task ends with ERROR, it stops the sequence)
- <no value> – Execution pending.
- RUNNING – Execution in progress.
- DONE – Execution finished successfully.
- ERROR – Execution finished with an error (if a task ends with an error, the sequence stops).
- LastRun – Shows when the last run of the task ended.
Scheduler
Scheduler is a simple CFF, Calculation Flow Formula which is executed every minute and starts the tasks according to the Control Table.
Installation
- In Groovy Library
...
- , add a new element called "Sequencer"
...
- with the following code: Sequencer Library Code.groovy
...
Create a new Calculation Flow Formula, scheduled for every minute, with one element with this code:
Code Block language groovy lib.Sequencer.processAllSequences(actionBuilder)
Import the Price Parameter
...
called "SequenceControlTable". The import ZIP file is attached
...
...
Running Your Own Sequence
from From your code (usually from a CFF , but generally from any code , which is allowed to modify Price Parameters) call the following:
Code Block | ||
---|---|---|
| ||
lib.Sequencer.startSequence("<your sequence name>") |
...