Why You Need to Start Using Coded Automation Today 🤞

In the ever-evolving landscape of Robotic Process Automation (RPA), UiPath has earned its reputation as a user-friendly platform with a drag-and-drop interface that simplifies workflow building. With this intuitive approach, we as developers at various levels have found it easier than ever to automate tasks and streamline processes. However, the platform allows developers to code only at the functional level within the Object-Oriented Programming (OOP) hierarchy.

UiPath's latest game-changing feature, "Coded Automation," is set to redefine the boundaries taking the automation customization to a whole new level by enabling developers to dive into the class level. This opens up a world of endless possibilities, equipping developers with numerous coding advantages to tackle complex automation challenges with finesse.

In this blog post, we'll take a look at why you should start using coded automation today. We'll discuss the benefits of coded automation, and we'll show you how to get started.


Before we dive into the world of coded automation, I highly recommend exploring one of the finest kick-starter tutorials available. This comprehensive guide covers essential topics such as pre-requisites, studio setup, and practical tips on how and where to begin your coded automation journey. You can find the tutorial UiPath Coded Automation by Satish Prasad


1. Business Objects


The beauty of Object-Oriented Programming (OOP) lies in its ability to leverage classes and methods/functions using objects, providing a powerful and organized approach to software development. As UiPath is built on top of the robust .NET framework, it inherently inherits the rich OOP capabilities. However, until now, accessing these capabilities was restricted to the function level within the UiPath Studio.

OOPS Hierarchy, UiPath nmnithinkrishna
UiPath's Accessibility in OOPS Hierarchy

To tap into classes above the function level, developers often had to resort to .NET tools like Visual Studio, creating dynamic-link libraries (DLLs), and then referencing them in the automation project. This process introduced complexities and dependencies, making it less seamless for developers seeking to harness the full potential of OOP within UiPath.

However, with the introduction of "Coded Automation," the paradigm is shifting. This groundbreaking feature is poised to redefine the accessibility of OOP capabilities in UiPath, elevating automation to new heights by providing developers access to the class level as well. Say goodbye to cumbersome workarounds and embrace a world of endless possibilities as Coded Automation opens up new horizons for automation customization and unleashes the true power of OOP within UiPath.



Create Custom Classes using the "Code Source File"

When building an automation workflow, we use variables, arguments, config resources, UI element repositories, etc., all of which belong to an object in one way or another. Now, we can create a custom class that can be utilized for various purposes, where we will use objects to reference and access its properties and methods. This approach will exponentially reduce the number of variables we need to deal with, as we will have a single concealed object that contains all the information required for a transaction.

To illustrate, let's consider an example.

In the previous blog, we explored a process module for extracting data using UiPath's document understanding ML models. This module efficiently extracted a significant number of fields from an invoice. Now, instead of storing all this data into individual variables, we aim to structure and streamline it with a single point of contact.

UiPath Coded Automation BO by nmnithinkrishna

Custom Class with UiPath Coded Automation

Now, let's explore how to access this custom class in the typical sequence of UiPath Studio. As you can see, it's similar to how we browse and choose a type for the variable. Additionally, we can observe the accessibility of the properties we created in the custom class source file.

UiPath Coded Automation BO nmnithinkrishna

Access UiPath BO from a Custom Code Source File

This enables the super hybrid approach to mingle the high code source files with the low code workflows and vice versa. Let's dig little deep down to see how far the class can be customized and leverage some more operations inside the props and functions like to modify the invoice number, make something only read-only in the program, a function to perform some common operation with the invoice data.

Customized Class with UiPath by nmnithinkrishna

Enhanced Custom Class using Coded Automation

The real benefits of custom class objects include reduced resource usage, enhanced reusability, scalability, ease of serialization and deserialization, and automatic reflection of changes across all references.



2. Workflow as Source Code


Even though the drag-and-drop feature is a highly beneficial and commendable aspect of UiPath, as developers, we sometimes require coding flexibility, particularly to address scenarios involving complex business logic calculations, invoking custom .NET libraries, adopting a more dynamic approach with activities, and various other advanced use cases.

