In this article we dive into the inner workings of the Deltek Acumen API.

Acumen Fuse certainly makes forensic schedule analysis a simpler and more efficient task. For those planners out there who love their VBA/Macro challenges, the Acumen API certainly provides for a challenging mini-project to further improve reporting capabilities.

But the API is certainly not a simple thing to understand. So we spent some time this week unravelling how the API actually functions to give you a head start!

And with pretty much the entire population cooped up at home in isolation, why not challenge yourself to a new coding project?

 

Getting to Know the API

The first thing to understand with the API is that it is based on the XML open standard. For typical API's you would expect to 'connect' somehow via a reference library in VBA or some other coding language, but Acumen works differently.

Users specify a configuration file which when loaded, provides users with new menu items in the Application itself. Once clicked, Acumen will export the information to an XML file which is then used later by whatever template is specified by the user (ie a macro-enabled workbook or word document). By using the XML format the end user is not limited to a certain programming language.

 

The Configuration File

In order for Acumen to understand what you want it to extract, a configuration file needs to be derived. An example is provided below:

API 1 Fuse Options

In the example above, the configuration file provides a single Report Setting which will be available to users on the Logic tab of Acumen Fuse. In the Acumen options tab, users then point Acumen's API Configuration option "Use Custom File" to the same config file.

API 1 Fuse Options

In our example above we have saved the files to the Default Templates folder that is installed:

API 1 Fuse Options

Once Acumen Fuse is started, we can then load a new project and see our new menu Item available from the Publish menu:

API 1 Fuse Options

When we click on the menu item, Acumen generates the specified "test.xml" file and saves it to the same Templates directory:

API 1 Fuse Options

The XML structure can then be viewed from any text viewer. Here we've used Notepad++ with a few XML formatting plugins to see the data in a neater format:

API 1 Fuse Options

With our data now extracted, Acumen will then open testapi.xlsm automatically. It is here that we then develop our Macro code to consume the XML data and do something with it. 

When the data is exported to XML it is structured with referential information that outlines the relationships between data items. In the example below we've exported the Logic Analyzer information which has brought with it the relationships in the project:

API 7 Relationships

Each relationship has its own unique GUID. If we examine one of the Redundant Logic items, it points back to the same relationship listed in the XML document.

If you are keen to write your own code in Excel you can use the Microsoft XML v6 library to loop through the data. Just add it to your VBA project:

 

API 8 XMLv6 Library Reference

 

Of course there are other options other than VBA, but for those of us stuck at home with COVID-19 isolation, its the perfect time to challenge and test our coding skills!

Other recent articles

Full blog index

Find out how GBA Projects can help your project perform.

Contact us.

Clients

  • 01-santos-logo.jpg
  • 02-bhp-logo-new.jpg
  • 03-hansen-logo.jpg
  • 04-sydney-water.jpg
  • 05-beach-energy.jpg
  • 05-kbr-logo.jpg
  • 06-aurecon-logo.jpg
  • 07-lendlease-logo.jpg
  • 08-riot-tinto-logo.jpg
  • 09-sa-govt-logo.jpg
  • 10-spotless-logo.jpg
  • 11-built-environs-logo.jpg
  • 12-dyno-logo.jpg
  • 13-sa-power-logo.jpg
  • 14-incitec-logo.jpg
  • 15-electranet-logo.jpg