Using X-ray Vision in Pega Robotic Automation
X-ray Vision is a new way of identifying controls in Robot Studio that was implemented in version 19.1.73 and later.
When interrogating an application, if new controls become available in the application (due to navigation of the application, or from a screen change that makes new controls appear), the new controls are added to the X-ray database file for the application. The system assigns the new control a numeric PegaId that is stored in the X-ray database file for the application, along with a collection of attributes that define the control. When you interrogate a control to use it in an automation, the PegaId is set as the match rule that maps the adapter's object to the control within the X-ray database file. This PegaId match rule never needs modification. When the X-ray Vision engine sees the control a second time, it compares all of its attributes to those stored in the database, to determine the best attribute to use. The database file is constantly updated while the application is in interrogation mode.
When you create the automation package during the deployment process, the system includes the database files. Robot Runtime uses these files to provide the attribute values that are used for control identification. If an attribute changes for a control in Runtime, the engine continues to track the control by finding the next best attribute to use. The system keeps this attribute change in memory until you close Robot Runtime.
Currently, X-ray Vision supports .NET, WPF, Universal Web Adapter, and Windows Form applications.
Enabling X-ray Vision
Use the new Windows adapter properties to enable X-ray Vision. Access these properties through the property grid in the X-ray Vision section.
- In Pega Robot Studio, switch your property grid view to Advanced.
- In the X-ray Vision section, set the EnableX-rayVision property to True. By default, X-ray Vision is disabled for a newly added Windows adapter, so you must enable it.
There are two additional adapter properties in the X-Ray Vision section, called EnableX-rayVisionEvents and EnableX-rayVisionTab. Pega Support uses these properties to troubleshoot any issues that occur with the X-ray vision feature, and they should not be used otherwise.
When an application is interrogated with X-ray Vision, Robot Studio creates four files in the X-ray folder, located in the project folder. If an application starts other applications, Robot Studio creates a set of four files for each application.
Each file is named with a shared GUID. The files represent the application whose data they store, and have the following extensions:
- .xrayConfig – Contains configuration information for the application.
- .xrayDb – Contains the X-ray control information that has been collected for the application. This includes the assigned PegaId, the technique used to solve, and the attribute values.
- .xrayTad – Contains attributes and their weights that have been modified for the application from the default framework TAD file.
- .xray – The .xray file is the master file that contains the name of the application executable in its filename, along with the GUID. This file makes it clear which files belong to what application, tying the .xrayConfig, .xrayDb, and xrayTad files together for the application. For example:
GUID.APPNAME.xray [master]
GUID.xrayConfig
GUID.xrayDb
GUID.xrayTad
When you deploy an automation, all of these files are included, along with the default framework TAD files. Robot Runtime uses these files as it executes the automation.
Universal Web Adapter considerations
When you use X-ray Vision and the Universal Web Adapter, consider the following limitations:
- Do not enable UseKeys, unless you are in interrogation mode. Controls have to be matching when you are in interrogation mode.
- When you enable a property for the control, Robot Studio displays a confirmation message. To have Robot Studio convert the match rules for the control, and any children of those legacy match rules, click OK. If you change UseKeys to false after you click OK, Robot Studio will continue to use the legacy match rules. To go back to using the PegaId match rule, delete the control and interrogate it again. The following illustration is an example of the confirmation message.
- If you try to enable UseKeys when the control is not matching or before you start interrogation, Robot Studio displays the following error message:
PegaId match rule
When you enable X-ray Vision on the adapter, the controls that are interrogated in the application use the PegaId match rule. This match rule ties the control to the application’s .xraydb file. Only the PegaId match rule is needed when X-ray Vision is enabled for the adapter. Do not include additional match rules when using X-ray Vision and the PegaId match rule.
Keep in mind the following limitations:
- X-ray Vision is not supported for applications that contain embedded frameworks. For example, if you start a Windows Presentation Foundation (WPF) application that has embedded controls, X-ray Vision assigns PegaIds for the WPF controls. Legacy match rules are used for embedded controls of a different framework than the application.
- X-ray Vision is not supported for the Infragistics ultratab control.
- The PegaId match rule is not available for top-level forms, context menus, or menu items. Use legacy match rules for these controls.
New and Modified Assemblies for X-ray Vision
New Assemblies | Modified Assemblies |
---|---|
Pega.Xray.dll
| Pega.Remoting.dll OpenSpan.dll OpenSpan.Design.dll OpenSpan.Events.dll OpenSpan.IDE.dll OpenSpan.MPF.dll OpenSpan.Studio.dll OpenSpan.Virtual.Interfaces.dll OpenSpan.Adapters.dll OpenSpan.Adapters.Web.WebBase OpenSpan.Adapters.Web.WebBase.Design.dll OpenSpan.Adapters.Text.Design.dll OpenSpan.Adapters.ActiveX.dll OpenSpan.Adapters.DataGrid.Design.dll OpenSpan.Adapters.Design.dll OpenSpan.Adapters.Virtual.dll OpenSpan.Adapters.Virtual.Design.dll OpenSpan.Adapters.Windows.dll OpenSpan.Adapters.Windows.Design.dll OpenSpan.Adapters.Web.dll OpenSpan.Adapters.Web.Design.dll OpenSpan.Adapters.Siebel.dll OpenSpan.Adapters.Delphi.dll OpenSpan.Adapters.DotNet.dll OpenSpan.Adapters.DotNet.Design.dll OpenSpan.Adapters.Endsleigh.dll OpenSpan.Adapters.MFC.dll OpenSpan.Adapters.PowerBuilder.dll OpenSpan.Adapters.VisualBasic6.dll OpenSpan.Adapters.WinInet.dll OpenSpan.Translators.Clarify.x32.dll OpenSpan.Translators.CSG.x32.dll OpenSpan.Translators.At000Win.x32.dll OpenSpan.Translators.DotNet.v20.DevComponents.dll OpenSpan.Translators.DotNet.v40.DevComponents.dll OpenSpan.Translators.DotNet.v20.DevExpress.dll OpenSpan.Translators.DotNet.v40.DevExpress.dll OpenSpan.Translators.DotNet.v20.Infragistics.dll OpenSpan.Translators.DotNet.v40.Infragistics.dll OpenSpan.Translators.DotNet.v20.WPF.Infragistics.dll OpenSpan.Translators.DotNet.v40.WPF.Infragistics.dll OpenSpan.Translators.DotNet.Virtual.dll OpenSpan.Translators.DotNet.Syncfusion.dll OpenSpan.Translators.DotNet.v20.WindowsForms.dll OpenSpan.Translators.DotNet.v40.WindowsForms.dll OpenSpan.Translators.DotNet.v20.WPF.dll OpenSpan.Translators.DotNet.v40.WPF.dll OpenSpan.Translators.DotNet.v40.WPF.FocusPoint.dll OpenSpan.Translators.Facets.CerlCtl.x32.dll OpenSpan.Translators.Facets.CerlDlg.x32.dll OpenSpan.Translators.FarpointGrid.x32.dll OpenSpan.Translators.FarpointList.x32.dll OpenSpan.Translators.Farpoint.Spread25.x32.dll OpenSpan.Translators.Farpoint.Spread30.x32.dll OpenSpan.Translators.Farpoint.Spread70.x32.dll OpenSpan.Translators.Farpoint.Spread80.x32.dll OpenSpan.Translators.Gupta.Tabli62.x32.dll OpenSpan.Translators.IBM.ArsGui32.x32.dll OpenSpan.Translators.IBM.ArsGui32.x64.dll OpenSpan.Translators.MhTab.x32.dll OpenSpan.Translators.MSFlexGrid.x32.dll OpenSpan.Translators.MSHFlexGrid.x32.dll OpenSpan.Translators.NiSource.KipCzCnr.x32.dll OpenSpan.Translators.NiSource.KipCzNb.x32.dll OpenSpan.Translators.ProfUIS.x32.dll OpenSpan.Translators.OpenEdge.Prow.x32.dll OpenSpan.Translators.OpenEdge.Prow.x64.dll OpenSpan.Translators.Sheridan.DataWidgets.x32.dll OpenSpan.Translators.SSTab.x32.dll OpenSpan.Translators.Uniface.Umsw.x32.dll |
Previous topic Introduction to threading Next topic Mainframe application automation