Discussion
Pegasystems Inc.
US
Last activity: 30 Sep 2016 16:33 EDT
Ask the Expert - Pega Robotics with Jeff Badger
Meet Jeff:
Jeff is a Solution Architect in the Robotics and Workforce Intelligence group. He has been designing and developing robotic automation projects for over 10 years using the Pega Robotics Studio and its predecessor products. He has worked with clients in Financial Services, Insurance, Telecommunications, Collections and Call Centers.
Message from Jeff:
Hi, I am looking forward to answering your question in the “ask-the-expert” series. Since Pega Robotics is new to many of you, feel free to ask general questions or ask more specific implementation questions. I will be happy to answer your questions and share best practices for robotic automation development.
Ask the Expert Rules
- Follow the Product Support Community's Community Rules of Engagement
- This is not a Live Chat - Jeff Badger will reply to your questions over the course of this two-week event
- Questions should be clearly and succinctly expressed
- Questions should be of interest to many others in the audience
- Have fun!
Do You Have a Question for Jeff? Leave a Comment below!
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Pegasystems Inc.
US
Hi Ryan,
At this point there is not. I will pass your request to our development team, however.
Jeff
Endsleigh
GB
Hi Jeff,
I'm looking to build an automation where the end user clicks a start button and then at set intervals of time the automation automatically runs and completes a set of actions. What would be the best way to do this? After a set number of completed successful runs the automation would then exit itself.
Thanks,
Dave
Pegasystems Inc.
US
Hi Dave,
This is done by causing the button click to start a timer. Each time the timer fires (at your chosen preset interval) run your automated process. You can track the number of successful runs using a global variable. Each time to increment the variable you would check to see if you had completed the necessary number of successful runs. When that number is achieved, disable the timer.
Jeff
Endsleigh
GB
Thanks Jeff, I'm still struggling to visualise this and get it to work. Are you able to possibly put an image on showing how this would work in practice say for 2 iterations.
Dave
Pegasystems Inc.
US
Hi Dave,
When the button is clicked you set up the timer and initialize your success counter (this runs every 10 seconds):
Now when the Timer Tick event fires you do some work and record the results:
Notice that when success is achieved we test to see how many times we have succeeded. If the number is 2 or greater then we disable the timer.
Jeff
Endsleigh
GB
Thanks Jeff, worked a treat now I can visualise it better :)
Endsleigh
GB
Hi Jeff,
Thanks for your earlier response. I have another question for you.
I have a treeview in one of the applications I am interrogating, and I need to select the top most node in the tree. How would I do this?
I can see a SelectNode method, which allows me to type a path in, but I have no idea what path it is looking for.
I have tried looking here but I can't find an answer.
Thanks,
Ryan
Pegasystems Inc.
US
Hi Ryan,
To find out the path required, add an event handler for NodeClicked. This will return a proxy for the node you click. Extract a proxy from the event block and send the FullPath property to a message box. Then all you have to do is click the node you want the path for. On the treeview properties you can also look at the PathSeparator property. That will help you construct a path.
Here is an example of the NodeClicked automation:
Jeff
Endsleigh
GB
Hi Jeff,
I've tried to implement your solution but nothing happens. I've put in some breakpoints and it seems that NodeClicked is not triggering. I've also tried NodeSelected but this doesn't work either. Would you have any advice on this?
Here's what I've tried:
I have checked that the treeview is matching and it does seem to be, during interrogation.
I only wish to select the top parent node in the list, as my automation will then work on this and remove it from the list, and then work on the next top item in the list.
Thanks,
Ryan
Pegasystems Inc.
US
Hi Ryan,
Are the nodes initially on the treeview when it is created or do they populate at a later time?
Jeff
Accenture
US
Hi Jeff,
I was trying to interrogate context menu items from a C#.NET listbox in Openspan Automation. I tried with below steps. But the "Add Context Menu Items" in Openspan is always empty and not populating the context menu items. Am I missing something.?
1. Interrogate the target application control/object (e.g., list box, data grid) associated with the context menu you want to include in your OpenSpan solution.
2. Without stopping interrogation of the target application, change focus to the OpenSpan Object Explorer.
3. In the Object Explorer, right-click the target application window object and select Add Context Menu Items from the Context menu, or, from the Windows tab, highlight the target, right-click and select Add Context Menu Items.
4. Change focus back to the target application, and right-click to open the context menu you want to interrogate..
5. Instead of the context menu opening, the Add Context Menu Items dialog displays populated with the context menu items.
Thanks,
Arun
CTS
AU
Hi Jeff,
When Pega Robotics Studio will be available in Pega Academic to explore the features?
Thank you
Anur
Pegasystems Inc.
US
Hi Anur,
To get access to Robotics Studio you will need to work with your Account Executive.
Jeff
Pegasystems Inc.
JP
Hi Jeff,
I am using Office 2013 and there is "export/PDF" feature which is very handy to covert a word document to a PDF.
Is it possible to use OpenSpan control "Microsoft word connector" to convert word document to a PDF ?
Chunzhi
Pegasystems Inc.
US
Hi Chunzhi,
The Word Connector gives you direct access to the ActiveDocument object. This is accessed using the WordDocument property of the connector. You need to extract a proxy from this property. Extracting a proxy returns a complex object with all of the properties, methods and events available. This is how you work with properties that are not simple objects. The proxy will have a method available for exporting to pdf. To better understand what you can do with that object, please refer to the documentation found on MSDN for Microsoft.Office.Interop.Word (https://msdn.microsoft.com/EN-US/library/microsoft.office.interop.word.aspx).
Jeff
Pegasystems Inc.
JP
Hi Jeff,
I got "value does not fall within the expected range." error when I was trying to use "ExportAsFixedFormat" method provided by the proxy.
Somebody suggested using "System.Reflection.Missing.Value" instead of null for the last argument "FixedFormatExtClassPtr" to avoid this issue.
So how can I make a reference to System.Reflection.Missing.Value in my OpenSpan automation as below ?
Hi Jeff,
I got "value does not fall within the expected range." error when I was trying to use "ExportAsFixedFormat" method provided by the proxy.
Somebody suggested using "System.Reflection.Missing.Value" instead of null for the last argument "FixedFormatExtClassPtr" to avoid this issue.
So how can I make a reference to System.Reflection.Missing.Value in my OpenSpan automation as below ?
2) Exception Information
*********************************************
Exception Type: System.ArgumentException
Message: "value does not fall within the expected range."
ParamName: NULL
Data: IDictionary (System.Collections.ListDictionaryInternal) with 0 items
TargetSite: Void ExportAsFixedFormat(System.String, Microsoft.Office.Interop.Word.WdExportFormat, Boolean, Microsoft.Office.Interop.Word.WdExportOptimizeFor, Microsoft.Office.Interop.Word.WdExportRange, Int32, Int32, Microsoft.Office.Interop.Word.WdExportItem, Boolean, Boolean, Microsoft.Office.Interop.Word.WdExportCreateBookmarks, Boolean, Boolean, Boolean, System.Object ByRef)
HelpLink: NULL
Source: "Microsoft.Office.Interop.Word"
StackTrace Information
*********************************************
at Microsoft.Office.Interop.Word.DocumentClass.ExportAsFixedFormat(String OutputFileName, WdExportFormat ExportFormat, Boolean OpenAfterExport, WdExportOptimizeFor OptimizeFor, WdExportRange Range, Int32 From, Int32 To, WdExportItem Item, Boolean IncludeDocProps, Boolean KeepIRM, WdExportCreateBookmarks CreateBookmarks, Boolean DocStructureTags, Boolean BitmapMissingFonts, Boolean UseISO19005_1, Object& FixedFormatExtClassPtr)
Pegasystems Inc.
US
Hi Chunzhi,
You can use a Jump Label to create types like this.
Jeff
Pegasystems Inc.
JP
Hi Jeff,
I just tried your approach, however it didn't work. I think a parameter of type "System.Reflection.Missing" does not provide default value as "System.Reflection.Missing.Value", if the parameter is not set.
"System.Reflection.Missing.Value" is a predefined constant value and what I wanted to do is setting this constant value to the last parameter, "FixedFormatExtClassPtr", of "ExportAsFixedFormat" method.
I was trying to add "System.Reflection.Missing.Value" to the ToolBox but was not able to locate "Missing" class in mscorlib.dll.
Chunzhi
Pegasystems Inc.
US
Hi Chunzhi,
You can always use a script to create an object of the type you are needing.
Jeff
Pegasystems Inc.
JP
Hi Jeff,
The script worked perfectly and I am able to convert word document to pdf now.
Many thanks!
Chunzhi
Pegasystems Inc.
US
Hi Chunzhi,
Glad to hear that you were able to get it working. Could you please share an image of your final automation. I am sure those reading would be interested as well.
Jeff
Accenture
US
Hi Jeff,
I was trying to interrogate context menu items from a C#.NET listbox in Openspan Automation.But the "Add Context Menu Items" in Openspan is always empty and not populating the context menu items. Am I missing something.?
Pegasystems Inc.
US
Hi Arun,
I am looking into this and need a little more time before I can answer.
Jeff
Accenture
US
Thank you Jeff.
Pegasystems Inc.
US
Hi Arun,
This has required a little digging. The best answer I have at this point is that we support native Window context menus and .NET 2.0 context menus. My understanding is that we are listening for WM_CONTEXTMENU messages and support controls which use TrackPopupMenuEx to display the context menu. If you have a context menu that you are not able to capture, the best course of action is to put in a support ticket and request support.
Jeff
John Deere
US
Hi Jeff,
Any insight into when the Implementing Pega Robotics Studio Automation 8.0 course will be available, or if it is already available?
https://www.pega.com/system/files/docs/2016/Sep/Implementing-Pega-Robotics-Studio-Automation_0.pdf
Pegasystems Inc.
US
Hi David,
The courses for 8.0 will be available in early October according to my sources.
Jeff
John Deere
US
Oh, that's just a few days or weeks away then. Thanks, Jeff. Looking forward to it, and I'm sure I'll have more questions for you!
Virtusa Inc
US
Hi,
Can Pega Robotics eliminate the need for Web Services .. ? whenever there is a change to pull data from an external system, can the bot wake up and open the external app.. do the processing bring in the value back to Pega and continue the BPM flow ?
thanks ,
Veera
Pegasystems Inc.
US
Hi Veera,
Pega Robotics can replace the need to create new Web Services or can be used in the interim while a Web Service is being built. The article I referenced at the beginning of the session (https://pdn.pega.com/integration-robotic-desktop-automation-pega-7-applications/integration-robotic-desktop-automation) shows how to integrate a Robotic process into your Pega 7 application seamlessly.
Jeff
Accenture Solutions Pvt. Ltd
IN
Hi Jeff,
Firstly, thank you for clarifying robotics queries here
W.r.t to the above point, what role do you think robotics can play in a system/Pega application which already provides CSR(s) with Integrated 360 views of external systems via integration calls? If a Customer Service application already has integrations in place for viewing/updating data to and/or from external systems, what additional benefits/value addition can be obtained by the use of Pega Robotics?
Thanks,
Rimi
Pegasystems Inc.
US
Hi Rimi,
That's a great question. If you already have an integration you would continue using it. What about applications that a CSR uses that you have no integration to. Despite the industry's desire to eliminate all of these extra applications, they just keep popping up. These applications will need to be logged in to, they may need to be synchronized with the Pega case or they may have data that is currently being brought into Pega by the agent. Pega Robotics can do all of that under the direction of the Pega 7 app.
Additionally, do you have some processes that have clear business rules but that can be done in a batch environment. These can be assigned to a Work Basket and be processed by a robot. Do you have integrations but there is an enhancement request that has never made it near the top of list? You could add automation to extend your current integration while you wait on your enhancement.
Jeff
Accenture Solutions Pvt. Ltd
IN
Wow! Thanks for the quick response, Jeff! :)
It did help to clarify my doubts to a great extent.
Just one more thing, when we talk about "some processes that have clear business rules but that can be done in a batch environment", do you mean processes built across non-integrated external systems or legacy systems? I mean, if we talk about batch processing business rules in a Pega application, we are sort of still doing that via agents in Pega, right? What additional feature does Pega robotics bring in here via RPA? I am rather excited for the next Pega tech talk on RPA :)
Thanks again for helping out!!
Regards,
Rimi
Pegasystems Inc.
US
Hi Rimi,
I am glad you got these questions in before we ended this session. Make sure you attend the next TechTalk as you will find the capabilities exciting I am sure and review the last TechTalk to see how easy it actually is to extend your existing applications (https://pdn.pega.com/pegatube/pega-techtalk-episode-19-building-automations-your-pega-applications).
RPA can perform batch work against legacy applications whether you have integrations or not. Pega Robotics Studio can interrogate the user interface of an application and directly perform work as a CSR would. As your become more comfortable with robotics and it becomes easier to identify robotic opportunities, you will add steps to your Pega 7 apps that will be done by robots.
Jeff
Accenture Solutions Pvt. Ltd
IN
Thanks Jeff for all the help!!
I loved both Tech Talk episodes 18 and 19 on robotics. Will definitely watch the next one.
Thanks again for the whole session and especially for taking time out to help with the queries :)
Regards,
Rimi
Pegasystems Inc.
US
We're so glad you enjoyed the episodes! If you have a question for our third installment episode we'll be glad to address it.
Accenture
US
Hi Jeff!
I'm trying to add some custom context values into my interaction.xml in order for them to show up on my AgileDesktop. Right now I'm able to have the values show up on the AgileDesktop and as valid properties in my Interaction Manager object; however, when I try to debug, I get an error saying the property can't be recognized. I already tried Build>Clean and restarting my solution. This error also happens when I remove existing context values from the interaction.xml. If I used those context properties at any point in the past (and have since deleted them from my solution), OpenSpan will try to look for them and give me error warnings about missing objects. I've made changes to the interaction.xml before and the changes applied just fine. Not sure if this is a caching issue or I'm just missing something.
See error message. I get this after I've added the properties to the Context section in the xml and incorporated them into my InteractionManager property block.
Hi Jeff!
I'm trying to add some custom context values into my interaction.xml in order for them to show up on my AgileDesktop. Right now I'm able to have the values show up on the AgileDesktop and as valid properties in my Interaction Manager object; however, when I try to debug, I get an error saying the property can't be recognized. I already tried Build>Clean and restarting my solution. This error also happens when I remove existing context values from the interaction.xml. If I used those context properties at any point in the past (and have since deleted them from my solution), OpenSpan will try to look for them and give me error warnings about missing objects. I've made changes to the interaction.xml before and the changes applied just fine. Not sure if this is a caching issue or I'm just missing something.
See error message. I get this after I've added the properties to the Context section in the xml and incorporated them into my InteractionManager property block.
Thank you!
Pegasystems Inc.
US
Hi Ejbi,
When you make changes to the Interaction.xml, you need to do a set process to ensure that those changes are recognized by the solution.
-
Save the changes to the Interaction.xml
-
Each container in your solution where an InteractionManager component exists must be made dirty – the change to the Interaction.xml does not do this automatically.A simple way to do this is to add a variable to the container and then delete it .
-
Save each container once it has been made dirty. This will cause the InteractionManager component to pick up the changes to the Interaction.xml.
-
Clean your solution.
-
Build your solution – the changes should be reflected.
This process is time consuming for sure and has been addressed. In a release in the near future you will not need to go through this process. Stand by for the new process.
Jeff
Pegasystems Inc.
JP
Hi Jeff,
I am trying to automate a web application and suffering unusually slow starting of Interrogator and Debugger on a Win7 (32bit) desktop machine.
The browser window is not responding for a while as if the process was blocked.
It takes almost 2 minutes before displaying the login page of the target web application, which usually loads in a couple of seconds by double clicking the application's shortcut on the desktop.
Are there some well known reasons for slow starting of Interrogator and Debugger ?
Chunzhi
Pegasystems Inc.
US
Hi Chunzhi,
I am not aware of any reasons for this. Please open a support ticket if this continues.
Jeff
Pegasystems Inc.
US
Join us
Thursday, September 29, 2016 @ 9:30AM EDT
https://community.pega.com/video-library/techtalk/current
(Pega TechTalk works best with Firefox or Chrome.)
Pega TechTalk welcomes
Becky Blackwell and Bence Magyar to discuss
Building Automations Into Your Pega Applications
Pegasystems Inc.
US
This TechTalk will focus on turning a stand-alone Pega Robotics solution into one that integrates with Pega 7 applications (without interrogating Pega). This allows you to perform work that is not possible today using Pega alone and still be under the control of Pega. With a clean integration between the two, the process defined in the Pega 7 application continues to be followed as intended.
This TechTalk will focus on turning a stand-alone Pega Robotics solution into one that integrates with Pega 7 applications (without interrogating Pega). This allows you to perform work that is not possible today using Pega alone and still be under the control of Pega. With a clean integration between the two, the process defined in the Pega 7 application continues to be followed as intended.
This is the second TechTalk in a series. The first in the series was an introduction to Pega Robotics Studio and can be found here: https://pdn.pega.com/pegatube/pega-techtalk-episode-18-getting-started-pega-robotics.
There will be a 3rd TechTalk focusing on our RPA integration and the Robotics Management Console.
Pegasystems Inc.
US
In case you missed the TechTalk from yesterday - here is a link so you can watch it at your convenience.
https://pdn.pega.com/pegatube/pega-techtalk-episode-19-building-automations-your-pega-applications
This will help you to visualize how easy it is to integrate automation into your Pega 7 apps.
Accenture
US
Hi Jeff,
Thanks for your earlier response. I was doing all the steps you mentioned already and for whatever reason, it would work sometimes but not all. I guess until we get the new release, I'll leave it alone since making changes will break whatever automation was using those Interaction properties.
As far as starting an interaction, I'm creating an App Bar that allows me to search for a number ID and depending on whether the number is valid, it'll either grab the data from that ID or end that interaction. Right now, I keep getting this error when trying to close the interaction after entering the wrong ID. I'm not sure why it is still looking for the wrong key of "333333" after I've already gone through the CloseInteraction block. Note this error pops up after all the blocks have been executed in the screenshot.
Pegasystems Inc.
US
Hi Ejbi,
When you get an exception message click the Show Details button to get the full text. If you careful read the text of the message here, the exception is happening in the StartInteraction automation. We would need to look at that automation to see what the issue is.
Jeff
Accenture
US
Hi Jeff,
I'm not sure why it's going back to the StartInteraction as that is invoked by a button click, but I could be missing something. I've attached two automations related to this if that helps. The automation in the screenshot I posted earlier is invoked by an InteractionStarted event block after the StartInteraction automation. I would think that the CloseInteraction block would prevent the flow through StartInteraction automation again.
Pegasystems Inc.
US
Hi Ejbi,
This is a little difficult to read, but to truly get to the bottom of this you should look at the logs and the solution together. See the previous post on the lines you should extract from the log to understand the automation flow and the values that are being assigned. Some additional log lines you will want to observe:
- Category - InteractionHost
- Lines containing "Interaction started" - this will give you the key value of the interaction
- Lines containing "Interaction activated" - this will give you the key value of the interaction activated
- Lines containing "Could not remove interaction" - this message appears when attempting to close an interaction and will list the key of the interaction closed
There are issues that I can see here. For one, the CloseInteraction would not work here as the key that you are using upstream to select an interaction is set to None.
Jeff
Accenture
US
Hi Jeff,
There are 3 automations currently. The automation order goes:
1)SearchCase -> 2) StartInteraction -> 3)CollectCaseInfo.
In my original post, I'm getting through CollectCaseInfo where the automation learns that the ID doesn't invoke the correct info page and therefore, the ID is not a valid ID. That should trigger the "Unsuccessful Data Collect" message and CloseInteraction so I can do a new search. The error occurs right after the CloseInteraction and the message is saying the execution error occurs between StartInteraction.StringUtil and the intMgr.StartInteraction() which are both in the "StartInteraction" automation. I don't understand why it's going back to that part when it's already passed it. I added breakpoints between those and the break only occurs the first time it goes through, so I'm not sure where the automation is when the error happens. Please see attached for the detailed error. I tried feeding the key value into the CloseInteraction block, but that didn't work.
Pegasystems Inc.
US
Hi Ejbi,
Could you take screenshots of your automations and post the full size images here? If there are only three we should be able to figure this out.
Jeff
TATA Consultancy Systems Ltd
CA
Hi Jeff,
We have a legacy dot net web application which has several menu items and one of the menu item will open an aspx page which will display some data. lets say it is displaying 10 text boxes with data and a grid with 5 rows and 5 coulms(when i read the pdn articale it says only scalar properties can be mapped back to clipboard but not pagelists). Will a flowaction at pega can display the same data by keeping the legacy dot web application in the back of my pega web application window. We don;t want the legacy web application window to come to front (meaning it should not get focus and the focus should always be on the pega portal window). Please advice.
Thanks
Rami Reddy Kasu