Showing results for 
Search instead for 
Did you mean: 

My enhancement ideas after 2 years of using Blue Prism + Bugs found

Level 4
Blue Prism version used:
ENHANCEMENTS (Sorted by importance):

1. Explanation: More hotkeys and shortcuts. It's possible to choose most stages by using the F2-F9-keys or pressing Ctrl + T and pressing the corresponding key, but there are no shortcuts for exceptions, anchors, recover, resume etc. It would also be great with shortcuts for "Set Next Stage", "Switch", 'Properties' etc.

2. Explanation: Debugging into a Business Object and have the exception Bubble back up to the process. Steps to reproduce:
a. Go into process or create a new one.
b. Create an action stage.
c. Right click on the action stage and select "Set Next Stage".
d. Press F11 to step into the object.
e. Run into an exception.
f. A popup box will appear with the exception type and detail. Solution: Bubble up to the process when hitting an exception in an object. A prompt may appear asking if the user wants to exit the business object or not.

3. Explanation: Choosing what attributes to match by default in the Application Modeller Solution: See my thread:

4. Explanation: Utility business object for retrieving text from a PDF document without opening it. Reason: a. Ctrl + A, Ctrl + V badly preserves formatting. b. Time consuming. c. PDF libraries often costs money (and time consuming for the client to buy). Solution: New Utility: Utility €“ PDF or new action on Utility €“ Strings that accepts File Path and different formatting options and outputs PDF text.

5. Explanation: Ability to retry completed elements. Reason: Sometimes it"s unexpected that certain elements are completed. It would be handy to retry these elements to debug why it got marked completed.

6. Explanation: Ability to load all business objects into memory when debugging a business object. Steps to reproduce: a. Open an existing process or create a new one. b. Create an "Action"-stage. c. Right click on the "Action"-stage and select "Set Next Stage". d. Press F11 to step into the object. e. Open the properties of an "Action"-stage within the Business Object you just stepped into. f. Open the dropdown "Business Object". g. Note that very few business object appear in the list. Only objects that are already referred to in the object will appear. Solution: Activate "Debug"-mode for an object. With "Debug"-mode on, all Business Objects are loaded into memory.

7. Explanation: Ability to sort Tasks within Schedules. Reason: To organize tasks within Schedules better. Although the tasks have a certain order by setting the "On complete" and "On exception" dropdowns, this order is not correctly visualized in the task list. I would like to drag-and-drop tasks in the order of my choosing. Currently new tasks show up in the end of the task-list.

8. Explanation: The choice to add new rows to collections that has no fields defined, but have been populated dynamically. Currently I have to make an empty field, add a new row, then delete the field again.

9. Explanation: Objects made while one process is opened does not appear in the action stage list when resetting. You have to close the object and re-open it for it to appear in the list.

10. Explanation: Modulo in the €œExpression chooser€. Reason: Modulo is very handy in a lot of situations. Currently I make code stages, which is more time consuming.

11. Explanation: Ability to copy the "Action" name to the "Name" of the "Action stage". Reason: To save time. When creating an action referring to a business object, I would often like the "Action name" to be the same as the "Action stage"-name. Solution: A small button to the right of the "Action"-dropdown with the universal "Copy"-symbol.

12. Explanation: Ability to set max debug speed as standard. Reason: It loses time setting the debug speed to max every time (I mostly use Shift + F11 (step out), but other developers like to use F5 (Run)).

13. Explanation: When exporting "Create a release from an existing package", then pressing "Next" the name field is empty. Solution: Package name should be already written in the field. It can be edited if needed.

14. Explanation: When deleting one of the "Force retry" queue elements the original gets deleted as well. Solution: Only delete the queue element created by the "Force retry" option.

15. Explanation: When comparing two versions in the changelog on a process or an object, I have to export a previous version then import it again to get the previous version as the new version. It would be better to simple say €œoverwrite current version with previous version€.

16. Explanation: Changing order of input and output variables in Business Objects in "Start" and "End" for better structure.

17. Explanation: Calculation stages should have a function called "InStrRev" under the category "Text". Reason: Calling "Utility €“ String" -> "InStrRev", saving position, using that position in a calculation stage etc. requires too many stages, inputs & outputs.

