SlideShare a Scribd company logo
Best Practices: Building Solutions 1
BUILDING SOLUTIONS
Studio lets you create solutions that integrate and automate desktop applications without writing
code. When creating solutions, you go through many of the same logical steps and practices required
by software programming. This document describes both general advice applicable to any
programming project, and specific practices recommended for creating enterprise solutions with
Studio.
To use this guide, you should be proficient creating Studio solutions and have completed the Pega
Robotics Studio Core Training course.
This document includes these topics:
• “Installation considerations” on page 2
• “Naming and design considerations” on page 3
• “Interrogating applications” on page 8
• “Using integration processes” on page 9
• “Using automations” on page 12
• “Presenting your solutions” on page 19
• “Debugging your solutions” on page 20
• “Deploying your solutions” on page 24
• “Finding additional information” on page 25
Note A solution named Project_Template is referenced throughout this document. The
Project_Template.OpenSpan deployment file is available in the More Resources section of this
document.
Building Solutions | Installation considerations
Best Practices: Building Solutions 2
Installation considerations
Keep in mind these considerations when installing Studio:
• Do not install Studio or the Studio plug-in and Runtime on the same machine. Doing so is not
supported and can cause issues if you are also installing Studio Services and you plan to use
MonitorAll.
• Review the Minimum Requirements topic in the appropriate installation instructions before you
launch the Setup wizard. You can find these installation instructions on the Support Center site:
Runtime Installation Instructions
Studio Installation Instructions
• Launch the Setup wizard by right-clicking on it and selecting the Run as Administrator option.
• Install from a local drive, not a mapped drive.
Best Practices: Building Solutions 3
Building Solutions | Naming and design considerations
Naming and design considerations
Designing solutions based on user actions
Capture the sequence of actions you want to automate in a series of screen shots and make a note
of all your keyboard and mouse interactions. The more detail you capture, the easier the design and
testing process will be. Base your solution design on the user interactions with the applications and
processes you plan to automate. Remember, each automation in your solution must begin with an
event, therefore user and system actions play an important role in solution design.
Naming convention for solutions, projects, adapters,
controls, and components
Establish a standardized naming convention for all parts of the solution. By doing so, you can quickly
identify the target in the event you need to diagnose a problem or troubleshoot match rules.
Standardized naming conventions are especially helpful when working with a group of designers who
are designing separate areas of a solution.
Naming solutions and projects
Solutions and projects should be named in such a way that lets you easily identify the high-level
function they perform.
Naming adapters
Adapters should be named in such a way that lets you easily identify the application they represent.
We suggest naming adapters identically to their current application shortcut names. It is also
recommended that the names be readable since they are visible to the user on the Runtime menu.
For example, in the CRM web solution you created in the Pega Robotics Studio Core Training course,
the adapter for the Windows application is named: CRM Information, and the adapter for the web
application is named ACME Product Search System, making them easily identifiable in the Solution
Manager. In a more complex solution, it can become difficult to locate the correct adapter without a
logical naming convention.
Building Solutions | Naming and design considerations
Best Practices: Building Solutions 4
Naming automations
Automations should be named in such a way that lets you easily identify the action they perform. We
suggest that automations follow the same naming conventions as methods in their code
counterparts. Essentially, if you have a verb-noun rule for method names, use the same for
automations that behave like methods. For other automations, we suggest naming them based on
what they are trying to accomplish.
For example, in the CRM web solution, automations relating to the CRM Information Windows
adapter are:
Naming controls
Establishing a standardized naming convention for controls and components is extremely important.
Whether you are building an automation, debugging a solution, or troubleshooting match rules,
being able to quickly identify the controls makes the task much easier.
Here are some examples of standardized naming convention prefixes for several common controls.
You can modify the default prefixes used by Studio for common controls by using the Auto-Naming
Rules feature. Access this feature from the Tools > Options > OpenSpan > Naming Rules > Type
Prefixes option. Here is an example of the dialog:
Automation Name Action Performed
Set Account Window Sets focus on the New Call Account window.
Get Account Window Gets data from the Account window.
Common Control Standard Prefix
Button btn
Check box cbx
Combo box cmb
Label lbl
List box lbx
List view lv
Radio button rbtn
Text box txt
Toolbox tb
Windows form frm
Best Practices: Building Solutions 5
Building Solutions | Naming and design considerations
Creating a Solution Manager hierarchy based on tasks
Keep the Solution Manager hierarchy organized. Use folders to group related items.
Building Solutions | Naming and design considerations
Best Practices: Building Solutions 6
For example, using the CRM web solution from the Core Training course, you can create folders to
store common CRM, ACME, and User Interface (UI) elements. This lets you easily locate objects when
working with the solution. See the following example:
In addition to grouping related functionality or automations, we suggest using the top-level folders to
group items into Systems. For this purpose, a System is defined as a group of related functionality
surrounding an individual adapter (or possibly multiple adapters) with the ability to share the entire
contents of the system between different solutions.
Best Practices: Building Solutions 7
Building Solutions | Naming and design considerations
For example, you can create a CRM folder that completely encompasses the functionality of CRM.
When another solution needs CRM, you can simply take the entire system (that is, copy the existing
folder, including all of its contents), into the solution where CRM is needed.
You can then access any of the properties, methods, or events which have been exposed. This lets
you test individual pieces of functionality separate from the overall solution.
Saving backup deployment packages of your
solutions
As with any development project, it is essential that you backup your solutions at regular intervals.
We strongly recommend using a source control system for solutions.
Building Solutions | Interrogating applications
Best Practices: Building Solutions 8
Interrogating applications
Interrogating all applications before building
automations
It is always a good practice to interrogate every application you need in the solution before building
the automations. By doing so, you can uncover any potential application integration issues before
building the automation logic.
Testing applications in the Studio environment by unit
testing solutions
For complex applications, create a solution and add a WinForm and the application. Interrogate all
areas of the application that you want to use in your final solution. Add controls to the WinForm to
unit test interaction with the application. When you are satisfied that the application runs properly in
the Studio environment, add the adapter by adding an Existing Project Item to the final solution.
Following match rules best practices
Each application type – Windows, web, text – has special considerations regarding how match rules
are applied. Refer to the Best Practice: Using Match Rules document for details on working with
match rules.
Best Practices: Building Solutions 9
Building Solutions | Using integration processes
Using integration processes
Starting applications as required
When you add an adapter to a project, the StartOnProjectStart property for the adapter is set to True
by default. This means that the application starts when the project starts, whether it is required at
startup or not. It is a good practice to only start the applications that are required at the start of the
project.
Use the Start method in an automation for the adapter to start an application as needed by the
project execution. By controlling the number of applications running during the execution of your
project, you improve the overall performance of the project.
Building Solutions | Using integration processes
Best Practices: Building Solutions 10
For example, you can use a main automation that uses the Started event to start anything you need.
By default, you can turn all the adapters off and start them from the automation as needed.
Setting the UseKeys property when required
When working with applications that contain objects that can be cloned, such as Multiple-Document
Interface (MDI) child windows, you can use the UseKeys property. See the following example from the
CRM application used in the Core Training where multiple instances (clones) of the New Call
(New_Call_1) window are created.
Best Practices: Building Solutions 11
Building Solutions | Using integration processes
By default, this property is False, indicating that keys are not assigned to the object. However, if
multiple copies of the object exist at runtime, and your solution needs to distinguish between the
various instances of the object, then set the property to True.
Make sure to set the property to True for the object that is cloned. This means you need to set the
value for the base object in the hierarchy that can be cloned to True. If your solution does not use
objects that can be cloned, leave this value set to False.
Building Solutions | Using automations
Best Practices: Building Solutions 12
Using automations
Adding comment text as header to all automations
Comments within an automation can be extremely helpful when working with multiple designers. It
will enable a designer to look at an automation and quickly discern the logic and flow or the process.
For example, a standard Automation header comment such as the following can be used:
Keeping automations with the task or adapter
In a complex solution, you are likely have many automations. Keeping those automations with the
task or adapter makes it much easier to locate when you debug or edit your solution.
In this example, you can see the automation associated with the ACME web application and the
automations associated with the CRM application.
Best Practices: Building Solutions 13
Building Solutions | Using automations
Setting the automation’s ShowDesignCompNames
property to True
By setting the Automation property ShowDesignCompNames to True, Studio displays the full design
name of the components in the automation design blocks.
Building Solutions | Using automations
Best Practices: Building Solutions 14
See the following example:
Using this option, viewed or printed automations clearly show the adapter or form associated with
each component.
Using WaitForCreate and IsCreated
Before using the properties, methods, or events of a component in an automation, confirm that the
component is created and matched. Use error trapping for unmatched targets in automations.
You do not need to check for all objects on a web page to be created before using them in the
automation. Once one object is loaded, you can use the rest of the objects on the page without
checking the matching status. The following are helpful checking the matching status:
• WaitForCreate Method — Waits for an object to be created. Returns True if the object is
matched before the WaitTimeout period elapses. Otherwise, it returns False.
• IsCreated Property — Returns True if the object is matched at a specific instance in time.
Otherwise, it returns False.
The following example of the Find Store automation from the CRM web solution in the Core Training
course shows how the IsCreated property is used to make sure certain web objects are created
(matched) before being used by the automation logic.
Best Practices: Building Solutions 15
Building Solutions | Using automations
Terminating branched event paths
Anytime the event path in your automation branches, make sure all event paths terminate logically.
The illustrations below shows the wrong way and the correct way to handle a branched event path:
Building Solutions | Using automations
Best Practices: Building Solutions 16
In this example, a message dialog was used to terminate the False event path. If you do not want to
alert the user or take any action based on the event, try using the DiagnosticLog component to
capture the event in the Studio log. See “Adding diagnostic logging” on page 21 for an example of
logging automation that can be called from any automation in a solution.
Using global storage for variables and a release notes
automation
It is a good organizational practice to set up global storage for variables or components that can be
called from multiple locations within the solution.
Another good practice is to include an automation for storing notes and tracking any revisions to the
solution. The Project_Template solution available in “Finding additional information” on page 25
provides examples of these automations.
Best Practices: Building Solutions 17
Building Solutions | Using automations
Using a single script with multiple methods
If you require Script components in your solution, use a single Script component and add multiple
methods to the component rather than using multiple Script components containing only one
method. Each Script component adds an assembly file to the deployed project so by using a single
Script with multiple methods, you reduce the overhead of the project.
Following threading best practices
Design your automations following the guidelines set forth in the Best Practices: Threading
document. This document provides details on threading in the Studio framework.
Building Solutions | Using automations
Best Practices: Building Solutions 18
Running only one connector line from a design block
execution point
It is a good practice to run just one connector line from a single design block execution point. When
there is a required order of operations and multiple connector lines originating from the same design
block execution point, the correct order of operations cannot be determined and the automation
might fail.
In the above automation example, the connector line labeled 1 (Finance_Yahoo_Com.Company
Name.Text -> Earnings Yield UI.Company Name Text Box.Text) must execute before the connector line
labeled 2 (Finance_Yahoo_Com.PE Field.Text -> Numeric Expression).
Best Practices: Building Solutions 19
Building Solutions | Presenting your solutions
Presenting your solutions
Agile Desktop was designed for Studio developers who create solutions for Runtime end users. It
provides a framework for presenting the solutions you design to the end user. This framework
ensures a user-friendly and attractive design and one that brands your work appropriately.
Agile Desktop includes these ready-to-go plug-ins which you can use to create a unified user
experience:
• Customer 360 View — Presents the most critical client information to the user.
• Automated Notes — Agile Desktop automatically creates notes using text templates populated
by pre-defined activities. You can easily add comments about an interaction and review the notes
you have already entered and generated.
• Shortcuts — Lets you define and present frequently used shortcuts to your users. These
shortcuts can start an executable or a solution or go to a web address. These shortcuts can start
an execution, navigate to a web page, start an activity, or execute an automation.
You configure Agile Desktop using the interaction.xml file. During this configuration, you define the
information which will be presented to end users and set options specific to each plug-in. For more
information, see Using the Interaction.xml File.
When an end user installs Runtime, the Setup wizard installs both the standard Runtime application
and Agile Desktop. The wizard also prompts you to decide whether you will use the standard Runtime
application or Agile Desktop. For more information, see the applicable Runtime Installation Guide.
For more information, see the Agile Desktop Implementation Guide.
Building Solutions | Debugging your solutions
Best Practices: Building Solutions 20
Debugging your solutions
Using message dialogs
Add MessageDialog components to automations when you are building and testing solutions to
confirm event handling. Using the MessageDialog component creates and displays a message dialog
from a solution.
In this example, if the menu is not created, WaitForCreate will return a False result and the message
dialog displays this message:
Menu was not created.
Using error trapping around data entry
Most solutions minimize the need for data entry. If, however, your solution requires data input, make
sure you provide the logic to make sure the input is valid for use in your solution. For example, the
following logic uses the StringUtilities.IsRegexMatch method to determine if an entry contains five (5)
digits:
Best Practices: Building Solutions 21
Building Solutions | Debugging your solutions
Adding diagnostic logging
The LogBefore and LogAfter execution functions enable you to set messages to be written to the
diagnostics file. These messages are written before and after execution of a particular event link or
transfer of data across a data link on an automation.
Add the DiagnosticLog component to automations to track solution processing. Create a logging
automation that can be called by any automation in the solution.
To invoke this type of diagnostics, select the link for which you want to enable messaging, the
following properties display in the Properties Grid:
• Log Before Execution
• Log After Execution
Building Solutions | Debugging your solutions
Best Practices: Building Solutions 22
Setting up a universal diagnostic automation
Creating a single diagnostic automation that can be called from anywhere in the project is an efficient
way to implement diagnostic logging in a larger, more complex solution.
Here is an example of a diagnostic logging automation that can be called from anywhere in the
project and will write with a standard format to the diagnostic log file:
Best Practices: Building Solutions 23
Building Solutions | Debugging your solutions
The Logging automation in the Project_Template solution (see“Finding additional information” on
page 25) contains this logic.
Building Solutions | Deploying your solutions
Best Practices: Building Solutions 24
Deploying your solutions
Using Studio’s Management Console
While there are three ways to deploy the solutions (packages) you build, using...
• Management Console
• File share
• Web site
we recommend that you use the Management Console to deploy packages to your various Runtime
machines. For more information on deploying solutions, refer to the Management Console User
Guide.
Pega also offers a Core Training module on Agile Desktop and Deployment which provides hands-on
exercises in the use of the Management Console.
Using a common extract directory
By default, Runtime extracts the deployment package to each user’s application data folder. It is
recommended that a common extract directory is used. Change the Deployment Extract Directory
key in the RuntimeConfig.xml file from blank to the designated location.
Here is an example:
<add key="DeploymentExtractDirectory" value="C:OpenSpan_Runtime" />
Best Practices: Building Solutions 25
Building Solutions | Finding additional information
Finding additional information
Using Pega Robotics Studio Help
To access material within Studio, choose Help > Help Contents. You can also access the Help system
via the Support Center web site:
help.openspan.com/
Using the Support Center
The Support Center gives you a single point of access to create and manage support tickets, share
ideas on the Community Support forums, and search the Knowledge Base. You can also find the
following in the Support Center:
• Downloads, including service packs and builds
• Release notes, installation guides, and user documentation
Go to support.openspan.com, log in, and click the appropriate Support menu, such as Resources,
Downloads, My Support, or Request Support.
Viewing sample solutions
You can also download the Project_Template solution to see the deployment files containing the
sample automations used in this document.

