This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new f29a4cb8da Issue #2382 : Add result files and log text options to 
Simple Evaluation (#7962)
f29a4cb8da is described below

commit f29a4cb8daf01879e976329bb17a99c2a0faf775
Author: Matt Casters <[email protected]>
AuthorDate: Sat Aug 15 10:21:05 2026 +0200

    Issue #2382 : Add result files and log text options to Simple Evaluation 
(#7962)
    
    Allow Simple Evaluation to check the number of result files and to look
    for text snippets in the previous action's log, as a no-code alternative
    to JavaScript previous_result checks.
---
 .../ROOT/pages/workflow/actions/simpleeval.adoc    |  46 ++++-
 ...pleval.hwf => 0010-simpleeval-log-contains.hwf} | 112 ++++++------
 ...val.hwf => 0010-simpleeval-nr-result-files.hwf} | 120 +++++++------
 integration-tests/actions/files-0010/f1.txt        |   0
 integration-tests/actions/files-0010/f2.txt        |   0
 integration-tests/actions/files-0010/f3.txt        |   0
 integration-tests/actions/main-0010-simpleval.hwf  | 121 ++++++++-----
 .../actions/simpleeval/ActionSimpleEval.java       |  42 ++++-
 .../actions/simpleeval/ActionSimpleEvalDialog.java |  43 +++--
 .../simpleeval/messages/messages_en_US.properties  |   7 +-
 .../actions/simpleeval/ActionSimpleEvalTest.java   | 188 +++++++++++++++++++++
 .../test/resources/simple-eval-log-text-action.xml |  31 ++++
 .../resources/simple-eval-result-files-action.xml  |  31 ++++
 13 files changed, 574 insertions(+), 167 deletions(-)

diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/simpleeval.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/simpleeval.adoc
index 479765684c..d6f1a8cdbc 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/simpleeval.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/simpleeval.adoc
@@ -16,7 +16,7 @@ under the License.
 ////
 :documentationPath: /workflow/actions/
 :language: en_US
-:description: The Simple evaluation action evaluates contents of a variable or 
a field in the result stream.
+:description: The Simple evaluation action evaluates a variable, a field in 
the result stream, the number of result files, or log text from the previous 
action.
 
 :openvar: ${
 :closevar: }
@@ -25,7 +25,7 @@ under the License.
 
 == Description
 
-The `Simple evaluation` action evaluates contents or value of a variable or a 
field in the result stream.
+The `Simple evaluation` action evaluates the contents of a variable, a field 
in the result stream, the number of result files, or the log text of the 
previous workflow action.
 
 Connect two actions with the output of the Simple Evaluation.
 
@@ -44,9 +44,15 @@ The green (success) hop will be called if the condition was 
evaluated successful
 |Option|Description
 |Action name|The name of the workflow action.
 2+|Source
-|Evaluate|Evaluation type: field or variable.
-|Field name|The field to evaluate
-|Type|Data type.
+|Evaluate a|
+Evaluation type:
+
+* Field from previous result
+* Variable
+* Number of result files
+* Log text from previous result
+|Field name|The field to evaluate (only shown when evaluating a field)
+|Type|Data type (hidden when evaluating result files or log text)
 2+|Success On
 |Success when source variable set| The action will always success if the 
source variable was set otherwise it will fail.
 |Success condition a|
@@ -93,3 +99,33 @@ And remember: Once this variable is set, the variable keeps 
existing, even when
 |Success On: Success condition|Equal/Non equal/etc.|Select the condition to be 
met for a successful result
 |Success On: Value||Value to compare the field to
 |===
+
+**Evaluating the number of result files**
+
+Use this to check how many files the previous action added to the workflow 
result (for example after *Add filenames to result* or a pipeline that adds 
files).
+
+The source is treated as a number. Typical conditions are equal to, greater 
than, smaller than, or between.
+
+[options="header"]
+|===
+|Field|Value|Explanation
+|Source: Evaluate|Number of result files|Select this to evaluate how many 
files the previous action added to the result
+|Success On: Success condition|Equal/Greater than/Between/etc.|Compare the 
file count
+|Success On: Value||Expected number of result files
+|===
+
+**Evaluating log text from the previous result**
+
+Use this to verify that a previous pipeline or workflow action logged an 
expected snippet, or that an unwanted snippet is absent.
+
+The source is the log text captured for the previous action. It is treated as 
a string. Typical conditions are *If value contains* and *If value not 
contains*. Regular expressions are also supported.
+
+This is a no-code alternative to checking the previous result log text in a 
JavaScript action.
+
+[options="header"]
+|===
+|Field|Value|Explanation
+|Source: Evaluate|Log text from previous result|Select this to evaluate the 
previous action's log text
+|Success On: Success condition|Contains/Not contains/Regex/etc.|Check for 
presence or absence of a snippet
+|Success On: Value||The text snippet or regular expression to look for
+|===
diff --git a/integration-tests/actions/main-0010-simpleval.hwf 
b/integration-tests/actions/0010-simpleeval-log-contains.hwf
similarity index 63%
copy from integration-tests/actions/main-0010-simpleval.hwf
copy to integration-tests/actions/0010-simpleeval-log-contains.hwf
index f6006fd2eb..d4b9ac0f12 100644
--- a/integration-tests/actions/main-0010-simpleval.hwf
+++ b/integration-tests/actions/0010-simpleeval-log-contains.hwf
@@ -18,59 +18,66 @@ limitations under the License.
 
 -->
 <workflow>
-  <name>main-0010-simpleval</name>
+  <name>New workflow</name>
   <name_sync_with_filename>Y</name_sync_with_filename>
-  <description/>
-  <extended_description/>
-  <workflow_version/>
   <created_user>-</created_user>
-  <created_date>2021/05/05 18:31:44.849</created_date>
   <modified_user>-</modified_user>
