Skip to content

A360-Tools/Toolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AA360 Toolbox

A comprehensive collection of Bot Commands for Automation Anywhere 360 (A360) that extends the platform's capabilities with 100+ specialized commands for data manipulation, file operations, string processing, and more.

Table of Contents

Overview

AA360 Toolbox is a professional-grade Bot Command package designed to enhance Automation Anywhere 360 workflows with powerful data manipulation and processing capabilities. Built with Java 11 and following AA360 Bot Command Development Standards, this package provides type-safe, well-tested commands that seamlessly integrate with your automation workflows.

Key Highlights:

  • 100+ bot commands across 10+ categories
  • Comprehensive test coverage with TestNG
  • Type-safe implementations with proper error handling
  • Consistent annotation patterns and naming conventions
  • Production-ready with extensive validation

Features

Core Capabilities

  • Date & Time Operations: Advanced date calculations, conversions, and manipulations
  • Data Structure Manipulation: Comprehensive operations for Lists, Dictionaries, Tables, and Records
  • File System Operations: File handling, path utilities, and content management
  • String Processing: Encoding, formatting, and transformation utilities
  • Number Operations: Mathematical calculations and number utilities
  • URL Handling: URL parsing, encoding, and query parameter extraction
  • Security: TOTP generation for two-factor authentication
  • HTML Processing: Table iteration and HTML manipulation

Command Types

Type Count Description
Actions 64 Data transformation and computation commands
Conditionals 13 Boolean condition checks for workflow logic
Properties 23 Data property extraction and formatting
Variables 9 Predefined constant values
Iterators 1 Custom iteration capabilities

Command Categories

Actions

Actions perform data transformations and computations, returning modified values.

Date/DateTime (10 commands) image
Command Description
CalculateDateTimeDuration Calculates duration between two datetime values
ConvertDateTimeToEpoch Converts datetime to Unix epoch timestamp
GetFirstDayOfMonth Gets the first day of the month for a given date
GetFirstDayOfYear Gets the first day of the year for a given date
GetLastDayOfMonth Gets the last day of the month for a given date
GetLastDayOfYear Gets the last day of the year for a given date
GetNextDayOfWeek Gets next occurrence of a specific day of the week
GetNextWorkDate Gets the next working day (excludes weekends)
GetPreviousDayOfWeek Gets previous occurrence of a specific day of the week
GetPreviousWorkDate Gets the previous working day (excludes weekends)
Dictionary (5 commands) image
Command Description
FindCommonKeys Finds keys that exist in both dictionaries
FindUncommonKeys Finds keys unique to each dictionary
GetKeysAsList Extracts all dictionary keys as a list
GetValuesAsList Extracts all dictionary values as a list
MergeDictionary Merges two dictionaries with conflict resolution
File (8 commands) image
Command Description
CombineFilePath Safely combines file path components
DecodeBase64ToFile Decodes Base64 string and writes to file
EncodeFileToBase64 Encodes file contents to Base64 string
GetAvailableDirectory Finds available directory name with number suffix
GetAvailableFile Finds available filename with number suffix
GetFilesWithExtensions Lists files matching specified extensions
GetSanitizedFileName Removes invalid characters from filename
GetTextFromFile Reads file contents with encoding support
List (11 commands) image
Command Description
AddItem Adds item to list at specified position
ChunkList Splits list into smaller chunks of specified size
DiffList Finds items in first list not in second list
FindCommonItems Finds items present in both lists
MergeList Combines two lists with duplicate handling
RemoveDuplicatesList Removes duplicate items from list
RemoveEmptyItemsList Removes empty/null items from list
ReverseList Reverses the order of list items
ShuffleList Randomly shuffles list items
SortList Sorts list in ascending or descending order
StripList Trims whitespace from all string items
Number (6 commands) image
Command Description
CalculateSumSubset Calculates sum of numbers in list within range
GetDecimalPart Extracts decimal portion of a number
GetIntegerPart Extracts integer portion of a number
GetMaxNumber Finds maximum number in a list
GetMinNumber Finds minimum number in a list
RoundNumber Rounds number to specified decimal places
Record (2 commands) image
Command Description
SetRecord Creates or updates record with field values
UpdateCell Updates a specific cell value in a record
String (3 commands) image
Command Description
ChangeCase Converts text to uppercase, lowercase, or title case
PadText Pads text with characters to specified length
ReplaceTemplate Replaces placeholders in template with dictionary values
Table (16 commands) image
Command Description
AddColumn Adds a new column to table with default values
ConvertColumnToList Extracts table column as a list
ConvertHeaderToList Extracts table headers as a list
ConvertTableToDictionary Converts two-column table to dictionary
ConvertTableToHTML Converts table to HTML table markup
NormalizeHeaders Normalizes table headers (removes special chars, etc.)
RemoveEmptyColumns Removes columns where all cells are empty
RemoveEmptyRows Removes rows where all cells are empty
ReverseTableRows Reverses the order of table rows
SetRowAsHeader Promotes a data row to become table headers
SetTableSchema Sets or updates table schema/headers
SliceColumns Extracts subset of columns from table
SliceTable Extracts subset of rows from table
TrimHeaders Trims whitespace from all header names
UpdateCell Updates a specific cell value in table
URL (2 commands) image
Command Description
BuildURL Constructs URL from components with proper encoding
GetQueryParameters Parses URL query parameters to dictionary
Regex (1 command) image
Command Description
MatchRegex Matches text against regex pattern with group extraction
Security (1 command) image
Command Description
GenerateTOTP Generates Time-based One-Time Password (TOTP)