More Related Content

What's hot

Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with KnimeBuilding a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
Knoldus Inc.
 
Zen Of Oracle Erp
Zen Of Oracle ErpZen Of Oracle Erp
Zen Of Oracle Erp
Mahesh Vallampati
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
Brad Stoner
 
Show Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business ResultsShow Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business Results
Correlsense
 
AppDynamics Custom Transaction Correlation
 AppDynamics Custom Transaction Correlation AppDynamics Custom Transaction Correlation
AppDynamics Custom Transaction Correlation
AppDynamics
 
Sap implementation
Sap implementation  Sap implementation
Sap implementation
Amarendra Munipalle
 
Flexible Custom Workflows for Banner ERP and the Campus
Flexible Custom Workflows for Banner ERP and the CampusFlexible Custom Workflows for Banner ERP and the Campus
Flexible Custom Workflows for Banner ERP and the Campus
Bonitasoft
 
Working Procedure SAP BW Testing
Working Procedure SAP BW TestingWorking Procedure SAP BW Testing
Working Procedure SAP BW Testing
Gavaskar Selvarajan
 
Reasons your erp system might fail
Reasons your erp system might failReasons your erp system might fail
Reasons your erp system might fail
DhimantNayak1
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
shruths2890
 
UiPath Developer Resume
UiPath Developer ResumeUiPath Developer Resume
UiPath Developer Resume
Akashkumar526
 