-  <modified_date>2021/05/05 18:31:44.849</modified_date>
-  <parameters>
-    </parameters>
+  <created_date>2026/08/14 22:45:10.291</created_date>
+  <modified_date>2026/08/14 22:45:10.291</modified_date>
+  <parameters/>
   <actions>
     <action>
+      <repeat>N</repeat>
+      <schedulerType>0</schedulerType>
+      <intervalSeconds>0</intervalSeconds>
+      <intervalMinutes>60</intervalMinutes>
+      <DayOfMonth>1</DayOfMonth>
+      <weekDay>1</weekDay>
+      <minutes>0</minutes>
+      <hour>12</hour>
+      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
       <name>Start</name>
       <description/>
       <type>SPECIAL</type>
       <attributes/>
-      <DayOfMonth>1</DayOfMonth>
-      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
-      <hour>12</hour>
-      <intervalMinutes>60</intervalMinutes>
-      <intervalSeconds>0</intervalSeconds>
-      <minutes>0</minutes>
-      <repeat>N</repeat>
-      <schedulerType>0</schedulerType>
-      <weekDay>1</weekDay>
-      <parallel>N</parallel>
-      <xloc>128</xloc>
+      <xloc>96</xloc>
       <yloc>96</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
     <action>
-      <name>0010-simpleeval-stringequal-targetvar-unset.hwf</name>
+      <loglevel>Basic</loglevel>
+      <logsubject>Sentinel</logsubject>
+      <logmessage>ABC123</logmessage>
+      <name>Write to log</name>
       <description/>
-      <type>WORKFLOW</type>
+      <type>WRITE_TO_LOG</type>
       <attributes/>
-      <add_date>N</add_date>
-      <add_time>N</add_time>
-      <create_parent_folder>N</create_parent_folder>
-      <exec_per_row>N</exec_per_row>
-      
<filename>${PROJECT_HOME}/0010-simpleeval-stringequal-targetvar-unset.hwf</filename>
-      <loglevel>Nothing</loglevel>
-      <parameters>
-        <pass_all_parameters>Y</pass_all_parameters>
-      </parameters>
-      <params_from_previous>N</params_from_previous>
-      <run_configuration>local</run_configuration>
-      <set_append_logfile>N</set_append_logfile>
-      <set_logfile>N</set_logfile>
-      <wait_until_finished>Y</wait_until_finished>
+      <xloc>224</xloc>
+      <yloc>96</yloc>
       <parallel>N</parallel>
-      <xloc>368</xloc>
+      <attributes_hac/>
+    </action>
+    <action>
+      <valuetype>logtext</valuetype>
+      <fieldtype>string</fieldtype>
+      <fieldname/>
+      <variablename/>
+      <mask/>
+      <comparevalue>ABC123</comparevalue>
+      <minvalue/>
+      <maxvalue/>
+      <successcondition>contains</successcondition>
+      <successwhenvarset>N</successwhenvarset>
+      <successbooleancondition>true</successbooleancondition>
+      <successnumbercondition>equal</successnumbercondition>
+      <name>Simple evaluation</name>
+      <description/>
+      <type>SIMPLE_EVAL</type>
+      <attributes/>
+      <xloc>352</xloc>
       <yloc>96</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
     <action>
@@ -78,48 +85,53 @@ limitations under the License.
       <description/>
       <type>SUCCESS</type>
       <attributes/>
-      <parallel>N</parallel>
-      <xloc>656</xloc>
+      <xloc>480</xloc>
       <yloc>96</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
     <action>
+      <loglevel>Error</loglevel>
       <name>Abort workflow</name>
       <description/>
       <type>ABORT</type>
       <attributes/>
-      <always_log_rows>N</always_log_rows>
-      <message>Simple eval: String comparison to unset variable 
failed</message>
+      <xloc>480</xloc>
+      <yloc>192</yloc>
       <parallel>N</parallel>
-      <xloc>368</xloc>
-      <yloc>224</yloc>
       <attributes_hac/>
     </action>
   </actions>
   <hops>
     <hop>
       <from>Start</from>
-      <to>0010-simpleeval-stringequal-targetvar-unset.hwf</to>
-      <enabled>Y</enabled>
+      <to>Write to log</to>
       <evaluation>Y</evaluation>
       <unconditional>Y</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
-      <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
-      <to>Success</to>
+      <from>Write to log</from>
+      <to>Simple evaluation</to>
+      <evaluation>Y</evaluation>
+      <unconditional>N</unconditional>
       <enabled>Y</enabled>
+    </hop>
+    <hop>
+      <from>Simple evaluation</from>
+      <to>Success</to>
       <evaluation>Y</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
-      <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
+      <from>Simple evaluation</from>
       <to>Abort workflow</to>
-      <enabled>Y</enabled>
       <evaluation>N</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
   </hops>
-  <notepads>
-  </notepads>
+  <notepads/>
   <attributes/>
 </workflow>
diff --git a/integration-tests/actions/main-0010-simpleval.hwf 
b/integration-tests/actions/0010-simpleeval-nr-result-files.hwf
similarity index 58%
copy from integration-tests/actions/main-0010-simpleval.hwf
copy to integration-tests/actions/0010-simpleeval-nr-result-files.hwf
index f6006fd2eb..ec2a572537 100644
--- a/integration-tests/actions/main-0010-simpleval.hwf
+++ b/integration-tests/actions/0010-simpleeval-nr-result-files.hwf
@@ -18,59 +18,72 @@ limitations under the License.
 
 -->
 <workflow>
-  <name>main-0010-simpleval</name>
+  <name>New workflow</name>
   <name_sync_with_filename>Y</name_sync_with_filename>
-  <description/>
-  <extended_description/>
-  <workflow_version/>
   <created_user>-</created_user>
-  <created_date>2021/05/05 18:31:44.849</created_date>
   <modified_user>-</modified_user>
