Add BCB module
In some cases, designing a project requires an approach different from what Full Archetype suggests. For example, you want to automate the user interface (UI) in your internal applications via RPA bots. At the same time, you'd like to keep each RPA automation in a separate Maven module and check in each module into a separate Git repository so that you can grant Git access and share specific RPA application automations with specific teams, enabling them to reuse your code and contribute.
Adopt ODF 2
Assuming you are a part of a successful team given the time, resources, and tools to build and ship enterprise-grade software building standards, focusing on quality.
Apply BEP practices
With the introduction of the BEP execution platform:
Apply Feather modules
Inversion of control and dependency injection
Apply versioning
Explore problem context
Architect multi-team ODF 2 projects
Problem definition
Combine desktop RPA approaches
Goal
Configure AI Agent
A crucial aspect of installation and further support is implementing a Use Case so that you can change any setting outside of the implementation code without recompiling, updating, or re-deploying your Use Case. Typically, this is achieved by making your configuration external to the source code.
Create Bot Task
Before getting into the details, let's take a quick overview how a simple Bot Task looks like in terms of the ODF 2 framework:
Debug Bot Task
ODF 2 doesn't add anything special to the existing ways of debugging Bot Tasks.
Deploy Asset Bundle
After creating an ODF 2 project from the Full Archetype, deploy it to a Control Tower instance.
Exclusive access with pool
Exclusive access concept
Explore Data Model
In the article, the standardized Data Store schema is understood as equivalent to the ODF 2 Full Archetype’s Data Store schema. With few exceptions, it utilizes concepts from Transaction and Multi-process layers of the ODF 2 architecture. If you do not use the Multi-process layer, you can ignore some entities, and this won't impact the framework integrity. In extreme scenarios, when even the Transaction layer is not used, the Data Store schema should be designed from scratch.
Explore multi-process AI Agent design
Data flow
Explore package module structure
What is assembly?
File storage
ODF 2 can work with Amazon S3-compatible file storages. Under the hood, it uses AWS Java SDK, though with a more convenient high-level API.
Full Archetype
The article dwells on the structure of a project created from the ODF 2 Full Archetype. For more details on creating a new project, see Start Maven project.
Generate ODF 2 project
Maven archetypes are templates enabling to create projects based on a set of core files quickly. The article contains information on the ODF 2 Full Archetype.
Get started as Automation Engineer
When you need to automate a scenario of high complexity, make your automation robust, and allow it to run unattended, you have to dive into Automation Engineering. Intelligent Automation Cloud Developer offers Automation Engineers a set of tools to write, test and deploy a code that can run on a server installation of Intelligent Automation Cloud Enterprise unattended.
Handle exceptions
As you probably know, if a Bot Task throws an exception, the platform stops the execution of the entire Business Process (BP). In most real-life scenarios, such behavior is unacceptable. Instead, you would usually react to the exception by retrying the attempt, asking a human operator to intervene, trying to proceed with other records, or using any combination of these strategies.
Implement Analytics for AI Agents
For Use Case implementation, ODF 2 employs a standardized extendable Data Model. The model features a list of tables with dynamically defined names and specified naming conventions, enabling ETL (extract, transform, load) procedures to manage data properly. All pre-defined columns in these tables are set to be processed by WorkFusion Analytics automatically.
Implement CI/CD with Git and Jenkins
The guide details how you can create three basic Jenkins jobs to implement a continuous integration and continuous delivery process. These jobs are as follows:
Implement Data Stores with ORMLite
ORMLite is a framework that provides lightweight Object Relational Mapping between Java classes and SQL databases. There are certainly more mature ORMs that provide this functionality, including **Hibernate** and **iBatis**. However, ORMLite is a simple yet powerful wrapper around the JDBC functions.
Implement RPA with PageObject
Sample PageObject implementation walkthrough
Install ODF 2 dependencies on-premises
Difference between ODF 2 and ODF in terms of installation
Learn framework core
Design concepts
Learn Java examples
There are two types of Java examples:
Manage Business Process execution
Records and Transactions
Manage Data Model with Liquibase
With ODF 2, we encourage you to use Data Stores as a universal and effective way to have different steps of Business Processes within your Use Case exchange data. The section provides a reference on how to organize your Data Model through Use Case automation.
Manage isolated third-party dependencies
In versions 10.1.7 and 10.2.4+, IA Cloud offers a new approach allowing smooth and flexible incorporation of user-defined Java libraries into BEP Workers. The approach enables the isolation of BCB classes from the application ones. If BCB classes use a library packaged together with the BCB, the BCB class loader loads the library classes from the BCB even if the Worker app contains the library as well.
Manual Task
The guide explains how to add a Manual Task to a Business Process based on ODF 2. When working with Manual Tasks, consider the following aspects:
Migrate from ODF to ODF 2
You don't need to migrate existing BPs from ODF to ODF2 if you haven't faced any ODF limitations impacting BP quality. The Product supports the execution of BPs created on both versions of ODF.
Migrate Use Cases to Control Tower
Intelligent Automation Cloud is Use Case centric. Control Tower users now have a new point of view to their automation
ML models
Model training
Multi-document Manual Task
A multi-document Manual Task enables automation for the cases when you process multiple documents as a part of a single transaction or in a batch, both manually and using machine learning. For more details about multi-document Manual Tasks, refer to Multi-document IE Manual Task.
Object cache
Cache concept
OCR
In ODF 2, there are two levels of API you can use to interact with the OCR service. The high-level API is a couple of Bot Tasks to submit documents and receive OCR results. It is the primary solution in most cases. When it is not enough, the low-level API is a service used to make calls directly to OCR.
ODF 2
Major technical concerns of Use Case delivery
Orchestrate AI Agent
The instruction describes running, stopping, and scheduling Business Processes based on the ODF 2 Full Archetype.
Perform automated testing
ODF 2 as a framework is designed to increase the quality of solutions. Testability is one of the main design goals.
Practice with Spoke tutorial
In order to quickstart with Spoke, watch this tutorial video and practice the creation of a basic Spoke test.
Predefined task types
There are some useful prepackaged task types not associated with any APIs. You can use them in the standard cross-process flow.
Run integration tests with Spoke
Secrets Vault
ODF 2 provides SecretsVaultService to isolate operations with Secrets Vault.
Set up AI Agent configuration wizard
Intelligent Automation Cloud provides a centralized place to configure Use Cases. The feature is optional, and you can still develop Use Cases as previously. For pre-packaged Use Cases, the requirement is to be distributed via the Solution Catalog and allow intuitive and effective configuration from a centralized location.
Simplify project
There are certain situations where the four-business-process design is an unwanted complication. In the case of simple PoC or an educational project, it can be time-saving to simplify a project generated from the ODF 2 Archetype.
Soft-stop Business Process
The monitor design assumes continuous managed loops generation during a scheduled period of time. For certain business needs, you may require to stop your Business Process (BP) immediately upon some trigger. Moreover, it is desired that the BP does not ruin transactions that already came out of the monitor's loop and are processed further.
Split and join Transactions
ODF 2 allows splitting a Transaction into multiple sub-transactions so that each resulting sub-transaction contains a single data entity derived from the data stored in the original Transaction. After that, such sub-transactions are processed the same way as common Transactions. At some point, you must join them back to the original one.
Troubleshoot AI Agent issues
Blocking and non-blocking exception handling
Use Maven plugins
To ease interaction with a Control Tower instance, a set of Maven plugins support the ODF 2 framework. The page describes working with these plugins.
Version AI Agent
Problem context
Version Data Model
You can version Data Stores that make your Data Model just like all other Assets of your project. However, increasing a Data Model version each time you release a new Use Case version means that your Intelligent Automation Cloud environment ends up having many Data Store instances.
View compatibility matrix
The ODF team releases a new ODF 2 framework version for each IA Cloud Enterprise release. See the version compatibility matrix in the table below.
Waiting for Transactions
A commonly encountered task in ODF 2 is waiting for the completion of all transactions in a given Business Process. There is no out-of-the-box solution that fits all use cases. For example, a Monitor Task often serves as the source of transactions, making it impossible to know when new ones appear. However, once all requirements are known, such a feature is quite easy to implement.
Work with Transactions
To illustrate how user Transactions are created and processed, let's simulate a simple scenario for a Business Process (BP) consisting of two Bot Tasks:
Write Bot Task JUnit tests
Bot Task JUnit is a JUnit 5 API for running and testing Bot Tasks. You can use it for running Tasks locally from an IDE of choice during development or for executing tests in a continuous integration and continuous delivery pipeline.
Write unit tests in ODF 2
ODF provides JUnit 5 (Jupiter), Mockito, and AssertJ libraries to develop Java unit tests.