Software Rollout
Software RolloutSoftware Rollout
Software Rollout
colmbennett
 
Harmony = you can develop IT. This overview describes features, & shows how ...
Harmony =  you can develop IT. This overview describes features, & shows how ...Harmony =  you can develop IT. This overview describes features, & shows how ...
Harmony = you can develop IT. This overview describes features, & shows how ...
112Motion
 
Processmaker_Walkthrough Presentation
Processmaker_Walkthrough PresentationProcessmaker_Walkthrough Presentation
Processmaker_Walkthrough Presentation
bpmgeek
 
An example of a successful proof of concept
An example of a successful proof of conceptAn example of a successful proof of concept
An example of a successful proof of concept
ETLSolutions
 
9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture
Steven Herod
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
ukdpe
 
Workflow Driven Application Development v1.0
Workflow Driven Application Development v1.0Workflow Driven Application Development v1.0
Workflow Driven Application Development v1.0
Tien-Soon Law
 
Whitepaper Robotic Process Automation
Whitepaper Robotic Process AutomationWhitepaper Robotic Process Automation
Whitepaper Robotic Process Automation
Sandeep Maurya 8800719707
 
Fusion hcm-presentation-final version
Fusion hcm-presentation-final versionFusion hcm-presentation-final version
Fusion hcm-presentation-final version
Feras Ahmad
 