Conditionals

Conditionals check conditions and return boolean values for workflow branching.

File Conditionals (2 commands)
Command Description
HasFileWithExtension Checks if directory contains files with extension
IsFileWritable Checks if file is writable
Record Conditionals (5 commands)
Command Description
HasRecordHeader Checks if record has specified header
IsRecordBlank Checks if all cell values are empty or whitespace-only
IsRecordEmpty Checks if all cell values are empty/null
IsRecordSchemaBlank Checks if all schema headers are blank
IsRecordSchemaEmpty Checks if record has no schema headers
String Conditionals (2 commands)
Command Description
StringBeginsWith Checks if string starts with prefix
StringEndsWith Checks if string ends with suffix
Table Conditionals (4 commands)
Command Description
HasTableColumns Checks if table has all specified columns
HasTableHeader Checks if table has a header schema
IsTableSchemaBlank Checks if all table headers are blank
IsTableSchemaEmpty Checks if table has no headers

Properties

Properties extract or transform data properties, typically used for data formatting.

CSV Properties (2 commands)
Command Description
EscapeCSV Escapes string for CSV format
UnescapeCSV Unescapes CSV-formatted string
File Properties (4 commands)
Command Description
GetFileExtension Extracts file extension from path
GetFileNameWithExtension Extracts filename with extension from path
GetFileNameWithoutExtension Extracts filename without extension from path
GetParentFile Gets parent directory from file path
HTML Properties (2 commands)
Command Description
EscapeHTML Escapes string for HTML entity encoding
UnescapeHTML Unescapes HTML entities to plain text
JSON Properties (2 commands)
Command Description
EscapeJSON Escapes string for JSON format
UnescapeJSON Unescapes JSON-encoded string
String Properties (7 commands)
Command Description
Base64Decode Decodes Base64 string to plain text
Base64Encode Encodes string to Base64 format
NormalizeSpace Normalizes whitespace in string
Strip Removes leading and trailing whitespace
StripLeading Removes leading whitespace
StripLeadingZeroes Removes leading zeros from numeric string
StripTrailing Removes trailing whitespace
URL Properties (4 commands)
Command Description
DecodeURL Decodes URL-encoded string
EncodeURL Encodes string for URL format
GetHostname Extracts hostname from URL
GetProtocol Extracts protocol from URL
XML Properties (2 commands)
Command Description
EscapeXML Escapes string for XML entity encoding
UnescapeXML Unescapes XML entities to plain text

Variables


Variables provide constant or computed values for common use cases.

