Question regarding designdecisions

Hi all!
I am trying to look into, how different ways of structuring/designing processes in Studio have effect on the performance, stability, speed ect. As a part of a project.

For the moment I was considering looking into the record feature and how well that performs and the use of libraries instead of the already given activities.
But I am kinda stuck, do you think there will be any differences? Or would you have ideas to, how to make the different designdecisions and their effect visible?

I have looked into best practice and so on, but there’s so many different ways to structure processes, I find I hard to figure out, what would be best to look into.

Thank you in advance. :slight_smile:

1 Like

Hi @Freja_Christensen

Some key factors to consider:

  1. Process Complexity:
  • Performance: The complexity of your automation process can affect its performance. Complex processes with many decision points or intricate logic can take longer to execute.
  • Stability: Complex processes may introduce more points of failure, making the automation less stable. Debugging and maintenance can also become more challenging.
  1. Modularity:
  • Performance: Breaking down your automation into smaller, reusable modules can enhance performance. You can reuse modules in different parts of the process, reducing redundancy.
  • Stability: Modularity can improve stability as well. Changes or updates can be made to individual modules without affecting the entire process, reducing the risk of unintended consequences.
  1. Error Handling:
  • Performance: Effective error handling can improve performance by gracefully recovering from issues without causing the automation to fail entirely. However, excessive error handling logic can also slow down the process.
  • Stability: Proper error handling can make the automation more stable by addressing and logging errors when they occur.
  1. Resource Utilization:
  • Performance: Be mindful of the resources your automation consumes, such as CPU and memory. Heavy resource usage can slow down your computer or cause other processes to suffer.
  • Stability: Poorly managed resource utilization can lead to instability, crashes, or conflicts with other applications running on the same machine.
  1. Data Handling:
  • Performance: Efficient data handling can significantly impact performance. Minimize data transfers between applications and use optimized data structures.
  • Stability: Carefully validate and handle data to prevent unexpected issues. Incorrect data handling can lead to errors and instability.
  1. Parallel Processing:
  • Performance: Some RPA platforms support parallel execution of tasks. Leveraging parallel processing can improve speed and performance for certain tasks.
  • Stability: Be cautious when implementing parallelism, as it can introduce synchronization issues and conflicts if not managed correctly.
  1. Testing and Debugging:
  • Performance: Extensive testing and debugging can improve the overall quality of your automation, ensuring it runs smoothly.
  • Stability: Rigorous testing can catch issues before they impact stability, making your automation more reliable.
  1. Optimizing Wait Times:
  • Performance: Excessive wait times in your automation can slow it down. Optimize the use of “wait” activities to minimize idle time.
  • Stability: Ensure that wait times are appropriate to prevent timing-related issues.
  1. Regular Updates and Maintenance:
  • Stability: Regularly update and maintain your automation processes to address any changes in the underlying systems or applications. This will help maintain stability over time.
  1. Logging and Monitoring:
  • Stability: Implement robust logging and monitoring to track the execution of your processes. This can help in diagnosing and resolving issues.

Cheers…!

@Freja_Christensen

Record feature helps in speeding up…and so that the libraries…some good things are say …you are working on some application then building a library is better because next time you use the same application you can use the library instead of building again

Similarly…while building cans atrt with using recorder and then do exita to it as needed…this way you get a skeleton and we can build on top

And coming to framework already ref is one suited for most if the transactional ones and similarly depending on type of process multiple are present

Cheers

Performancewise, there most likely wouldn’t be a difference (unless your project is huuuge and you build it in one workflow, Studio might have issues processing the file). But for debugging, testing and later updating the project, you’ll have easier time if you structure the project in multiple workflows that you can test individually. (Look into Unit testing, in case it’s a new concept)

Libraries are useful if you have a components that later projects might use too. Then you don’t need to build it again or copy-paste, and in case you need to fix issues, you only need to do it in one place.

Let’s go one by one

Record feature can be a quick and easy way to create new automations, but it is important to note that recorded automations can sometimes be inefficient and slow. This is because the Record feature simply records the actions that you perform on your screen, without any optimization.
So manjal correction might be required to make the recorded actions to work better

If you are using the Record feature, it is a good idea to review the recorded automation and make any necessary optimizations. For example, you can look for opportunities to combine steps, remove unnecessary steps, and use more efficient activities.

Libraries can be a great way to reuse common functionality in your automations. For example, you can create a library of activities for performing common tasks such as logging into websites, clicking buttons, and extracting data from tables.

However, it is important to choose libraries that are well-designed and efficient. Libraries that are poorly designed or inefficient can actually slow down your automations.

To measure the effect of using libraries on performance, you can use the UiPath Studio Profiler. The Profiler can be used to track the execution time of individual activities and workflows. This information can help you to identify any libraries that are slowing down your automations.

Other design decisions that can affect performance, stability, and speed:

Use the right activities for the job.

There are a variety of activities available in UiPath Studio, each with its own strengths and weaknesses. Choose the activities that are most efficient and effective for the task at hand.

Avoid unnecessary complexity.

Processes that are too complex can be more difficult to troubleshoot and maintain. Break down complex tasks into smaller, more manageable steps.

Optimize your workflows.

Once you have created a workflow, take some time to optimize it for performance. This may involve things like caching data, using parallel execution, and avoiding unnecessary loops.

Test your processes thoroughly.

Before deploying your processes to production, be sure to test them thoroughly under a variety of conditions. This will help to identify and fix any potential performance issues.

Hope this clarifies

Have a view on this best design practices

https://www.uipath.com/community-blog/developer-interviews/uipath-automation-coding-best-practices

Cheers @Freja_Christensen