Skip to content

A360-Tools/Toolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AA360 Toolbox

100+ Bot Commands extending Automation Anywhere 360 with data manipulation, file operations, string processing, and more.

Java 11 License Release Issues

AA360 Toolbox in the Bot Editor

Overview

AA360 Toolbox is a professional-grade Bot Command package for Automation Anywhere 360 that extends the platform with 100+ specialized commands across data manipulation, file operations, string processing, URL handling, security, and more. Every command is type-safe, tested, and designed to drop into existing workflows without configuration.

Quick Install

  1. Download the latest .jar from the releases page.
  2. In your Control Room, go to Manage → Packages → Import and upload the .jar.
  3. Open any bot and search for "Toolbox" in the Actions panel.

For full install instructions including Community Edition, see Installation.

What's Inside

Type Count Description
Actions 87 Data transformation and computation commands
Triggers 1 Event-based workflow triggers
Iterators 1 Custom iteration capabilities
Conditionals 13 Boolean condition checks for workflow logic
Variables 9 Predefined constant or computed values

Command Categories

Actions

Actions perform data transformations and computations, returning modified values.

Date (10 commands) Date actions
Command Description
CalculateDateTimeDuration Calculates duration between two datetime values
ConvertDateTimeToEpoch Converts ZonedDateTime to epoch timestamp
GetFirstDayOfMonth Finds the first day of the month for a given date
GetFirstDayOfYear Finds the first day of the year for a given date
GetLastDayOfMonth Finds the last day of the month for a given date
GetLastDayOfYear Finds the last day of the year for a given date
GetNextDayOfWeek Gets next date of particular day of week
GetNextWorkDate Gets next working date (Monday to Friday are considered working days)
GetPreviousDayOfWeek Gets previous date of particular day of week
GetPreviousWorkDate Gets previous working date (Monday to Friday are considered working days)
Dictionary (5 commands) Dictionary actions
Command Description
FindCommonKeys Finds common keys between two dictionaries
FindUncommonKeys Finds keys that are unique to each of two dictionaries
GetKeysAsList Returns all keys from a dictionary as a list
GetValuesAsList Returns all values from a dictionary as a list
MergeDictionary Merges two dictionaries into one
File (8 commands) File actions
Command Description
CombineFilePath Combines a base path with path segments to create a file path variable
DecodeBase64ToFile Decodes a Base64 string to a file
EncodeFileToBase64 Encodes a file to a Base64 string
GetAvailableDirectory Finds an available directory path by appending an incrementing counter if the directory already exists
GetAvailableFile Finds an available file path by appending an incrementing counter if the file already exists
GetFilesWithExtensions Gets list of file paths matching specified extensions from a directory
GetSanitizedFileName Sanitizes a filename by replacing OS-specific invalid characters with a replacement character
GetTextFromFile Reads file content as text
List (11 commands) List actions
Command Description
AddItem Creates an independent copy of the list and adds an item to it
ChunkList Creates independent sublists by dividing the list into chunks of specified size
DiffList Creates an independent copy containing items from the first list that are not in the second list
FindCommonItems Creates an independent copy containing items that appear in both lists
MergeList Creates an independent merged copy combining items from both lists
RemoveDuplicatesList Creates an independent copy containing only unique items
RemoveEmptyItemsList Creates an independent copy containing only non-empty items
ReverseList Creates an independent copy of the list with items in reverse order
ShuffleList Creates an independent copy of the list with items in random order
SortList Creates an independent copy of the list with items sorted in the specified order
StripList Removes leading and trailing whitespace from each string in a list
Number (6 commands) Number actions
Command Description
CalculateSumSubset Finds a subset of numbers whose values add up to a given target sum, within a specified deviation threshold
GetDecimalPart Gets fractional part of a number
GetIntegerPart Gets integral part of a number
GetMaxNumber Gets maximum number from a list of numbers
GetMinNumber Gets minimum number from a list of numbers
RoundNumber Rounds a number to a specified number of decimal places
Path (4 commands) Path actions
Command Description
GetFileExtension Gets file extension from a given file
GetFileNameWithExtension Gets file name with extension from a given file
GetFileNameWithoutExtension Gets file name without extension from a given file
GetParentFile Gets parent directory of a file as a File type
Record (2 commands) Record actions
Command Description
SetRecord Creates an independent copy of the record with specified columns and values set
UpdateCell Creates an independent copy of the record with the specified cell updated
Regex (1 command) Regex actions
Command Description
MatchRegex Finds regex matches and extracts full matches, numbered groups, and specified named groups
Security (1 command) Security actions
Command Description
GenerateTOTP Generates a Time-based One-Time Password (TOTP) based on RFC 6238
String (18 commands) String actions
Command Description
Base64Decode Decodes provided Base64 to plain string
Base64Encode Encodes provided string to Base64 string
ChangeCase Changes text case to uppercase, lowercase, title case, or sentence case
EscapeCSV Escapes string for CSV column
EscapeHTML Escapes string for HTML
EscapeJSON Escapes string for JSON
EscapeXML Escapes string for XML
NormalizeSpace Normalizes whitespace in a string
PadText Pads text on the left or right side with a specified string to reach a target length
ReplaceTemplate Replaces occurrences of dictionary keys with their corresponding values in a text
Strip Removes all leading and trailing whitespace
StripLeading Removes all leading whitespace
StripLeadingZeroes Removes all leading zeroes from string
StripTrailing Removes all trailing whitespace
UnescapeCSV Returns a String value for an unescaped CSV column
UnescapeHTML Unescapes a string containing entity escapes to actual Unicode characters
UnescapeJSON Returns a String value for an unescaped JSON
UnescapeXML Unescapes a string containing XML entity escapes to actual Unicode characters
Table (15 commands) Table actions
Command Description
AddColumn Creates an independent copy of the table with a new column added
ConvertColumnToList Gets datatable column to list
ConvertHeaderToList Gets datatable headers to list
ConvertTableToDictionary Converts table column data to key-value pairs
ConvertTableToHTML Converts a Data Table to a customizable HTML table string
NormalizeHeaders Creates an independent copy of the table with normalized headers
RemoveEmptyColumns Creates an independent copy of the table with empty columns removed
RemoveEmptyRows Creates an independent copy of the table with empty rows removed
ReverseTableRows Creates an independent copy of the table with rows in reverse order
SetRowAsHeader Creates an independent copy with a specific row set as header
SetTableSchema Creates an independent copy of the table with updated schema
SliceColumns Creates an independent table copy containing only the specified columns
SliceTable Creates an independent table copy containing only the specified rows
TrimHeaders Creates an independent copy of the table with trimmed headers
UpdateCell Updates a cell value in a data table at the specified row and column position
URL (6 commands) URL actions
Command Description
BuildURL Builds a URL with query parameters from a base URL and a dictionary of parameters
DecodeURL Decodes a URL-encoded string
EncodeURL Encodes a string for use in a URL
GetHostname Extracts the hostname from a URL
GetProtocol Extracts the protocol/scheme from a URL
GetQueryParameters Extracts query parameters from a URL and returns them as a dictionary