18. Explanation: Ability to sort Schedules. Reason: To organize Schedules better.

19. Explanation: «Return to page reference» is not possible with F11 (step into).

20. Explanation: A way to stop Shift + F11 (Step out). Reason: Shift + F11 is a lot faster than F5 (Run), but it"s problematic to stop Shift + F11. Solution: A hotkey to stop the "Step Out" action.

21. Explanation: Escape "[", "]" and """ in the €œExpression chooser€. Reason: Making a data items with one of these symbols does not feel like a clean solution as it creates an unnecessary variables. For example making a "Text" item data with the value "€" called "Quote". Solution: Some symbol to escape these characters.

22. Explanation: Remembering choices when removing tools at View -> Tools. Currently they appear again when closing and opening the process or object again.

23. Explanation: This is more a bug that is a feature, and I would like the same €œbug-feature€ to exist in output variables as well.
Steps to reproduce:
a. Make a business object that has a "Text"-variable as Input and a "Text"-variable as output.
b. Open an existing process or create a new process.
c. Create an empty collection with no fields.
d. Create an action stage and set "Business object" to the business object you created in step "a".
e. Attempt to drag and drop the collection you made in stage "c" into the text input field. (NB! Make sure the cursor is in the "Value" field).
f. You will receive an error: €œThe required data type is Text but the data type of [Collection] is Collection€. Press OK.
g. [Collection] will now be written in Value field. Great!
h. Now attempt to drag the Collection to the output "Text" variable (In the "Store in"-field). The same error message as in step "f" will appear, but the collection name is not stored in the "Store in" field.
Reason: To save time. To avoid writing the collection name manually in every output value. Note that this issue is only relevant for dynamic collection (with no initial fields defined).

1. Explanation: MAPIEx sometimes freezes when reading emails. Searching on the forum and on the knowledge exchange you can find multiple cases of this issue. "Cached exchange mode" set to off might solve this issue. However, setting "Cached exchange mode" to off will cause HTML formatting in the object "Resources -> VBOs -> MAPIEx VBO €“ HTML email" to disappear.
2. Explanation: When using a collection date variable in an Expression, the following error occurs: "Can"t compare Unknown" when using "Evaluate Expression". No error occurs if simply stepping over the stage. Steps to reproduce: a. Create a collection named "Collection" with no fields defined. b. Create an action stage and set it Business Object to 'Internal -> Collections' and Action to 'Add row'. Input "Collection" as the collection name. c. Create an action stage and set it Business Object to 'Collection Manipulation' and Action to 'Append Field (Date)'. Input 'Collection' to the collection field, "DateField" to the 'Field name' and Today() to 'Value'. d. Create a "Decision"-stage. e. Insert the following into the "Expression chooser": [Collection.DateField] > Today() f. Press "Evaluate expression". Note that the error occurs. g. Attempt to step over the decision stage. Note that no error occurs. h. Add the following into the "Expression chooser": AddDays([Collection.DateField], 0) > Today(). Note that no error occurs. Solution: Evaluate expression should give no error. Also, it should appear as an warning in the "Error list", not an error as this expression is correct for dynamic collections.
3. Explanation: When calling a folder the same name as an object, processes/objects calling the object will get a "MISSING" error.
4. Explanation: When naming an environment variable "ABC External process DEF" it becomes "ABC External business object DEF" after refreshing the environment variables list by selecting another menu and returning to the environment variable overview. This isn"t always reproducible for some reason.
5. Explanation: Pasting pages makes them jump over one page. One would expect it would be pasted to the right of the page right-clicked, not to the right of that page again. When right clicking on a page and selecting "New", the new page is placed correctly at the right side of the selected page.

Hi Frederik, We really appreciate the effort that you have undertaken to document all of these enhancements and issues. We have taken note of them and will work through them to raise them with our Product Development team to ensure that they get investigated, and where applicable incorporated. We will also raise incidents for your reported issues so that we can test them, and where warranted we will raise them as bugs to our Development Team. Thank you for helping us to improve the product We always appreciate constructive feedback. Kind regards, Chris McDermott Senior Customer Support Engineer.

Level 4
Without creating a new thread. Here's our part for suggestions: - I agree with the default Debug Speed. It is something we are currently dreaming about. We're literally changing the speed to max everytime and for every process and object we get in. - Add better Keyboard Shortcut. - Change the behavior of the Link tool. When linking to ""Nothing, it could create a new ""Anchor"" and link to it (or the option to). I find myself often constantly switching between the two to make a path. It makes better and cleaner workflow. - When resizing a block that is too big, the thing goes crazy and resize until it can fit in the ""zoomed"" area. - Importing / Exporting is way too much of a complicated process. It was so long to import / Export that we created our own tool to do so. It literally was taking 10-30 min and sometime more to go from Dev environment to Production. It's only a couple entries within the DB that we copy from one database to the other. With the right validation, it's totally reliable. We are now just choosing from 3 dropdown: Initial DB, Target DB, Process / Object. Then on a single click of a button, it's exported and ready to use with all the logs. - Add the possibility to manage processes within processes. To create self-sufficient workforce, it's necessary that they can handle errors themselves. AutomateC.exe doesn't have an option to force stop another process at the moment so if it's bugged within a loop, it is not possible to handle it without stopping the process through the control room manually. - Choosing the variable orders. The same way it is possible to choose the action order, we should be able to choose in which order we want to show the variable when creating process or object to create a logical order. It would just make it more user friendly. - Prevent position recalculation of the choice stage when changing the number of choices. The one that already has a position should remain there. Otherwise, it need repositioning of all the choice one by one. - Copy paste stage that have dependencies. Just get the dependencies automatically so we don't get an error. - Date and Time are very hard to manage. They're all based on UTC and that makes them very hard to manage. When reading from SQL DateTime format that are correct, they are getting translated to another DateTime and we then need to convert them before we can use them properly. It makes the whole process with DateTime very difficult sometime. We often end up just getting them into string and using them like that. We'd like the option to get the local time. - I don't understand why not more datatype are supported. That would help with memory management and code stage. Right now, we need to translate everything before getting them in the output. That's especially annoying for collections since they only support DataTable. - I'd add standard string calculation that we have in .NET. (.Remove, .Insert, .Substring, etc) - Comparing to NULL is somehow very hard. It is sometime useful to know if something is valid but we can't by default. we need to take workaround like using Len(string) > 0 - The loop object need work in my opinion. If you compare how loop works in a real programming language, this is really lacking. I assume that the one provided is based on for each but I'd like to get all the behavior it provide as well and create a variable that goes along with it that I can use within the loop only. Also, a normal for that is number based (Index) would sometime be useful (with a number variable that can be used) - ""Camera"" / view control. I'd like to be able to fix the camera when the debug is playing so it won't move around automatically and center on the action. Especially useful to monitor the variable content or something else. - Related to the above. The item watches barely works and most of the times, it doesn't seems to update to content at all which render it almost useless in my opinion. - Have the possibility to have an always on ""wide pan zoom tool"". I'd use this all the time but it is hidden in the toolbar so I don't. - Logs doesn't go deep enough. When checking the logs, they only show the top layers of a process but if one goes farther, you can't check the steps used. - Allow triple layers process. We are using in our team the following way of building Solution: - Process: The basic of an automation. (Click on something, choose in a drop down, etc) - Component: Using the process, we build component that will do something more in small scale (Login in, fill a form, execute a search, etc) - Solution: a combination of component to build the final solution and the whole process We think it's a better way to manage process as it reduce maintenance in the end. We are using the object studio for both Process and Component and the solution is done in the process studio. It would be nice to be able to have them separated. We are not using the application modeler in the Component since the processes handle that part already. EDIT: - Add one liner .NET code. This would permit for example stuff like: vbnet(""Clipboard.SetText('Something')"") or cSharp(""Clipboard.SetText('Something')"") or vbnet(""O_output = O_output.Remove(3,2)""). Surely, there's a way to do that and would accelarate development. No need to create code stage for very simple stuff that you need to set input and output all the time. - Add Collection option in the calculation. not sure why there is no way to count collection by default but this should not require an action stage in my opinion.