Info |
---|
This method is no longer relevant. If possible, use How to Schedule Jobs with Dependencies. |
The following function is useful when you need to run several tasks (Data Loads, Calculated Field Sets, Calculation Flows,...) in a sequence 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 can have more sequences. All tasks which should run in one sequence must have the same SequenceName.
- Order – Sets the order in which the tasks should be executed. When two or more tasks in the sequence have the same OrderOfTask number, they will run in parallel.
- Type – Determines what should be executed.
- TaskName – Defines the name of the DL, CFS etc.
- State – Informs about the task.
- <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 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: PP_SequenceControlTable_for_Import.zip
Running Your Own Sequence
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>") |
...