When to use conditions and evaluators in RES Automation Manager
In most of our projects we use RES Automation Manager for task automation and as I’m a RES Certified Trainer I have to explain how RES Automation Manager works and every time I give this training I have to explain “Conditions” and “Evaluators” so I thought it would be a good idea to write a blog about these two options, their differences and their use cases.
What’s a condition?
From the Admin Guide:
When configuring Tasks, Modules, Projects or Run Books, you can optionally set a condition. A condition determines to which settings a Task, Module or Run Book Job in a Job must comply before it is executed. A condition contains one or more expressions that determine whether the condition can be satisfied and defines what action should be taken based on this. This makes it possible to create intelligent Modules, Projects and Run Books.
- Task conditions determine whether a Task should be executed, skipped or failed and can be set when configuring Tasks and Modules.
- Module conditions determine whether a Module should be executed or skipped and can be set when configuring Projects.
- Job conditions determine whether a Run Book Job should be executed or skipped and can be set when configuring Run Books. When setting Job conditions, only the expression types Date Time, Parameter and Status of Previously Executed Job are available.
What’s a evaluator?
From the Admin Guide:
For a number of Tasks that query objects, it is possible to configure Evaluators. Evaluators are very similar to conditions, but where a condition determines to what settings a Task must comply before it is executed, an evaluator does this afterwards: An evaluator contains one or more expressions that determine whether the evaluator can be satisfied based on the query results and defines what action should be taken based on this. This makes it possible to let the execution of succeeding Tasks depend on the results of a query. An evaluator is optional.
You can use evaluators in the following Tasks:
- Query Computer Properties
- Query Disk Space
- Query Installed programs
- Query Service Properties
- Query TCP/IP Properties
Basically both technologies are used to make intelligent processes but on a different way, the condition is determined before the task runs while the evaluator does a query and based on the outcome of that query ‘decides’ whether the next task should start or should be skipped.
There are a million ways to do task automation but normally when I use conditions it’s based on a true/false option only for example if I want to deploy a XenApp server I want to do it the same every time I repeat the installation without interaction or corrections from my task automation solutions but if I need to take corrective actions I can use the evaluator to take actions based on the output of a query and do nothing if the value what it should be.
When I want to install VMware Tools, I’ve got two options when installing the MSI. Either I install the x86 or the x64 version of the VMware tools. Using conditions I can configure the specific task to use processor architecture as a condition to execute the task or skip this task and proceed to the next one:
Tip: If you want to use an evaluator try running the query first, based on the output of the query you can use the value and the notation in the evaluator.
So in the example above we can schedule the job and based on the Program = VMware Tools rule we can install the VMware tools (both x64 and x86 using conditions) on all targets without VMware Tools.