Coded Automation opens the gate to another amazing feature where workflows built using drag-and-drop functionality can now also be constructed in a code-oriented manner.

UiPath Workflow as a Code nmnithinkrishna

UiPath Workflow as a Code

Now, this creates a source file with a template to build a workflow. We can add our code to construct the workflow, where we aim to perform two operations:

  • Get an asset from the queue
  • Add item to queue with some specific data fields 

UiPath_WorkflowAsCode_nmnithinkrishna

Workflow Activities as a Code

Now, we can enhance the code to accept data and print it with a log. The specific content shown above represents a conventional approach we follow with visual activity design. However, we need to observe how streamlined it becomes when we use coded automation. To achieve this, we will combine the Business Objects seen above to witness how robust and dynamic this approach is going to be.

UiPath Workflow As Code nmnithinkrishna

BO + Workflow : Hybrid Approach

This proves that leveraging code into workflows through various means, such as custom objects and activity methods, results in increased flexibility, clean code, and dynamic behavior.



3. Test Workflow as Code


There is an additional feature that makes testing more versatile with the coded approach. Let's explore how we can create a coded test workflow as well.

Test workflow as code in UiPath by nmnithinkrishna

Test workflow as Code

This time, we will focus on UI Automation activities as we have already covered the system activities above. We will test if the login functionality of ACME works fine with the elements already captured in the UI Object Repository. The UiPath Coded Workflows namespace contains activities related to system, UI Automation, and testing.

UiPath Test case as code by nmnithinkrishna

Test case workflow as code

The workflow code is designed to facilitate an automated test case, verifying the success of the ACME login process.



Notable Advantages of Coded Automation


  • Class Level Access with Inheritance: Coded automation grants developers the ability to access classes at the inheritance level, providing unparalleled flexibility in implementing design patterns. This unleashes the potential for creating sophisticated and robust automation architectures.
  • Asynchronous Programming with Workflows: Asynchronous programming, once limited to traditional approach, is now achievable with workflows as well. This empowers developers to create responsive and non-blocking automation solutions, enhancing overall performance and user experience.
  • Leveraging the Power of OOPs within UiPath Studio: With coded automation, developers can harness the full power of Object-Oriented Programming (OOPs) directly within the UiPath Studio IDE. This seamless integration allows for efficient manipulation of objects, encapsulation, and code reuse, elevating automation development to a whole new level.
  • Hybrid Approach: The synergy of drag-and-drop interface with coded automation allows for seamless interoperability between both low code and high code methods, providing developers with even more versatility and options in building automation solutions.

In conclusion, coded automation stands as a revolutionary game-changer in the realm of Robotic Process Automation (RPA) and beyond. With its ability to seamlessly integrate high-code customization with UiPath's drag-and-drop interface, developers now have an unprecedented set of tools at their disposal. By adopting coded automation today, businesses and developers can unlock a new era of efficiency, scalability, and performance. Embracing this cutting-edge approach enables faster development, streamlined workflows, and the ability to tackle complex automation challenges with finesse. Moreover, the hybrid approach, where drag-and-drop and coded automation coexist harmoniously, further amplifies the potential for innovation and opens the doors to endless possibilities.

As we move towards a future of automation-driven processes, the choice to embrace coded automation becomes more than a preference; it becomes a strategic advantage in an ever-evolving landscape. So, harness the power of coded automation today, and propel your automation journey towards unparalleled efficiency, increased productivity, and boundless success. 🚀



For more details on coded automation: Guide | Github

If you wish to experience a live end-to-end use case with coded automation, I recommend exploring another exceptional video tutorial by Daniel O'Connor.



Make sure to follow UiPath's official channels to stay updated on the latest news, releases, and events. Subscribe to our blog, follow our social media accounts, and join our community forum to be part of the conversation and connect with like-minded individuals. Stay ahead of the game and keep learning with UiPath!

No comments:

Post a Comment

Let me hear you 🙌✨

2023 Copyright : nmnithinkrishna.me