Add BCB module
In some cases, designing a project requires an approach different from what Simple 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
Build SDLC with ODF 2
SDLC principles
Combine desktop RPA approaches
Goal
Configure AI Agent
A crucial aspect of installation and further support is implementing an AI Agent so that you can change any setting outside of the implementation code without recompiling, updating, or re-deploying your AI Agent. Typically, this is achieved by making your configuration external to the source code.
Connect to external database
The ODF 2 provides the built-in ORM layer and comes with OrmLite as the default ORM framework used primarily to access Data Store data.
Create Bot Task
Before getting into details, let's take a quick look at a simple Bot Task within 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 with Maven
After creating an ODF 2 project from the Simple 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 example project'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 ODF 2 Simple Archetype project structure
The article dwells on the structure of a project created from the ODF 2 Simple Archetype. For more details on creating a new project, see Start Maven project.
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.
Generate ODF 2 project
Maven archetypes are templates that let you quickly generate projects from a predefined set of core files. The guide describes how to use the ODF 2 Simple Archetype to generate a new project.
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
ODF 2 provides a standardized extensible Data Model for all AI Agent implementations. The model includes a set of tables with dynamic, convention-based names that enable ETL (extract, transform, load) processes to manage data consistently. All predefined columns in these tables are automatically processed by WorkFusion Analytics.
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
Import Asset Bundle via Control Tower UI
With the Asset Bundle import feature, everything required for a Business Process (BP) delivery is now conveniently wrapped in a self-sufficient package, which can be ported to a target environment in few simple steps. The import mechanism supports large files and is less error-prone than traditional methods. Successful import is asynchronous—meaning fast—and verified by a checksum. This accelerates BP delivery, decreases the total cost of development, and eventually contributes to continuous integration.
Install ODF 2 dependencies on-premises
View 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:
Learn SDLC basics
Consider the following three patterns of how to build Software Development Life Cycle (SDLC) for WorkFusion deliveries based on the complexity of automation solutions.
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 AI Agent exchange data. The section provides a reference on how to organize your Data Model through AI Agent automation.
Manage isolated third-party dependencies
Work.AI offers the 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
ODF 1 is not supported in Work.AI v10.3, and you are encouraged to fully transition to ODF 2. For the ODF documentation, refer to the v10.2.9 user guide.
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. The instruction describes the ODF 2 built-in API to prepare and process data for multi-document Manual Tasks.
Object cache
Cache concept
OCR
The article dwells on the obsolete approach of OCR usage in the scope of the ODF 2 framework.
ODF 2
ODF 1 is not supported in Work.AI v10.3, and you are encouraged to fully transition to ODF 2. For the ODF documentation, refer to the v10.2.9 user guide.
Orchestrate AI Agent
The instruction describes running, stopping, and scheduling Business Processes based on the ODF 2 example project.
Package AI Agent Asset Bundle
The article describes an AI Agent Asset Bundle. For details on the structure of an AI Agent Variation Asset Bundle, refer to Package assets into AI Agent Variation Asset Bundle.
Package AI Agent Variation Asset Bundle
The article describes an AI Agent Variation Asset Bundle.
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
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.
Retry failed Transactions
To use the ODF 2 framework more conveniently, you can apply the following techniques when working with transactional tasks and retrying failed Transactions.
Review example project
The ODF 2 example project is created to demonstrate key features of the framework. It contains four simple Business Processes that operate on a mock data model. While functional, these processes do not perform anything practically useful.
Run integration tests with Spoke
Spoke is a tool for end-to-end Business Process testing. It provides fluent APIs for a developer to achieve typical testing goals. The framework is built on the JUnit 5 + AssertJ ecosystem, but the core module does not depend on it and can be used as a pure Java library.
Secrets Vault
ODF 2 provides SecretsVaultService to isolate operations with Secrets Vault.
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 and joining them back. This is usually done to process some data from the original Transaction in parallel.
Troubleshoot AI Agent issues
Blocking and non-blocking exception handling
Use Apache HttpClient
The instruction contains the best practices of the Apache HttpClient usage in the ODF 2 framework scope.
Use Maven plugins
To facilitate the interaction with a Control Tower instance, a set of Maven plugins support the ODF 2 framework. The page describes working with these plugins.
Use migration templates
For Data Model management, the ODF 2 framework provides an integrated migration mechanism based on Liquibase.
Use OCR Bridge step
The article is an example of the OCR Bridge step usage in the scope of the ODF 2 framework. The Bot Tasks used in the example are a part of Processing Business Process from the example project.
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 AI Agent version means that your Work.AI platform environment ends up having many Data Store instances.
View compatibility matrix
The ODF team releases a new ODF 2 framework version for each Work.AI platform 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:
Workspace
ODF 2 provides WorkspaceClientService to retrieve a page with assignment information, such as the link and status.
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 and/or for executing tests in a CI/CD pipeline.
Write unit tests in ODF 2
ODF 2 provides JUnit 5 (Jupiter), Mockito, and AssertJ libraries to develop Java unit tests.