What's hot (20)

Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with KnimeBuilding a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
 
Zen Of Oracle Erp
Zen Of Oracle ErpZen Of Oracle Erp
Zen Of Oracle Erp
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
 
Show Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business ResultsShow Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business Results
 
AppDynamics Custom Transaction Correlation
 AppDynamics Custom Transaction Correlation AppDynamics Custom Transaction Correlation
AppDynamics Custom Transaction Correlation
 
Sap implementation
Sap implementation  Sap implementation
Sap implementation
 
Flexible Custom Workflows for Banner ERP and the Campus
Flexible Custom Workflows for Banner ERP and the CampusFlexible Custom Workflows for Banner ERP and the Campus
Flexible Custom Workflows for Banner ERP and the Campus
 
Working Procedure SAP BW Testing
Working Procedure SAP BW TestingWorking Procedure SAP BW Testing
Working Procedure SAP BW Testing
 
Reasons your erp system might fail
Reasons your erp system might failReasons your erp system might fail
Reasons your erp system might fail
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
UiPath Developer Resume
UiPath Developer ResumeUiPath Developer Resume
UiPath Developer Resume
 
Software Rollout
Software RolloutSoftware Rollout
Software Rollout
 
Harmony = you can develop IT. This overview describes features, & shows how ...
Harmony =  you can develop IT. This overview describes features, & shows how ...Harmony =  you can develop IT. This overview describes features, & shows how ...
Harmony = you can develop IT. This overview describes features, & shows how ...
 
Processmaker_Walkthrough Presentation
Processmaker_Walkthrough PresentationProcessmaker_Walkthrough Presentation
Processmaker_Walkthrough Presentation
 
An example of a successful proof of concept
An example of a successful proof of conceptAn example of a successful proof of concept
An example of a successful proof of concept
 
9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
 
Workflow Driven Application Development v1.0
Workflow Driven Application Development v1.0Workflow Driven Application Development v1.0
Workflow Driven Application Development v1.0
 
Whitepaper Robotic Process Automation
Whitepaper Robotic Process AutomationWhitepaper Robotic Process Automation
Whitepaper Robotic Process Automation
 
Fusion hcm-presentation-final version
Fusion hcm-presentation-final versionFusion hcm-presentation-final version
Fusion hcm-presentation-final version
 

Viewers also liked

OpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to ManageOpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to Manage
Frank Wagman
 
OpenSpan Proof of Concept use case study
OpenSpan Proof of Concept use case studyOpenSpan Proof of Concept use case study
OpenSpan Proof of Concept use case study
Frank Wagman
 
OpenSpan POC
OpenSpan POCOpenSpan POC
OpenSpan POC
Frank Wagman
 
OpenSpan for Financial Services
OpenSpan for Financial ServicesOpenSpan for Financial Services
OpenSpan for Financial Services
Frank Wagman
 
Openspan For Call Center 2013
Openspan For Call Center 2013Openspan For Call Center 2013
Openspan For Call Center 2013
Frank Wagman
 
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
Frank Wagman
 
OpenSpan Desktop Analytics Datasheet
OpenSpan Desktop Analytics DatasheetOpenSpan Desktop Analytics Datasheet
OpenSpan Desktop Analytics Datasheet
Frank Wagman
 
OpenSpan_PreMarketing_Reference
OpenSpan_PreMarketing_ReferenceOpenSpan_PreMarketing_Reference
OpenSpan_PreMarketing_Referencemotani_kamakura
 
Automation in healthcare industry
Automation in healthcare industryAutomation in healthcare industry
Automation in healthcare industry
Manish Arora
 
