Acumatica Customization: Automating & Enhancement Development Workflow. Part II

Acumatica Customization Utility (ACU) Overview

Sprinterra is proud to introduce the Acumatica development workflow automation tool: ACUCustomizationutil. Initially created as an internal tool, its core purpose is to streamline the development process. For public access, the primary repository is available at ACUCustomizationUtil.

To deep-dive into this utility’s technical aspects, here are the documentation resources:

Engineered with C# .NET version 7, the utility integrates several packages, including:

System.CommandLine

2.0.0-beta4.22272.1

Spectre.Console

0.47.1-preview.0.6

Serilog.Sinks.File

5.0.1-dev-00947

Serilog.Sinks.Console

4.1.1-dev-00910

Serilog.Extensions.Hosting

7.0.0

Microsoft.Data.Sqlclient

5.2.0-preview1.23109.1

FluentValidation

11.5.2

Dapper

2.0.123

ACU at a Glance

ACU is a CLI-based tool crafted to simplify routine tasks surrounding Acumatica customizations. It presents a command structure, categorically organized for ease of use. Each command is further detailed in the Command Reference.

It encompasses four command groups corresponding to actions with:

  • ERP: Managing Acumatica ERP versions, including installations and uninstallations.
  • Site: Handling Acumatica instance operations, from installations to upgrades.
  • Src: Retrieving customization source codes, building extension libraries, and creating customization packages.
  • Pkg: Overseeing the upload, publication, retrieval, and management of custom packages.
ACU is armed with an in-built help system. This lets users promptly fetch a list of subcommands and parameters for each command. To invoke help, users can utilize options like -?, -h, and --help. A sample request for background information is provided below.

Show the initial section of the help system:

 

PS C:\Users\aslusar> acu /?

Acumatica customization util – tool for work with customization

Copyright Sprinterra(c) 2023

Usage:

  acu [command] [options]

Options:

  –config <config>            An option of path to configuration file [default: acu.json]

  –user-config <user-config>  An option of the path to the user configuration file [default: acu.json.user]

  –version                    Show version information

  -?, -h, –help               Show help and usage information

Commands:

  erp   Work with an Acumatica ERP.

  site  Work with an Acumatica instance.

  src   Work with a source code of customization.

  pkg   Work with a customization package.

“`

Display the erp command’s help section, one would use:

 

PS C:\Users\aslusar> acu erp /?

Acumatica customization util – tool for work with customization

Copyright Sprinterra(c) 2023

 

Usage:

  acu erp [command] [options]

 

Options:

  –config <config>            An option of path to configuration file [default: acu.json]

  –user-config <user-config>  An option of the path to the user configuration file [default: acu.json.user]

  -?, -h, –help               Show help and usage information

 

Commands:

  download Download ERP installation.

  install   Install ERP.

  delete    Delete ERP.

Display the help system section of the src command of the make subcommand:

 

PS C:\Users\aslusar> acu src make /?

Acumatica customization util – tool for work with customization

Copyright Sprinterra(c) 2023

 

Usage:

  acu src make [options]

 

Options:

  –source Directory <sourceDirectory>  Customization source items directory

  –pkgName <pkgName>                  Package name

  –pkgDirectory <pkgDirectory>        Package destination directory

  –mode <mode>                        Mode for make package: QA|ISV

  –config <config>                    An option of path to configuration file [default: acu.json]

  –user-config <user-config>          An option of the path to the user configuration file [default: acu.json.user]

  -?, -h, –help                       Show help and usage information

Flexible Configuration System

Configuration in ACU consists of various elements:

  • – Main configuration file (by default: acu.json)
  • – User configuration file (by default: acu.json.user)
  • – Command-specific configuration parameters

Detailed information on configuration elements is available in the Configuration Reference Guide and Command Reference. Please note: if using default file names, there’s no need to repeatedly specify them (--config and --user-config) via command line options.

Configuration Essentials

Using the configuration is a breeze. Just create the acu.json file, and if required, the acu.json.user file, and position them in the root directory of the configuration. These serve as the foundation for your customized settings and preferences.

There may be a time where you operate the utility without the configuration files or need to make a one-time adjustment to an existing configuration. In cases like this, command options come to the rescue. They offer the flexibility to adapt on the fly, ensuring the utility responds to your immediate requirements.

It’s worth noting that when multiple configuration items are activated simultaneously, a hierarchy is observed. Command options always take precedence, holding the top spot. On the other hand, the acu.json file sits at the base of the priority ladder, ensuring that your foundational settings are kept unless explicitly overridden.

For example, in the configuration below, the summary value would be C:\Acumatica\Sites\AcutestUtil

Acumatica ERP customization

But, in a configuration using only configuration files, the result will be different

D:\ACU\inst\AcuTestUtil

Acumatica ERP customization

User-Centric Design

The philosophy behind the tool’s design is focused on user convenience and efficiency. After establishing configurations and saving them into a file, users can now rely on intuitive commands to navigate and fulfill required tasks. This efficiency means less time searching for the correct command and more time concentrating on Acumatica customization.

Moreover, we understand the value of on-the-spot assistance. That’s why we’ve embedded an interactive help system directly within the utility. No matter where or what you’re doing, guidance is a keystroke away.

Here is the Acumatica Customization Development Workflow flowchart from the first part of this series. When viewed through the lens of automation powered by ACUCustomizationUtil, the entire process takes on a new dimension.

Acumatica Customization Development Workflow flowchart

As you can see, once tedious tasks – be it customizing the workspace or repetitive actions like building packages or extracting customization source code – have been transformed into automated processes, all thanks to the capabilities of the ACUCustomizationUtil utility.

Summing All Up

Now you are familiar with the core functionalities of ACUCustomizationUtil – an intuitive yet powerful tool. Its seamless integration of command options and flexibility can be a game-changer for various project setups. Want to see it in action? Stay tuned for the third part, where we’ll demonstrate real-world automation examples using this tool!

Subscribe To Our Newsletter

Get the latest insights on exponential technologies delivered straight to you