Question Details

No question body available.

Tags

orbeon

Answers (1)

February 26, 2026 Score: 0 Rep: 8,987 Quality: Low Completeness: 80%

Looking at the form source

Opening the form in Orbeon Form Builder and going to Advanced > Edit Source reveals the action XML behind the "Set all done" button.

The relevant section is inside fr:positive-choice of the confirmAllDoneDialog:


And the commented-out attempts:


Why each attempt fails

at="all" (partially working — first row only): at="all" is not a valid attribute for xf:setvalue in XForms or Orbeon. Orbeon silently ignores it and falls back to default behavior, which resolves the nodeset to the first matching node — hence only the first row gets updated.

xf:repeat inside an action (not working): xf:repeat is a UI control for rendering repeated content. It has no meaning inside an xf:action block and Orbeon ignores it as an action element entirely.

xf:for-each (not working): This element does not exist in XForms. It is an XPath function, not an action element.


The correct solution

Orbeon provides an iterate attribute on xf:action specifically for this purpose — it loops over a nodeset and executes nested actions for each node, with ref expressions resolving relative to the current iteration:

iterate is an Orbeon XForms extension (documented here) that makes the outer xf:action behave like a loop. On each iteration, the context node is one scnProactiveWorkGrid1-iteration element, so ref="PROTaskResponse" correctly resolves to the PROTaskResponse child of that specific row. This is the idiomatic way to iterate over repeated grid rows in Orbeon actions.


I changed your xml accordingly and it now behaves as expected checking all the Done options when the button is clicked and confirmed.

https://demo.orbeon.com/demo/fr/orbeon/builder/edit/a493a7660b2c58915566b3f22bf3e710be058bf4