Webinar: Explore the World of Robotic Automation:
Webinar: Explore the World of Robotic Automation:Webinar: Explore the World of Robotic Automation:
Webinar: Explore the World of Robotic Automation:
OpenSpan
 
BhagyaRaj S
BhagyaRaj SBhagyaRaj S
BhagyaRaj S
Bhagyaraj S
 
KS MaheshBhalaji_Resume
KS MaheshBhalaji_ResumeKS MaheshBhalaji_Resume
KS MaheshBhalaji_Resume
MaheshBhalaji KS
 
Snehasish Resume
Snehasish ResumeSnehasish Resume
Snehasish Resume
Snehasish Mondal
 
The factorys act amendments act 1948
The factorys act amendments act 1948The factorys act amendments act 1948
The factorys act amendments act 1948
kvjraghunath
 
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
Frank Wagman
 
OpenSpan for Healthcare in Claims and Customer Service
OpenSpan for Healthcare in Claims and Customer ServiceOpenSpan for Healthcare in Claims and Customer Service
OpenSpan for Healthcare in Claims and Customer Service
Frank Wagman
 
OpenSpan Claims Automation Service
OpenSpan Claims Automation ServiceOpenSpan Claims Automation Service
OpenSpan Claims Automation Service
Frank Wagman
 

Viewers also liked (18)

OpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to ManageOpenSpan - A Better Way to Work, A Better Way to Manage
OpenSpan - A Better Way to Work, A Better Way to Manage
 
OpenSpan Proof of Concept use case study
OpenSpan Proof of Concept use case studyOpenSpan Proof of Concept use case study
OpenSpan Proof of Concept use case study
 
OpenSpan POC
OpenSpan POCOpenSpan POC
OpenSpan POC
 
OpenSpan for Financial Services
OpenSpan for Financial ServicesOpenSpan for Financial Services
OpenSpan for Financial Services
 
Openspan For Call Center 2013
Openspan For Call Center 2013Openspan For Call Center 2013
Openspan For Call Center 2013
 
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
OpenSpan Webinar Sept. 17th with Donna Fluss, DMG Consulting - Desktop Analyt...
 
OpenSpan Desktop Analytics Datasheet
OpenSpan Desktop Analytics DatasheetOpenSpan Desktop Analytics Datasheet
OpenSpan Desktop Analytics Datasheet
 
OpenSpan_PreMarketing
OpenSpan_PreMarketingOpenSpan_PreMarketing
OpenSpan_PreMarketing
 
OpenSpan_PreMarketing_Reference
OpenSpan_PreMarketing_ReferenceOpenSpan_PreMarketing_Reference
OpenSpan_PreMarketing_Reference
 
Automation in healthcare industry
Automation in healthcare industryAutomation in healthcare industry
Automation in healthcare industry
 
Webinar: Explore the World of Robotic Automation:
Webinar: Explore the World of Robotic Automation:Webinar: Explore the World of Robotic Automation:
Webinar: Explore the World of Robotic Automation:
 
BhagyaRaj S
BhagyaRaj SBhagyaRaj S
BhagyaRaj S
 
KS MaheshBhalaji_Resume
KS MaheshBhalaji_ResumeKS MaheshBhalaji_Resume
KS MaheshBhalaji_Resume
 
Snehasish Resume
Snehasish ResumeSnehasish Resume
Snehasish Resume
 
The factorys act amendments act 1948
The factorys act amendments act 1948The factorys act amendments act 1948
The factorys act amendments act 1948
 
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
OpenSpan for HealthCare: Four Member Service Representative Readiness Strateg...
 
OpenSpan for Healthcare in Claims and Customer Service
OpenSpan for Healthcare in Claims and Customer ServiceOpenSpan for Healthcare in Claims and Customer Service
OpenSpan for Healthcare in Claims and Customer Service
 
OpenSpan Claims Automation Service
OpenSpan Claims Automation ServiceOpenSpan Claims Automation Service
OpenSpan Claims Automation Service
 

Similar to Pega robotics best practices building solutions (1)

AEM.Design - Project Introduction
AEM.Design - Project IntroductionAEM.Design - Project Introduction
AEM.Design - Project Introduction
Max Barrass
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
Srinivasan Hariharan
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
Getting started with test complete 7
Getting started with test complete 7Getting started with test complete 7
Getting started with test complete 7
Hoamuoigio Hoa
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 
Desktop Reclaim: Automate Removal of Microsoft & Adobe Software
Desktop Reclaim: Automate Removal of Microsoft & Adobe SoftwareDesktop Reclaim: Automate Removal of Microsoft & Adobe Software
Desktop Reclaim: Automate Removal of Microsoft & Adobe Software
1E: Software Lifecycle Automation
 
The "Evils" of Optimization
The "Evils" of OptimizationThe "Evils" of Optimization
The "Evils" of Optimization
BlackRabbitCoder
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
FarjanaAhmed3
 
Every Workflow Template Youll Ever Need
Every Workflow Template Youll Ever NeedEvery Workflow Template Youll Ever Need
Every Workflow Template Youll Ever Need
Kashish Trivedi
 
Ch05
Ch05Ch05
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
 
Implement collaboration platform
Implement collaboration platformImplement collaboration platform
Implement collaboration platform
Info-Tech Research Group
 
View Alignment Techniques
View Alignment TechniquesView Alignment Techniques
View Alignment Techniques
JIGAR MAKHIJA
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Elad Elrom
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
guest5639fa9
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docx
croysierkathey
 
1c
1c1c
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 

Similar to Pega robotics best practices building solutions (1) (20)