-  <modified_date>2021/05/05 18:31:44.849</modified_date>
-  <parameters>
-    </parameters>
+  <created_date>2026/08/14 22:47:26.109</created_date>
+  <modified_date>2026/08/14 22:47:26.109</modified_date>
+  <parameters/>
   <actions>
     <action>
+      <repeat>N</repeat>
+      <schedulerType>0</schedulerType>
+      <intervalSeconds>0</intervalSeconds>
+      <intervalMinutes>60</intervalMinutes>
+      <DayOfMonth>1</DayOfMonth>
+      <weekDay>1</weekDay>
+      <minutes>0</minutes>
+      <hour>12</hour>
+      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
       <name>Start</name>
       <description/>
       <type>SPECIAL</type>
       <attributes/>
-      <DayOfMonth>1</DayOfMonth>
-      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
-      <hour>12</hour>
-      <intervalMinutes>60</intervalMinutes>
-      <intervalSeconds>0</intervalSeconds>
-      <minutes>0</minutes>
-      <repeat>N</repeat>
-      <schedulerType>0</schedulerType>
-      <weekDay>1</weekDay>
+      <xloc>50</xloc>
+      <yloc>50</yloc>
       <parallel>N</parallel>
-      <xloc>128</xloc>
-      <yloc>96</yloc>
       <attributes_hac/>
     </action>
     <action>
-      <name>0010-simpleeval-stringequal-targetvar-unset.hwf</name>
+      <arg_from_previous>N</arg_from_previous>
+      <delete_all_before>N</delete_all_before>
+      <include_subfolders>N</include_subfolders>
+      <fields>
+        <field>
+          <name>${PROJECT_HOME}/files-0010</name>
+          <filemask>.*\.txt$</filemask>
+        </field>
+      </fields>
+      <name>Add filenames to result</name>
       <description/>
-      <type>WORKFLOW</type>
+      <type>ADD_RESULT_FILENAMES</type>
       <attributes/>
-      <add_date>N</add_date>
-      <add_time>N</add_time>
-      <create_parent_folder>N</create_parent_folder>
-      <exec_per_row>N</exec_per_row>
-      
<filename>${PROJECT_HOME}/0010-simpleeval-stringequal-targetvar-unset.hwf</filename>
-      <loglevel>Nothing</loglevel>
-      <parameters>
-        <pass_all_parameters>Y</pass_all_parameters>
-      </parameters>
-      <params_from_previous>N</params_from_previous>
-      <run_configuration>local</run_configuration>
-      <set_append_logfile>N</set_append_logfile>
-      <set_logfile>N</set_logfile>
-      <wait_until_finished>Y</wait_until_finished>
+      <xloc>208</xloc>
+      <yloc>48</yloc>
+      <parallel>N</parallel>
+      <attributes_hac/>
+    </action>
+    <action>
+      <valuetype>resultfiles</valuetype>
+      <fieldtype>number</fieldtype>
+      <fieldname/>
+      <variablename/>
+      <mask/>
+      <comparevalue>3</comparevalue>
+      <minvalue/>
+      <maxvalue/>
+      <successcondition>equal</successcondition>
+      <successwhenvarset>N</successwhenvarset>
+      <successbooleancondition>true</successbooleancondition>
+      <successnumbercondition>equal</successnumbercondition>
+      <name>Simple evaluation</name>
+      <description/>
+      <type>SIMPLE_EVAL</type>
+      <attributes/>
+      <xloc>400</xloc>
+      <yloc>48</yloc>
       <parallel>N</parallel>
-      <xloc>368</xloc>
-      <yloc>96</yloc>
       <attributes_hac/>
     </action>
     <action>
@@ -78,48 +91,53 @@ limitations under the License.
       <description/>
       <type>SUCCESS</type>
       <attributes/>
+      <xloc>544</xloc>
+      <yloc>48</yloc>
       <parallel>N</parallel>
-      <xloc>656</xloc>
-      <yloc>96</yloc>
       <attributes_hac/>
     </action>
     <action>
+      <loglevel>Error</loglevel>
       <name>Abort workflow</name>
       <description/>
       <type>ABORT</type>
       <attributes/>
-      <always_log_rows>N</always_log_rows>
-      <message>Simple eval: String comparison to unset variable 
failed</message>
+      <xloc>544</xloc>
+      <yloc>144</yloc>
       <parallel>N</parallel>
-      <xloc>368</xloc>
-      <yloc>224</yloc>
       <attributes_hac/>
     </action>
   </actions>
   <hops>
     <hop>
       <from>Start</from>
-      <to>0010-simpleeval-stringequal-targetvar-unset.hwf</to>
-      <enabled>Y</enabled>
+      <to>Add filenames to result</to>
       <evaluation>Y</evaluation>
       <unconditional>Y</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
-      <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
-      <to>Success</to>
+      <from>Add filenames to result</from>
+      <to>Simple evaluation</to>
+      <evaluation>Y</evaluation>
+      <unconditional>N</unconditional>
       <enabled>Y</enabled>
+    </hop>
+    <hop>
+      <from>Simple evaluation</from>
+      <to>Success</to>
       <evaluation>Y</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
-      <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
+      <from>Simple evaluation</from>
       <to>Abort workflow</to>
-      <enabled>Y</enabled>
       <evaluation>N</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
   </hops>
-  <notepads>
-  </notepads>
+  <notepads/>
   <attributes/>
 </workflow>
diff --git a/integration-tests/actions/files-0010/f1.txt 
b/integration-tests/actions/files-0010/f1.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration-tests/actions/files-0010/f2.txt 
b/integration-tests/actions/files-0010/f2.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration-tests/actions/files-0010/f3.txt 
b/integration-tests/actions/files-0010/f3.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration-tests/actions/main-0010-simpleval.hwf 
b/integration-tests/actions/main-0010-simpleval.hwf
index f6006fd2eb..45ef58b570 100644
--- a/integration-tests/actions/main-0010-simpleval.hwf
+++ b/integration-tests/actions/main-0010-simpleval.hwf
@@ -22,55 +22,54 @@ limitations under the License.
   <name_sync_with_filename>Y</name_sync_with_filename>
   <description/>
   <extended_description/>
