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

bamaer 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 908333282a Batch 6: Abort result reaches a parent workflow, Join hop 
kinds, Wait for when stopped. #8970 (#9118)
908333282a is described below

commit 908333282adaa238809c4ef90d2ee73c242d3c80
Author: Adalennis <[email protected]>
AuthorDate: Fri Oct 30 08:30:38 2026 +0100

    Batch 6: Abort result reaches a parent workflow, Join hop kinds, Wait for 
when stopped. #8970 (#9118)
    
    * Batch 6: Abort result reaches a parent workflow, Join hop kinds, Wait for 
when stopped. #8970
    
    * Write to log and Wait for: as the last action after errors, the workflow 
still ends as failed. #8970
---
 .../modules/ROOT/pages/workflow/actions/abort.adoc  | 14 +++++++++++++-
 .../modules/ROOT/pages/workflow/actions/dummy.adoc  | 13 +++++++++++++
 .../modules/ROOT/pages/workflow/actions/join.adoc   | 15 ++++++++++++++-
 .../ROOT/pages/workflow/actions/setvariables.adoc   | 21 +++++++++++++++++----
 .../modules/ROOT/pages/workflow/actions/start.adoc  | 13 +++++++++++++
 .../ROOT/pages/workflow/actions/success.adoc        | 14 +++++++++++++-
 .../ROOT/pages/workflow/actions/waitfor.adoc        | 20 ++++++++++++++++----
 .../ROOT/pages/workflow/actions/writetolog.adoc     | 13 +++++++++++++
 8 files changed, 112 insertions(+), 11 deletions(-)

diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/abort.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/abort.adoc
index 377b7c0e70..7bb723b5d1 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/abort.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/abort.adoc
@@ -41,4 +41,16 @@ A workflow action can be placed several times on the canvas, 
however it will be
 |Log level of the message|The log level to write the message with, `Error` by 
default.
 Lower the log level if you don't want the message to show up as an error in 
the log.
 This only changes the logging: the workflow is marked as failed either way.
-|===
\ No newline at end of file
+|===
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|False|Always, with 1 error. The workflow stops: no hop from the action is 
followed, not even an unconditional one, and the workflow ends as failed 
(hop-run ends with exit code 1).
+|Result files|No action in this workflow receives them, as the workflow stops. 
A parent workflow that runs this workflow with a Workflow action receives the 
result files of the actions before the Abort.
+|Result rows|As for the result files: a parent workflow receives the result 
rows of the actions before the Abort.
+|===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dummy.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dummy.adoc
index 98432adcab..b93f71157f 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dummy.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dummy.adoc
@@ -23,3 +23,16 @@ under the License.
 == Description
 
 The `Dummy` action does not add any functionality, but can be useful as a 
