Description:
The EvalExpression workflow step evaluates a supplied expression and assigns the result of the expression to the specified Variable or Global variable. The step is in the Decisions category and appears in the workflow designer as Expression.
The step supports:
- Evaluating a configured expression.
- Storing the expression result in a Variable or Global variable.
- Using workflow data as part of an expression.
- Reusing the evaluated result in subsequent workflow activities.
- Using the True and False return paths for subsequent workflow processing.
- Incorporating expression evaluation into decision-oriented workflow logic.
Inputs
- Expression – The Expression to evaluate property specifies the expression that FlowWright should evaluate. This is a required property.
- variableName – The Variable/Global to store the expression result property specifies the Variable or Global variable where the result of the evaluated expression should be stored.
Returns
- True – The True return path can be connected to the next workflow activity when the expression evaluation produces a True result.
- False – The False return path can be used to continue an alternative workflow path when the expression evaluation produces a False result.
Usage:
The EvalExpression step is typically placed where a workflow needs to evaluate an expression and make the resulting value available to subsequent workflow activities.
A typical workflow pattern is:
Get/Build Values → Expression → Use Result
The resulting value can then be used by later workflow steps to:
- Make workflow decisions.
- Populate Variables.
- Determine which processing path should be followed.
- Control subsequent workflow activities.
- Perform additional calculations or expression-based processing.
- Provide an evaluated value to another workflow step.

Typical Workflow Suggestions:
Evaluate a Workflow Condition
Use the step to evaluate an expression based on values available in the workflow.
Example:
Get Request Data → Expression → Continue / Alternate Path
The expression can evaluate the relevant workflow values, with the result stored in a Variable or Global variable.
Evaluate a Numeric Condition
Use the step when workflow processing requires an expression involving numeric values.
Example:
Get Order Data → Expression → Process Order
You can configure an expression to evaluate the required condition, and store the result for use in subsequent activities.
Note: The XML definition identifies the property as an expression to evaluate but does not specify the complete expression syntax or supported operators. Configure expressions according to the expression syntax supported by the FlowWright implementation.
Evaluate Form or Process Values
Use workflow values as inputs to an expression when a process needs to evaluate information collected earlier in the workflow.
Example:
Form Submission → Expression → Process Result
The expression can evaluate the values available to the process, and the result can be stored in a Variable or Global variable for later use.
Control Workflow Processing
The True and False return paths can be used to direct workflow processing based on the expression result.
Example:
Start → Expression
True → Continue Process
**False → Alternate Process`
This pattern allows the expression step to participate directly in workflow branching. The step definition provides two outgoing connections and two return values.
Store an Evaluated Result
Use the step when the evaluated value needs to be reused by multiple downstream activities.
Example:
Get Values → Expression → Store Result → Multiple Subsequent Steps
The expression result is assigned to the Variable or Global variable specified in the Variable/Global to store the expression result property.
Evaluate Values Before a Subsequent Activity
The step can be placed immediately before an activity that depends on an evaluated value.
Example:
Retrieve Data → Expression → Process Data
This allows the workflow to evaluate the required expression before continuing to the next activity.
Use the Result in Multiple Workflow Activities
A stored expression result can be reused by subsequent workflow activities.
Example:
Expression → Activity A
→ Activity B
The exact reuse pattern depends on how the Variable or Global variable is referenced by the downstream activities.
Combine Expression Evaluation with Decision Processing
The Expression step is defined in the Decisions category, making it suitable for workflows where expression evaluation forms part of decision-oriented processing.
Example:
Collect Information → Expression → True/False Processing
This can separate condition evaluation from the activities that respond to the result.
Evaluate a Result and Preserve It for Later Processing
A useful pattern is to store the evaluated result even when subsequent processing occurs in several different workflow paths.
Example:
Prepare Values → Expression → Store Result → Subsequent Processing
This keeps the evaluated value available to later activities through the configured Variable or Global variable.
Example:
Let’s build and execute the “evalExpressionDef” example.
- Create a new process definition named “evalExpressionDef” and open it in designer mode.
- Drag an “evalExpression” step to the canvas.
- Define a variable or a global to store input and output values.
- Select the line between the steps to configure the “Connection Properties”. The default property values are “None, True, False, Error, and Evaluate”. Depending on the step’s purpose, you can configure additional values.
- Connect the dots between the “Start” and “evalExpression” steps, as shown above.
- Click the "evalExpression" step to configure its "Required" properties. Provide a name for the step. Provide a variable or a global reference to store the expression result. Enter the C# expression to evaluate. Click the Save button. Note: Click the "AI Predict" button to have the Copilot add new process steps that match your process description.

- Click the Expression to evaluate the field. Press Alt+E to open the Expression Builder. This utility lets you build and validate expressions, as shown in the image below. Send the expression to the clipboard, then paste it into the input field.

- In the expression below, the system sets the default calendar for any culture to the Gregorian calendar. As a result, other calendars, such as the Egyptian, Roman, and Thai calendars, will display the current date, month, and year.

- Examples of expressions to evaluate:
(1) Variable.number + 10
(2) Global.testNumber + 100 / Variable.colNum
(3) Variable.data + "test"
(4) Global.hasData == 1
(5) DateTime.Today.ToString()
(6) DateTime.Today.AddDays(14).ToString()
- The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. This is achieved by configuring the step state and percent fields individually, as shown below. Configure the “Logging” using the following properties.

- Save the process definition, create a new instance, and execute it. Render the process instance and click the process step to view its properties. When the workflow reaches the Expression step, FlowWright evaluates the configured expression and assigns the result to the Variable or Global variable specified in the step configuration. The workflow can then continue through the appropriate True or False return path. The step should evaluate the expression and set the variable or global to “True” or “False” as configured.
Tips:
- Give the result Variable or Global variable a meaningful name.
- Keep expressions easy to understand and maintain.
- Test expressions with representative workflow data before deploying the workflow.
- Verify that the Variables referenced by an expression contain the expected values before the Expression step executes.
- Verify the resulting Variable or Global variable after the step executes.
- Use the True and False paths deliberately when the expression participates in workflow branching.
- Keep complex expression logic understandable to other workflow developers.
- Test both the True and False workflow paths.
- Test boundary conditions and unexpected input values.
- Avoid relying on expression syntax or functions unless they are supported by the FlowWright implementation.
- Verify the stored result before using it in downstream activities.
- Use meaningful Variable or Global variable names for values that will be reused.
- When changing an expression, test the complete workflow rather than only the Expression step.
- If an expression depends on values produced by an earlier step, verify that the earlier step has completed successfully before evaluation.
- Document complex expressions so that their purpose is clear to workflow maintainers.
Definition Sample:
You may provide a sample FlowWright Process Definition demonstrating the Expression step and its True/False workflow paths.
When importing a sample definition, verify and complete any missing configuration, including:
- Expression to evaluate.
- Variable or Global variable used to store the result.
- Workflow Variable references used by the expression.
- Environment-specific values.
- True workflow path.
- False workflow path.
- Downstream activities that consume the evaluated result.
After verifying the configuration, save the Process Definition before execution.