File Variables (2 commands)
Command Description
UserDownloadDirectory Returns user's Downloads directory path
UserHomeDirectory Returns user's home directory path
Record Variables (1 command)
Command Description
EmptyRecord Provides an empty record value
String Variables (4 commands)
Command Description
AuthToken Retrieves authentication token from environment
EmptyString Provides an empty string value
UUID Generates a new UUID
Username Retrieves current username
Table Variables (1 command)
Command Description
EmptyTable Provides an empty table value
URL Variables (1 command)
Command Description
CRURL Provides Control Room URL

Iterators

HTML Iterator (1 command)
Command Description
HTMLTableIterator Iterates through HTML table rows and cells

Building from Source

Prerequisites

  • Java JDK 11
  • Gradle 7.x or higher
  • AA360 Bot Command SDK (included in libs/ directory)

Build Steps

  1. Clone the Repository

    git clone https://github.com/A360-Tools/Toolbox.git
    cd Toolbox
  2. Build the Package

    # Windows
    gradlew.bat clean shadowJar
    
    # Linux/Mac
    ./gradlew clean shadowJar
  3. Locate the Package

    The compiled package will be in:

    build/libs/Toolbox.jar
    
  4. Upload to Control Room

    Follow the Installation instructions to upload the built package.

Development

Project Structure

Toolbox/
├── src/
│   ├── main/
│   │   ├── java/sumit/devtools/
│   │   │   ├── actions/          # Action commands
│   │   │   ├── conditionals/     # Conditional commands
│   │   │   ├── properties/       # Property commands
│   │   │   ├── variables/        # Variable commands
│   │   │   ├── iterators/        # Iterator commands
│   │   │   └── utils/            # Utility classes
│   │   └── resources/
│   │       ├── icons/            # Command icons
│   │       ├── locales/          # Localization files
│   │       └── package.template  # Package metadata template
│   └── test/
│       └── java/                 # Test classes
├── libs/                         # AA360 SDK libraries
├── build.gradle                  # Gradle build configuration
├── CLAUDE.md                     # Development standards
└── README.md                     # This file

Coding Standards

This project follows strict AA360 Bot Command Development Standards documented in CLAUDE.md. Key standards include:

  • Return Label Pattern: Use "Assign <specific_output> to"
  • Boolean Inputs: Use AttributeType.BOOLEAN with explicit options
  • Class Naming:
    • Actions: Verb-based (e.g., GetMaxNumber, ConvertTableToHTML)
    • Conditionals: State checks (Is..., Has..., Are...)
    • Properties: Direct verb form (e.g., Base64Encode, EscapeHTML)
    • Variables: Noun forms only (e.g., EmptyString, UUID)
  • Annotation Guidelines: Proper capitalization, tense, and structure
  • Parameter Ordering: HELP parameters must always be last

Adding New Commands

  1. Create command class in appropriate package
  2. Follow naming conventions from CLAUDE.md
  3. Add proper annotations (@BotCommand, @CommandPkg, etc.)
  4. Implement command logic with error handling
  5. Create corresponding test class
  6. Update this README with command documentation

Testing

Running Tests

# Run all tests
gradlew test

# Run specific test class
gradlew test --tests "date.GetNextDayOfWeekTest"

# Run tests with detailed output
gradlew test --info

Test Coverage

The project includes comprehensive test coverage:

  • Unit tests for all commands
  • Edge case validation
  • Error handling verification
  • Type safety checks

Test Structure

Tests use TestNG framework and follow consistent patterns:

  • @BeforeMethod: Set up test data
  • @Test: Individual test cases
  • @AfterMethod: Clean up resources

Installation

How to Install

Download the latest package from the releases page.

JAR File (Recommended)

  • Navigate to ManagePackagesImport
  • Upload the .jar file

ZIP File (Community Edition)

  • Navigate to AutomationImport
  • Upload the .zip file

Usage

Search for "Toolbox" in the Bot Editor Actions panel and drag commands into your workflow.

Community Edition Note

Important: Community Edition users must manually update the package version to the latest in each bot's properties panel, as the system does not set it automatically.

Support

For issues, questions, or contributions:


Made with care for the AA360 automation community

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published