AEM.Design - Project Introduction
AEM.Design - Project IntroductionAEM.Design - Project Introduction
AEM.Design - Project Introduction
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Getting started with test complete 7
Getting started with test complete 7Getting started with test complete 7
Getting started with test complete 7
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Desktop Reclaim: Automate Removal of Microsoft & Adobe Software
Desktop Reclaim: Automate Removal of Microsoft & Adobe SoftwareDesktop Reclaim: Automate Removal of Microsoft & Adobe Software
Desktop Reclaim: Automate Removal of Microsoft & Adobe Software
 
The "Evils" of Optimization
The "Evils" of OptimizationThe "Evils" of Optimization
The "Evils" of Optimization
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Every Workflow Template Youll Ever Need
Every Workflow Template Youll Ever NeedEvery Workflow Template Youll Ever Need
Every Workflow Template Youll Ever Need
 
Ch05
Ch05Ch05
Ch05
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Implement collaboration platform
Implement collaboration platformImplement collaboration platform
Implement collaboration platform
 
View Alignment Techniques
View Alignment TechniquesView Alignment Techniques
View Alignment Techniques
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docx
 
1c
1c1c
1c
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 

Recently uploaded

UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 

Recently uploaded (20)

UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 

Pega robotics best practices building solutions (1)

  • 1. Best Practices: Building Solutions 1 BUILDING SOLUTIONS Studio lets you create solutions that integrate and automate desktop applications without writing code. When creating solutions, you go through many of the same logical steps and practices required by software programming. This document describes both general advice applicable to any programming project, and specific practices recommended for creating enterprise solutions with Studio. To use this guide, you should be proficient creating Studio solutions and have completed the Pega Robotics Studio Core Training course. This document includes these topics: • “Installation considerations” on page 2 • “Naming and design considerations” on page 3 • “Interrogating applications” on page 8 • “Using integration processes” on page 9 • “Using automations” on page 12 • “Presenting your solutions” on page 19 • “Debugging your solutions” on page 20 • “Deploying your solutions” on page 24 • “Finding additional information” on page 25 Note A solution named Project_Template is referenced throughout this document. The Project_Template.OpenSpan deployment file is available in the More Resources section of this document.
  • 2. Building Solutions | Installation considerations Best Practices: Building Solutions 2 Installation considerations Keep in mind these considerations when installing Studio: • Do not install Studio or the Studio plug-in and Runtime on the same machine. Doing so is not supported and can cause issues if you are also installing Studio Services and you plan to use MonitorAll. • Review the Minimum Requirements topic in the appropriate installation instructions before you launch the Setup wizard. You can find these installation instructions on the Support Center site: Runtime Installation Instructions Studio Installation Instructions • Launch the Setup wizard by right-clicking on it and selecting the Run as Administrator option. • Install from a local drive, not a mapped drive.
  • 3. Best Practices: Building Solutions 3 Building Solutions | Naming and design considerations Naming and design considerations Designing solutions based on user actions Capture the sequence of actions you want to automate in a series of screen shots and make a note of all your keyboard and mouse interactions. The more detail you capture, the easier the design and testing process will be. Base your solution design on the user interactions with the applications and processes you plan to automate. Remember, each automation in your solution must begin with an event, therefore user and system actions play an important role in solution design. Naming convention for solutions, projects, adapters, controls, and components Establish a standardized naming convention for all parts of the solution. By doing so, you can quickly identify the target in the event you need to diagnose a problem or troubleshoot match rules. Standardized naming conventions are especially helpful when working with a group of designers who are designing separate areas of a solution. Naming solutions and projects Solutions and projects should be named in such a way that lets you easily identify the high-level function they perform. Naming adapters Adapters should be named in such a way that lets you easily identify the application they represent. We suggest naming adapters identically to their current application shortcut names. It is also recommended that the names be readable since they are visible to the user on the Runtime menu. For example, in the CRM web solution you created in the Pega Robotics Studio Core Training course, the adapter for the Windows application is named: CRM Information, and the adapter for the web application is named ACME Product Search System, making them easily identifiable in the Solution Manager. In a more complex solution, it can become difficult to locate the correct adapter without a logical naming convention.
  • 4. Building Solutions | Naming and design considerations Best Practices: Building Solutions 4 Naming automations Automations should be named in such a way that lets you easily identify the action they perform. We suggest that automations follow the same naming conventions as methods in their code counterparts. Essentially, if you have a verb-noun rule for method names, use the same for automations that behave like methods. For other automations, we suggest naming them based on what they are trying to accomplish. For example, in the CRM web solution, automations relating to the CRM Information Windows adapter are: Naming controls Establishing a standardized naming convention for controls and components is extremely important. Whether you are building an automation, debugging a solution, or troubleshooting match rules, being able to quickly identify the controls makes the task much easier. Here are some examples of standardized naming convention prefixes for several common controls. You can modify the default prefixes used by Studio for common controls by using the Auto-Naming Rules feature. Access this feature from the Tools > Options > OpenSpan > Naming Rules > Type Prefixes option. Here is an example of the dialog: Automation Name Action Performed Set Account Window Sets focus on the New Call Account window. Get Account Window Gets data from the Account window. Common Control Standard Prefix Button btn Check box cbx Combo box cmb Label lbl List box lbx List view lv Radio button rbtn Text box txt Toolbox tb Windows form frm
  • 5. Best Practices: Building Solutions 5 Building Solutions | Naming and design considerations Creating a Solution Manager hierarchy based on tasks Keep the Solution Manager hierarchy organized. Use folders to group related items.
  • 6. Building Solutions | Naming and design considerations Best Practices: Building Solutions 6 For example, using the CRM web solution from the Core Training course, you can create folders to store common CRM, ACME, and User Interface (UI) elements. This lets you easily locate objects when working with the solution. See the following example: In addition to grouping related functionality or automations, we suggest using the top-level folders to group items into Systems. For this purpose, a System is defined as a group of related functionality surrounding an individual adapter (or possibly multiple adapters) with the ability to share the entire contents of the system between different solutions.
  • 7. Best Practices: Building Solutions 7 Building Solutions | Naming and design considerations For example, you can create a CRM folder that completely encompasses the functionality of CRM. When another solution needs CRM, you can simply take the entire system (that is, copy the existing folder, including all of its contents), into the solution where CRM is needed. You can then access any of the properties, methods, or events which have been exposed. This lets you test individual pieces of functionality separate from the overall solution. Saving backup deployment packages of your solutions As with any development project, it is essential that you backup your solutions at regular intervals. We strongly recommend using a source control system for solutions.
  • 8. Building Solutions | Interrogating applications Best Practices: Building Solutions 8 Interrogating applications Interrogating all applications before building automations It is always a good practice to interrogate every application you need in the solution before building the automations. By doing so, you can uncover any potential application integration issues before building the automation logic. Testing applications in the Studio environment by unit testing solutions For complex applications, create a solution and add a WinForm and the application. Interrogate all areas of the application that you want to use in your final solution. Add controls to the WinForm to unit test interaction with the application. When you are satisfied that the application runs properly in the Studio environment, add the adapter by adding an Existing Project Item to the final solution. Following match rules best practices Each application type – Windows, web, text – has special considerations regarding how match rules are applied. Refer to the Best Practice: Using Match Rules document for details on working with match rules.
  • 9. Best Practices: Building Solutions 9 Building Solutions | Using integration processes Using integration processes Starting applications as required When you add an adapter to a project, the StartOnProjectStart property for the adapter is set to True by default. This means that the application starts when the project starts, whether it is required at startup or not. It is a good practice to only start the applications that are required at the start of the project. Use the Start method in an automation for the adapter to start an application as needed by the project execution. By controlling the number of applications running during the execution of your project, you improve the overall performance of the project.
  • 10. Building Solutions | Using integration processes Best Practices: Building Solutions 10 For example, you can use a main automation that uses the Started event to start anything you need. By default, you can turn all the adapters off and start them from the automation as needed. Setting the UseKeys property when required When working with applications that contain objects that can be cloned, such as Multiple-Document Interface (MDI) child windows, you can use the UseKeys property. See the following example from the CRM application used in the Core Training where multiple instances (clones) of the New Call (New_Call_1) window are created.
  • 11. Best Practices: Building Solutions 11 Building Solutions | Using integration processes By default, this property is False, indicating that keys are not assigned to the object. However, if multiple copies of the object exist at runtime, and your solution needs to distinguish between the various instances of the object, then set the property to True. Make sure to set the property to True for the object that is cloned. This means you need to set the value for the base object in the hierarchy that can be cloned to True. If your solution does not use objects that can be cloned, leave this value set to False.
  • 12. Building Solutions | Using automations Best Practices: Building Solutions 12 Using automations Adding comment text as header to all automations Comments within an automation can be extremely helpful when working with multiple designers. It will enable a designer to look at an automation and quickly discern the logic and flow or the process. For example, a standard Automation header comment such as the following can be used: Keeping automations with the task or adapter In a complex solution, you are likely have many automations. Keeping those automations with the task or adapter makes it much easier to locate when you debug or edit your solution. In this example, you can see the automation associated with the ACME web application and the automations associated with the CRM application.
  • 13. Best Practices: Building Solutions 13 Building Solutions | Using automations Setting the automation’s ShowDesignCompNames property to True By setting the Automation property ShowDesignCompNames to True, Studio displays the full design name of the components in the automation design blocks.
  • 14. Building Solutions | Using automations Best Practices: Building Solutions 14 See the following example: Using this option, viewed or printed automations clearly show the adapter or form associated with each component. Using WaitForCreate and IsCreated Before using the properties, methods, or events of a component in an automation, confirm that the component is created and matched. Use error trapping for unmatched targets in automations. You do not need to check for all objects on a web page to be created before using them in the automation. Once one object is loaded, you can use the rest of the objects on the page without checking the matching status. The following are helpful checking the matching status: • WaitForCreate Method — Waits for an object to be created. Returns True if the object is matched before the WaitTimeout period elapses. Otherwise, it returns False. • IsCreated Property — Returns True if the object is matched at a specific instance in time. Otherwise, it returns False. The following example of the Find Store automation from the CRM web solution in the Core Training course shows how the IsCreated property is used to make sure certain web objects are created (matched) before being used by the automation logic.
  • 15. Best Practices: Building Solutions 15 Building Solutions | Using automations Terminating branched event paths Anytime the event path in your automation branches, make sure all event paths terminate logically. The illustrations below shows the wrong way and the correct way to handle a branched event path:
  • 16. Building Solutions | Using automations Best Practices: Building Solutions 16 In this example, a message dialog was used to terminate the False event path. If you do not want to alert the user or take any action based on the event, try using the DiagnosticLog component to capture the event in the Studio log. See “Adding diagnostic logging” on page 21 for an example of logging automation that can be called from any automation in a solution. Using global storage for variables and a release notes automation It is a good organizational practice to set up global storage for variables or components that can be called from multiple locations within the solution. Another good practice is to include an automation for storing notes and tracking any revisions to the solution. The Project_Template solution available in “Finding additional information” on page 25 provides examples of these automations.
  • 17. Best Practices: Building Solutions 17 Building Solutions | Using automations Using a single script with multiple methods If you require Script components in your solution, use a single Script component and add multiple methods to the component rather than using multiple Script components containing only one method. Each Script component adds an assembly file to the deployed project so by using a single Script with multiple methods, you reduce the overhead of the project. Following threading best practices Design your automations following the guidelines set forth in the Best Practices: Threading document. This document provides details on threading in the Studio framework.
  • 18. Building Solutions | Using automations Best Practices: Building Solutions 18 Running only one connector line from a design block execution point It is a good practice to run just one connector line from a single design block execution point. When there is a required order of operations and multiple connector lines originating from the same design block execution point, the correct order of operations cannot be determined and the automation might fail. In the above automation example, the connector line labeled 1 (Finance_Yahoo_Com.Company Name.Text -> Earnings Yield UI.Company Name Text Box.Text) must execute before the connector line labeled 2 (Finance_Yahoo_Com.PE Field.Text -> Numeric Expression).
  • 19. Best Practices: Building Solutions 19 Building Solutions | Presenting your solutions Presenting your solutions Agile Desktop was designed for Studio developers who create solutions for Runtime end users. It provides a framework for presenting the solutions you design to the end user. This framework ensures a user-friendly and attractive design and one that brands your work appropriately. Agile Desktop includes these ready-to-go plug-ins which you can use to create a unified user experience: • Customer 360 View — Presents the most critical client information to the user. • Automated Notes — Agile Desktop automatically creates notes using text templates populated by pre-defined activities. You can easily add comments about an interaction and review the notes you have already entered and generated. • Shortcuts — Lets you define and present frequently used shortcuts to your users. These shortcuts can start an executable or a solution or go to a web address. These shortcuts can start an execution, navigate to a web page, start an activity, or execute an automation. You configure Agile Desktop using the interaction.xml file. During this configuration, you define the information which will be presented to end users and set options specific to each plug-in. For more information, see Using the Interaction.xml File. When an end user installs Runtime, the Setup wizard installs both the standard Runtime application and Agile Desktop. The wizard also prompts you to decide whether you will use the standard Runtime application or Agile Desktop. For more information, see the applicable Runtime Installation Guide. For more information, see the Agile Desktop Implementation Guide.
  • 20. Building Solutions | Debugging your solutions Best Practices: Building Solutions 20 Debugging your solutions Using message dialogs Add MessageDialog components to automations when you are building and testing solutions to confirm event handling. Using the MessageDialog component creates and displays a message dialog from a solution. In this example, if the menu is not created, WaitForCreate will return a False result and the message dialog displays this message: Menu was not created. Using error trapping around data entry Most solutions minimize the need for data entry. If, however, your solution requires data input, make sure you provide the logic to make sure the input is valid for use in your solution. For example, the following logic uses the StringUtilities.IsRegexMatch method to determine if an entry contains five (5) digits:
  • 21. Best Practices: Building Solutions 21 Building Solutions | Debugging your solutions Adding diagnostic logging The LogBefore and LogAfter execution functions enable you to set messages to be written to the diagnostics file. These messages are written before and after execution of a particular event link or transfer of data across a data link on an automation. Add the DiagnosticLog component to automations to track solution processing. Create a logging automation that can be called by any automation in the solution. To invoke this type of diagnostics, select the link for which you want to enable messaging, the following properties display in the Properties Grid: • Log Before Execution • Log After Execution
  • 22. Building Solutions | Debugging your solutions Best Practices: Building Solutions 22 Setting up a universal diagnostic automation Creating a single diagnostic automation that can be called from anywhere in the project is an efficient way to implement diagnostic logging in a larger, more complex solution. Here is an example of a diagnostic logging automation that can be called from anywhere in the project and will write with a standard format to the diagnostic log file:
  • 23. Best Practices: Building Solutions 23 Building Solutions | Debugging your solutions The Logging automation in the Project_Template solution (see“Finding additional information” on page 25) contains this logic.
  • 24. Building Solutions | Deploying your solutions Best Practices: Building Solutions 24 Deploying your solutions Using Studio’s Management Console While there are three ways to deploy the solutions (packages) you build, using... • Management Console • File share • Web site we recommend that you use the Management Console to deploy packages to your various Runtime machines. For more information on deploying solutions, refer to the Management Console User Guide. Pega also offers a Core Training module on Agile Desktop and Deployment which provides hands-on exercises in the use of the Management Console. Using a common extract directory By default, Runtime extracts the deployment package to each user’s application data folder. It is recommended that a common extract directory is used. Change the Deployment Extract Directory key in the RuntimeConfig.xml file from blank to the designated location. Here is an example: <add key="DeploymentExtractDirectory" value="C:OpenSpan_Runtime" />
  • 25. Best Practices: Building Solutions 25 Building Solutions | Finding additional information Finding additional information Using Pega Robotics Studio Help To access material within Studio, choose Help > Help Contents. You can also access the Help system via the Support Center web site: help.openspan.com/ Using the Support Center The Support Center gives you a single point of access to create and manage support tickets, share ideas on the Community Support forums, and search the Knowledge Base. You can also find the following in the Support Center: • Downloads, including service packs and builds • Release notes, installation guides, and user documentation Go to support.openspan.com, log in, and click the appropriate Support menu, such as Resources, Downloads, My Support, or Request Support. Viewing sample solutions You can also download the Project_Template solution to see the deployment files containing the sample automations used in this document.