-  <workflow_version/>
   <created_user>-</created_user>
-  <created_date>2021/05/05 18:31:44.849</created_date>
   <modified_user>-</modified_user>
+  <created_date>2021/05/05 18:31:44.849</created_date>
   <modified_date>2021/05/05 18:31:44.849</modified_date>
-  <parameters>
-    </parameters>
+  <workflow_version/>
+  <parameters/>
   <actions>
     <action>
+      <repeat>N</repeat>
+      <schedulerType>0</schedulerType>
+      <intervalSeconds>0</intervalSeconds>
+      <intervalMinutes>60</intervalMinutes>
+      <DayOfMonth>1</DayOfMonth>
+      <weekDay>1</weekDay>
+      <minutes>0</minutes>
+      <hour>12</hour>
+      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
       <name>Start</name>
       <description/>
       <type>SPECIAL</type>
       <attributes/>
-      <DayOfMonth>1</DayOfMonth>
-      <doNotWaitOnFirstExecution>N</doNotWaitOnFirstExecution>
-      <hour>12</hour>
-      <intervalMinutes>60</intervalMinutes>
-      <intervalSeconds>0</intervalSeconds>
-      <minutes>0</minutes>
-      <repeat>N</repeat>
-      <schedulerType>0</schedulerType>
-      <weekDay>1</weekDay>
-      <parallel>N</parallel>
       <xloc>128</xloc>
       <yloc>96</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
     <action>
-      <name>0010-simpleeval-stringequal-targetvar-unset.hwf</name>
-      <description/>
-      <type>WORKFLOW</type>
-      <attributes/>
+      
<filename>${PROJECT_HOME}/0010-simpleeval-stringequal-targetvar-unset.hwf</filename>
+      <params_from_previous>N</params_from_previous>
+      <exec_per_row>N</exec_per_row>
+      <set_logfile>N</set_logfile>
       <add_date>N</add_date>
       <add_time>N</add_time>
-      <create_parent_folder>N</create_parent_folder>
-      <exec_per_row>N</exec_per_row>
-      
<filename>${PROJECT_HOME}/0010-simpleeval-stringequal-targetvar-unset.hwf</filename>
       <loglevel>Nothing</loglevel>
+      <set_append_logfile>N</set_append_logfile>
+      <create_parent_folder>N</create_parent_folder>
+      <wait_until_finished>Y</wait_until_finished>
       <parameters>
         <pass_all_parameters>Y</pass_all_parameters>
       </parameters>
-      <params_from_previous>N</params_from_previous>
       <run_configuration>local</run_configuration>
-      <set_append_logfile>N</set_append_logfile>
-      <set_logfile>N</set_logfile>
-      <wait_until_finished>Y</wait_until_finished>
-      <parallel>N</parallel>
+      <name>0010-simpleeval-stringequal-targetvar-unset.hwf</name>
+      <description/>
+      <type>WORKFLOW</type>
+      <attributes/>
       <xloc>368</xloc>
       <yloc>96</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
     <action>
@@ -78,21 +77,55 @@ limitations under the License.
       <description/>
       <type>SUCCESS</type>
       <attributes/>
+      <xloc>576</xloc>
+      <yloc>320</yloc>
       <parallel>N</parallel>
-      <xloc>656</xloc>
-      <yloc>96</yloc>
       <attributes_hac/>
     </action>
     <action>
-      <name>Abort workflow</name>
+      <filename>${PROJECT_HOME}/0010-simpleeval-log-contains.hwf</filename>
+      <params_from_previous>N</params_from_previous>
+      <exec_per_row>N</exec_per_row>
+      <set_logfile>N</set_logfile>
+      <add_date>N</add_date>
+      <add_time>N</add_time>
+      <set_append_logfile>N</set_append_logfile>
+      <create_parent_folder>N</create_parent_folder>
+      <wait_until_finished>Y</wait_until_finished>
+      <parameters>
+        <pass_all_parameters>Y</pass_all_parameters>
+      </parameters>
+      <run_configuration>local</run_configuration>
+      <name>0010-simpleeval-log-contains</name>
       <description/>
-      <type>ABORT</type>
+      <type>WORKFLOW</type>
       <attributes/>
-      <always_log_rows>N</always_log_rows>
-      <message>Simple eval: String comparison to unset variable 
failed</message>
+      <xloc>368</xloc>
+      <yloc>192</yloc>
       <parallel>N</parallel>
+      <attributes_hac/>
+    </action>
+    <action>
+      <filename>${PROJECT_HOME}/0010-simpleeval-nr-result-files.hwf</filename>
+      <params_from_previous>N</params_from_previous>
+      <exec_per_row>N</exec_per_row>
+      <set_logfile>N</set_logfile>
+      <add_date>N</add_date>
+      <add_time>N</add_time>
+      <set_append_logfile>N</set_append_logfile>
+      <create_parent_folder>N</create_parent_folder>
+      <wait_until_finished>Y</wait_until_finished>
+      <parameters>
+        <pass_all_parameters>Y</pass_all_parameters>
+      </parameters>
+      <run_configuration>local</run_configuration>
+      <name>0010-simpleeval-nr-result-files</name>
+      <description/>
+      <type>WORKFLOW</type>
+      <attributes/>
       <xloc>368</xloc>
-      <yloc>224</yloc>
+      <yloc>320</yloc>
+      <parallel>N</parallel>
       <attributes_hac/>
     </action>
   </actions>
@@ -100,26 +133,32 @@ limitations under the License.
     <hop>
       <from>Start</from>
       <to>0010-simpleeval-stringequal-targetvar-unset.hwf</to>
