Products, services and company names referenced in this document may be either trademarks or registered trademarks of their respective owners.

Copyright © 2017–2024 EVL Tool, s.r.o.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.

Introduction

EVL Workflow is a code based orchestration tool. It fires EVL tasks in parallel and in specified order on specified target host and consider specific priorities. EVL task is one of the following:

Shell Script (‘*.sh’)

any shell script with ‘.sh’ suffix

EVL job or workflow (‘*.evl’ or ‘*.ewf’)

EVL job is an ETL job, i.e. one or more DAGs (Directed Acyclic Graph) with data flows on edges and data modifying components as vertices. EVL workflow is also one or more DAGs, but vertices are Tasks (i.e. Shell Scripts, EVL jobs, other EVL workflows, or Wait for a file), edges are successors.

Wait for a file

to sniff for an existence of a file with given file mask.

The workflow consists (mostly) of ‘Run’ components, which are used in EWS workflow structure definition file (‘ews/*.ews’), and which fires tasks. For details, see Run.

Simple example

Definition of a workflow can be defined in ‘ews/simple.ews’ and can looks like this:

Run job/example.1.evl job/example.2.sh
Run job/example.3.sh
End

As this workflow has no parameters, the file ‘workflow/simple.ewf’ will be empty. To fire this workflow run in command line:

evl run workflow/simple.ewf

It run jobs ‘example.1.evl’ and ‘example.3.sh’ in parallel, and once ‘example.1.evl’ finish successfully, fires also ‘example.2.sh’.

Other example

Slightly advanced workflow definition might look like this:

Run 2h    job/common_job.sh  --project=/full/path/to/other/project \
    4h 2r job/stage.invoices.evl
End

which means to run common_job.sh from other project (fail and kill the job if not finished within 2 hours) and then run job/stage.invoices.evl, fail if (each run) does not finish within 4 hours, and try to restart two times when fail.

EVL Manager

EVL Workflow can be used separately or as a back-end to EVL Manager – graphical web UI.