getXMLNode Step

Use this feature to retrieve values from selected XML nodes.

Last published at: September 15th, 2026

Description:

Use this feature to retrieve values from selected XML nodes and map those values to FlowWright Variables or Global variables while processing an XML collection.

The Get XML Value workflow step retrieves a value from a selected XML node. It uses an XPath expression to identify the collection to query, identifies the node from which to obtain the value, and stores the result in a Variable or Global variable.

The step also provides a collection index Variable or Global variable and an optional mapping that maps XML node values to Variables.

The step supports:

  • Querying an XML collection using an XPath expression.
  • Selecting a node from the current XML row to retrieve a value.
  • Storing a retrieved value in a Variable or Global variable.
  • Maintaining the collection index in a Variable or Global variable.
  • Mapping XML node values to Variables.
  • Processing XML collection items sequentially.
  • Continuing to the next collection item.
  • Detecting when there are no more collection items.
  • Returning NextItem or NoMoreItems for subsequent workflow processing.

 

Inputs

  • XPath expression to query the collection - The XPath expression to query the collection property specifies the XPath expression used to query the XML collection.
  • Variable/Global to store the value - The Variable/Global to store the value property specifies the Variable or Global variable in which the value retrieved from the XML node is stored.
  • Node from the row to get the value from - The Node from the row to get the value from property specifies the XML node within the current collection row from which the value should be obtained.
  • Variable/Global to store the collection index - The Variable/Global to store the collection index property specifies the Variable or Global variable used to store the collection index.  
  • Variable/Global that holds the XML - The Variable/Global that holds the xml property specifies the Variable or Global variable containing the XML to be processed.
  • Maps XML node values to variables - The Maps XML node values to variables property provides optional XML-node-to-Variable mapping.
 

 

Returns

  • NextItem – The NextItem return path continues processing the XML collection and moves to the next item.
  • NoMoreItems – The NoMoreItems return path is used when there are no more collection items to process.
 

 

Usage:

The Get XML Value step is typically used when a workflow receives XML containing a collection of records and needs to process those records individually.

The workflow supplies the XML through a Variable or Global variable. An XPath expression identifies the collection, while the node property identifies the value to retrieve from the current row. The collection index is maintained in another Variable or Global variable.

A typical workflow pattern is:

Get/Build XML → Get XML Value → Process Current Item → Get XML Value

You can then use the NoMoreItems path to continue processing after the collection is exhausted.

The resulting values can be used by later workflow steps to:

  • Populate Variables.
  • Process individual XML records.
  • Make workflow decisions.
  • Build messages.
  • Generate notifications.
  • Populate forms.
  • Prepare integration data.
  • Process database or business data.
  • Create workflow output.
  • Map multiple XML values to Variables.
  • Perform additional processing for each item in the collection.

A typical collection-processing pattern is:

 

Typical Workflow Suggestions:

Process XML Records One at a Time

Use the step to process individual records contained in an XML collection.

Example:

Retrieve XML → Get XML Value → Process Record → Get XML Value

For example, an XML document could contain multiple customer, order, or transaction records. The workflow can retrieve values from each record as it processes the collection.

 

Extract Customer Information

Use the step to extract customer values from an XML collection.

Example:

Retrieve Customer XML → Get XML Value → Process Customer → Get XML Value

You can retrieve values such as a customer identifier or name from the current XML node and store them in workflow Variables.

The exact XML node names and XPath expressions depend on the XML being processed.

 

Process Order Records

Use the step to process an XML collection containing orders.

Example:

Retrieve Orders → Get XML Value → Process Order → Get XML Value

A typical structure is:

Orders XML
    |
    v
Get XML Value
    |
    +---- NextItem ----> Process Order
    |                         |
    |                         v
    |                   Get XML Value
    |
    +---- NoMoreItems --> Complete
This lets you handle each XML record before moving to the next item in the collection.

 

Extract Multiple Values from Each XML Row

Use the optional XML-node mapping property when you need to extract several values from the current row.

Example:

Retrieve XML → Get XML Value → Map XML Nodes → Process Record

The XML definition provides a ClsXMLNodesToVariables property specifically for mapping XML node values to Variables.

This can be useful when each XML record contains several values required by subsequent workflow activities.

 

Populate Variables from XML

Use the step to convert values contained in XML into workflow Variables.

Example:

Get XML Response → Get XML Value → Populate Variables → Continue Processing

You can then reference the extracted value in later workflow activities.

 

Process an XML Service Response

Use the step after another activity retrieves an XML response from an external system.

Example:

Call Service → Store XML Response → Get XML Value → Process Response

If the response contains a collection of records, the workflow can process the collection item by item.

 

Process XML Data Before an Integration

Use the step to extract the values required by a downstream integration.

Example:

Retrieve XML → Get XML Value → Prepare Integration Data → External Integration

You can store the extracted XML value in a Variable and supply it to another workflow activity.

 

Process XML-Based Notifications

Use XML data to generate workflow notifications for individual records.

Example:

Retrieve XML → Get XML Value → Build Notification → Send Notification

For a collection containing multiple records, the workflow can generate or process information for each item before moving to the next.

 

Use XML Values in Workflow Decisions

Extract a value from an XML node before performing conditional processing.

Example:

Retrieve XML → Get XML Value → Decision → Process According to Value

For example, you can supply an extracted status or category to a subsequent decision step.

The Get XML Value step is categorized under Engine in the XML definition; the surrounding workflow supplies the downstream decision logic.

 

Track the Collection Index

Use the Variable/Global to store the collection index property to maintain the current collection position.

Example:

Get XML Value → Process Current Item → Get XML Value

The collection index variable provides workflow data associated with the current position in the collection.

The XML specifically defines this property as Variable/Global to store the collection index.

 

Process All Items in an XML Collection

Use the NextItem and NoMoreItems paths to create collection-processing logic.

Example:

                +---- NextItem ----> Process Item
                |                         |
                |                         v
Start --> Get XML Value <----------------+
                |
                +---- NoMoreItems ----> Continue
This pattern is particularly useful when an XML document contains a collection that must be processed sequentially.

 

Store XML Values for Reuse

Store extracted values in meaningful Variables so that multiple downstream workflow activities can use them.

Example:

Get XML Value → Store Customer Value → Multiple Subsequent Steps

For example:

             Get XML Value
                  |
                  v
          Customer Variable
             /    |    \
            v     v     v
          Email  Form  Integration
This avoids repeatedly extracting the same value when multiple activities need it.

 

Handle the End of the Collection

Connect NoMoreItems to the workflow activities that should execute after the XML collection has been processed.

Example:

Get XML Value
     |
     +---- NextItem ----> Process Item
     |
     +---- NoMoreItems --> Generate Summary
This creates a clear separation between per-item processing and processing that occurs after all items have been handled.

 

Example:

Let’s build and execute the “getXMLValueDef” example.          

  • Create a new process definition named “getXMLValueDef” and open it in designer mode. 
  • Drag the “updateVariable, getXMLNode” step to the canvas. 
  • Connect the dots between the “Start” step and other steps, as shown above.
  • Select the line between the steps to configure the “Connection Properties”. The default property values are “None, NextItem, NoMoreItems, Error, and Evaluate”. Depending on the step’s purpose, you can configure additional values.
  • Define variables or globals to store the XML Value and the result.
  • Click the "updateVariable" step to configure its "Required" properties. Provide a name for the step, then click Save. Note: Click the "AI Predict" button to have the Copilot add new process steps that match your process description. 

 

  • Click the "updateVariable" step to configure its "Optional" properties. Provide a variable or global reference to store the XML value. Select “Yes” for the “Has Expression” field, then click the Save button. 

 

  • The “Logging” configuration is necessary for documentation and to measure workflow progress and percent complete. Configure this by setting the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties.

 

  • Click the "getXMLNode" step to configure its "Required" properties. Provide a name for the step. Provide the XPath expression to query the collection. Provide a variable or global to store the node value. Provide the node value to retrieve from the row. Provide a variable or global reference to store the collection index. Provide the variable or global reference that holds the XML value. Click the Save button. Note: Click the "AI Predict" button to have Copilot add new process steps that match your process description. 

 

  • Click the "getXMLNode" step to configure its "Optional" properties. Click the button to map XML node values to variables. A pop-up window appears for configuration. Click the Add Row button to insert an empty row. Enter the XML node and variable value. Click the Save button. You may add multiple XML nodes and values using the Add Row button. 

 

  • The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. Configure the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties.

 

  • The XML value used in this example is shown below.
<root>
  <Book1>
    <MaterialID>123456789</MaterialID>
    <MaterialName>Roman Test</MaterialName>
    <Quantity>123.6</Quantity>
    <UoM>Kg</UoM>
    <Tolerance>2</Tolerance>
  </Book1>
  <Book1>
    <MaterialID>123456790</MaterialID>
    <MaterialName>Roman Test 2</MaterialName>
    <Quantity>133.6</Quantity>
    <UoM>Kg</UoM>
    <Tolerance>3</Tolerance>
  </Book1>
  <Book1>
    <MaterialID>123456791</MaterialID>
    <MaterialName>Roman Test</MaterialName>
    <Quantity>143.6</Quantity>
    <UoM>Kg</UoM>
    <Tolerance>4</Tolerance>
  </Book1>
  <Book1>
    <MaterialID>123456792</MaterialID>
    <MaterialName>Roman Test 3</MaterialName>
    <Quantity>153.6</Quantity>
    <UoM>Kg</UoM>
    <Tolerance>5</Tolerance>
  </Book1>
  <Book1>
    <MaterialID>123456793</MaterialID>
    <MaterialName>Roman Test</MaterialName>
    <Quantity>163.6</Quantity>
    <UoM>Kg</UoM>
    <Tolerance>6</Tolerance>
  </Book1>
