Showing ideas with status New.
Show all ideas
I am writing based on our experiences with BP v6.9 and some of my points might already been resolved and improved in more recent version.
I think I already created at least one idea on this topic but since I am again spending significant amount of time, I compile a list of possible improvements (again).
.) Make automateC /archive behave like UI archive
automateC does not archive _debug sessions, UI does
automateC skips resources with AttributeID=0, UI does
.) Make archiving less random
Current archiving approach is to randomly take one resource does seems to be idle (not sure if upcoming schedules are considered when choosing so they are not blocked/cancelled).
I assume there has to be an active Windows session (ie logged on) to run? That means all resources and all possibly used uses have to have access to the archive folder. (Logs are normally considered being sensitive and should not be accessible easily and any modification must be prevented... normally).
It cannot be ensured that the correct archiving target directory is used as this definition is per machine and not per connection. eg I am logging in with userA with connectionA setting archive target: folderA. When userB is logged in to the same machine using connectionB, those logs will then be archived to folderA instead to folderB. All resources have to be set manually to use the correct target folder. If not then set manually and explicitly, the target folder could also be some directory in MyDocuments which is user related and when using several logins finding the archives again is time consuming. (eg 10 resources with 12 users results in quite some possible combinations where those logs could be)
The 'one machine one archiving target' also makes setting up 'archiving nodes' impossible. The idea would be to provide one dedicated resource with one specific special user being used for archiving of several BP instances. But the used resource is random and it is not possible to run archiving with different targets on the same machine.
.) Make archiving a server task or enable it for use in processes
I think the most common approach for archiving is that the server is taking care of it (no need for login, one defined machine doing archive, ...).
Alternatively it would help a lot to be able to create a process that triggers archiving so we are able to specify the when, where what ourselves. (Currently this is not possible since automateC behaves differently to archiving in UI).
.) Make BP aware of archiving
In the meaning of, show when, where and what did archiving do. Currently there is no easy way to even see if archiving took place. Archiving should be visible in the logs / Control.
.) Provide feedback during archiving
When we start archiving we don't know anything of the progress, time remaining, if it got stuck, ... It would be great to have any kind of feedback in UI and automateC because we are now waiting for hours in hope of archiving might still work and might finish correctly
.) Improve archiving performance
Singe days can take minutes or even hours to be archived depending on the size of the table and amount of logs being processed. During this time process execution is slowed down significantly. We saw process steps taking 4x the time when some archiving tasks are running in the background.
.) Make archiving more reliable
The more processes/days/... are selected to be archived in the same session, the more likely it is there will be a (timeout) error. This is strange since logs are archived at the most granular level and there should be no difference if I starting archiving 30x with one day each or 1x with 30 days, but obviously there is.
Also more detailed error description would be helpful to understand why we ran into timeout and how we can avoid this in future
.) Provide means to archive audit logs
Audit logs are more important than execution logs. Although they use much less space they will grow over time and there is no feature to clean up those logs in an organized way. We would have to run manual delete SQL scripts... which our IT security department does not like so much.
... View more
Please add a Local flag to the ToDateTime conversion function (as already exists on MakeDateTime). This would be a huge help, to get over the frustrating issues seen during BST (and presumably for installations working across multiple timezones), when you would like to for example, Defer a Work Item to a specific Date Time. eg: If I want to defer a Work Item to 9am tomorrow, whilst in BST, I have to currently do something long-winded such as break down the desired date into dd MM and YYYY, so I could use MakeDateTime (with the Local flag set to True), or build in a decision stage, to allow subtracting an hour from the time when in BST.
... View more
We're running into an issue where Hub is failing to handshake with our SQL instance due to a discrepancy in the expected type of encryption. We are able to successfully connect to the SQL instance from the Application Server using connection string arguments. Please allow for the same functionality when asking for information to connect to SQL where required in the installation of other components as well. Edit: This problem is currently specific to Hub 4.7. We are installing it alongside a 7.2.0 x64 environment.
... View more
Prior to deploying a new version of a changed process or object, we are obliged to go over the changes with a colleague. To do so, we use the Studio Compare functionality.
This Compare highlights att changes in green, yellow or red for new, changed and deleted functionality. You use the hop to next or hop to previous buttons to navigate.
When there are a lot of changes on one particular page, they are all highlighted in yellow. Again, the hop to next or previous buttons are used to show what was changed to my colleague.
Unfortunately, the current stage is not indicated in any way and the screen just shows the yellow stages that were changed. This makes it quite hard to explain where we are.
This is what it looks today:
Wouldn't it be nice if the current stage would be marked in some manner? Something as simple as this perhaps:
Happy coding! --------------- Paul Sweden
... View more
There are a few things that need to be improved in the studio just for development easiness. 1:- Studio look and feel must be improved. 2:- While connecting two stages in Blue prism there should be an option just to click so that they will connect by an arrow or by a mouse hover we can get that arrow. Like we used to get the option in VISIO or draw.io 3:- The developer should be able to resize all the stages by selecting on time. For example, all the stages must follow 4 squares or 6 squares then the Developer or user should be able to for one page at once. These are a few suggestions but there is a lot of room for improvement.
... View more
Currently when we have system upgrades & downtime we have to remember to retire our processes so that they don't try to run whilst those systems are unavailable. It would be handy as we often know in advance when these system downtimes are - and they are usually out of hours so we sometimes retire a process a few hours before downtime is set to begin missing out on time we could have used to process cases.
If we can add a timed retire onto the schedule. As in 'retire this process at.... and resume at....' so that it can run in time with these upgrades.
... View more
Currently renaming user roles in Blue Prism is only possible by mouse click. It should be possible to use Windows standard [F2]-key for renaming user role names (similar as it is already possible in Studio with folder/group names). This will also come handy when automating Blue Prism application (as being official suggested since no API is available).
... View more
It would be great if there was a function to allow you to view what logging level each stage had, without having to click into each one separately (or work your way through the logs after testing). Was thinking something along the lines of a colour coding of the icons, maybe a small coloured dot in the corner, with a different colour for Enabled/Log Errors Only. Or maybe a report from the Debug menu, similar to the Validation page, which would show a list of all stages and their respective Logging levels, which allowed you to change it from that screen.
... View more
Problem/Opportunity: Missed Components in Packages
This would be a job aid for deployment accuracy by tracking components as they are changed for inclusion in packages.
Blue Prism has a configuration option that prompts for Save Comment.
Add in the Save Prompt: Change ID
When creating packages if Save Comment/Change ID turned on prompt for Change ID and create a distinct list of components saved with the Change ID that can be dragged to the package.
This will help identify components as they are changed.
An extended suggestion would be to allow multiple Change IDs when creating a Package.
... View more
A better password reset mechanism is needed in case the user forgets the password of the BP login. I know there are other workarounds, BP support contact, etc but tool should be able to provide such reset options by using Email ID, Phone Number, Secret Questions, etc many other options are available in tools nowadays.
... View more
Currently, we can change the logging for all stages in a process by choosing one of the three options, disabled, enabled or errors only.
It would be great if we can have one more option which is changing all log according to best practices and recommendations. This option can be disabling what needs to be disabled, setting errors only for what needs to be that way and leaving all decision and choice stages enabled. Simply an option that can be used before releasing to production as usually a lot of things enabled while developing which makes the currently available 3 options important but they still require manual work to change the logging for specific stages. In a big process this can be a problem since not noticing some stages can be possible.
... View more
Hi at the moment anything you do in BluePrism you are connected direkt via AppServer to the Database. So you always have a kind of live connection for everything you do. That makes BluePrism kind of slow in Studio. It would be great in Studio to have the option with database and without database. If the developer is done it just needs a button like publish to database and everything is okay. During development he should have the option as well to save under C:\Temp for example. Later with the publish function process is saved in database. Be aware iam just talking about Development Enviorment.
... View more
The decipher application server requires a number of the services to be started in a specific order to operate correctly. Currently there ordering is not enforced by the service dependencies. Can this be included going forward to make it easier to restart the application servers.
... View more
We are using Decipher v2.2 in our environment and enabled SAML.
As part of security policy, we deleted "admin" and "generaluser" and tested the environment.
BP Decipher:
Deleting the default user “admin” and “generaluser” impacting the functionality of the application.
To enable the SAML Authentication to have AD User login requires to enter master SSO user – admin and its password. (if we delete default admin user – we need to give a alternate user detail which has Admin Role)
Same way config files in the Decipher Automated Clients requires “generaluser” details to be entered for performing Decipher task.
After deleting the “admin” and “generaluser” in DEV, Decipher functionality got impacted
... View more
Getting resource status is bit difficult and we are looking for other third party applications to get the resource status like Solaria Application. It would be good and great to run process on available resource, if we have Utility in built under Blue Prism Application itself like Environment locking. So that, we can just call the utility object by passing Resource name and getting the status of the resource. Hoping others also looking for such functionality in Blue Prism Application. Regards, Mohammad Naveed Sr. RPA Developer
... View more
Hi,
there is a client requirements that some fields should be repeated on several Interact form pages. At this moment we have to create such fields for each page which is not very convenient and well managed way of fulfilling such a request.
The requirement is to be able to define a global field which can be shared throughout all the pages in the form but it is just one automation id.
Regards
Zdenek
... View more
During a presentation of the ROM2, the importance of good process construction, proper testing and continuous service improvements was frequently highlighted without going into the detail of how this was achieved.
Thus, when developing BluePrism processes, it is critical to invest in increasing process quality and an efficient testing process in terms of both cost and time investment.
When it comes to process development, there are a number of important factors to consider. One of the most important factors is process quality. This refers to the extent to which the process meets the specified requirements and has the ability to function safely and reliably. Another important factor is process complexity. The more complex the process, the more chance of errors and problems and the more difficult to test. When complexity increases the possibility for introducing errors and the difficulty to test escalates. It is important to reduce implementation complexity by choosing simple workflows, using business logic and reducing redundant actions. A general rule adopted is that the more paths through a piece of code, the more complex it is.
To my opinion, BluePrism implementations also have cyclomatic complexity that depend on the size and complexity of the processes, sub-processes and object actions and the amount of decision points in these components. A BluePrism implementation with high cyclomatic complexity can lead to problems such as poor performance, higher costs and errors. That is why It is important to reduce cyclomatic complexity to ensure the quality of the implementation. Several scientific papers have shown that there is a positive correlation between cyclomatic complexity and the probability of errors in software programs (e.g., Jones, 1986). Another study has shown that reduced cyclomatic complexity contributes to improved readability, maintainability and testability of software programs (e.g., McCabe, 1976). Cyclomatic complexity is a also an important factor in the quality of a BluePrism RPA implementation. Reducing complexity can prevent problems and ensure the quality of the implementation.
Cyclomatic complexity could be an indicator of the quality of BluePrism process / object implementations. This indicator aims to measure and quantify the complexity of a process. The higher the cyclomatic complexity, the more difficult it is to understand and maintain the process. McCabe's Cyclomatic Complexity can also identify the points that generate the complexity. These points are also called "cyclomatic paths" and can be found by analyzing the graphical representation. Each decision point (decision stage, choice stage, loops, etc.) potentially generates a new cyclomatic path, increasing the complexity of the flow in the process and/or object. By identifying these cyclomatic paths, the flow can be optimized to reduce complexity and improve readability and maintainability.
Some studies that can help in this regard are the following:
"Cyclomatic Complexity and Software Maintenance" by Thomas J. McCabe - This 1976 article introduced cyclomatic complexity as a measure of software complexity.
"An Empirical Study of the Relationship Between Cyclomatic Complexity and Software Maintenance" by Jaroslav Pokorný and Petr Baudiš - This 2014 article presents a study examining the relationship between cyclomatic complexity and software maintenance.
"An Efficient Algorithm for Computing Cyclomatic Complexity of Programs in java" by Surya Narayan Sharma and Suresh Kumar - This 2017 article describes an efficient algorithm for computing the cyclomatic complexity of Java programs.
In addition to cyclomatic complexity, there are other measurable factors that can affect the quality of BluePrism RPA implementations.
Some important factors are:
Duplication in processes and objects: When a piece of implementation is used in multiple places, it can lead to problems in maintaining and extending processes and/or objects. Duplication should therefore be minimized.
Test coverage: To ensure that the BluePrism RPA implementation works properly, it is important to write tests that cover all functionality of the process/object flows. The more tests that are written, the better the quality of the implementation. Test coverage is the extent to which a test suite covers all possible paths in the process /object under test. A cyclomatic path is a sequence of steps through a process /object flow that touch each logical path or decision point in the program once. To determine test coverage based on the given test suite and cyclomatic paths, each path in the test suite must be analyzed to determine if it corresponds to a cyclomatic path. If a given cyclomatic path is not covered by the test suite, more test cases must be added to the suite to cover the path. Test coverage can then be calculated as the percentage of all possible cyclomatic paths in the program that are covered by the test suite. The ultimate goal is to achieve high test coverage so that there is sufficient assurance that the software program is functioning correctly and meeting customer expectations. So if we know the cyclomatic paths of a process/object, we can derive a desired dataset that maximizes test coverage. This dataset is often referred to as a "test suite." The purpose of a test suite is to ensure that each test performed contributes to testing a unique path in the flows. The process of deriving a test suite is quite cumbersome and can be done manually or automated. It involves going through each path in the flow and identifying the requirements for the inputs of each function and each condition to be considered. This requires in-depth knowledge of the flows in the process/object and the ability to identify "corner cases" that may lead to errors in the flows. In addition to manually deriving a test suite, tools can also be used to automate the testing process. These tools could take the cyclomatic complexity of the flow as input and generate the test cases that test each line and branch of the flow. This results in a test suite that comprehensively tests the flows and would provide maximum coverage. In short, knowing the cyclomatic paths of a process/object can lead to deriving a test suite that maximises test coverage. This can be done manually, but should also be possible with tools to automate the process. The purpose of a test suite is to ensure that each test performed contributes to testing a unique path in the flows, which is important to ensure software quality.
Readability: A good implementation is easy to understand, even for people who are not directly involved. Readability can be improved by using meaningful variable names and clear process/object formatting.
Process testing does not stop at one test. It is important to conduct regular regression testing to ensure that any changes to the process and environment do not have unexpected side effects. Test suites with associated test data that ensure high coverage can be used to detect regressions in advance. This also helps to detect any errors and problems quickly and efficiently.
There is also the continuous service improvement component which is an important aspect of process development. This means that continuous improvements are made to increase efficiency and improve quality. This is achieved by constantly monitoring the performance of the process and addressing problems immediately. Efficiency is essential in process testing. Efficiency means using minimal time and resources to complete the testing process without compromising the quality of the tests. By having proper test suites, test coverage, regression testing and continuous improvement, you can ensure that the processes and objects are of high quality and tested efficiently.
It is important to consider these factors when designing and implementing BluePrism processes and/or objects. Scientific articles that offer more information on these topics include "The Relationship Between Cyclomatic Complexity Metrics and Software Quality: A Controlled Experiment" by D.R. Kuhn and "Agile vs Traditional Methods: A Meta-Analysis of The State of The Art" by A. Subramanian et al.
Perhaps a study topic for a graduate student to measure the quality of BluePrism processes and objects?
... View more
We are getting more and more HEIC files and CV doesnt' have the capability to open this files or allows the option to open in the native app. We need CV to open HEIC files to eliminate the need to add another extension and/or open the files outside of CV.
... View more
My suggestion is to add an AutomateC command to enable or disable a specified existing schedule. This capability would greatly expand the flexibility of the Blue Prism scheduler.
Currently we have processes that have to be scheduled to run once (or more) every day, mostly just to determine that they don't need to do anything on that day. These superfluous runs create noise in the control room, extra logs, and potentially cause other processes to not run because all licenses are in use at that moment. For example, we have a process that needs to run every 30 minutes but only on one or two specific days of the month. The only way to do this currently (using just the BP scheduler) is to schedule it to run every 30 minutes every day, and either add logic so the process can determine that it shouldn't do anything most of the time or manually disable it for most of the month and manually enable it on the days when it should run.
With the proposed enable/disable AutomateC capability, we could maintain a file (Excel workbook?) containing a list of schedules. Each schedule in the file would have a business day or calendar day of the month and whether the schedule should be enabled or disabled on that date. A BP process would run early every morning and process this file. The BP process can determine the current business day and calendar day and enable/disable schedules accordingly. This would enable more efficient scheduling for processes that only run quarterly, monthly, bi-monthly, or on specific days (whether calendar days or business days).
... View more