placeholder action or as a workflow layout helper.
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|Always, with 0 errors.
+|Hops|Dummy does not evaluate a result: only its unconditional hops are 
followed. A success or failure hop from a Dummy is never followed.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
diff --git a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/join.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/join.adoc
index db86a1372c..78cc9080a3 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/join.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/join.adoc
@@ -54,4 +54,17 @@ 
image:how-to-guides/parallel-workflows/continue-in-parallel-join.png[Using the j
 
 * *Simplifies parallel execution:* No need for a separate child workflow just 
to coordinate branches.
 * *Improves readability:* Your parallel and sequential logic can be maintained 
in a single workflow.
-* *Increases maintainability:* Fewer components and external dependencies 
(child workflows) to manage.
\ No newline at end of file
+* *Increases maintainability:* Fewer components and external dependencies 
(child workflows) to manage.
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|Every branch that leads to the Join has finished, and none of them 
failed on the way. Only a branch whose hop into the Join is a success hop 
counts as failed when its last action is false: with a failure hop or an 
unconditional hop, a false action does not make the Join false.
+|False|A branch ended false while its hop into the Join is a success hop, or 
can't run any more because of an earlier failure. The number of errors is the 
number of such branches.
+|Result files|The result files of one branch are passed on. The result files 
of the other branches are not added: when several branches add result files, 
only those of one branch reach the next action.
+|Result rows|The result rows of one branch are passed on, as for the result 
files.
+|===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/setvariables.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/setvariables.adoc
index c89cf61495..2e976c93f6 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/setvariables.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/setvariables.adoc
@@ -26,14 +26,14 @@ The `Set variables` action sets variables at various scopes.
 
 == Options
 
-[options="header", width="90%". cols="1,3"]
+[options="header", width="90%", cols="1,3"]
 |===
 |Option|Description
 2+|Properties file
-|Workflow action name|The name of the workflow action.
+|Action name|The name of the workflow action.
 |Name of properties file|The name of the properties file.
 |Variable scope a|
-* Valid in the Java Virtual machine
+* Valid in the Java Virtual Machine
 * Valid in the current workflow
 * Valid in the parent
 * Valid in the root
@@ -55,4 +55,17 @@ A properties file is a text file with the `.properties` 
extension. Each line in
 
 == Variable substitution
 
-The "Variable substitution" option allows you to dynamically create and set 
variables based on existing variable values. When enabled, any variable 
references in the variable name or value fields will be resolved before the 
variables are set. This enables the creation of new variables whose names and 
values depend on other variable contents, providing a flexible and dynamic 
approach to variable management within workflows. The syntax `+${MyVariable}+` 
is used to retrieve variable values.
\ No newline at end of file
+The "Variable substitution" option allows you to dynamically create and set 
variables based on existing variable values. When enabled, any variable 
references in the variable name or value fields will be resolved before the 
variables are set. This enables the creation of new variables whose names and 
values depend on other variable contents, providing a flexible and dynamic 
approach to variable management within workflows. The syntax `+${MyVariable}+` 
is used to retrieve variable values.
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|The variables were set, with 0 errors, also after an action that ended 
with errors.
+|False|The properties file can't be read, or *Valid in the parent* is used in 
a workflow that has no parent workflow (a workflow run on its own, not by a 
Workflow action). The number of errors is 1.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/start.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/start.adoc
index ca03439c54..9cda676b17 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/start.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/start.adoc
@@ -36,3 +36,16 @@ When you activate the repeat option the workflow will 
continue to run and restar
 
 While this does not replace a scheduler it can be used for basic scheduling. 
Please note that using this will keep the workflow in a running state meaning 
the Java process will continue to exist and use resources on the system.
 
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|Always. With *Repeat*, after waiting for the next run.
+|Hops|Start does not evaluate a result: only its unconditional hops are 
followed. A success or failure hop from Start is never followed.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/success.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/success.adoc
index 6b6845b512..341591ace4 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/success.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/success.adoc
@@ -31,5 +31,17 @@ TIP: The success action is mainly intended to turn an error 
or failed state into
 [options="header", width="90%", cols="1,3"]
 |===
 |Option|Description
-|Workflow action name|The name of the workflow action.
+|Action name|The name of the workflow action.
+|===
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|Always, with 0 errors, also after an action that ended with errors.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
 |===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/waitfor.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/waitfor.adoc
index c63afd8dde..1e8a967e3d 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/waitfor.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/waitfor.adoc
@@ -29,7 +29,19 @@ The `Wait for` action creates a delay between workflow 
actions. The action allow
 [options="header", width="90%", cols="1,3"]
 |===
 |Option|Description
-|action name|The name of the workflow action.
-|Wait for|The delay to wait
-|Unit time|Specify the unit time (second, minute and hour)
-|===
\ No newline at end of file
+|Action name|The name of the workflow action.
+|Maximum timeout|The time to wait, in the unit selected in the list below it: 
Seconds, Minutes or Hours.
+|===
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|The time is up. A *Maximum timeout* that is not a number counts as 0: 
the action doesn't wait. The number of errors of the previous action is kept: 
this action doesn't reset it. As the last action after an action with errors 
(for example a failed action on a failure hop), the workflow still ends as 
failed, although this action is true: add a 
xref:workflow/actions/success.adoc[Success] action after it to end the workflow 
successfully.
+|False|Only when the workflow is stopped while the action waits, for example 
by an Abort in a parallel branch. No hop from the action is followed then.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
diff --git 
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/writetolog.adoc 
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/writetolog.adoc
index 539776d09e..7d82e9c1cd 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/writetolog.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/writetolog.adoc
@@ -49,3 +49,16 @@ TIP: If an error stops anything from being written to the 
log, then disable the
 |Log subject|The subject to use in the logging line(s)
 |Log message|The log message to write to the log
 |===
+
+== Result
+
+What this action passes on to the next action. See 
xref:workflow/action-results.adoc[Action results] for how results travel 
through a workflow.
+
+[options="header", width="90%", cols="1,3"]
+|===
+|Result|Value
+|True|The message was written, or there was nothing to write: an empty 
message, or a *Log level* that the workflow's log level doesn't show. The 
number of errors of the previous action is kept: this action doesn't reset it. 
As the last action after an action with errors (for example a failed action on 
a failure hop), the workflow still ends as failed, although this action is 
true: add a xref:workflow/actions/success.adoc[Success] action after it to end 
the workflow successfully.
+|False|Only when writing the message fails, with 1 error.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===

Reply via email to