-      <enabled>Y</enabled>
       <evaluation>Y</evaluation>
       <unconditional>Y</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
       <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
-      <to>Success</to>
-      <enabled>Y</enabled>
+      <to>0010-simpleeval-log-contains</to>
       <evaluation>Y</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
     <hop>
-      <from>0010-simpleeval-stringequal-targetvar-unset.hwf</from>
-      <to>Abort workflow</to>
+      <from>0010-simpleeval-log-contains</from>
+      <to>0010-simpleeval-nr-result-files</to>
+      <evaluation>Y</evaluation>
+      <unconditional>N</unconditional>
       <enabled>Y</enabled>
-      <evaluation>N</evaluation>
+    </hop>
+    <hop>
+      <from>0010-simpleeval-nr-result-files</from>
+      <to>Success</to>
+      <evaluation>Y</evaluation>
       <unconditional>N</unconditional>
+      <enabled>Y</enabled>
     </hop>
   </hops>
-  <notepads>
-  </notepads>
+  <notepads/>
   <attributes/>
 </workflow>
diff --git 
a/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEval.java
 
b/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEval.java
index d96b3804ce..e25ba90a06 100644
--- 
a/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEval.java
+++ 
b/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEval.java
@@ -54,7 +54,10 @@ public class ActionSimpleEval extends ActionBase implements 
Cloneable, IAction {
 
   public enum ValueType implements IEnumHasCodeAndDescription {
     FIELD("field", BaseMessages.getString(PKG, 
"ActionSimpleEval.EvalPreviousField.Label")),
-    VARIABLE("variable", BaseMessages.getString(PKG, 
"ActionSimpleEval.EvalVariable.Label"));
+    VARIABLE("variable", BaseMessages.getString(PKG, 
"ActionSimpleEval.EvalVariable.Label")),
+    RESULT_FILES(
+        "resultfiles", BaseMessages.getString(PKG, 
"ActionSimpleEval.EvalResultFiles.Label")),
+    LOG_TEXT("logtext", BaseMessages.getString(PKG, 
"ActionSimpleEval.EvalLogText.Label"));
 
     private final String code;
     private final String description;
@@ -421,12 +424,28 @@ public class ActionSimpleEval extends ActionBase 
implements Cloneable, IAction {
         }
         sourcevalue = resolve(getVariableWithSpec());
         break;
+      case RESULT_FILES:
+        int fileCount = result.getResultFiles() != null ? 
result.getResultFiles().size() : 0;
+        sourcevalue = Integer.toString(fileCount);
+        break;
+      case LOG_TEXT:
+        sourcevalue = Const.NVL(result.getLogText(), "");
+        break;
       default:
         break;
     }
 
     if (isDetailed()) {
-      logDetailed(BaseMessages.getString(PKG, 
"ActionSimpleEval.Log.ValueToevaluate", sourcevalue));
+      if (valueType == ValueType.LOG_TEXT) {
+        logDetailed(
+            BaseMessages.getString(
+                PKG,
+                "ActionSimpleEval.Log.LogTextToEvaluate",
+                Integer.toString(sourcevalue.length())));
+      } else {
+        logDetailed(
+            BaseMessages.getString(PKG, 
"ActionSimpleEval.Log.ValueToevaluate", sourcevalue));
+      }
     }
 
     boolean success = false;
@@ -437,7 +456,9 @@ public class ActionSimpleEval extends ActionBase implements 
Cloneable, IAction {
     String realMinValue = resolve(minValue);
     String realMaxValue = resolve(maxValue);
 
-    switch (fieldType) {
+    FieldType evaluationType = getEvaluationFieldType();
+
+    switch (evaluationType) {
       case STRING:
         switch (successStringCondition) {
           case EQUAL: // equal
@@ -1144,6 +1165,21 @@ public class ActionSimpleEval extends ActionBase 
implements Cloneable, IAction {
     return fieldType;
   }
 
+  /**
+   * Result files are always compared as a number. Log text is always compared 
as a string.
+   *
+   * @return the field type actually used during evaluation
+   */
+  FieldType getEvaluationFieldType() {
+    if (valueType == ValueType.RESULT_FILES) {
+      return FieldType.NUMBER;
+    }
+    if (valueType == ValueType.LOG_TEXT) {
+      return FieldType.STRING;
+    }
+    return fieldType;
+  }
+
   public SuccessStringCondition getSuccessStringCondition() {
     return successStringCondition;
   }
diff --git 
a/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalDialog.java
 
b/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalDialog.java
index 2136607433..32bd8e17e2 100644
--- 
a/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalDialog.java
+++ 
b/plugins/actions/simpleeval/src/main/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalDialog.java
@@ -517,10 +517,11 @@ public class ActionSimpleEvalDialog extends ActionDialog {
   }
 
   private void refresh() {
-    boolean evaluatepreviousRowField =
-        ValueType.lookupDescription(wValueType.getText()) == ValueType.FIELD;
-    boolean evaluateVariable =
-        ValueType.lookupDescription(wValueType.getText()) == 
ValueType.VARIABLE;
+    ValueType selectedValueType = 
ValueType.lookupDescription(wValueType.getText());
+    boolean evaluatepreviousRowField = selectedValueType == ValueType.FIELD;
+    boolean evaluateVariable = selectedValueType == ValueType.VARIABLE;
+    boolean evaluateResultFiles = selectedValueType == ValueType.RESULT_FILES;
+    boolean evaluateLogText = selectedValueType == ValueType.LOG_TEXT;
     wlVariableName.setVisible(evaluateVariable);
     wVariableName.setVisible(evaluateVariable);
     wlFieldName.setVisible(evaluatepreviousRowField);
@@ -529,27 +530,32 @@ public class ActionSimpleEvalDialog extends ActionDialog {
     wSuccessWhenSet.setVisible(evaluateVariable);
 
     boolean successWhenSet = wSuccessWhenSet.getSelection() && 
evaluateVariable;
+    boolean showType = !successWhenSet && !evaluateResultFiles && 
!evaluateLogText;
 
-    wlFieldType.setVisible(!successWhenSet);
-    wFieldType.setVisible(!successWhenSet);
+    wlFieldType.setVisible(showType);
+    wFieldType.setVisible(showType);
 
     boolean valueTypeDate =
-        FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.DATE_TIME;
-    wlMask.setVisible(!successWhenSet && valueTypeDate);
-    wMask.setVisible(!successWhenSet && valueTypeDate);
+        showType && FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.DATE_TIME;
+    wlMask.setVisible(valueTypeDate);
+    wMask.setVisible(valueTypeDate);
 
-    boolean valueTypeString = 
FieldType.lookupDescription(wFieldType.getText()) == FieldType.STRING;
+    boolean valueTypeString =
+        evaluateLogText
+            || (showType && FieldType.lookupDescription(wFieldType.getText()) 
== FieldType.STRING);
     wlSuccessStringCondition.setVisible(!successWhenSet && valueTypeString);
     wSuccessStringCondition.setVisible(!successWhenSet && valueTypeString);
 
     boolean valueTypeNumber =
-        FieldType.lookupDescription(wFieldType.getText()) == FieldType.NUMBER
-            || FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.DATE_TIME;
+        evaluateResultFiles
+            || (showType
+                && (FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.NUMBER
+                    || FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.DATE_TIME));
     wlSuccessNumberCondition.setVisible(!successWhenSet && valueTypeNumber);
     wSuccessNumberCondition.setVisible(!successWhenSet && valueTypeNumber);
 
     boolean valueTypeBoolean =
-        FieldType.lookupDescription(wFieldType.getText()) == FieldType.BOOLEAN;
+        showType && FieldType.lookupDescription(wFieldType.getText()) == 
FieldType.BOOLEAN;
     wlSuccessBooleanCondition.setVisible(!successWhenSet && valueTypeBoolean);
     wSuccessBooleanCondition.setVisible(!successWhenSet && valueTypeBoolean);
 
@@ -583,10 +589,17 @@ public class ActionSimpleEvalDialog extends ActionDialog {
     }
 
     action.setName(wName.getText());
-    action.setValueType(ValueType.lookupDescription(wValueType.getText()));
+    ValueType valueType = ValueType.lookupDescription(wValueType.getText());
+    action.setValueType(valueType);
     action.setFieldName(wFieldName.getText());
     action.setVariableName(wVariableName.getText());
-    action.setFieldType(FieldType.lookupDescription(wFieldType.getText()));
+    if (valueType == ValueType.RESULT_FILES) {
+      action.setFieldType(FieldType.NUMBER);
+    } else if (valueType == ValueType.LOG_TEXT) {
+      action.setFieldType(FieldType.STRING);
+    } else {
+      action.setFieldType(FieldType.lookupDescription(wFieldType.getText()));
+    }
     action.setMask(wMask.getText());
     action.setCompareValue(wCompareValue.getText());
     action.setMinValue(wMinValue.getText());
diff --git 
a/plugins/actions/simpleeval/src/main/resources/org/apache/hop/workflow/actions/simpleeval/messages/messages_en_US.properties
 
b/plugins/actions/simpleeval/src/main/resources/org/apache/hop/workflow/actions/simpleeval/messages/messages_en_US.properties
index a2341fc191..41f4a021d3 100644
--- 
a/plugins/actions/simpleeval/src/main/resources/org/apache/hop/workflow/actions/simpleeval/messages/messages_en_US.properties
+++ 
b/plugins/actions/simpleeval/src/main/resources/org/apache/hop/workflow/actions/simpleeval/messages/messages_en_US.properties
@@ -20,7 +20,7 @@
 ActionSimpleEval.CheckingVariable=Checking variable [{0}] ...
 ActionSimpleEval.CompareValue.Label=Value
 ActionSimpleEval.CompareValue.Tooltip=Value
-ActionSimpleEval.Description=Evaluate one field or variable
+ActionSimpleEval.Description=Evaluate a field, variable, result files or log 
text
 ActionSimpleEval.Error.FieldNotExist=We can not field [{0}] in the previous 
action result\!
 ActionSimpleEval.Error.IncorrectDates=Incorrect dates\! {0} (min) must be 
before {1} (max)\!
 ActionSimpleEval.Error.IncorrectNumbers=Incorrect numbers\! [{0}] (min) must 
be before [{1}] (max)\!
@@ -29,7 +29,9 @@ ActionSimpleEval.Error.UnparsableBoolean=Error converting to 
boolean value [{0}]
 ActionSimpleEval.Error.UnparsableDate=Can not convert value {0} to date\!
 ActionSimpleEval.Error.UnparsableNumber=Can not convert value [{0}] to 
number\! {1}
 ActionSimpleEval.Error.VariableMissing=Variable name is missing\!
+ActionSimpleEval.EvalLogText.Label=Log text from previous result
 ActionSimpleEval.EvalPreviousField.Label=Field from previous result
+ActionSimpleEval.EvalResultFiles.Label=Number of result files
 ActionSimpleEval.EvalVariable.Label=Variable
 ActionSimpleEval.FieldName.Label=Field name
 ActionSimpleEval.FieldName.Tooltip=Field name
@@ -38,10 +40,11 @@ ActionSimpleEval.FieldTypeBoolean.Label=Boolean
 ActionSimpleEval.FieldTypeDateTime.Label=Date time
 ActionSimpleEval.FieldTypeNumber.Label=Number
 ActionSimpleEval.FieldTypeString.Label=String
-ActionSimpleEval.keyword=evaluate,condition,variable,compare,test
+ActionSimpleEval.keyword=evaluate,condition,variable,compare,test,log,files,result
 ActionSimpleEval.Log.ArgFromPrevious.Found=found [{0}] row(s) from previous 
result
 ActionSimpleEval.Log.CompareWithValue=Comparing incoming value [{0}] with 
value [{1}]...
 ActionSimpleEval.Log.CompareWithValues=Comparing incoming value [{0}] (min) 
and [{1}] (max)...
+ActionSimpleEval.Log.LogTextToEvaluate=Evaluating log text from previous 
result ({0} character(s))
 ActionSimpleEval.Log.ValueToevaluate=Value to evaluate is {0}
 ActionSimpleEval.Mask.Label=Mask
 ActionSimpleEval.MaxValue.Label=Max
diff --git 
a/plugins/actions/simpleeval/src/test/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalTest.java
 
b/plugins/actions/simpleeval/src/test/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalTest.java
index c9035ab6aa..3c3a6cec00 100644
--- 
a/plugins/actions/simpleeval/src/test/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalTest.java
+++ 
b/plugins/actions/simpleeval/src/test/java/org/apache/hop/workflow/actions/simpleeval/ActionSimpleEvalTest.java
@@ -19,9 +19,14 @@ package org.apache.hop.workflow.actions.simpleeval;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
 
 import org.apache.hop.core.HopClientEnvironment;
+import org.apache.hop.core.Result;
+import org.apache.hop.core.ResultFile;
 import org.apache.hop.core.database.DatabaseMeta;
+import org.apache.hop.core.logging.HopLogStore;
 import org.apache.hop.metadata.serializer.memory.MemoryMetadataProvider;
 import org.apache.hop.workflow.action.ActionSerializationTestUtil;
 import org.apache.hop.workflow.actions.simpleeval.ActionSimpleEval.FieldType;
@@ -29,11 +34,17 @@ import 
org.apache.hop.workflow.actions.simpleeval.ActionSimpleEval.SuccessBoolea
 import 
org.apache.hop.workflow.actions.simpleeval.ActionSimpleEval.SuccessNumberCondition;
 import 
org.apache.hop.workflow.actions.simpleeval.ActionSimpleEval.SuccessStringCondition;
 import org.apache.hop.workflow.actions.simpleeval.ActionSimpleEval.ValueType;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 /** Unit tests for Simple Eval action. */
 class ActionSimpleEvalTest {
 
+  @BeforeAll
+  static void setUpBeforeClass() {
+    HopLogStore.init();
+  }
+
   @Test
   void testSerialization() throws Exception {
     HopClientEnvironment.init();
@@ -61,4 +72,181 @@ class ActionSimpleEvalTest {
 
     assertFalse(action.isSuccessWhenVarSet());
   }
+
+  @Test
+  void testResultFilesSerialization() throws Exception {
+    ActionSimpleEval action =
+        ActionSerializationTestUtil.testSerialization(
+            "/simple-eval-result-files-action.xml", ActionSimpleEval.class);
+
+    assertEquals(ValueType.RESULT_FILES, action.getValueType());
+    assertEquals(FieldType.NUMBER, action.getFieldType());
+    assertEquals(SuccessNumberCondition.EQUAL, 
action.getSuccessNumberCondition());
+    assertEquals("2", action.getCompareValue());
+  }
+
+  @Test
+  void testLogTextSerialization() throws Exception {
+    ActionSimpleEval action =
+        ActionSerializationTestUtil.testSerialization(
+            "/simple-eval-log-text-action.xml", ActionSimpleEval.class);
+
+    assertEquals(ValueType.LOG_TEXT, action.getValueType());
+    assertEquals(FieldType.STRING, action.getFieldType());
+    assertEquals(SuccessStringCondition.CONTAINS, 
action.getSuccessStringCondition());
+    assertEquals("Finished pipeline", action.getCompareValue());
+  }
+
+  @Test
+  void testResultFilesEqualSuccess() throws Exception {
+    ActionSimpleEval action = resultFilesAction(SuccessNumberCondition.EQUAL, 
"2");
+    Result result = resultWithFiles(2);
+
+    Result actual = action.execute(result, 0);
+
+    assertTrue(actual.isResult());
+    assertEquals(0, actual.getNrErrors());
+  }
+
+  @Test
+  void testResultFilesEqualFailure() throws Exception {
+    ActionSimpleEval action = resultFilesAction(SuccessNumberCondition.EQUAL, 
"3");
+    Result result = resultWithFiles(2);
+
+    Result actual = action.execute(result, 0);
+
+    assertFalse(actual.isResult());
+    assertEquals(0, actual.getNrErrors());
+  }
+
+  @Test
+  void testResultFilesZeroWhenEmpty() throws Exception {
+    ActionSimpleEval action = resultFilesAction(SuccessNumberCondition.EQUAL, 
"0");
+
+    Result actual = action.execute(new Result(), 0);
+
+    assertTrue(actual.isResult());
+  }
+
+  @Test
+  void testResultFilesGreaterThan() throws Exception {
+    ActionSimpleEval action = 
resultFilesAction(SuccessNumberCondition.GREATER, "1");
+    Result result = resultWithFiles(2);
+
+    assertTrue(action.execute(result, 0).isResult());
+  }
+
+  @Test
+  void testResultFilesBetween() throws Exception {
+    ActionSimpleEval action = new ActionSimpleEval("eval");
+    action.setValueType(ValueType.RESULT_FILES);
+    action.setSuccessNumberCondition(SuccessNumberCondition.BETWEEN);
+    action.setMinValue("1");
+    action.setMaxValue("3");
+
+    assertTrue(action.execute(resultWithFiles(2), 0).isResult());
+    assertFalse(action.execute(resultWithFiles(0), 0).isResult());
+    assertFalse(action.execute(resultWithFiles(4), 0).isResult());
+  }
+
+  @Test
+  void testResultFilesIgnoresConfiguredFieldType() throws Exception {
+    ActionSimpleEval action = resultFilesAction(SuccessNumberCondition.EQUAL, 
"1");
+    action.setFieldType(FieldType.STRING);
+
+    assertEquals(FieldType.NUMBER, action.getEvaluationFieldType());
+    assertTrue(action.execute(resultWithFiles(1), 0).isResult());
+  }
+
+  @Test
+  void testLogTextContainsSuccess() throws Exception {
+    ActionSimpleEval action = logTextAction(SuccessStringCondition.CONTAINS, 
"Abort this workflow");
+    Result result = resultWithLog("Starting\nAbort this workflow\nERROR\n");
+
+    Result actual = action.execute(result, 0);
+
+    assertTrue(actual.isResult());
+    assertEquals(0, actual.getNrErrors());
+  }
+
+  @Test
+  void testLogTextContainsFailure() throws Exception {
+    ActionSimpleEval action = logTextAction(SuccessStringCondition.CONTAINS, 
"missing snippet");
+    Result result = resultWithLog("Starting\nAbort this workflow\nERROR\n");
+
+    assertFalse(action.execute(result, 0).isResult());
+  }
+
+  @Test
+  void testLogTextNotContainsSuccess() throws Exception {
+    ActionSimpleEval action =
+        logTextAction(SuccessStringCondition.NOT_CONTAINS, "Success: we should 
not see this");
+    Result result = resultWithLog("Starting\nAbort this workflow\nERROR\n");
+
+    assertTrue(action.execute(result, 0).isResult());
+  }
+
+  @Test
+  void testLogTextNotContainsFailure() throws Exception {
+    ActionSimpleEval action = 
logTextAction(SuccessStringCondition.NOT_CONTAINS, "ERROR");
+    Result result = resultWithLog("Starting\nAbort this workflow\nERROR\n");
+
+    assertFalse(action.execute(result, 0).isResult());
+  }
+
+  @Test
+  void testLogTextNullTreatedAsEmpty() throws Exception {
+    ActionSimpleEval action = 
logTextAction(SuccessStringCondition.NOT_CONTAINS, "ERROR");
+
+    assertTrue(action.execute(new Result(), 0).isResult());
+  }
+
+  @Test
+  void testLogTextRegex() throws Exception {
+    ActionSimpleEval action = logTextAction(SuccessStringCondition.REGEX, 
"(?s).*ERROR.*");
+    Result result = resultWithLog("line 1\nERROR: boom\nline 3");
+
+    assertTrue(action.execute(result, 0).isResult());
+  }
+
+  @Test
+  void testLogTextIgnoresConfiguredFieldType() throws Exception {
+    ActionSimpleEval action = logTextAction(SuccessStringCondition.CONTAINS, 
"ok");
+    action.setFieldType(FieldType.NUMBER);
+
+    assertEquals(FieldType.STRING, action.getEvaluationFieldType());
+    assertTrue(action.execute(resultWithLog("this is ok"), 0).isResult());
+  }
+
+  private static ActionSimpleEval resultFilesAction(
+      SuccessNumberCondition condition, String compareValue) {
+    ActionSimpleEval action = new ActionSimpleEval("eval");
+    action.setValueType(ValueType.RESULT_FILES);
+    action.setSuccessNumberCondition(condition);
+    action.setCompareValue(compareValue);
+    return action;
+  }
+
+  private static ActionSimpleEval logTextAction(
+      SuccessStringCondition condition, String compareValue) {
+    ActionSimpleEval action = new ActionSimpleEval("eval");
+    action.setValueType(ValueType.LOG_TEXT);
+    action.setSuccessStringCondition(condition);
+    action.setCompareValue(compareValue);
+    return action;
+  }
+
+  private static Result resultWithFiles(int count) {
+    Result result = new Result();
+    for (int i = 0; i < count; i++) {
+      result.getResultFiles().put("file-" + i, mock(ResultFile.class));
+    }
+    return result;
+  }
+
+  private static Result resultWithLog(String logText) {
+    Result result = new Result();
+    result.setLogText(logText);
+    return result;
+  }
 }
diff --git 
a/plugins/actions/simpleeval/src/test/resources/simple-eval-log-text-action.xml 
b/plugins/actions/simpleeval/src/test/resources/simple-eval-log-text-action.xml
new file mode 100644
index 0000000000..5f684056f1
--- /dev/null
+++ 
b/plugins/actions/simpleeval/src/test/resources/simple-eval-log-text-action.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~       http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
+<action>
+       <name>Check log text</name>
+       <description />
+       <type>SIMPLE_EVAL</type>
+       <attributes />
+       <comparevalue>Finished pipeline</comparevalue>
+       <fieldtype>string</fieldtype>
+       <successbooleancondition>true</successbooleancondition>
+       <successcondition>contains</successcondition>
+       <successnumbercondition>equal</successnumbercondition>
+       <successwhenvarset>N</successwhenvarset>
+       <valuetype>logtext</valuetype>
+</action>
diff --git 
a/plugins/actions/simpleeval/src/test/resources/simple-eval-result-files-action.xml
 
b/plugins/actions/simpleeval/src/test/resources/simple-eval-result-files-action.xml
new file mode 100644
index 0000000000..46facc9d72
--- /dev/null
+++ 
b/plugins/actions/simpleeval/src/test/resources/simple-eval-result-files-action.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~       http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
+<action>
+       <name>Check result files</name>
+       <description />
+       <type>SIMPLE_EVAL</type>
+       <attributes />
+       <comparevalue>2</comparevalue>
+       <fieldtype>number</fieldtype>
+       <successbooleancondition>true</successbooleancondition>
+       <successcondition>equal</successcondition>
+       <successnumbercondition>equal</successnumbercondition>
+       <successwhenvarset>N</successwhenvarset>
+       <valuetype>resultfiles</valuetype>
+</action>

Reply via email to