Triggers

Event-based workflow triggers.

Triggers

Command Description
DatetimeTrigger Time based trigger

Iterators

Custom loop commands for traversing structured content.

Iterators

Command Description
HTMLTableIterator Iterates through tables in HTML content

Conditionals

Boolean condition checks for workflow branching.

Conditionals

Command Description
HasFileWithExtension Checks if directory contains a file with specified extension
HasRecordHeader Checks if record has specified column header in schema
HasTableColumns Checks if table has all specified column headers in schema
HasTableHeader Checks if table has specified column header in schema
IsFileWritable Checks if file is available for write operation
IsRecordBlank Checks if all cell values in the Record are blank (null, zero-length, or whitespace-only)
IsRecordEmpty Checks if all cell values in the Record are empty (null or zero-length; whitespace counts as non-empty)
IsRecordSchemaBlank Checks if all header names in the Record's schema are blank (null, zero-length, or whitespace-only)
IsRecordSchemaEmpty Checks if all header names in the Record's schema are empty (null or zero-length; whitespace counts as non-empty)
IsTableSchemaBlank Checks if all header names in the Table's schema are blank (null, zero-length, or whitespace-only)
IsTableSchemaEmpty Checks if all header names in the Table's schema are empty (null or zero-length; whitespace counts as non-empty)
StringBeginsWith Checks if string begins with given prefix
StringEndsWith Checks if string ends with given suffix

Variables

Predefined constant or computed values.

Variables

Command Description
AuthToken Get control room auth token of current user
CRURL Get control room url
EmptyRecord Empty record
EmptyString Empty string value
EmptyTable Empty table
UserDownloadDirectory Returns the standard user download directory path even if the directory does not exist
UserHomeDirectory Gets the absolute path to the current user's home directory
Username Get current user's username
UUID Universally Unique Identifier value

Installation

How to Install

Download the latest package from the releases page.

JAR File (Recommended)

  • Navigate to Manage → Packages → Import
  • Upload the .jar file

ZIP File (Community Edition)

  • Navigate to Automation → Import
  • Upload the .zip file

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.

Usage

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

Support

For issues, questions, or contributions:


For developers and contributors

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.

Project Structure

Toolbox/
├── src/
│   ├── main/
│   │   ├── java/sumit/devtools/
│   │   │   ├── actions/          # Action commands
│   │   │   ├── conditionals/     # Conditional commands
│   │   │   ├── properties/       # Property commands (shown as String/Path/URL in editor)
│   │   │   ├── variables/        # Variable commands
│   │   │   ├── iterators/        # Iterator commands
│   │   │   ├── triggers/         # Trigger commands
│   │   │   └── utils/            # Utility classes
│   │   └── resources/
│   │       ├── icons/            # Command icons
│   │       ├── locales/          # Localization files
│   │       └── package.template  # Package metadata template
│   └── test/
│       └── java/                 # Test classes
├── docs/
│   ├── images/                   # Screenshots used in this README
│   └── superpowers/              # Design specs and plans
├── 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

Made with care for the AA360 automation community

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors