Blue Prism - Development Best Practice PDF
Blue Prism - Development Best Practice PDF
Blue Prism - Development Best Practice PDF
blueprism.com 1
Commercial In Confidence
Object Layer
Design Overview
blueprism.com 2
Commercial In Confidence
Object Layer Overview
Design Concepts
• Generally we look to have one object per screen with a Get and Set action.
• There are no hard and fast rules regarding how to break up an application’s functionality into objects within Blue Prism
other than you can’t have too many objects; only too few.
• You should have learnt during your training that having multiple objects within the object layer provides a more efficient
and scalable design because:
Commercial In Confidence
Standard Object Design
Recap
ERP Object
Application Modeller
Commercial In Confidence
Standard Object Design
Recap
Update Customer Create Quotes Create Orders Get Order History
AM AM AM AM AM
And most importantly of all, when we change an object we minimise the effect on the process layer.
Commercial In Confidence
Object Example
Account Details Screen
Commercial In Confidence
Attaching
Attach
You will have noticed that when we break up the object layer we have added a new action called Attach. This is added to
each object apart from the object that launches the target system.
Or
Commercial In Confidence
Object Layer
Best Practices
blueprism.com 8
Commercial In Confidence
Development Best Practice - Objects
Actions
Commercial In Confidence
Development Best Practice - Objects
Actions
Commercial In Confidence
Development Best Practice - Objects
Actions
Commercial In Confidence
Development Best Practice - Objects
Actions
Commercial In Confidence
Development Best Practice - Objects
Actions
Provide descriptions to
Inputs, Outputs and
Actions
Commercial In Confidence
Development Best Practice - Objects
Data Items
Store global data items
on the Initialise Page
Group data item
relevant blocks
No hardcoded data in
data items
Commercial In Confidence
Development Best Practice - Objects
Application Modeller
Adheres to local naming
convention
Commercial In Confidence
Development Best Practice - Objects
Exposure
Commercial In Confidence
Process Layer
Best Practices
blueprism.com19
Commercial In Confidence
Process Solution
Creating a Process
The process I am going to build for this session is the Create Quotes process. This business process has the following basic steps:
– Get work requests from an Excel Workbook
– For each request, perform some navigation and an update in an application called BP Travel
The objects required have already been built. The objects I am using are:
– BP Travel – Basic Actions
– BP Travel – Quotes
– MS Excel VBO
The Work Queue and Environment/Session variables in the design have been created
– I am using a Work Queue called ‘Quote Requests’
Commercial In Confidence
Process Solution
Bad Practice
On the right is the Main Page of the first attempt at creating the process.
It needs improving because:
– There is just one large difficult to read page
– The ‘look and feel’ of my process is bespoke to me, this will make it difficult for
others to support.
– There is no exception handling logic
– If a minor issue occurs in a system the process will terminate
– The process is difficult to control whilst it is running because there are no
session variables
Commercial In Confidence
Process Solution
A simple Main Page – using Sub-Pages
On the right is the Main Page of my process after I have moved most of
the process logic into Sub-Pages
New Sub-Pages:
– Start Up – A sub-page to that launches and logs into applications
– Close Down – a sub-page that logs out and exits applications
– Populate Queue – a sub-page that loads work from source into a
Blue Prism Work Queue
– Work Pages – my process has a few ‘work’ sub-pages for
navigating and updating the systems it uses
Commercial In Confidence
Process Solution
Adding Control – The Stop? decision
Commercial In Confidence
Process Solution
Robustness – Main Page Exception Block
If an exception ‘bubbles up’ to our Main Page from a Sub-Page
we don’t want the process to terminate.
Main Page Block
In the flow shown on the right I have added the following:
– A block around the main work interface sub-pages, with
a Recover stage..
– A Mark Exception action stage, that marks the current
Work Queue item as an exception.
– A Resume stage so that the flow can continue on and
attempt to work the next Work Queue item.
If an exception occurs on a sub-page it could be a one-off issue (i.e. a network timeout) that would be fixed
if the process flow simply tried again.
• Sub Page Retry Loop
• On all my ‘work’ Sub-Pages I have done the
following:
‐ Catch any exceptions with a Recover
Stage
‐ Evaluate the exception with a Retry?
decision
‐ If there has been less than 3 attempts
and the exception is a type I want to
retry, loop around to try again
‐ If trying again, tidy up the system
being used, here we are simply Why is this better?
restarting it • For one-off application errors, or systems that have
‐ If not trying again, ‘throw’ the reliability issues, the retry loop improves the chances of a
exception up to the main page Work Queue item being successfully worked.
Commercial In Confidence
Process Solution
Robustness – Concurrent Exceptions
If the same exception occurs for every Work Queue item a process
attempts to work, it is best to terminate the process so that a
Controller can investigate the issue.
Mark Item As Exception
The Main Page on the right calls a Sub-Page that does the following:
– Compares the current exception to the previous one
– Terminates the process (‘throws’ the Exception) if the same
exception occurs repeatedly for configurable number of
concurrent cases.
Commercial In Confidence
Process Solution
Other Improvements
The final improvements to my process is to ensure that I use Environment Variables to store any configurable
process data, and to use tags to capture any MI I require.
• Environment Variables
- Environment Variables should be used to store configurable
information such as:
- Network Paths
- Email, database, or web service configuration
- System configuration such as URLs
Commercial In Confidence
Process Solution
Blue Prism Process Templates
Familiarise yourself with Process Templates
If you look at the process created in this tutorial and compare it to a
Blue Prism Process Template (available on the Portal), you will see
that they look extremely similar.
Our Process Templates have the same ‘look and feel’ and all the
same features to make processes robust and easier to understand
and support.
Commercial In Confidence
Development Best Practice – Process
Structure
Use standard Blue Prism
templates or templates
provided by the local
design authority
Commercial In Confidence
Development Best Practice – Process
Retries
Commercial In Confidence
Process Solution - Recap
What have we Learnt?
A process should be broken down into pages that are easy to view and support
A Stop? decision makes processes more controllable
For best practice exception handling, your process should have the following:
An exception block on the Main Page to handle exceptions that ‘bubble up’
Retry loops on work sub pages – to attempt system errors again
A check to ensure the same system exception is not occurring on every case
Environment variables should be used to make the process configurable from System Manager
Tags are an easy way to store Management Information
If you have not already, download and use Blue Prism Templates from the Blue Prism Portal
With the templates are instruction documents that have additional detail about the features within the
templates.
Commercial In Confidence
Development Best Practices
Naming Conventions & Standards
blueprism.com34
Commercial In Confidence
Naming Conventions / Standards
Objects
Objects = APP NAME + SCREEN NAME
WebSTP – Search WebSTP – Memo
Example:
Page Page
Open Print
Refresh Page Terminate
Dialogue
Commercial In Confidence
Naming Conventions / Standards
Process
Logical description - No peoples names, version numbers, application names (unless it’s
appropriate)
01 – Create Quote –
First process that should be run
Populate Queue
Commercial In Confidence
Development Best Practices
Further Best Practice
blueprism.com37
Commercial In Confidence
Development Best Practice
Further Best Practice
Commercial In Confidence
Development Best Practice
Further Best Practice
Commercial In Confidence
Development Best Practice
Interface-Specific Best Practice
Commercial In Confidence