BluePrism不同业务对象间的数据传递方法咨询
Hey Dan, I’ve run into this exact cross-BO data sharing challenge before—let’s walk through the most practical ways to solve it, since Blue Prism’s business objects are intentionally encapsulated (which is why you can’t directly expose internal data items across them, and the Start/End parameters only work between a process and a BO, not BO-to-BO).
Method 1: Use Environment Variables (Quick & Simple)
This is the go-to for quick cross-BO data sharing when you don’t need a complex workflow:
- First, create a global environment variable: Go to
System > Environment Variables, add a new variable (e.g.,App1_Extracted_Data) with a type matching your data (string, number, etc.). - In your first BO (the one reading from App 1), after extracting the data, assign it to this environment variable using a
Write Environment Variableaction. - In your second BO, use a
Read Environment Variableaction to pull the value fromApp1_Extracted_Datawhenever you need it. - Pro tip: If you’re running multiple instances concurrently, add a unique identifier to the variable name (like including a process instance ID) to avoid overwriting data. Also, clear the variable after use to prevent stale data from being picked up by future runs.
Method 2: Use a Process as a Middle Layer (Best Practice)
Blue Prism’s core design expects processes to orchestrate business objects, so this is the most maintainable approach:
- Build a main process that first calls your App 1 BO:
- In the App 1 BO’s
Endstage, define an output parameter (e.g.,Extracted_Data) and map the internal data item holding your App 1 data to it. - In the main process, when you add the
Navigatestage to call the App 1 BO, capture the output parameter into a process-level data item.
- In the App 1 BO’s
- Next, call your App 2 BO from the same process:
- In the App 2 BO’s
Startstage, define an input parameter (e.g.,Data_From_App1). - In the process’s
Navigatestage for the App 2 BO, map the process-level data item (from step 1) to this input parameter.
- In the App 2 BO’s
- This method keeps your BOs reusable (they don’t depend on global variables) and makes the data flow clear for anyone maintaining the solution later.
Method 3: Use a Database or Work Queue (For Async Scenarios)
If your two BOs run asynchronously (e.g., App 1 data is collected now, but App 2 only needs it hours later), use persistent storage:
- In the first BO, write the extracted data to a custom database table (using Blue Prism’s
SQLactions) or add it as an item to aWork Queue. - In the second BO, read the data from that table or queue when it’s ready to process.
- This approach adds auditability (you can track when data was stored and retrieved) and works well for long-running or decoupled workflows.
Key Notes to Remember
- Never try to bypass Blue Prism’s encapsulation by accessing BO internal data items directly—this breaks the platform’s design principles and makes your solution fragile to updates.
- The Start/End parameters on BOs are designed for process-to-BO communication only, not BO-to-BO, which is why they weren’t working for you.
内容的提问来源于stack exchange,提问作者Dan Jones

