xslTransform Step
Description:
The XSL Transform step belongs to the Engine category in FlowWright. Its XML definition identifies the step as xsltransform, with the label “Perform XML XSL transform” and the display name “XSL Transform.” It is defined as a Process step using FlowWright.Workflow.XslTransform from FlowWright.Workflow.dll. The step has 2 input connections and 2 output connections.
The XSL Transform step provides three configurable properties:
- Variable/Global to store the transform – specifies the Variable/Global in which the transformation result is stored.
- Variable/Global that holds XML – specifies the Variable/Global containing the XML to transform.
- Path to the XSL file – specifies the path to the XSL stylesheet used for the transformation.
Inputs
- Variable/Global to store the transform – Identifies where the XSL transformation result is stored.
- Variable/Global that holds XML – Identifies the Variable/Global containing the XML to be transformed.
- Path to the XSL file – Identifies the XSL stylesheet to use for the transformation.
Returns
- True – Step executed successfully
- False – Step failed to execute
Usage:
The XSL Transform step is typically used when XML data needs to be converted or reshaped according to an XSL stylesheet as part of a workflow.
During process design:
- Add the XSL Transform step to the process definition.
- Identify the Variable/Global containing the source XML.
- Specify the Variable/Global where the transformation result should be stored.
- Specify the path to the XSL file.
- Connect the preceding workflow operation to the XSL Transform step.
- Connect the transformation result to subsequent workflow processing.
- Save the Process Definition.
- Create a Process Instance and execute the workflow.
- Verify the transformed content stored in the configured Variable/Global.
- Use the transformed output in subsequent workflow processing.

Typical workflow suggestions:
- XML data transformation - Use XSL Transform when XML received or generated during a workflow needs to be reshaped into another XML representation.
- XML integration processing - Use the step before an integration operation when an external system requires XML in a specific structure.
- Preparing XML for downstream processing - Transform XML before passing it to subsequent FlowWright steps.
- Converting XML structures - Use an XSL stylesheet to transform one XML structure into another.
- Integration with external systems - Use XSL Transform when an XML payload must be formatted to meet the requirements of an external application or service.
- Document or report preparation - Use XSL Transform when workflow-generated XML needs to be converted into a structure required by a downstream document or reporting process.
- Reusable transformation logic - Maintain the transformation rules in an XSL file rather than embedding transformation logic directly into multiple workflow steps. This allows the workflow to reference an XSL stylesheet while keeping the XML transformation definition separate.
Example:
Let’s build and execute the “xslTransformDef” example.
- Create a new definition called “xslTransformDef” and open the definition in designer mode.
- Drag the “updateVariable, xslTransform” steps to the canvas
- Connect the dots between the “Start” and “xslTransform” steps, as shown above.
- Define a variable or a global to store the XML value and XSL transform result.
- Click the "updateVariable" step to configure its "Required" properties. Provide a name for the step, then click the Save button. 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. Click the button to configure multiple variable references. A pop-up window appears for configuration. Click the Add Row button to insert an empty row. Provide the variable and the XML value. Click the Save button. You may insert multiple variables by using the Add Row button. For a single-variable reference, provide the variable or global reference and the corresponding XML value. Set “Yes” if the XML value contains a C# expression.

- Sample XML value (for reference).
<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>
- Click the "xslTransform" step to configure its "Required" properties. Provide a name for the step, then click the Save button. Note: Click the "AI Predict" button to have the Copilot add new process steps that match your process description.

- Click the "xslTransform" step to configure its "Optional" properties. Provide the variable or global to store the XSL transform output, the variable or global that holds the XML value, and the XSL file path on the app server.

- Sample XSL file template (for reference).
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>The List</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>MaterialID</th>
<th>Name</th>
<th>Quantity</th>
<th>Unit Of Measure</th>
<th>Tolerance Value</th>
</tr>
<xsl:for-each select="root/Book1">
<tr>
<td><xsl:value-of select="MaterialID" /></td>
<td><xsl:value-of select="MaterialName" /></td>
<td><xsl:value-of select="Quantity" /></td>
<td><xsl:value-of select="UoM" /></td>
<td><xsl:value-of select="Tolerance" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
- The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. This is achieved by configuring the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties.

- Save the process definition, create a new instance, and execute it. Render the process instance. Click the process step. The step shall transform the XML to XSL using the template file.

Tips:
- Ensure that the Variable/Global specified in Variable/Global that holds XML contains the XML intended for transformation.
- Specify the Variable/Global that should receive the transformation result in Variable/Global to store the transform.
- Ensure that the configured XSL file is available at the specified path.
- Use a descriptive Variable/Global name such as
SourceXMLandTransformedXML. - Validate the XML and XSL stylesheet independently when troubleshooting transformation issues.
- Test the transformation with representative XML before deploying the workflow.
- Keep XSL transformation logic in the XSL stylesheet whenever possible, so the workflow remains focused on process orchestration.
- Verify the transformed output before using it in downstream integrations or processing.
- Remember that all three properties are defined as optional in the supplied XML.
- The supplied XML identifies all three properties as strings; it does not document additional validation rules for the XML content or XSL file path.
- The XML defines True and False returns but does not document their runtime conditions.
- Do not assume that the step supports a particular XSLT version, path type, or output format unless FlowWright documents that behavior separately.
Notes:
- Category: Engine
-
Internal name:
xsltransform - Label: Perform XML XSL transform
- Display name: XSL Transform
-
Namespace:
FlowWright.Workflow.XslTransform -
DLL:
FlowWright.Workflow.dll - Step definition type: Process
- Input connections: 2
- Output connections: 2
- Configurable properties: 3
-
Variable/Global to store the transform:
variableToStore -
Variable/Global that holds XML:
xmlVariable -
Path to the XSL file:
xslFilePath - Property data type: String
-
Property implementation:
FlowWright.DataTypes.ClsTextBox - Returns: False / True
Definition Sample:
You may provide a sample process definition containing the XSL Transform step and import it into the FlowWright Process Definition (XML file) page.
After importing the sample, configure:
- Variable/Global to store the transform
- Variable/Global that holds XML
- Path to the XSL file
- Connections to the preceding and subsequent workflow steps
For example:
Variable/Global to store the transform:
TransformedXML
Variable/Global that holds xml:SourceXML
Path to the xsl file: the path to the required XSL stylesheet
A useful demonstration workflow is:
Start → Prepare XML → XSL Transform → Process Transformed XML → Stop
After execution, verify that the expected transformed result is available in the configured output Variable/Global.
Recommended workflow pattern
A common pattern for the XSL Transform step is:
Start → Obtain XML → XSL Transform → Validate/Process Result → Continue
Click here to download the sample file.