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 c6fdffb59a Batch 7: Result sections for JavaScript, Repeat, End
repeat, XSD validator, XSLT, Ping, Telnet and Web service available. #8970
(#9132)
c6fdffb59a is described below
commit c6fdffb59a20e54b783ea847f8e31b615dc5e51b
Author: Adalennis <[email protected]>
AuthorDate: Fri Oct 30 10:08:01 2026 +0100
Batch 7: Result sections for JavaScript, Repeat, End repeat, XSD validator,
XSLT, Ping, Telnet and Web service available. #8970 (#9132)
* Batch 7: Result sections for JavaScript, Repeat, End repeat, XSD
validator, XSLT, Ping, Telnet and Web service available. #8970
* Repeat: when the loop ends normally, the previous action's result is
passed on. #8970
---
.../modules/ROOT/pages/workflow/actions/eval.adoc | 17 ++++++++++-
.../modules/ROOT/pages/workflow/actions/ping.adoc | 19 +++++++++++--
.../ROOT/pages/workflow/actions/repeat-end.adoc | 12 ++++++++
.../ROOT/pages/workflow/actions/repeat.adoc | 33 ++++++++++++++++------
.../ROOT/pages/workflow/actions/telnet.adoc | 15 +++++++++-
.../workflow/actions/webserviceavailable.adoc | 13 +++++++++
.../ROOT/pages/workflow/actions/xsdvalidator.adoc | 15 +++++++++-
.../modules/ROOT/pages/workflow/actions/xslt.adoc | 30 ++++++++++++++++----
8 files changed, 134 insertions(+), 20 deletions(-)
diff --git a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/eval.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/eval.adoc
index b4b59ce35e..bce63e5f33 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/eval.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/eval.adoc
@@ -156,4 +156,19 @@ var firstRow = rows[0];
firstRow.getString("name", "").equals("Foo")
----
- This script will follow the green workflow hop is the expression evaluates to
true. This happens if field "name" contains String "Foo".
+ This script will follow the green workflow hop if the expression evaluates to
true. This happens if field "name" contains String "Foo".
+
+== 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 script ends with a true value, with 0 errors. A value that is not a
boolean is converted the JavaScript way: `0` is false, a text that is not empty
is true.
+|False|The script ends with a false value: the number of errors is 0. When the
script can't be run (a syntax error, or an error while it runs), the number of
errors is 1.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
+
+NOTE: The `errors` variable in the script still holds the number of errors of
the previous action: this action doesn't reset it before the script runs.
diff --git a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/ping.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/ping.adoc
index b1277ce3a8..de25c6f462 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/ping.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/ping.adoc
@@ -31,15 +31,28 @@ The result it true when the host is reachable, otherwise
false.
[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.
|Host name/IP|The name or the IP address of the host to ping
|Ping type a| The type of ping to send to the specified hostname or IP address
* Classic ping: This calls the ping as a command line of the operating system.
-The result is true when no packets (defined in the "Nr. packets to send"
option) are lost.
+The result is true when the ping command ends without error (exit code 0). On
Linux and macOS, that is the case when at least one of the packets (defined in
the *Nr packets to send* option) gets a reply.
* System ping: This option uses the Java implemented methods.
The result is true when the host name can be resolved and the host is
reachable within the given timeout period.
* System ping then classic ping: try both options (first the system ping and
when that fails, try the classic ping)
|Timeout (ms)|The timeout in ms when the system ping option is used.
-|Nr. packets to send|The number of packets to send (by default 2, only used by
the Classic ping option).
+|Nr packets to send|The number of packets to send (by default 2, only used by
the Classic ping option).
+|===
+
+== 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 host answered, with 0 errors.
+|False|The host can't be pinged (for example, its name can't be resolved), or
*Host name/IP* is empty. 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/repeat-end.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat-end.adoc
index 4ccb790a90..49f3d5aac7 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat-end.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat-end.adoc
@@ -29,3 +29,15 @@ It leaves a flag in the parent workflow to signal it can
stop repeating at the n
TIP: The End repeat action only works against its parent workflow when it's
being executed by the Repeat action.
This action has no options. It works as a
xref:workflow/actions/success.adoc[Success] action and clears possible previous
errors.
+
+== 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 when the workflow is not run by a Repeat
action.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|===
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat.adoc
index f3f330fcfa..9e3223d700 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/repeat.adoc
@@ -45,9 +45,9 @@ This variable is detected by the Repeat action, and the loop
stops. Because the
|===
|Option|Description
-|Workflow action name|The name of the workflow action.
+|Action name|The name of the workflow action.
-|File to repeat|The filename of the pipeline or workflow to execute repeatedly.
+|File to repeat (.hpl or .hwf)|The filename of the pipeline or workflow to
execute repeatedly.
|Run configuration a|The pipeline or workflow run configuration to use.
@@ -59,24 +59,41 @@ NOTE: if you set a variable on a remote server the value is
currently not report
|Delay in seconds|Add a delay of x seconds between repeated executions of the
selected workflow or pipeline.
-|Keep variable values after execution| This option keeps the variable values
after a (repeating) pipeline or workflow execution to inject into the next
iteration.
+|Keep variable values after executions| This option keeps the variable values
after a (repeating) pipeline or workflow execution to inject into the next
iteration.
2+|Logging file
-|Log the execution to a file?|Check if you want to log the repeated executions
of the selected workflow or pipeline to a log file
+|Log the execution to a file|Check if you want to log the repeated executions
of the selected workflow or pipeline to a log file
|Base log file name|The base log filename to use to which the options below
can optionally be appended.
|Log file extension|The extension to use for the log file
-|Add date to filename?|Add the current date to the log filename
-|Add time to filename?|Add the current time to the log filename
+|Add date to filename|Add the current date to the log filename
+|Add time to filename|Add the current time to the log filename
|Add repetition number to filename|Add the repetition number to the log file
name
|Append to any existing log file|Append instead of creating a new file when
the current log file already exist.
-|Log file update interval?|The update interval (in milliseconds) to update the
log file
+|Log file update interval|The update interval (in milliseconds) to update the
log file
|Parameters/Variables to set|You can specify the values of any parameters or
variables in this dialog.
The values can contain variables themselves which will be resolved before
every iteration.
-If the option ```Keep variable values after execution``` is set we evaluate
the expression only once before the first execution of the file.
+If the option *Keep variable values after executions* is set we evaluate the
expression only once before the first execution of the file.
To send Parameters to a Repeat Action, set the parameters/variables name and
Value columns. Value can be hard-coded or reference a parameter/variable name.
Parameters do not automatically flow through a Repeat Action.
|===
For the exact rules that decide which value a parameter ends up with, see
xref:variables/parameter-passing.adoc[Passing parameters to a child pipeline or
workflow].
+
+== 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 loop ended because an xref:workflow/actions/repeat-end.adoc[End
repeat] action ran in the repeated workflow, or because the variable in *Stop
repeating when this variable is set* got its value, and the previous action was
true. The value is compared without case: `y` matches `Y`.
+|False|A run of the file failed. The loop ends there.
+|Result files|The result files of the previous action, plus those of the last
run. The runs before the last one add nothing.
+|Result rows|The result rows of the previous action, plus those of the last
run, as for the result files. The metrics of the last run (such as lines
written) are added in the same way.
+|===
+
+NOTE: Repeat doesn't set a true result of its own: when the loop ends normally
(End repeat, or the variable got its value), the result of the previous action
is passed on. After a false previous action, reached through an unconditional
or a failure hop, the result stays false, with 0 errors, even when every run of
the file succeeded. When the variable already has its value before the first
run, the file is not run at all and the result of the previous action is passed
on in the same way.
+
+NOTE: An empty *File to repeat*, or a *Delay in seconds* that is not a number,
is not a false result: the workflow stops with an error and no hop from the
action is followed.
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/telnet.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/telnet.adoc
index 878a8ea7c6..2ae544207c 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/telnet.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/telnet.adoc
@@ -32,5 +32,18 @@ The `Telnet a host` action tests a connection on a certain
port over the https:/
|Action name|The name of the workflow action.
|Host name/IP|The host.
|Port|The port (default: 23)
-|TimeOut (ms)|The timeout period in milliseconds (default 3000).
+|Timeout (ms)|The timeout period in milliseconds (default 3000).
+|===
+
+== 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|A connection to the port could be opened, with 0 errors.
+|False|The connection can't be opened (for example, nothing listens on the
port), or *Host name/IP* is empty. 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/webserviceavailable.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/webserviceavailable.adoc
index 627c954503..b724de6e89 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/webserviceavailable.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/webserviceavailable.adoc
@@ -41,3 +41,16 @@ The value is depending on the quality of service of this URL
and experiences.
This value gives the read timeout in ms.
The value is depending on the quality of service of this URL and experiences.
|===
+
+== 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 URL could be opened and its content read, with 0 errors.
+|False|The URL can't be opened or read: nothing listens on the port, the
server answers with an HTTP error status (such as 404 Not Found), or *URL* is
empty. 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/xsdvalidator.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xsdvalidator.adoc
index bd3923fc86..89b42cf4ee 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xsdvalidator.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xsdvalidator.adoc
@@ -43,7 +43,7 @@ See also the xref:pipeline/transforms/xsdvalidator.adoc[XSD
Validator pipeline t
Allow the XSD validation to resolve external references (XXE). Unchecked by
default, which has three effects:
-* A `DOCTYPE` declaration or an external entity in the XML being validated is
refused and the action fails.
+* A `DOCTYPE` declaration that points to an external DTD, or an external
entity, in the XML being validated is refused and the action fails. A `DOCTYPE`
with only internal declarations is accepted.
* XSD sources *none (default)* and *is defined inside XML* do not work: the
`xsi:schemaLocation` / `xsi:noNamespaceSchemaLocation` reference is not
resolved, not even when it points at a local file. Both options need the
checkbox.
* A schema that pulls in another schema over the network with `xs:include` or
`xs:import` (for example the W3C `xml.xsd`) needs the checkbox. Local file and
relative includes keep working without it.
@@ -57,3 +57,16 @@ Only check this when the XML documents and the schemas you
validate against are
|XML File name|The name of the XML file
|XSD File name|The name of the XSD 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
+|True|The XML file is valid against the schema, with 0 errors.
+|False|The XML file is not valid, the XML file or the XSD file doesn't exist,
or the action refuses the file because *Enable external entity for XSD
validation* is unchecked (see the option above). 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/xslt.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xslt.adoc
index 8ef5ab01e4..5fead5d849 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xslt.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/xslt.adoc
@@ -42,16 +42,16 @@ When multiple rows exists, it will loop.
At this time XML File name is the first field in the result set, XSL File name
the second fields and Output File name the third field.
|XML File name|The full name of the source XML file
|XSL File name|The full name of the XSL file
-|Output File name|The full name of the created document (result of XSL
transformation)
+|Output Filename|The full name of the created document (result of XSL
transformation)
2+|Settings
-|Transformer Factory|You can select JAXP or SAXON as the transformer factory.
+|Transformer factory|You can select JAXP or SAXON as the transformer factory.
|If file exists a|Define the behavior when an output file with the same name
exists. The available options are:
-* Create new with unique name : a new output file will be created
-* Do nothing : nothing will be done
-* Fail : the workflow will fail
+* Create new with unique name: meant to write a new output file, with the date
and time added to its name. See the NOTE under <<Result>>.
+* Do Nothing: the existing file is left as it is, and the action is true
+* Fail: the action is false, with 1 error
-|Add files to result files name|Add the target file names to the list of
result files of this workflow action for use in the next workflow actions.
+|Add output filename to result|Add the target file names to the list of result
files of this workflow action for use in the next workflow actions.
|===
=== Advanced tab
@@ -73,3 +73,21 @@ At this time XML File name is the first field in the result
set, XSL File name t
|Parameters|a list of parameter names and values to pass to the XSL pipeline
|===
+
+== 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 file was transformed, with 0 errors. An output file that exists
while *If file exists* is *Do Nothing* also counts as done: the file is left as
it is.
+|False|The XML file or the XSL file doesn't exist, the XSL file can't be used,
or the output file exists while *If file exists* is *Fail*. The number of
errors is 1.
+|Result files|Passed on unchanged.
+|Result rows|Passed on unchanged.
+|Lines written|The number of files that were transformed (or left as they are
with *Do Nothing*).
+|===
+
+NOTE: In this version, only *XML File name*, *XSL File name*, *Output
Filename* and *If file exists* are stored in the workflow file. *Get filenames
from previous result*, *Transformer factory*, *Add output filename to result*
and the *Advanced* tab are not saved: once the workflow is saved and opened
again, or run with hop-run, they have no effect. No output file is added to the
result files, and the file names are never read from the previous result.
+
+NOTE: In this version, *Create new with unique name* overwrites the existing
output file instead of writing a new one.