Empowering robotic process automation with a bot development framework
Many organizations across the globe are leveraging robotic process automation to increase their operational efficiency and are at various stages in their journey.
Most of them are aiming to expand RPA internally. But scaling RPA and making it an organization-wide success is a big challenge for any organization. It calls for machinery which simplifies and accelerates bot production while also maintaining the standards and guidelines defined by the Center of Excellence.
This article is focused on creating a bot development framework which addresses the bot development challenges and accelerates bot velocity.
Bot development framework – A reusable template to develop bots
The bot development framework is a methodology, which standardizes bot development throughout the organization. It is a template or skeleton providing generic functionality and can be selectively changed by additional user-written code. It adheres to the design and development guidelines defined by the Center of Excellence (CoE), performs testing, and provides application access.
This speeds up the development process and makes it simple and convenient enough for business units to create bots with no or minimum help from RPA team. It helps saving time in development, testing, building, deploying and execution.
Building an ideal bot development framework involves the following steps:
1. Choose the studio layout which gives maximum flexibility even for complex processes In any bot studio, there are primarily three types of layouts available – linear, flowchart and hybrid. Use a hybrid layout instead of linear or flowchart in the bot studio. This addresses the complex process flows while allowing independent flowcharts to be accommodated within the master layout. This layout should not only provide navigation but also decision making. It should provide cleaner routes for various circumstances and composed of various states.
2. Define frequently changing variables in a central configuration fileCommon data such as application URLs, orchestrator queue names, maximum retry numbers, timeout values, asset names, etc. are prone to updates frequently. It is recommended to create a “configuration file” to store these data in a centralized location. This will increase process efficiency by saving the time needed to access multiple applications. It should also have pre-defined webpages with business logic defining how to launch/terminate the application and steps to be performed in it.
3. Build the credential manager for smooth logging-in of bots developed while maintaining securityFor bots to access multiple applications, it is important that they have easy access to credentials while maintaining their security. To facilitate this smooth logging-in, the framework should have a credential manager, which serves as a secure and centralized credential repository.
Only a credential management admin, with a master key to the credential manager, should be allowed to create credentials in the form of credential keys. These credentials should be encrypted using industry standard FIPS 140-2 approved cryptographic module with AES-256-bit encryption and can be accessed by authorized and authenticated users only.
4. Defining and standardizing process execution steps for botsAt a macro level, the bot should go through 4 states – initiate state, get transaction data state, process transaction state and end process state (in the same order). Within these states use below recommendations to improve bot execution efficiency and reduce exceptions:
- Open configuration file & required applications at the initiate state itself
- Use ‘wait stage’ (introduce short time delays) after any step that causes a delay in screen update. It not only absorbs any latency in the process but also makes it fast.
- Terminate all queue items either with the status ‘completed’ or ‘exception’
- Retry ‘network timeout’ exceptions as per the limit defined in the configuration file before sending it for exception handling
5. The framework should have robust exception handling and application recovery mechanismHaving a robust exception handling mechanism and transaction retry scheme is the backbone of efficiency of this framework. Categorize and capture exceptions as either application exception or business exception. In case of application exception, define the maximum number of retries whereas business exceptions should not be retried.
On top of saving the textual log message of the error, it is also useful to take a screenshot of the triggered exception in order to better understand it.
6. Defining logging parameters for every relevant stepLog messages should describe the nature and scope of current state clearly. The framework should have log message templates for each state. It is recommended to perform logging –
- At the beginning/end of every workflow
- When data is coming in from external sources
- When an exception is caught at the highest level
- When a transaction is successfully processed/failed
- Each time an application initialization is retried
- While opening/closing an application, killing a process
- While capturing and saving exception screenshots
Benefits of the bot development frameworkWith a robust bot development framework in place, enterprises’ RPA Centers of Excellence can realize major benefits such as:
Time-saving: Saves development, testing, and deployment time by 30% by removing the need to develop the bot from scratch.
Simplicity: For a bot development framework to enhance bot velocity, it should be user-friendly and simple enough even for non-RPA resources. The framework achieves this by simplifying heavy and complex bot designing.
Reusability: It allows for easy plug & play of varied applications and data sources with the bot as per the process requirement.
Ease of operations: Since all the bots designed in an organization follow the same protocols and guidelines, it becomes easier for an operations team to maintain, troubleshoot, reconfigure or reuse bots.