---
title: Blue Prism to PAD Migration Output
slug: blueprint/blue-prism-to-pad-migration-output
docTags: yO7XZ9PJxDCKZ-Mf4TSYB
createdAt: 2026-04-17T18:28:53.765Z
---

:::CtaButton{label="🟢 Migrator" openInNewTab="false"}

:::

This article covers Blue Prism-specific behaviors, mappings, and known differences to be aware of when reviewing migrated PAD output. For general migration output concepts, see [Why Migrated Flows Look Different in PAD](docId\:Lh4iFP7KpPGdfendnHItd).

***

# Collections Conversion

Blue Prism Collections have two primary interfaces that differ significantly from a standard list or array. A single-row collection behaves like a dictionary — properties in row 0 are accessed as key/value pairs.

Blueprint converts all Blue Prism collections into native **PAD Data Tables**. Each collection field becomes a column header, and each row maps directly to a table row. All collections output as PAD Data Tables — more compatible with PAD's native actions and easier to manipulate using built-in table operations.

# Selectors

Blueprint converts Blue Prism selectors to PAD format where supported.

| **Technology** | **Supported attributes**                                                                | **Notes**                                                           |
| -------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **Web**        | ElementType, InnerText, MatchIndex, PageAddress, Src, Name, Class, Id, XPath, InputType | A backup selector is created using XPath                            |
| **UIA**        | ControlType, Name, MatchIndex, AutomationId, ClassName, LocalizedControlType, Enabled   |                                                                     |
| **AA**         | Role, Enabled, Name, Visible, Id, ClassName, MatchIndex                                 | Direct support not available in PAD                                 |
| **Java**       | —                                                                                       | Conversion not supported — different Java technology is used in PAD |
| **SAP**        | Id                                                                                      |                                                                     |
| **Region**     | —                                                                                       | Images are used where native PAD image actions exist                |

Where possible, Blueprint generates multiple selectors per UI element to increase the likelihood of a match.

## Region-Based Image Selectors

When a UI element cannot be reliably identified using standard selectors — such as in SAP, Citrix, or legacy systems — Blueprint generates a region-based image selector using PAD's **Image Fallback** mechanism. This allows automation to continue even when traditional selectors fail.

***

# Error Handling

## Local Exceptions

In Blue Prism, a **Recover** stage placed inside a Block catches errors local to that block. Blueprint migrates this using PAD's **On Block Error** action, which is equivalent to a try/catch block.

When an error occurs within the On Block Error scope:

- Error details are recorded in the \_LastError variable
- Blueprint uses a **Stop Flow** action instead of Convert text to number: 1/0 when throwing or rethrowing errors
- If no error occurs, or the error is handled, the flow resumes — equivalent to Blue Prism's **Resume** stage, which in PAD resets the OnError variable to False and continues execution

## Global Exceptions

In Blue Prism, a Recover stage placed **outside** a Block functions as global error handling, catching any error that occurs outside defined blocks. Blueprint migrates this using a global **On Block Error** scope in PAD, with the same \_LastError variable and Stop Flow pattern described above.

## Multi Entry and Multi Exit Points

Blue Prism supports error blocks with multiple entry and exit points — a structure PAD cannot replicate directly. Blueprint flattens this into a linear structure using **Set Variables**, **If** statements, and **Go To** actions.

- **Multiple entries:** Blueprint creates an EntryDestination variable and uses it in If/ElseIf statements to determine which path to execute
- **Multiple exits:** Blueprint creates an ExitDestination variable and uses it in If/ElseIf statements to determine the exit path

## Exception Type and Details

Blue Prism's **Exception** stage allows users to manually throw exceptions, with an option to **Preserve the current exception type**. In PAD:

- When **Preserve Exception** is selected, Blueprint migrates this as an If statement that retrieves the last exception details from \_LastError
- When custom Type and Details are provided with **Preserve Type unchecked**, Blueprint migrates the custom type and detail values directly

***

# Work Queue Handling

## FetchXML Queue Filtering&#x20;

When a Blue Prism process uses queue filtering logic, Blueprint translates it into **FetchXML queries** compatible with PAD's Dataverse connector. This enables more precise and performant filtering of queue items, particularly for Dataverse-backed queues.

***

# JSON Conversions

Blueprint supports several JSON-to-Collection conversion patterns, all outputting to PAD Data Tables:

- **Skipping array wrapper** — when the outer array contains a uniform structure, Blueprint skips it and converts the inner objects directly into a Data Table
- **Array of objects** — when the JSON is an array of objects, Blueprint converts each object into a table row and extracts keys as column headers
- **Referencing individual items** — after converting a JSON array to a Data Table, individual rows can be accessed using standard PAD table referencing: `%DataTable[1]['Name']%`

***

# VBO Matching

Blueprint excludes intentionally unimported VBO pages — those matched to standard PAD actions — from appearing in the **Missing Processes** report and call tree visualizations. When a VBO page is matched to a known PAD equivalent and not imported, it is recognized as intentionally excluded and no longer flagged as missing.

***

# Additional Mappings&#x20;

## Unsupported Attach Stages

When a Blue Prism **Attach** stage cannot be mapped to a PAD equivalent, Blueprint previously inserted a TODO comment. As of v8.3, these are downgraded to **INFO comments**, indicating the stage is unsupported but does not require immediate manual intervention.

:::BlockQuote
// INFO: Attach stage not supported in PAD. No direct equivalent available.
:::

## Get Subfolders

Blue Prism's "Get Subfolders" logic maps to PAD's **Get subfolders in folder** action. Output is a list of folder paths that can be looped through or filtered using PAD's native actions.

| Blue Prism                                                                       | PAD output                                                                    |
| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Action: Get Subfolders / Input: C:\Invoices / Output: Collection of folder names | Action: Get subfolders in folder / Folder: C:\Invoices / Output: %Subfolders% |

## Open Excel – Read Only

Blue Prism's **Open Workbook** action with Read-Only mode maps to PAD's **Launch Excel** action with the Read-Only flag enabled, preserving the original file integrity.

| Blue Prism                                                           | PAD output                                                                    |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Action: Open Workbook / Path: C:\Reports\June.xlsx / Read-Only: True | Action: Launch Excel / Open Excel file: C:\Reports\June.xlsx / Read-Only: Yes |

