From c553319b7c2e2c61e57568c020d8a9d93cd3fbb7 Mon Sep 17 00:00:00 2001 From: Francisco Javier Tirado Sarti <65240126+fjtirado@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:11:42 +0200 Subject: [PATCH] [Fix #3694] Updating documentation (#671) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Fix #3694] Updating documentation $ rather than . should be used for loop variable * Update serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc Co-authored-by: Gonzalo Muñoz --------- Co-authored-by: Gonzalo Muñoz --- .../core/understanding-jq-expressions.adoc | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc b/serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc index 4bc255bcd..e22d2cde0 100644 --- a/serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc +++ b/serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc @@ -239,6 +239,59 @@ In the previous example, a CloudEvent was published when the state transitioned. data={"gitRepo":"ssh://bitbucket.org/m2k-test","branch":"aaaaaaasssss","token":null,"workspaceId":"b93980cb-3943-4223-9441-8694c098eeb9","projectId":"9b305fe3-d441-48ce-b01b-d314e86e14ec","transformId":"723dce89-c25c-4c7b-9ef3-842de92e6fe6","workflowCallerId":"7ddb5193-bedc-4942-a857-596b31f377ed"} ---- +== ForEach state + +ForEach `iteratiomParam` should be accessed as a variable, using a `$` prefix, not as a JSON property, since the loop variable is not part of the workflow model the expression is evaluated against. Therefore, instead of accessing it like a JSON property (with a `.` prefix), the loop variable should be referenced with a `$` prefix + +For instance, this link:{spec_doc_url}#foreach-state[ForEach specification example] + +[source,json] +---- + "states": [ + { + "name":"SendConfirmState", + "type":"foreach", + "inputCollection": "${ [.orders[] | select(.completed == true)] }", + "iterationParam": "completedorder", + "outputCollection": "${ .confirmationresults }", + "actions":[ + { + "functionRef": { + "refName": "sendConfirmationFunction", + "arguments": { + "orderNumber": "${ .completedorder.orderNumber }", + "email": "${ .completedorder.email }" + } + } + }], + "end": true + }] +---- + +should be modified to + +---- + "states": [ + { + "name":"SendConfirmState", + "type":"foreach", + "inputCollection": "${ [.orders[] | select(.completed == true)] }", + "iterationParam": "completedorder", + "outputCollection": "${ .confirmationresults }", + "actions":[ + { + "functionRef": { + "refName": "sendConfirmationFunction", + "arguments": { + "orderNumber": "${ $completedorder.orderNumber }", + "email": "${ $completedorder.email }" + } + } + }], + "end": true + }] +---- + == Workflow secrets, constants and context