Rosser Logo
Consulting | Adaptive Planning | Adaptive API | Info Sec - ISO 27001 | More Adaptive Integration | Company Issued Options

Workday Adaptive Planning API

Introduction

I really love the capabilities of Adaptive's Application Programming Interface (API) and it keeps getting better. The API is a REST interface using XML which can be fiddly. Happily, I have a wealth of experience writing code that uses this interface.

Here are a few use cases:

1. Loading data without mapping

Maintaining mappings is painful and often unnecessary. For example, assuming your cost centre code is part of the level name in Adaptive, here's the trick. Use the API to read the list of levels from Adaptive and create a mapping on the fly. Let's say that the ERP data has a cost centre code like 2076 that maps to a level called "2076 Finance" (the number could be at the end just as easily). Use a regular expression to create a mapping from code to name.

Now the software can load the levels exactly as they appear in Adaptive. In the XML, set the option useMappings="false".

2. Loading Missing Elements

Issue: When there are new GL codes or levels in your ERP, your data load will be incomplete and unbalanced. In conjunction with the mapping strategy above, you can have a default level and some default accounts to hold the rouge values. For instance, create a level called "xxxx Unmapped" and use existing accounts like, "Other Income", "Other expenses" etc.

This is a temporary solution, so the integration should warn finance that it had to use default locations, perhaps with an email (since there will be no error in the Adaptive) but it will balance.

3. Special Data Loads

Loading GL balances and transactions is easy enough, but can you populate cube sheets and models as well? Of course you can!

In one case my customer wanted historical building expenses loaded into a cube structure by building ID. Another common case is to populate actual HR data by employee ID to assist budget-to-actual comparisons. The beauty of custom-written code is that it can do exactly what you need.

4. Data Extracts

There is no limit to the number of transformations and formats that are possible. For example, extract a sub-set of budget data and email to a particular user as an Excel attachment. Sure, why not?

5. Extract to Power BI

While it's possible to read the data from Adaptive into PBI, getting the levels, accounts, dimensions and attributes loaded is more difficult. These hierarchies need to be re-formatted into a flat table. This is easy enough to do with some code and this code can run inside PBI.

6. Metadata synchronisation

This is the pinnacle of data integration. When a new element is added to your ERP, can it be added to Adaptive automatically?

It's easy enough to find a missing element in the data load and it's easy enough to create a new account, level or dimension in Adaptive through the API but that's not the whole story. To add the new sales office in Helsinki, you'd want to specify the parent as EU Sales, the currency as Euro and tag it with a appropriate attributes.

6. Metadata synch, part 2

One option is to make some assumptions and warn the users to fix it from there. A better option is to run a metadata synchronisation before attempting the data load. This will require extracting the metadata structures from both systems, checking for differences and updating Adaptive. Not easy, but if the source data is available, it can be done, and it will save a lot of staff time and headaches.

7. SAP Integration

Adaptive does not have direct integration with SAP but we can use the API to achieve this. I've crafted code to read and write flat files using a file share or an SFTP server as a staging point. SAP consultants are expensive, so it can be cost effective to push as much as possible into non-SAP development tools.

Contact

Tim Rosser on LinkedIn