</root>

 

  • Save the process definition, create a new instance, and execute it. Render the process instance and click the process step to view its properties. When the workflow reaches the Get XML Value step, FlowWright processes the XML held in the configured Variable or Global using the supplied XPath and node configuration. The step retrieves the value from the selected XML node and stores it in the configured Variable or Global variable. When additional collection items remain, the workflow can follow the NextItem path. When no items remain, the workflow can follow NoMoreItems. Verify the extracted Variable values and the collection index while testing the workflow. The Search Replace String documentation follows the same process: save the definition, create and execute an instance, render the instance, and inspect the step during execution.

 

  • Click the GetXMLValue step to view the instance properties.

 

  • Here, the “getXMLNode” process is used in a loop workflow. 

 

Tips:

  • Make sure the Variable or Global containing the XML is populated before the step executes.
  • Verify that the XML has the expected structure.
  • Test the XPath expression against representative XML before deploying the workflow.
  • Make sure the XPath expression identifies the intended collection.
  • Verify the node name or path used to obtain the value from each row.
  • Use meaningful Variable or Global names for extracted values.
  • Use a meaningful Variable or Global name for the collection index.
  • When extracting multiple values from each row, keep the XML-node-to-Variable mapping organized.
  • Verify that mapped XML nodes correspond to the intended workflow Variables.
  • Test the workflow with XML containing multiple collection items.
  • Test the workflow with an empty collection where applicable.
  • Verify NextItem behavior during collection processing.
  • Verify the NoMoreItems path behavior after the final collection item.
  • Keep the per-item processing path separate from the post-collection processing path.
  • Verify the extracted Variable values before using them in downstream activities.
  • Test the workflow with realistic XML data.
  • Test XML containing missing or optional nodes where applicable.
  • Consider how the surrounding workflow should handle missing nodes.
  • Do not assume XPath syntax or functions beyond what has been confirmed for the FlowWright implementation.
  • Do not assume the exact behavior when an XPath expression matches no nodes.
  • Do not assume how malformed XML or missing nodes affect the return paths without testing the workflow.
  • When using the optional XML-node mapping property, test all mappings with representative XML.
  • Keep XPath expressions maintainable when the XML structure changes.
  • Test the workflow after modifying the XML schema or XPath expressions.
  • Keep sensitive XML data out of workflow logs when appropriate.
  • Use the NoMoreItems path for activities that should occur only after collection processing is complete.

 

Notes:

  • The Get XML Value step is defined in the Engine category with the internal name getxmlnodeLabel Get a value from a selected XML node, and display name Get XML Value.
  • The step is implemented by FlowWright.Workflow.Getxmlnode in FlowWright.Workflow.dll and is defined as a Process step with 2 incoming connections and 2 outgoing connections.
  • The step defines six properties:
    • xPath – XPath expression to query the collection
    • variableName – Variable/Global to store the value
    • xmlNodeToGet – Node from the row to get the value from
    • loopVariable – Variable/Global to store the collection index
    • xmlVariable – Variable/Global that holds the XML
    • xmlNodesToVariables – Maps XML node values to variables
  • Five properties are required:
    • xPath
    • variableName
    • xmlNodeToGet
    • loopVariable
    • xmlVariable
  • The xmlNodesToVariables property is optional.
  • The first five properties use the string data type, implemented by FlowWright.DataTypes.ClsTextBox. The optional mapping property uses ClsXMLNodesToVariables, implemented by FlowWright.DataTypes.ClsXMLNodesToVariables.
  • The step provides two return values:
    • NextItem
    • NoMoreItems

 

Feature Comparison:

Feature GetXMLNode SetXMLNode
Purpose Retrieves a value from a selected XML node Assigns a value to an XML node
Category Engine Engine
Internal Name getxmlnode setxmlnode
Display Name Get XML Value Set XML Value
Namespace FlowWright.Workflow.Getxmlnode FlowWright.Workflow.Setxmlnode
DLL FlowWright.Workflow.dll FlowWright.Workflow.dll
Step Type Process Process
Incoming Connections 2 2
Outgoing Connections 2 2
Primary Operation Read/extract XML data Write/assign XML data
XML Input Required Required
Collection Index Required Required
XPath Query Required Not defined as a separate property
Node Selection Required Required
Value Source XML node Workflow value
Value Destination Variable/Global XML node
XML-to-Variable Mapping Optional Not defined
Return Paths NextItem, NoMoreItems True, False

 

Definition Sample:

You may download the sample definition(s) from the link provided and later import them into your FlowWright Process Definition (XML file) or Form Definition (HTML file) page.

Note: Verify and complete any missing configuration after importing the sample, including:

  • XML Variable or Global variable.
  • XPath expression.
  • XML node to retrieve.
  • Collection-index Variable or Global variable.
  • Result Variable or Global variable.
  • XML-node-to-Variable mappings, if applicable.
  • Workflow Variable references.
  • Environment-specific settings.
  • Downstream NextItem workflow path.
  • Downstream NoMoreItems workflow path.

After verifying the configuration, save the Process Definition before execution.

Click here to download the sample file.

Click here to download the Loop sample file.