Adaptive Planning Intergration
Adaptive Planning Intergration
Adaptive Planning Integration is an application that acts as a secure bridge to import data from different data sources like spreadsheets, databases, on-premises
sources, and cloud sources into Adaptive Planning products. You can filter, clean, and map the information being imported so you can eliminate potential errors that
can happen during a manual data import. In addition, you can schedule tasks and operations so data can be imported at specific times automatically.
The integration framework acts as a secure bridge for importing data and metadata from different data sources into Adaptive Planning. Data sources can include
spreadsheets, databases, and cloud-based or on-premises systems. You can filter, clean, map, and merge the information coming from these sources to eliminate
potential import errors. You can also schedule tasks and operations so that data automatically imports at specific times.
The architecture of the Adaptive Planning Integration framework supports this flow:
1. Connecting to sources, including Adaptive Planning, Workday, NetSuite, Salesforce, SAGE Intacct, MSDGP, and other cloud systems. Creating on-premise
Agents to load data directly from Oracle or other on-site systems. Importing spreadsheets to load directly from uploaded .XLSX files.
2. Adaptive Planning and Consolidation, or Dashboards taking the loaded data or metadata to update the model, accounts, sheets, transactions, or charts.
3. Loaders mapping the data or metadata from the source system to the corresponding destination in Adaptive Planning, and loading it. The staging area for
data preparation of extracts from source systems. Manual or scheduled tasks formatting and filtering the data from the staging area to hand it off to Loaders.
Data Sources and Adapters extracting data from source systems.
Each group gets a permission set with permissions in Adaptive Planning. Each type of business user contributes to the overall Integration workflow. Most business
users function as Implementers and Analysts. Implementers configure data sources so that Analysts can run tasks. If you require a Custom Could Data Source
(CCDS) to pull data from a web-accessible system, a Developer user begins the workflow by writing JavaScript to import data. The workflow then shifts to an
Implementer, and finally an Analyst. See Concept: Permission Sets.
Developer Workflow
Integration Developer Permissions
The Developer user only becomes a requirement when you need a Custom Cloud Data Source (CCDS) to import data from a web-accessible system. Developers
receive the permissions of Integration Developer. The developer users must be experienced javaScript programmers to make use of the APIs that pull data into
Adaptive Planning.
1. Define parameters.
2. Create scripts and test them.
3. Release the CCDS to a data designer.
Implementer Workflow
Data Designer Permissions
The Implementer, with the Integration permissions of Data Designer, creates the data sources that Analysts use to run their tasks. Implementers:
Analysts users can then run tasks on the data. Implementers can also grant permissions to users or groups to execute tasks. Granting permissions lets
implementers restrict lower-level data entry staff to executing specific tasks without letting them access anything else.
If you require a CCDS, the Data Designer relies on the Integration Developer to first write and test JavaScript.
Analyst Workflow
Integration Operator Permissions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 1/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Analyst users (often FP&A staff), with the permissions of Integration Operator, run manual or scheduled tasks to get data into Adaptive Planning. Analysts can only
see and execute tasks based on the launch permissions an Implementer user grants them.
When you have Integration, the navigation menu shows three options under Integration Management:
Run Tasks
Design Integrations
Notification logs
You must have the Integration Tasks and Data Designer permissions to see these links.
Select Run Tasks to navigate to the Task Overview page for all integration tasks. See Tasks for more.
Select Design Integrations to view the Data Designer. Use the Data Designer to create, manage, and edit data sources, loaders, integration tasks, data agents,
external systems, and data source credentials. What you see in the Data Designer varies depending on what you select in the Component Library.
Option Description
1 Actions Pane: Save settings, import structure and data from sources or loaders, view logs, grant edit permissions, manage data source objects or
reports, and more.
2 Data Components Pane: View data source table columns and drag them into the staging area for importing or creating custom columns.
3 Settings: Select and edit settings for data sources, loaders, tasks, external systems, and credentials.
4 Tables to Import (Staging Tables): View a preview of the data coming from a data source, drag in columns from the Data Components pane. For
Loaders, manage how columns and tables map to Adaptive Planning levels, accounts, dimensions, attributes and more.
5 Staging Data: After importing from a data source, view and filter it before bringing it into a loader.
6 Component Library: Manage or create data sources, loaders, integration tasks, data agents, external systems, and data source credentials.
When Integration or dashboards generate notifications, those notifications get permanently recorded in the Integration Notification logs. This log works like an email
client, listing only the notifications sent to you. The newest notifications show up on top. The notifications you select open as additional tabs within the page to show
the notification details. Notifications in the log can't be edited or deleted by anyone.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 2/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Notifications include:
Prerequisites
Required Permissions: Integration
Requires Adaptive Integration
Notifications in these logs also show up as Workday Notifications for users synchronized from Workday.
Navigation
This table provides recommendations for assigning permission based on user responsibilities. Assign permissions for Integration users in Administration >
Permission Sets. See Concept: Permission Sets.
Best practice: For data privacy, administrators should only assign users the minimum permissions required for their position.
Create tasks
Recommended
Import to all locations Admin access rights (Add and Admin access rights (Add and manage users,
Additional Permissions
manage users, groups) groups)
Erase Data
Access to Salary Details Access to Salary Details
Your Position Accountant, Finance Team Analyst System Admin, IT, or Developers
member
Describes how to set up data sources, provides best practices, presents tutorials for getting started and offers troubleshooting information for common situations.
The first thing you need to do is set up data sources. A data source specifies the location of the spreadsheet or database from which to extract information. It also
contains information such as the user ID and password, configuration information for which columns or tables to use, and other information needed to access and
extract the data you want.
Integration can import data from many places, including Excel spreadsheets, JDBC databases, on-premises sources, cloud sources, Workday, Salesforce, Intacct,
Microsoft Dynamics GP, and NetSuite. All the worksheets in a spreadsheet are imported every time. You can import a whole database or, if the database is large or
you only need specific information, you can select which columns or tables of information to use from a database by the database's schemas. One schema could
have sales data and another schema could have expense data. After you have imported the information, the data can be filtered using SQL expressions.
In addition, if you have data that requires you to combine or filter based on multiple spreadsheets or databases, you can set up specialized data sources called
table groups that can use SQL joins to combine and then filter information from different places.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 3/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Some links in this article go to the Workday Community. If you don't have a Community account, request one.
A data source specifies the location of a spreadsheet, database, or other source system Adaptive Planning uses to extract information.
Credentials or logins
Configuration information on the tables or columns to extract
The level of detail in connection logs
Other settings Adaptive Planning needs to access data
You can set up multiple data sources to meet your needs. For example, you can use one data source to import sales orders, a second to import sales expenses,
and a third to import sales revenue. All three data sources could use the same source system, or each data source could use a different one.
Note: The term adapter indicates a maintained data source that includes added intelligence. When a vendor upgrades to a new version, the adapter is tested and
verified against the upgrade to ensure compatibility.
Spreadsheet
Extracts information from a spreadsheet. Each worksheet in a spreadsheet gets treated as a separate table. See Steps: Set Up a Spreadsheet Data Sources.
Planning
Extracts information from another Adaptive Planning instance. Requires creating a separate Adaptive Planning Credential. This data source is useful for
organizations that have multiple Adaptive Planning instances, or that want to export to some external system. See Set Up Adaptive Planning as a Data Source.
Workday
Extracts information from a Workday tenant's reports by using the Workday adapter. Requires creating a separate Workday Credential. If you also create a Workday
External system, you can publish plans, and drill into Workday from Adaptive Planning sheets and reports. See Steps: Set Up Workday Data Sources for Adaptive
Planning.
NetSuite
Extracts information from a NetSuite account by using the NetSuite adapter. Requires creating a separate NetSuite Credential. If you also create a NetSuite
External system, you can drill into NetSuite from Adaptive Planning sheets and reports. See Steps: Set Up NetSuite Data Sources.
SAGE Intacct
Extracts information from a SAGE Intacct account by using the SAGE Intact adapter. See Steps: Set Up SAGE Intacct Data Sources.
Table Group
Extracts information from existing staging tables present in different data sources. The underlying data sources can themselves be based on different spreadsheets
and databases. This type of data source creates joins of tables across different data sources. See Steps: Set Up Table Groups.
Union Table
Extracts information from multiple staging tables to let you combine or stack table row data, even when the tables comes from different data sources. See Steps:
Set Up Union Tables.
Salesforce
Extracts information from a Salesforce account using the Salesforce adapter. See Set Up a Salesforce Data Source.
Scripted
Extracts information based on the Kettle ETL instructions you write. You apply customer-specific business rules to the extracted data to solve complex, custom data
extraction and transformation scenarios. Only advanced ETL implementers who have experience writing Pentaho Kettle scripts and using the Spoon UI should
create scripted data sources. For more information about Pentaho Kettle and Spoon, including extensive documentation and tutorials, please see the Pentaho wiki
at http://wiki.pentaho.com. See Steps: Set Up Scripted Data Sources.
Important: WARNING: There is no automatic upgrade or migration of the platform or the scripts used within Kettle. If you intend to use the legacy data agent (with
Kettle 4.4), you must use the link in the Download Legacy Agent section in the Agent UI of Integration. If you have an older Pentaho Kettle version (4.4) and would
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 4/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
like to change to Kettle 6, you will need to reinstall the new Data Agent and the new Kettle version on a system that has never had any version of Kettle installed
previously.
You can use Adaptive Planning Integration to extract data from an Excel spreadsheet.
Important: Set your browser language to U.S. English before importing data using a spreadsheet data source. Data input for spreadsheet data sources is tested and
certified for the U.S. English format only.
Prerequisites
Verify every cell in a column contains the same data type in your spreadsheet. Adaptive Planning Integration bases its data type on the contents of the entire
column.
Permissions required: Integration > Data Designer and Integration Operator
Navigation
Important: There is an import limit of 100 columns for each sheet used as a data source. Any columns beyond the 100th will not be imported.
By default, import uses the import mode All records replaced each time a data import is run. This mode:
You can use other import modes that append or merge data, described later in the Customize the Table section.
When you load a spreadsheet, Adaptive Planning Integration determines the data type from the column contents. The structure of your spreadsheet can change if
you change your local file and reimport it after:
Renaming a sheet
Renaming a column
Removing a column
Changing the column order
Adding a different type of data to an existing column
If a single cell in a column of integers changed to a real number, the entire column changes data type on reimport. The loaders that depend on this data source may
not function correctly.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 5/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
After you have imported the spreadsheet's structure, you are ready to specify the information you want to import from the spreadsheet. The Tables to Import
section of the screen lets you configure the data imported from the spreadsheet.
1. Expand the entry for the data source in the Data Components menu. Each worksheet in the spreadsheet appears as a separate item. Data components
with a slash through their icon will not import.
2. Drag and drop the tables you want to import to the Tables to Import section (the staging area) in the center of the screen. A tab appears for the table and
information from the spreadsheet in the Tables to Import area, letting you see what added. Each table tab also contains a drop-down menu you can access
by clicking the triangle next to its name.
Manage Columns
If a table contains a large number of columns, you can use Manage Columns to do quick edits for which columns to import. The Manage Columns dialog box
displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Manage Columns on the floating menu. The Manage Columns dialog box appears.
3. Check the box next to a column to import it. When you check a column, the column also appears within the preview window after the popup contents save.
Unchecking a column removes the column from the preview window. You cannot change the import status on system-generated fields such as isDeleted.
You can also change the import status on individual columns by selecting column properties and setting the property or by dragging and dropping the
columns onto the designer.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Table Settings on the floating menu.
You can change the options for each column by mouse hovering its heading and clicking the drop-down menu next to its name:
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. At the prompt This operation will send an email with a url to download the data, click Send. Adaptive Planning Integration sends an email containing a URL
to the email account associated with the data designer.
4. Open the email and click the URL. The data is downloaded in .csv format.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 6/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Below the Source drop-down menu, you can click Advanced Filter to reveal options for filtering the data in the Tables to Import preview area. The Advanced
Filter provides tools to view and browse a subset of the data within a staging table. By changing filter properties, you can change the view of the data shown within
the preview window without changing the data in the staging area.
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore the data that is available from the spreadsheet and
verify that you are getting the data you expect by examining the staging area. (Filters set in the preview function do not affect the actual data in the staging area.)
The Advanced Filter lets you experiment with the data in the preview to set up a data import filter.
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Expression dialog box.
Enter a SQL expression in the field. This is a filter to restrict the rows being previewed. Click Apply to automatically check the SQL syntax of the filter. (If there are
any errors, the error is indicated in the expression.) For detailed SQL syntax help, you can click Online Help in the Notes section. The expression you entered
appears in the Advanced Filter section of the preview window.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
To clear data from the staging area, select Clear staging tables in the Actions pane. The staging area for all of the tables in the data source clear.
You can use Adaptive Planning Integration to extract information from JDBC-compliant databases. Most databases used for accounting and finance applications are
JDBC-compliant (Java database connectivity) databases. JDBC is a standard that uses the Java programming language for providing connectivity to a wide range
of databases.
A JDBC-compliant database data source requires a driver. The table below gives information on common JDBC drivers.
JCBC Source Overview Provider jar Driver Class JDBC/URL example JDBC URL info
The jar files go into the C:/Program Files/Workday Adaptive Planning Data Agent/Plugins. For data agent versions 7.1.44 and older, use C:/Program
Files/Adaptive Data Agent/Plugins directory on the machine hosting the Data Agent Service.
After you add a jar file, you need to go into the local services and restart the Data Agent Service.
Note: Before you can set up a data source from a local database, you need to have a Data Agent created that tells Adaptive Planning Integration how to
communicate with the database. For information on how to create data agents, see Using Data Agents.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 7/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can test the connection information in the new data source by clicking Test connection in the Actions menu. The system tries to connect to the database
using the information in the data source fields. If the system can connect to the database, click OK. If there are connection problems, fix the errors and try again.
When you can connect to the database, you're ready to import the data structure. This shows you the tables and columns in the database.
Note: Only columns for supported types appear. Supported Column Types, lists the supported column types for the various types of databases.
1. Click Import structure in the Actions menu. The tables and columns appear in the Data Components menu.
The data import modes affect the way in which the data is synchronized. The default import mode (all records replaced) for a JDBC data source is as
follows:
You can also choose to append imported information, in which case imported data is appended to the existing staging table, or merge imported information, in
which case existing rows in the JDBC data are merged with the rows in the staging area.
To specify the tables to import from the database, follow these steps:
1. Expand the entry for the data source in the Data Components menu.
2. Drag and drop the tables you want to import to the Tables to Import section in the center of the screen.
As you drag each table to the Tables to Import section, a tab appears for the table and information from the database appears in the Tables to Import section
letting you see the type of information you've added. Each table's tab also has a drop-down menu, which you can access by clicking the arrow next to its
name.
Managing Columns
If a table you are working with has a large number of columns, you can use Manage Columns to do quick edits for which columns to import. The Manage
Columns dialog box displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name.
2. Click Manage Columns on the floating menu.
3. Check the box next to a column to import it.
When you check a column, the column also appears within the preview window after the popup contents are saved. Unchecking a column removes the
column from the preview window.
You can also change the import status on individual columns by:
You can't change the import status on system-generated fields such as isDeleted.
1. Click the arrow on the tab to the right of the table name.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 8/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. Click Send at the prompt This operation will send an email with a url to download the data.
Adaptive Planning Integration sends an email containing a URL to the email account associated with the data designer.
The preview area is specifically for previewing a small portion of the data in the staging area (or JDBC database). You can explore the data that is available from the
JDBC Data source and verify that you are getting the data you expect by examining the staging area. You can also use this to refine the data import filter you want
to use. (Filters set in the preview function do not affect the actual data in the staging area.)
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
The selected data is filtered by any SQL expressions and loaded into the staging area. You can preview the data in the staging area.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 9/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Information remains in the staging area until you clear it manually, or until a subsequent data load clears it in accordance with the import mode.
1. Click Clear staging tables in the Actions menu. The staging area for all the tables in the data source is cleared.
To remove specified characters from Input Text Streams in JDBC data sources:
Refer to Remove Specified Characters from Input Text Streams in JDBC and Microsoft Dynamics GP
Troubleshooting Tips
There are a few data source problems you may run into that have solutions that are not immediately apparent.
When you import the structure for a database and the database has more than 1000 tables, you get an error advising you to filter the table list. You can get past this
error by doing either of the following:
When you import the structure of an Oracle database, the following schemas are not imported as part of the structure: CTXSYS, MDSYS, SYSTEM, SYS, and XDB.
These are Oracle systems schemas and are not necessary for data integration purposes.
When you import the structure of an MS SQL database, the following schemas are not imported as part of the structure: INFORMATION_SCHEMA and sys. These
are MS SQL systems schemas and are not necessary for data integration purposes.
Two JDBC drivers (JTDS and MS SQL Driver) support Integrated Security with MS SQL Server.
To enable Integrated Security in a data source/agent, three tasks need to be performed in addition to the standard configuration steps.
1. Place the required driver dll in the agent system path before the agent starts.
2. Configure the Agent service Logon On property with the proper domain user/password.
3. For the data source:
The required ntlmauth.dll for a JTDS jdbc driver (either x32 or x64 version depending on the JVM in use) should be placed in C:\Program
Files\Workday Adaptive Planning Data Agent\lib\mssqljdbc\x64\ (for 64 bit JVM).
For data agent versions 7.1.44 and older, C:\Program Files\Adaptive Data Agent\lib\mssqljdbc\x64\ (for 64 bit JVM)
or
For data agent versions 7.1.44 and older, C:\Program Files\Adaptive Data Agent\lib\mssqljdbc\x86\ (For 32 bit JVM).
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 10/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Example: jdbc:sqlserver://dev-gp2013-r2:1433;integratedSecurity=true
Example: jdbc:jtds:sqlserver://DEV-GP2013-R2:1433;integratedSecurity=true;domain=ADAPTIVE
Integration only supports a subset of the JDBC-compliant data types. Those data types not supported are not reported back to the server during the import structure
process.
The JDBC drivers map the underlying data types to a JDBC type, so to understand what DBMS types are supported, you need to consult documentation for the
specific DBMS. This section contains the supported data types for general JDBC-compliant databases, Oracle, SQL Server, and H2 databases.
CHAR STRING
VARCHAR STRING
LONGVARCHAR STRING
BIT BOOLEAN
BOOLEAN BOOLEAN
TINYINT LONG
SMALLINT LONG
INTEGER LONG
BIGINT LONG
REAL DOUBLE
DOUBLE DOUBLE
FLOAT DOUBLE
DATE DATE
TIME DATE
TIMESTAMP DATE
Important: The following JDBC types are not supported: BINARY, VARBINARY, LONGVARBINARY, DECIMAL, and NUMERIC.
bigint BIGINT Y
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 11/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
bit BIT Y
decimal DECIMAL N
int INTEGER Y
money DECIMAL N
numeric NUMERIC N
smallint SMALLINT Y
smallmoney DECIMAL N
tinyint TINYINT Y
float DOUBLE Y
real REAL Y
date VARCHAR Y
datetime2 VARCHAR Y
datetime TIMESTAMP Y
datetimeoffset VARCHAR Y
smalldatetime TIMESTAMP Y
time VARCHAR Y
char CHAR Y
varchar VARCHAR Y
text CLOB N
nchar CHAR Y
nvarchar CLOB N
ntext CLOB N
binary BINARY N
image BLOB N
hierarchyid BLOB N
sql_variant VARCHAR Y
timestamp BINARY N
uniqueidentifier CHAR Y
xml CLOB N
CHAR CHAR Y
VARCHAR2 VARCHAR Y
NCHAR OTHER N
NVARCHAR2 OTHER N
NUMBER DECIMAL N
FLOAT FLOAT Y
BINARY_FLOW ?100 N
BINARY_DOUBLE ?101 N
RAW VARBINARY N
DATE TIMESTAMP Y
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 12/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
TIMESTAMP TIMESTAMP Y
INTERVAL_YEAR_TO_MONTH ?-103 N
INTERVAL_DAY_TO_SECOND ?-104 N
BLOB BLOB N
CLOB CLOB N
NCLOB OTHER N
BFILE ?-13 N
CHARACTER CHAR Y
VARCHAR VARCHAR Y
NATIONAL_CHARACTER OTHER N
NATIONAL_CHAR OTHER N
NUMERIC DECIMAL N
DECIMAL DECIMAL N
DEC DECIMAL N
INTEGER DECIMAL N
INT DECIMAL N
SMALLINT DECIMAL N
DOUBLE_PRECISION FLOAT Y
REAL FLOAT Y
INT INTEGER Y
INTEGER INTEGER Y
MEDIUMINT INTEGER Y
INT4 INTEGER Y
SIGNED INTEGER Y
BOOLEAN BOOLEAN Y
BIT BOOLEAN Y
BOOL BOOLEAN Y
TINYINT TINYINT Y
SMALLINT SMALLINT Y
INT2 SMALLINT Y
YEAR SMALLINT Y
BIGINT BIGINT Y
IDENTITY BIGINT Y
DECIMAL DECIMAL N
NUMBER DECIMAL N
DEC DECIMAL N
NUMERIC DECIMAL N
DOUBLE DOUBLE Y
FLOAT DOUBLE Y
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 13/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
FLOAT4 REAL Y
FLOAT8 DOUBLE Y
REAL REAL Y
TIME TIME Y
DATE DATE Y
TIMESTAMP TIMESTAMP Y
DATETIME TIMESTAMP Y
SMALLDATETIME TIMESTAMP Y
BINARY VARBINARY N
VARBINARY VARBINARY N
LONGVARBINARY VARBINARY N
RAW VARBINARY N
BYTEA VARBINARY N
OTHER OTHER N
VARCHAR VARCHAR Y
LONGVARCHAR VARCHAR Y
VARCHAR2 VARCHAR Y
NVARCHAR VARCHAR Y
NVARCHAR2 VARCHAR Y
VARCHAR_CASESENSTIVE VARCHAR Y
VARCHAR_IGNORECASE VARCHAR Y
CHAR CHAR Y
CHARACTER CHAR Y
NCHAR CHAR Y
BLOB BLOB N
TINYBLOB BLOB N
MEDIUMBLOB BLOB N
LONGBLOB BLOB N
IMAGE BLOB N
OID BLOB N
CLOB CLOB N
You can use integration to import data from a Salesforce account. You can't import data from reports or data created through app integrations within the Salesforce
account.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 14/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
User name: Enter the user name for the Salesforce user account.
Password: Enter the password associated with the user name and with your Salesforce security token appended to the password. Example: if your
password is redrover1492 and your security token is lv4l$Qyfj54gdvzu$9rXLRqUu((G, you would enter
redrover1492lv4l$Qyfj54gdvu$9rXLRqUu((G in this field.
Use Sandbox?: Check this box to use the Salesforce sandbox. Check this box only if your implementation process requires you to test data in a
sandbox as part of the data import process. Be sure to uncheck this box when you have to bring data from your production Salesforce instance.
Time Zone: Select a time zone from the drop-down list.
Log level: Select a log level from the drop-down specifying the detail for logging:
Error: Only logs errors.
Info: Logs all basic information, such as when the data source was updated.
Verbose: Provides very detailed information about all phases and actions. (Use this primarily for debugging or auditing, as it can produce
more log information than is practical for typical use.)
6. Click Save on the Actions menu.
You can test the connection information in the new agent by clicking Test connection in the Actions menu. Adaptive Planning tries to connect to Salesforce using
the information in the data source fields. If the system can connect to your Salesforce account, click OK. If there are connection problems, contact us.
When you can connect to Salesforce, you're ready to import the data structure. This displays the tables and columns in the database.
1. Click Import structure in the Actions menu. The tables and columns display in the Data Components menu.
2. Click Close to close the Import Salesforce dialog box.
3. Click Save on the Actions menu.
To specify the tables to import from the Salesforce account, follow these steps:
1. Expand the entry for the data source in the Data Components menu. Data components with a slash through their icon won't import.
2. Drag and drop the tables you want to import to the Tables to Import section in the center of the page. As you drag each table to the Tables to Import
section, a tab displays for the table. Information from the Spreadsheet account displays in the Tables to Import section, letting you see the type of
information you added. Each table tab also contains a drop-down menu, which you can access by clicking the arrow next to its name.
Managing Columns
If a table you work with has a large number of columns, you can use the Manage Columns to do quick edits for which columns to import. The Manage Columns
dialog box displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options displays.
2. Click Manage Columns on the floating menu.
3. Check the box next to a column to import it. When you check a column, the column also displays within the preview window after you save the popup
contents. Unchecking a column removes the column from the preview window.
You can't change the import status on system-generated fields such as isDeleted. You can change the import status on individual columns by:
Selecting column properties and setting the property.
Dragging and dropping the columns onto the designer
1. Click the arrow on the tab to the right of the table name.
2. Click Table Settings on the floating menu.
3. Enter the table settings:
Data Import Filter: Use this area to enter a SQL expression that filters or formats information being imported. The SQL filter is applied before data is
extracted from the database. Use it to reduce the amount of data that imports for an additional level of staging data control. Click the field to display
the Edit SQL Expression dialog box, shown earlier. (The filter you enter applies to the actual data in the database rather than the preview data in the
staging area.) Not all data sources support the same level of SQL filtering capability.
4. Click Apply to apply the settings.
5. Repeat steps 1-3 for each table.
6. Click Save to save the settings in the data source.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 15/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can change the options for each column by mouse hovering each heading and clicking its drop-down menu:
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog changes the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Removes this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. Click Send at the prompt This operation will send an email with a url to download the data.
Integration sends an email containing a URL to the email account associated with the data designer.
4. Open the email and click the URL. The data downloads in .csv format.
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore data available from the Spreadsheet account and
verify the data you expect by examining the staging area. (Filters set in the preview function don't affect the actual data in the staging area.) The Advanced Filter
lets you experiment with the data in the preview to set up a data import filter.
Enter a SQL expression in the field. This filter restricts the rows in the preview. Click Apply to automatically check the SQL syntax of the filter. (If there are any
errors, the error is indicated in the expression.) For detailed SQL syntax help, you can click here in the Notes section. The expression you entered displays in the
Advanced Filter section of the preview window.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
The staging area for all of the tables in the data source clears.
Limitations
Note: Salesforce objects that require a subquery, such as ActivityHistory, aren’t supported during import. If you attempt to access objects that require subqueries,
you would likely see an error in the form Message: INVALID_TYPE_FOR_OPERATION: entity type ActivityHistory does not support query. Consider
exposing such data through custom objects.
You can use integration to extract information from your NetSuite instance. Adaptive Planning users can access data in a NetSuite instance through the NetSuite
adapter.
The NetSuite data source is licensed separately. If you do not see this adapter within the list of data sources, contact support for information.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 16/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The center area of the screen displays your new data source's settings and other information,.
You can test the connection information in the new agent by clicking Test connection in the Actions menu. The system tries to connect to NetSuite using the
information in the data source fields. If the system can connect to NetSuite, click OK. If there are connection problems, contact support.
When you can connect to NetSuite, you're ready to import the data structure. This shows you the tables and columns in NetSuite.
If the underlying data source doesn't support getting data incrementally, Integration does a full refresh on the data in the staging area.
Import Structure and Adaptive Posting Transaction Summary Table for NetSuite
Integration provides a getting started table for NetSuite called the AdaptivePostingTransactionSummary Table.
The AdaptivePostingTransactionSummary and its associated tables show up by default during Import Structure. This table surfaces the most frequently
requested data elements from a NetSuite source system. This table automatically creates joins between the PostingTransactionSummary table and its associated
tables. As a result, this exposes the business friendly names for the most frequently requested NetSuite categories:
Account
Classification
Items
Department
Location
Subsidiary
Customer
For each table, the Name column is included. The Account Type column is automatically enabled from the Accounts tab. The category tables automatically import
when Import Structure runs.
You might need to filter out the account types that are not needed using an SQL filter in the Planning Loader as described in Creating a SQL Filter.
You can also choose to remove one or more default dimensions available in the joined table. Only include the categories you need for your model. All other
categories should be removed from the join, and the underlying column should be excluded from import from the PostingTransactionsSummary.
To specify the tables to import from the user account, follow these steps:
1. Expand the entry for the data source in the Data Components menu.
2. Drag and drop the tables you want to import to the Tables to Import section in the center of the screen.
As you drag each table to the Tables to Import section, a tab appears for the table and information appears in the Tables to Import section, letting you see
the type of information you added. Each table's tab also has a drop-down menu you can access by clicking the arrow next to its name.
Managing Columns
If a table you work with has a large number of columns, you can use the Manage Columns to do quick edits for which columns to import. The Manage Columns
dialog box displays the columns in a table so you can then check or uncheck columns for importing.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 17/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Click the arrow on the tab to the right of the table name.
2. Click Manage Columns on the floating menu.
3. Check the box next to a column to import it.
When you check a column, the column also appears within the preview window after the popup contents are saved. Unchecking a column removes the
column from the preview window.
You can't change the import status on system-generated fields such as isDeleted.
1. Click the arrow on the tab to the right of the table name.
2. Click Table Settings on the floating menu.
3. Enter the table settings:
Data Import Mode: There is only one option in the drop-down list:
Data source to automatically select the best synchronization approach: This is the default. The data source examines NetSuite and
automatically uses the best way to synchronize data in the staging area with the information in the NetSuite. (Some tables are read in their
entirety each time while others use differential updating.)
Data Import Filter: Use this to enter a SQL expression that filters or formats information being imported. The SQL filter is applied before data is
extracted from NetSuite to reduce the amount of data that needs to be imported, giving you an additional level of control for which data is brought
into the staging area. Click the field to display the Edit SQL Expression dialog box. (the filter you enter here is applied to the actual data in NetSuite
rather than the preview data in the staging area.) Not all data sources support the same level of SQL filtering capability.
Period Parameter: The NetSuite tables PostingTransactionBalance and PostingTransactionSummary import by default and require
configuring a period parameter before import. If you choose to import the ConsolidatedExchangeRate or BudgetExchangeRate tables, they also
require configuring a period parameter. If a period parameter is not configured for these tables, the import will fail with the message:
Note: NetSuite has a very limited, non-SQL filtering capability. Only very simple expressions are supported.
4. Click Apply to apply the settings.
5. Repeat steps 1-3 for each table.
6. Click Save to save the settings in the data source.
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
For each table, you can customize the way data imports.
1. Expand the Custom Column folder in the data source in the Data Components menu.
2. Drag and drop the Subquery Column component to the Tables to Import section in the center of the screen.
3. Enter the column settings:
Name: Enter the name for the subquery column:
Column Type: This display-only field identifies this as a boolean column.
Related Table: Select a related table to use for comparison.
Join Expression: Click this field to enter a join condition. The Edit SQL Join Expression dialog box appears. (More information on creating SQL
joins appears in Steps: Add SQL Join Tables and Columns.)
Join Value Rule: Select one of the SQL join value options from the drop-down list: Exists, Does Not Exist, Sum, Count, Min, or Max.
4. Click Apply to apply the settings.
5. Click Save to save the settings in the data source.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 18/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. Click Send at the prompt This operation will send an email with a url to download the data.
Integration sends an email containing a URL to the email account associated with the data designer.
4. Open the email and click the URL. The data downloads in .csv format.
The preview area is specifically for previewing a small portion of the data in the staging area (or NetSuite). You can explore the data that is available from the
Spreadsheet account and verify that you are getting the data you expect by examining the staging area. You can also use this to refine the data import filter you
want to use. (Filters set in the preview function do not affect the actual data in the staging area.)
Max Rows: Limit the number of rows displayed in the preview area by entering a number in the text box.
Columns: Check or uncheck columns in this drop-down menu to show or hide the columns displayed.
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Expression dialog box, where you can enter a SQL filter to restrict the rows being previewed.
Click Apply to automatically check the SQL syntax of the filter. (If there are any errors, the error is indicated in the expression.) The expression you entered
appears in the Data Import Filter field. For detailed SQL syntax help, you can click here in the Notes section. NetSuite has a very limited, non-SQL filtering
capability. Only very simple expressions are supported.
Click Remove Filter (next to the Source drop-down menu) to clear the settings in the preview window.
Note: NetSuite designates certain columns as key columns. This information is brought over into the staging tables. This information should not be modified.
1. Click Import data in the Actions menu. The selected data is filtered by any SQL expressions and loaded into the staging area. You can preview the data in
the staging area.
1. Click Clear staging tables in the Actions menu. The staging area for all the tables in the data source is cleared.
Tip: Best Practice: When importing NetSuite Transaction Types, make sure you only use the supported NetSuite Transaction Types.
Importing saved searches requires configuring a NetSuite Saved Search in the Data Designer then importing its structure. Saved Searches within integration
support NetSuite Custom Records, Custom Fields, and Custom Segments.
1. In the Managed Saved Searches dialog, click a Saved Search you previously created to select it.
2. Click the actions button below the navigation tree and select Import structure in the Actions Menu, or right-click on the saved search and select Import
structure.
3. After the import Saved Search structure succeeds, close the Managed Saved Searches dialog.
4. The staging area will display a tab for each saved search structure you imported.
Be aware that all Saved Searches in the Data Components panel will import if you click Import structure in the Actions pane.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 19/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Tip: Best Practice: Make sure that the results of your Saved Search structure import does not contain columns with NetSuite Summary Results. This is a NetSuite
web services API restriction.
Note: The maximum number of NetSuite Saved Searches that can be imported is 1000.
1. In the staging area, click the arrow icon in the tab for a table of your NetSuite Saved Search.
2. Select Table settings from the dropdown.
All records replaced each time a data import is run: This is the default. This replaces all data when the import is run.
All records that fall within a period range transmitted: This allows you to select a period range using a parameter, then choose a Saved Search
table's datetime column the parameter applies to. You can click Edit parameters within this dialog to create a period range parameter to use. If you
choose to import a period range, you must set a period parameter or the import will fail.
3. Click Apply
4. Click Save in the Actions panel
If a NetSuite saved search is deleted within NetSuite, a message will indicate it is no longer available when performing the import structure action. If a saved search
that is already being used within Integration for data import is modified in NetSuite, then future data imports are not guaranteed to succeed.
Tip: Best Practice: Within NetSuite, create your saved searches specifically for use in integration and name them so that they are not modified or deleted by other
NetSuite users.
Tip: Best Practice: Make sure that you have the appropriate permissions in NetSuite to view the contents returned by a Saved Search result. If you don't have
permission to the content, your search will return zero records without an error message. This is a limitation in NetSuite indicated in their online help: If you
reference a saved search for which you do not have the permission, the exception is ignored and fields have no value (are not in
the SOAP response at all).
If you are configuring multiple columns on the NetSuite side to map to a single Planning dimension, then those NetSuite columns need to be combined in the data
source using a Tuple SQL column.
For more details, see the Understanding Mapping Profiles section of Create Planning Data Loaders.
Before getting started, ensure the Enhanced bundle-based drill-through checkbox is checked within Planning's Integration > NetSuite Setup menu.
Make the data source adjustments required for the defined dimensional mappings.
1. If you have multiple NetSuite categories mapped into the same Planning Dimension, revisit the NetSuite Data Source to add a tuple SQL column for a
many-to-one mapping of the columns.
2. Click the Adaptive Posting Transaction Summary table within Tables to Import.
3. Select Manage Columns in the dropdown for Adaptive Posting Transaction Summary.
4. Enable AccountInternalId.
5. Enable the InternalIds for the other dimensions you plan to drill by.
6. Save the data source.
Make the loader adjustments required by using the data source adjustments for the dimensional mapping.
1. Once the Netsuite Data Source settings above are complete, configure a Planning Data Loader to import NetSuite actuals data.
Link a Profile to the External System you configured in the Configure a NetSuite External System step.
Attach this profile to the Planning Loader.
2. Click the Column Mapping tab.
3. For the Account row:
In the Source Id column select the accountInternalId column from your source table.
In the Source Display Name column select the display name.
4. Repeat the step above for each of the other standard dimensions that you want to drill by.
5. Save the loader
With all of those steps completed you should now be able to drill.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 20/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: As of NetSuite's 2020.1 release, NetSuite enforces Token Based Authentication (TBA) for all users.
A NetSuite credential is a collection of token-based authorization keys from NetSuite that act like a password for connecting to a NetSuite endpoint. You can
associate a NetSuite credential with one or more NetSuite data sources as a centralized way of reusing NetSuite login details.
NetSuite Account ID to identify the user (automatically carried over when upgrading an existing NetSuite data source to the 2020.1 endpoint)
Consumer Key
Consumer Secret
Token ID
Token Secret
Important: Because token-based authorization keys function exactly like a password for a NetSuite account, Adaptive Planning prevents viewing their values the
moment you enter them. Always treat token-based authorization keys as you would a password.
Note: NetSuite Token Based Authentication uses HMAC-SHA256 signature method.
Prerequisites
In NetSuite
Generate authorization tokens within NetSuite for the user that integrates with Adaptive Planning and have the keys available
In Adaptive Planning
Navigation
Basic Steps
1. Create a new NetSuite Credential
2. Name the NetSuite Credential and enter the NetSuite Account ID and its token-based authentication keys
3. Associate the credential with a NetSuite data source that uses at least the NetSuite 2020.1 endpoint.
Integration Table: The name of the table as shown in the integration data source.
Table Source: The name of the table as used in the NetSuite Schema Browser.
Access: The access mechanism for each NetSuite table. The types are:
Search means Integration brings across all records that match the search criteria using the specified API. Constrained search means Integration
imposes additional constraints on the search in addition to any search constraints NetSuite may impose.
Get all means Integration brings across all the records using the specified API.
Differential means Integration brings across only the data that has changed.
Comments: Comments about the tables.
Integration also supports custom NetSuite tables that are exposed by the NetSuite Web Services API. You can choose which table/columns to import for each one.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 21/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Location LocationSearchRowBasic
Opportunity OpportunitySearchRowBasic
Partner PartnerSearchRowBasic
PostingTransactionBalance Special: Constrained Table created in the Integration source, not available in
getPostingTransactionSummary search NetSuite. This table contains period ending balances.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 22/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: The AdaptivePostingTransactionSummary and PostingTransactionSummary tables return a monthly delta, whereas the PostingTransactionBalance table
returns period balances. The AdaptivePostingTransactionSummary and PostingTransactionSummary tables support the standard categories (Account, Time Period,
Subsidiary, Department, Class, Location, Item, Customer). If you need additional categories you must use the Transaction table.
Campaign
Customer
Employee
EntityGroup
Item
Job
Opportunity
Partner
ProjectTask
SupportCase
TimeBill
Transaction
Vendor
In addition, all Custom Record types are differentially updated. You cannot use the Differential Date Column in your data import filter for differentially updated tables.
The system does not prevent you from trying to do this, but it will cause the differential update mechanism to fail.
You can limit the amount of data imported in a differential table when you are "exploring," that is, changing columns and filter settings. There is a mechanism in the
data source to short circuit the full load of differential data.
The table below contains all the differential tables along with their differential and creation date columns.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 23/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If you specify a greater-than or a great-than-or-equal filter on the Creation Date Column for your table, the code bypasses the full import and just differentially
updates from the specified date and time. This is helpful for limiting the imported data because when you start exploring a large differentially uploaded table, you
can set the filter to extract only the last few days' (or weeks') worth of data. This kind of load runs very quickly. You can then figure out what columns you need and
what other filter conditions you want to use. Once you are satisfied, you can remove the creation date filter and restart the full data load.
Note: For some tables you may not ever want records older than a certain date. For these tables you can continue to use the creation date filter with an appropriate
value.
For standard NetSuite data fields in searched' tables, the following mappings are used:
SearchColumnStringField Text
SearchColumnSelectField Text
SearchColumnEnumSelectField Text
SearchColumnDoubleField Float
SearchColumnBooleanField Boolean
SearchColumnLongField Integer
SearchColumnTextNumberField Text
SearchColumnDateField DateTime
For standard NetSuite data fields in tables (which are always fetched in their entirety), the following mappings are used:
String Text
RecordRef Text
Double Text
Boolean Float
Long Boolean
System.DateTimeFloat Integer
Custom Fields
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 24/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The NetSuite Data Source supports a subset of the possible custom NetSuite custom fields.
Task
Custom Entity Fields
Contact
Customer
Employee
Entity Group
Job
Partner
Vendor
Custom Item Fields
Item
Custom Transaction Fields
Transaction Body
Transaction Column
Transaction Item
Other Custom Fields
Account
Classification
Department
Location
PromotionCode
Note that custom fields must have the "STORE VALUE" attribute checked in order for the field to be exposed on the NetSuite web services API.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 25/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Integration supports all of the defined NetSuite custom field data types. However, because Integration internally implements only five basic data types, the NetSuite
custom field data types are mapped to most appropriate Integration data types. The following table illustrates this mapping:
_checkBox Float
_currency DateTime
_date DateTime
_decimalNumber Float
_eMailAddress Text
_freeFormText Text
_help Text StoreValue not set. NetSuite won't allow retrieval of this type.
_hyperlink Text
_inlineHTML Text
_integerNumber Integer
_longText Text
_password Text
_percent Float
_phoneNumber Text
_richText Text
_textArea Text
_timeOfDay DateTime
Additional Information
The following sections describe some additional considerations for accessing NetSuite data.
Each field in a search can have a maximum of one filter. The filters are ANDed together by NetSuite when the search query is executed.
Only tables that are accessed via a "search" mechanism can have synchronization filters set.
In addition, only those fields that exist in both [TableName]SearchRowBasic and in [TableName]SearchBasic can be used in synchronization filters.
When querying NetSuite directly (as opposed to querying records imported into staging from NetSuite) filter expressions are limited to the capabilities exposed by
NetSuite via Web Services.
Simple column filters with Comparison and Logic Expressions may be used when querying NetSuite.
Filters can be ANDed together but can not be ORed together.
Operators (+, -, /, *, $, ||) may not be used.
Scalar functions may not be used.
Case statements may not be used.
To filter on a custom column, the custom column must be marked for import.
Some column filters require specific NetSuite features to be enabled in order for the filter to work.
Excluded Fields
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 26/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A number of NetSuite fields are excluded from import for various reasons. The table below shows some of these excluded fields.
SalesTaxItem: zip A delimited list of zip codes. This text field can be exceedingly long (longer than the default 1,024 character limit for a text field) and
is not considered particularly useful for Integration operations.
Saved Searches
To configure a NetSuite Saved Search, see Importing NetSuite Saved Searches section in Steps: Set Up NetSuite Data Sources
Customers can enable drill-through on data imported from NetSuite. Drill-through links will become available on Planning sheets and reports for actuals imported
from NetSuite. In order to configure drill-through for NetSuite, you should ensure that your internal identifiers are used as part of column mapping in the Planning
loader. You will need to configure a NetSuite external system and attach it to a profile that is used by the Planning loader.
If you are configuring multiple columns on the NetSuite side to map to a single Planning dimension, then those NetSuite columns need to be combined in the data
source using a Tuple SQL column. For more details, refer to the Integration sections on column/data mapping and profiles.
To import GL actuals using the Transaction table, set the GL accounts in Planning to Actuals by monthly delta. Navigate to the Account Admin, select the GL
account and view the account details to find the Actuals by section. In this method, planning takes care of accumulating amounts on balance sheet accounts.
Your search has timed out. If your search includes the 'contains' operator, try using 'hasKeywords' instead. If your search includes broad search criteria, try
narrowing the criteria.
This error indicates that the request ran too long in NetSuite. This condition usually occurs because the filter criteria in the request would create an extremely large
result. NetSuite allows approximately 3 minutes of processing for a request. (Note that this is time allowed for the actual database query within NetSuite. The
amount of time required for a result to be returned can be much longer since it is gated by NetSuite's traffic policies.)
There are several ways to address this error. A good general guideline is to make sure that the request being generated is as specific as possible. For example,
only include transaction types that are actually used by the loaders. Another way to prevent or resolve this error is by using the Backfill Batch Duration property. For
tables that are differentially updated, this property determines the size of the update chunk. The Backfill Batch Duration is defaulted to 168 hours (one week).
However, this value may be too high if you are dealing with a request for high density data. Lowering this value reduces the size of the individual request by
tightening the time filter, which can prevent or resolve this error.
The minimum value for the Backfill Batch Duration property is one hour. The tradeoff here is that you are "nibbling" at the data rather than "gulping" it, which means
that many more requests have to be sent to NetSuite in order to complete the update. For instance, reducing 168 to 24 means that you are only trying to grab one
day at a time, but it means seven times as many requests.
Because there is no practical way to tell the density of data ahead of time, you may want to experiment with your queries and adjust the Backfill Batch Duration
property as needed to deal with the issue.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 27/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A join table can be used to extract/filter an individual list from the AllCustomLists staging table. For example, to create a table that has the members of the list called
Resolutiontime (with InternalId 19):
In this join expression the InternalId value is the 'selector' that picks the particular custom list that you want.
Create a new Join table. A reasonable name for the table would be "CustomList[*]" where [*] is the 'Name' value of the list that is being extracted. So for this
example the name would be "CustomListResolutiontime".
Set the Primary Table to "AllCustomLists".
Add a Join.
Primary Table: AllCustomLists
JoinedTable: AllCustomLists
Type: Inner
Column Prefix: (blank)
Join Expression: P."InternalId" = '19' and R."InternalId" = '19' and P."ValueId" = R."ValueId"
In this join expression the InternalId value functions as the 'selector' that picks the particular custom list that you want.
Then, in the join table pick only the columns from the primary table that you need (usually just "Value" and "ValueId").
Even though Account and Level data varies from one customer to another, here are a couple of examples to show how a data designer can create SQL columns in
the staging area to prepare data before loading into Planning.
Account:
Level:
CASE WHEN "Department.Name" is null THEN 'No Department' ELSE TRIM("Department.Name") END || ' ' || "Location.Name"
The data designer allows you to create business rules for easy loading. Here are some tips for handling rules relating to account information:
Account codes must be numerical values so that it's easy to add the range of GL accounts to be reversed.
Avoid using underscores for these type of accounts. If you use an underscore, you have to manually add all account codes that you need to change the
signs for.
Account codes cannot have embedded spaces.
Timezone Configuration
The Account Time Zone for the NetSuite data source in Integration must match the timezone found in NetSuite's GUI under Preferences > Localization Time
Zone.
External References
The core resource for the NetSuite API is the online help system at the NetSuite website, http://www.netsuite.com. NetSuite generates a PDF of this online help with
each release of their product. A recent copy can be found by searching for "SuiteTalk (Web Services) Records Guide.
NetSuite information can be found at https://www.oracle.com/technical-resources/. If you register for an account you can apply for access to the NetSuite subject
areas.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 28/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The following is a list of NetSuite transaction types supported through the 2020.1 NetSuite endpoint by the NetSuite adapter within Integration. If a transaction table
or NetSuite Saved Search contains transaction types that are not supported through the NetSuite web services, the results of the Saved Search may produce
unexpected results.
See NetSuite's Help Center for more information (NetSuite Login required): https://system.na1.netsuite.com/app/help/helpcenter.nl
_assemblyBuild
_assemblyUnbuild
_binTransfer
_binWorksheet
_cashRefund
_cashSale
_check
_creditMemo
_custom
_customerDeposit
_customerPayment
_customerRefund
_deposit
_depositApplication
_estimate
_expenseReport
_inventoryAdjustment
_inventoryCostRevaluation
_inventoryTransfer
_invoice
_itemFulfillment
_itemReceipt
_journal
_opportunity
_paycheckJournal
_purchaseOrder
_requisition
_returnAuthorization
_salesOrder
_transferOrder
_vendorBill
_vendorCredit
_vendorPayment
_vendorReturnAuthorization
_workOrder
_workOrderClose
_workOrderCompletion
_workOrderIssue
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 29/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.1.2.6.5 | Reference: Permissions Required for Custom Roles in NetSuite Data Sources
Note: These permissions are only for the NetSuite data source in Integration. For NetSuite Basic permissions, go here.
When you create a custom NetSuite Web Services Only Role within NetSuite, this role typically needs a common set of permissions to get the default set of
NetSuite tables, columns, records, and fields into Adaptive Planning.
Prerequisites
Log in to NetSuite as an admin
Understand what you need to load from NetSuite to Adaptive Planning for your organization
Lists > Employee Record - VIEW (required if the customer has the Advanced Employee Permission feature)
Setup > Login using Access Tokens FULL (required for NetSuite 2020.1)
Setup > User Access Tokens FULL (required for NetSuite 2020.1)
Transactions > Each transaction type (e.g. Make Journal Entry, Opportunity, etc.) that you wish to process also needs to have its permission enabled for
view access.
Note: Permissions can be renamed in NetSuite. If you don't see a permission from this list, navigate in NetSuite to Setup > Company > Rename
Records/Transactions and check for changed names. For example, Class could have been renamed Classification. Error messages use the original names.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 30/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can use Custom Segment permissions to resolve errors in the event log that indicate:
Permission Violation: You need a higher permission for value management of custom segment <segment name> to access this page.
Please contact your account administrator.
Within NetSuite:
A table group is a data source that combines tables from many disparate sources. For example, you might have a spreadsheet with sales data, a couple of JDBC
databases that have personnel or inventory information, manufacturing information from another division in NetSuite, and then want to use scripting on a table to do
complex filtering and calculations, with all these tables linked by SQL joins and additional filtering.
You can set up a table group to import tables from different locations and then use SQL joins and other operations to filter and select information. You must have
any prerequisite data sources already set up: for example, if you're importing from a JDBC-based table, you must have a JDBC data source already set up,
including a data agent, that lets you access that database.
You can edit an individual table by clicking the arrow on the tab to the right of the table name. This displays the Join Table dialog box for the table.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 31/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore the data that is available from the spreadsheet and
verify that you are getting the data you expect by examining the staging area. You can also use this to refine the data import filter you want to use. (Filters set in the
preview function do not affect the actual data in the staging area.)
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Filter dialog box. You can enter a SQL filter to restrict the rows being previewed. Click Apply to
automatically check the SQL syntax of the filter. (If there are any errors, the error is indicated in the expression.) The expression you entered appears in the
Data Import Filter field. For detailed SQL syntax help, you can click online help in the Notes section.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
Set up a Web Services User in SAGE Intacct with Permissions for Full Read Access to General
Ledger and the Company Module
Set up a Web Services User within SAGE Intacct with the following settings and permissions. This user will only exist to pull data from SAGE Intacct into Adaptive
Planning.
Username: xml_gateway_adaptive
Email: Use your email address
Account User Type: business user
Account does not need admin rights
Account needs full read access to the General Ledger Module and the Company Module
Once you create the account, you will receive a Welcome To SAGE Intacct email that contains the username, company code, and temporary password. Copy and
paste these into your Intacct Data Source Settings.
1. Within SAGE Intacct, navigate to the Company > Company Info > Security tab. Click Edit.
2. In the Web Services Authorization Section, click the + icon above the top-right corner of the table.
3. In the Web Services Sender Information pop-up, enter adaptiveplanning. The Sender ID is case sensitive, only use lowercase.
4. Click Save.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 32/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
3. Select Intacct as your data source type and enter the name for the data source.
4. Click Create. The center area of the screen displays your new data source's settings.
5. Enter the data source's information:
Include active non-posting dimensions: Select this checkbox to include non-posting dimensions in the results.
Log level: Select a log level from the drop-down list to specify the detail for the logging for this data source. Your options are:
Error: Only logs errors.
Info: Logs all basic information, such as when the data source was updated.
Verbose: Provides very detailed information about all phases and actions. (This level is used primarily for debugging or auditing, as it may
produce more log information than is practical for typical use.)
User name: Enter the user name for the Intacct Web Services account.
Password: Enter the password associated with the user name.
Company ID: Enter the company ID associated with the user name.
Client ID: Enter the client ID associated with the user name. (Optional.)
Location ID: Enter the location ID associated with the user name. (Optional.)
6. Click Save on the Actions menu.
You can test the connection information in the new agent by clicking Test connection in the Actions menu. The system tries to connect to SAGE Intacct using the
information in the data source fields. If the system can connect to your SAGE Intacct account, click OK. If there are connection problems, contact support.
When you can connect to SAGE Intacct, you're ready to import the data structure. This shows you the tables and columns in the database.
1. Click Import structure in the Actions menu. A dialog box appears with informationabout what is imported.
2. Click OK. Integration imports the structure. A dialog box appears showing the progress.
3. Click Close when the import is complete. The tables and columns appear in the Data Components menu.
4. Click Close to close the Import Intacct dialog box.
5. Click Save on the Actions menu.
1. Expand the entry for the data source in the Data Components menu. Data components with a slash through their icon are not currently included for import.
2. Drag and drop the tables you want to import to the Tables to Import section in the center of the screen. As you drag each table to the Tables to Import
section, a tab appears for the table and information from the Spreadsheet account appears in the Tables to Import section letting you see the type of
information you've added. (Several sample tables appear below.) Each table's tab also has a drop-down menu, which you can access by clicking the arrow
next to its name.
Managing Columns
If a table you are working with has a large number of columns, you can use the Manage Columns to do quick edits for which columns to import. The Manage
Columns dialog box displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Manage Columns on the floating menu.
3. Check the box next to a column to import it. When you check a column, the column also appears within the preview window after the popup contents are
saved. Unchecking a column removes the column from the preview window. You cannot change the import status on system-generated fields such as
isDeleted. You can also change the import status on individual columns by selecting column properties and setting the property or by dragging and dropping
the columns onto the designer.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Table Settings on the floating menu.
3. Enter the table settings:
Data Import Filter: Use this to enter a SQL expression that filters or formats information being imported. The SQL filter is applied before data is
extracted from the database to reduce the amount of data that needs to be imported, giving you an additional level of control for which data is
brought into the staging area. Click the field to display the Edit SQL Expression dialog box. (The filter you enter here is applied to the actual data in
the database rather than the preview data in the staging area.) Not all data sources support the same level of SQL filtering capability.
4. Click Apply to apply the settings.
5. Repeat steps 1-3 for each table.
6. Click Save to save the settings in the data source.
You can change the options for each column by mousing over its heading and then clicking the drop-down menu next to its name. These options are:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 33/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. At the prompt This operation will send an email with a url to download the data, click Send. Adaptive Planning sends an email containing a URL to the email
account associated with the data designer.
4. Open the email and click the URL. The data is downloaded in csv format.
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore the data that is available from the Spreadsheet
account and verify that you are getting the data you expect by examining the staging area. (Filters set in the preview function do not affect the actual data in the
staging area.) The Advanced Filter lets you experiment with the data in the preview to set up a data import filter.
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Filter dialog box.
Enter a SQL expression in the field. This is a filter to restrict the rows being previewed. Click Apply to automatically check the SQL syntax of the filter. (If there are
any errors, the error is indicated in the expression.) For detailed SQL syntax help, you can click online help in the Notes section. The expression you entered
appears in the Advanced Filter section of the preview window.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
To clear data from the staging area, click Clear staging tables in the Actions menu. The staging area for all the tables in the data source is cleared.
In addition to the data tables and columns directly available to you from a spreadsheet or database, you can create tables with SQL joins. You can also use SQL
expressions on the data in a column. SQL join tables and columns are available to you in all data sources.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 34/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
7. Enter a SQL join expression. A list of the columns available to you appears on the left of the dialog box. Click Apply to automatically check the SQL syntax
of the join expression. The expression you enter appears in the Join Expression field. For detailed SQL syntax help, you can click here in the Notes section.
8. Click Apply in the create new join bar on the Join Table dialog box to apply the changes.
9. You can repeat the process to add another join to this table, or click Apply at the bottom of the dialog box to save the changes to the join table.
The completed join table appears in the list of tables for the data source. (To include columns for import, locate the newly created join table in the list of tables under
the data source. Open the join table and locate the column that you would like to include for import. Drag and drop the selected column on to the Joined table in the
Preview region.)
You can edit the table settings by clicking the arrow next to the table name, which displays the Join Filter dialog box described earlier instead of the standard Table
Settings dialog box for other tables.
The completed column appears in the table you had selected. You can edit the column settings by clicking the arrow next to the column name, which displays the
Column Settings dialog box described earlier instead of the standard Column Settings dialog box for other columns.
Union tables let you combine or stack table row data, even when the tables comes from different data sources. With a union, you combine rows from one table with
rows from another table to make a single larger table. The data in each column must be of the same data type. For example, a retail chain that uses different ERP
systems across regions may want to combine all ERP data into in a single large table.
Prerequisites
Required Permissions: Integration and Data Designer
Verify you imported at least two staging tables for a data source.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 35/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
6. Select OK to save your union table settings and view the results of your union.
7. Save the data source.
1.1.2.11 | Steps: Swap CCDS and Planning Data Source Credentials to Workday Credentials
For increased security and functionality, you can swap to a Workday Credential that authenticates with a JWT Bearer Grant Token for a:
Custom Cloud Data Source (CCDS) that connects to Workday via OAuth 2 credential
Planning Data Source (Adaptive Planning as a data source) that authenticates with username and password
Prerequisites
In Workday
In Adaptive Planning
Give the ISU you created a permission set with Design Integrations permissions and data access.
Steps
1. Create the Workday Credential in Adaptive Planning.
2. Register a Workday API Client with JWT Bearer Grant.
3. Swap the Credential in Planning Data Sources and CCDS.
Complete the Workday Credential in Adaptive Planning for JWT Bearer Grant
1. Return to the browser window for Adaptive Planning containing the incomplete Workday credential.
2. Enter the Workday ISU username you want associated with this credential.
3. Paste the Client ID you copied from Workday.
4. Select Test Connection in the Actions pane, and select Test. A message indicates if the connection succeeded.
Note: Your data source definition won't change if you connect to the same Adaptive Planning environment regardless of the warning message " Existing definition
of data source will become invalid if the credential is changed. Do you want to continue?
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 36/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can use Adaptive Planning as a data source to import metadata and data from your current Adaptive Planning instance, or another instance. When you set up
a Planning data source, you need to create an Adaptive Planning credential. The Adaptive Planning credential lets you reuse authentication details with more
Adaptive Planning data sources or loaders.
Prerequisites
Create an Adaptive Planning Data Source Credential
Verify that the Adaptive Planning credential you select for this data source has the permissions and dimensional access for the metadata and data you need.
Permissions required: Integration > Data Designer and Integration Operator
Navigation
Basic Steps
1. Create an Adaptive Planning credential.
2. Create a Planning data source.
3. Select the Adaptive Planning sources, such as sheets, dimensions, levels, accounts, attributes, time periods, and versions to import.
4. Import the Adaptive Planning structure from the sheets or accounts.
5. Import the Adaptive Planning data from staging tables.
6. Automate Adaptive Planning imports using an integration task.
1. Select the Planning Data Source you just created in the Component Library if it isn't already selected.
2. Select Manage Sources in the Actions pane.
3. Select the Sources folder in the Manage Sources dialog.
4. Select Add beneath the Sources folder, or right-click on the Sources folder and select Add to select a:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 37/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
When you select a dimension filter parameter, the import dimension data only returns the filtered dimensions. You can select:
Only the External Dimension parameter if your Planning credential is connected to an external instance.
The Shared Dimension parameter if your Planning credential is connected to a self instance.
When you select the version filter parameter, the import dimension data only returns the version filtered dimensions. You can select:
Only the External Version parameter if your Planning credential is connected to external instance.
The Shared Actuals Version parameter or shared Plan Version if your Planning credential is connected to self instance.
1. Select Edit Parameters in the Settings tab of your Dimension Source. You can also select shared parameters when your planning credential is connected
to your local instance. This enables you to reuse the available shared parameters for other data sources.
2. Right-click the Local folder and select Add in the Edit Parameters dialog.
Select External Version to choose the version you want to use.
Select External Level Single to choose a single level.
Select External Level Multiple if you want to choose more than one level.
Select External Account to choose the accounts you want to use.
Select Period Range to configure a fixed or dynamic period range.
3. Give your parameters names that let you understand their use.
4. Select Apply.
With local parameters created, you can now select them for the Account, Level, Version and Period Range filters in the Dimension Source.
When you create a Custom Source you select parameters for the Account, Level, Version, and Period Range in the Adaptive Planning instance your credentials
connect to. You need to create parameters before you can select them. Remember, these parameters relate to what you can select on the external Adaptive
Planning instance.
The word External you see when you create these parameters reminds you that you are creating them for an external Adaptive Planning instance. You can select
shared parameters when your planning credential is connected to your local instance. This enables you to reuse the available shared parameters for other data
sources.
1. Select Edit Parameters in the Settings tab for the Custom Source.
2. Right-click the Local folder and select Add in the Edit Parameters dialog.
Select External Version to choose the version you want to use.
Select External Level Single to choose a single level.
Select External Level Multiple if you want to choose more than one level.
Select External Account to choose the accounts you want to use.
Select Period Range to configure a fixed or dynamic period range.
3. Give your parameters names that let you understand their use.
4. Select Apply.
With local parameters created, you can now select them for the Account, Level, Version and Period Range filters in the Custom Source.
Important: Importing structure requires a manual action, and will not run automatically when you select Import Data. If you don't import structure after it has
changed, you will see an error prompting you to Import Structure again to update the structure.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 38/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can customize how data from each Adaptive Planning table imports.
1. Select the triangle next to the table name in the Staging Area.
2. Select Table Settings.
3. Change the settings. What you can choose varies depending on the table columns.
Data Import Mode:
All records replaced each time a data import is run
All received rows are new and so should be added
All records that fall within a period range transmitted (available only if a source sheet contains a Timespan)
If you set a period parameter you can page cube sheet import data by the time strata that appear in that cube sheet. For example, you can select from Year, Month,
or Quarter if those time strata exist for the sheet. Paging breaks apart the import request by time strata, making large cube sheet imports more efficient. The import
progress indicates the status of each page load.
1. Drag any additional Adaptive Planning tables you might want from the Data Components area into the Staging Area
2. Select Import Data in the Actions Pane. The data gets processed by your import filters and parameters.
3. Provide any needed values for parameter prompts that appear at run-time.
4. View the import progress for any import errors or messages.
5. Review the data in the Staging Area. Imported data remains there until you clear it by selecting Clear staging tables in the Actions pane.
After you import to the staging tables, you can load from staging into Adaptive Planning with a loader.
You can change the External Version parameter at runtime to return filtered data and run Import Data with the updated filter value. Go to Manage Sources in
Actions pane to set the external Version parameter.
Example: When you set the Version filter for a Sheet source to be an External Version parameter and run Import Data, we populate the Plan Version drop down list
with versions that were available during the external version configuration.
If you reimport dimension values after deleting one in the Dimension Admin, a row for the deleted dimension value appears in the staging area. The row contains a
hidden isDeleted column set to True in the staging table preview.
To get rid of this row, clear your staging table and reload it.
Any Integration Task can have one or more loaders. A task can contain other tasks, like a Planning Data Loader, a Planning Account Loader, or a Scripted Loader.
Tip: Best Practice: Have separate Integration tasks for each loader.
If a task contains multiple loaders, parameters from each loader display in a prompt when the task runs. If there is a common or shared parameter in the loaders
within a task, the task prompts for the parameter only once. You can select to override parameter prompts.
For scheduled runs of the task, default values of the parameters are used.
To use Adaptive Planning as a data source within integration, you must create and select a credential. If the username entered in the credential can access a multi-
instance environment, you also select the Adaptive Planning instance you want to use. Passwords for Adaptive Planning credentials do not get stored within
integration. When you provide a valid Adaptive Planning username and password during authorization an internal token authenticates the user for data source use.
Note: If your instance is Workday-enabled and you synchronized users from Workday to Adaptive Planning, you must select a Workday Credential for your Planning
data source or create a Planning Credential by selecting Use Currently logged in user.
Prerequisites
Required Permissions: Data Designer.
Acquire the Adaptive Planning username and password
Verify the user exists and can log in to the Adaptive Planning instance you want to access.
Verify the user has the appropriate permissions in their instance to the areas in Adaptive Planning you need for the loaders you want to create and run.
Changing the username within an existing Adaptive Planning Data Source Credential can change the instance code the credential uses. Existing data
sources that use the credential could become invalid.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 39/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Use a Credential
Once you complete your Adaptive Planning credential, you can select it when you set up Adaptive Planning as a data source. Edit a Credential
Important: Changing the username within an existing Adaptive Planning Data Source Credential can change the instance code the credential uses. Existing data
sources that use the credential could become invalid.
Delete a Credential
Important: Deleting a credential removes it from every data source using it. You must select another credential or create a new credential for all of those data
sources. If you don't provide credentials for the associated data sources, manual and scheduled loaders won’t run.
You can use integration to import data from Microsoft Dynamics GP. Adaptive Planning supports Microsoft Dynamics GP version 2010, 2013, and 2015, but not the
older Microsoft Dynamics GP 10.0.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 40/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can test the connection information in the new agent by clicking Test connection in the Actions menu. The system tries to connect to Microsoft Dynamics GP
using the information in the data source fields. If the system can connect to your Microsoft Dynamics GP account, click OK. If there are connection problems,
contact support.
When you can connect to Microsoft Dynamics GP, you're ready to import the data structure. This shows you the tables and columns in the database.
1. Click Import structure in the Actions menu. The tables and columns appear in the Data Components menu.
2. Click Close to close the Import Structure dialog box.
3. Click Save on the Actions menu.
To remove specified characters from Input Text Streams in Microsoft Dynamics GP:
Refer to Remove Specified Characters from Input Text Streams in JDBC and Microsoft Dynamics GP .
To specify the tables to import from the Microsoft Dynamics GP account, follow these steps:
1. Expand the entry for the data source in the Data Components menu. Data components with a slash through their icon are not currently included for import.
2. Drag and drop the tables you want to import to the Tables to Import section in the center of the screen. As you drag each table to the Tables to Import
section, a tab appears for the table and information from the Spreadsheet account appears in the Tables to Import section letting you see the type of
information you've added. Each table's tab also has a drop-down menu, which you can access by clicking the arrow next to its name.You can extend the
Account Summary table by including extra columns from the base tables, custom SQL expressions, or subquery columns.
If the Microsoft Dynamics GP account includes multiple companies, the data source will also include a union table called ALL.Adaptive Account Summary.
Managing Columns
If a table you are working with has a large number of columns, you can use the Manage Columns to do quick edits for which columns to import. The Manage
Columns dialog box displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Manage Columns on the floating menu.
3. Check the box next to a column to import it. When you check a column, the column also appears within the preview window after the popup contents are
saved. Unchecking a column removes the column from the preview window. You can not change the import status on system-generated fields such as
isDeleted. You can also change the import status on individual columns by selecting column properties and setting the property or by dragging and dropping
the columns onto the designer.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Table Settings on the floating menu. The Table Settings dialog box appears.
3. Enter the table settings:
Data Import Filter: Use this to enter a SQL expression that filters or formats information being imported. The SQL filter is applied before data is
extracted from the database to reduce the amount of data that needs to be imported, giving you an additional level of control for which data is
brought into the staging area. Click the field to display the Edit SQL Expression dialog box, shown earlier. (The filter you enter here is applied to the
actual data in the database rather than the preview data in the staging area.) Not all data sources support the same level of SQL filtering capability.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 41/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can change the options for each column by mousing over its heading and then clicking the drop-down menu next to its name. These options are:
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. At the prompt This operation will send an email with a url to download the data, click Send. Adaptive Planning sends an email containing a URL to the email
account associated with the data designer.
4. Open the email and click the URL. The data is downloaded in .csv format.
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore the data that is available from the Spreadsheet
account and verify that you are getting the data you expect by examining the staging area. (Filters set in the preview function do not affect the actual data in the
staging area.) The Advanced Filter lets you experiment with the data in the preview to set up a data import filter.
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Filter dialog box.
Enter a SQL expression in the field. This is a filter to restrict the rows being previewed. Click Apply to automatically check the SQL syntax of the filter. (If there are
any errors, the error is indicated in the expression.) For detailed SQL syntax help, you can click online help in the Notes section. The expression you entered
appears in the Advanced Filter section of the preview window.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
1. Click Clear staging tables in the Actions menu. The staging area for all the tables in the data source is cleared.
While connecting to a MS SQL Server database through the Microsoft Dynamics GP preconfigured adapter, there may be a requirement to interoperate with the MS
SQL Server Integrated Security feature. For integration to work with the Integrated Security feature:
1. Configure the Log On property of the Data Agent service to use a domain user (there must be a \ in the account name). The Password and Confirm
Password fields should contain the password values for the configured domain user.
2. In the Microsoft Dynamics GP adapter configuration in the Data Designer, enter \ in the Username field and welcome in the Password field. These values
trigger integration to use the credentials entered in the data agent service Log On credentials to connect to the MS SQL Server database. The values
entered within the data designer will not be used to connect to the source database.
Setting up a Microsoft Dynamics GP Data Source describes the basics of configuring a data source using the preconfigured adapter for Microsoft Dynamics GP.
This topic provides additional technical information for data designers who are setting up the Microsoft Dynamics GP preconfigured adapter. Integration supports
Microsoft Dynamics GP version 2010, 2013, and 2015, but not the older Microsoft Dynamics GP 10.0.
The key differentiator for using Microsoft Dynamics GP as a data source is that it supports multiple companies. When setting up a Microsoft Dynamics GP data
source, you can enter the companies you want to import in the Company Databases field in the data source settings tab and separate them with semicolons.
Leaving this field blank imports all of the companies.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 42/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
$ADP_ACCOUNTSUMMARY - Account Summary Yes This is a table created by the Agent. It is not a native DB table from GP.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 43/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Additional Considerations
These are some additional considerations for accessing Microsoft Dynamics GP data: Simple column filters with comparison and logic expressions may be used
when querying Microsoft Dynamics GP.
You can not use operators (such as +, -, /, *, $, ||), scalar functions, nor case statements.
The configuration can be further customized via advanced configurations available to Professional Services.
For information on the interoperability of MS SQL Server's Integrated Security with integration, see Interoperability of MS SQL Server's Integrated Security.
Scripted data sources let you solve complex, custom data extraction and transformation scenarios. You can write Kettle ETL scripts to specify information sources
to extract data from and then apply customer-specific business rules to the extracted data. Before you set up a scripted data source, you must have Data Agent
installed on an on-premises Windows server in the network. See Using Data Agents for more information.
Note: Scripted data sources are for advanced ETL implementers who have experience writing Pentaho Kettle scripts and using the Spoon UI. For more information
about Pentaho Kettle and Spoon, including extensive documentation and tutorials, please see the Pentaho wiki at http://wiki.pentaho.com.
Starting Spoon
After you have saved the basic information for the scripted data source, you can start Spoon, the ETL script editor, work with the script, and add tables to the
scripted data source.
5. Select the tenant from the drop-down. There is usually only one tenant. Spoon refreshes the tenant list.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 44/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
6. Select the agent you are using for this data source from the drop-down. Spoon refreshes the agent list.
7. Select the scripted data source you just created from the drop-down in Edit Script.
Now that you're logged in and have told Spoon which agent and data source you are working on, you can start editing the script.
1. Click Data Integration in the upper-right corner of the Spoon screen. The Integration perspective of Spoon appears.
2. Select File > Open and browse to the script you want to view and edit, then click OK. The Scripted Data Source sample scripts included with Integration
give information about script structure and database connections that may be useful to you as you develop your own scripts.
3. Edit the script as appropriate, then save it.
4. Click Adaptive in the upper right to return to the Adaptive Perspective. The Spoon screen displays again.
5. Click Publish Agent Changes. This pushes the script back up to the Adaptive Planning server, where it is stored in the script repository.
The following data import modes are supported. The settings can vary by table.
Note: It's essential that the columns defined in the data source must match the columns defined in the ETL script exactly, or else the data load will fail.
Managing Columns
If a table you are working with has a large number of columns, you can use the Manage Columns to do quick edits for which columns to import. The Manage
Columns dialog box displays the columns in a table so you can then check or uncheck columns for importing.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Manage Columns on the floating menu. The Manage Columns dialog box appears.
3. Check the box next to a column to import it. When you check a column, the column also appears within the preview window after the popup contents are
saved. Unchecking a column removes the column from the preview window. You can't change the import status on system-generated fields such as
isDeleted. You can also change the import status on individual columns by selecting column properties and setting the property or by dragging and
dropping the columns onto the designer.
1. Click the arrow on the tab to the right of the table name. A floating menu with several options appears.
2. Click Table Settings on the floating menu.
3. Click Apply to apply the settings.
4. Repeat steps 1-3 for each table.
5. Click Save to save the settings in the data source.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 45/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
While using the Tables to Import section, you can see a preview of the data as it is in the data source or as it is in the Staging area after it has been imported. You
can change the options for each column by hovering over its heading and then clicking the drop-down next to its name. These options are:
Sort Ascending: Sort the entire table based on this column in ascending order.
Sort Descending: Sort the entire table based on this column in descending order.
Column Settings: This dialog is used to change the properties of the column within the staging table.
Name: The name of the column, displayed in the header.
Column Type: The type of data used in the column.
Convert Column Type: Select the new type from this drop-down menu.
Exclude column from import: Select this to remove this column from the data being imported.
Delete custom column: Select this to delete the column. (Available for custom columns only.)
1. Click the down arrow in a table heading in the Tables to Import section.
2. Select Download Data.
3. At the prompt, This operation will send an email with a url to download the data, click Send. Adaptive Planning sends an email containing a URL to the
email account associated with the data designer.
4. Open the email and click the URL. The data downloads in .csv format.
The preview area is specifically for previewing a small portion of the data in the staging area. You can explore the data that is available from the spreadsheet and
verify that you are getting the data you expect by examining the staging area. (Filters set in the preview function do not affect the actual data in the staging area.)
Note: Removing a column from this list does not remove the column from the import list.
SQL Filter: Click the large text box to display the Edit SQL Filter dialog box (described earlier), where you can enter a SQL filter to restrict the rows being
previewed. Click Apply to automatically check the SQL syntax of the filter. (If there are any errors, the error is indicated in the expression.) For detailed SQL
syntax help, you can click online help in the Notes section.
Click Remove Filter (next to the Source drop-down menu) to clear all advanced filter settings.
Note: As part of the table customization process, you can also create join tables and custom columns using SQL expressions.
To add a parameter:
1. Click the Edit Parameters icon to the right of the Parameters heading. The Parameters Editor dialog box appears.
2. Click the folder in the left pane that you want to add a parameter to. The folder name appears in the right pane.
3. Click Add and select one of the following options from the floating menu:
Folder: Create a new folder.
Boolean: Create a boolean parameter (true/false).
Integer: Create an integer parameter.
Text: Create a text parameter.
Password: Create a password parameter.
Period Range: Create a period range parameter (from/to dates).
Dimension: Create a dimension.
Actuals Version: Create an Actuals Version.
Plan Version: Create a Plan Version.
4. In the right pane, enter the information for the option you selected.
5. Click Apply.
You can edit individual parameters or the folders by double-clicking the item you want to edit in the left pane and making changes to the information in the fields,
then clicking Apply to save your changes.
You can also create folders to group parameters, then drag parameters to the folder.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 46/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Click Import data in the Actions menu. The selected data is filtered by the ETL scripts, as well as any SQL expressions, and loaded into the staging area.
You can preview the data in the staging area.
Information remains in the staging area until you clear it or until a subsequent data load causes it to be cleared per the active Data Import Mode setting.
1. Click Clear staging tables in the Actions menu. The staging area for all the tables in the data source is cleared.
When a Scripted Loader or Scripted Data Source includes parameters, those parameters are normally passed to Pentaho as environment variables. Version
parameters cannot be passed to Pentaho as environment variables. You must pass version parameters to the agent as dimension parameters. Once a dimension
parameter for a version is created, you can over ride it at runtime, making it possible to choose from a list of versions.
4. The data designer can associate the dimension parameter with specific scripted loaders and specific scripted data sources by dragging the parameter into
the Parameters area of the canvas for them.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 47/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
5. If a scripted data source has a dimension parameter associated with it, when a user clicks Import Data in the Data Designer screen, they will be prompted
with the selected member from step 3. The default value can be overridden by choosing a different version. The same behavior exists on the Integration
Operator launch task screen within Integration.
if the selected dimension is the Planning Version then a special value [Default Version] will be included. This means use the planning application's
currently selected default version. The folder style members from the dimension tree cannot be selected if the Planning Version is selected.
6. When the Pentaho Kettle script is executed, the kettle environment will have 3 variables available for each of the Dimension Parameters: <display
name>.DimensionIsSelected, <display name>.DimensionName, <display name>.MemberName. The Pentaho Kettle script can make use of these in any
way that is applicable to the script.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 48/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A common usage of the version dimension value would be on an Adaptive Planning Output step in Spoon, as shown below.
You can use SQL expressions for a variety of data integration purposes. The SQL language features supported vary according to the system against which the SQL
statement will be executed. For example:
Queries against data that has been imported to staging may make use of all SQL language features.
Queries directed to external systems, such as NetSuite, may make use of SQL filters and support a reduced set of features.
For data source type specific limitations and usage notes see these sections later in this document:
Literal Values
Embedded constants such as fixed DateTime values or unchanging strings/numbers in an expression using literal values.
Text '*****' Text string surrounded by single quotes. To include a single quote within the text it must be 'It''s hot outside'
escaped using a second single quote
Float #.# Should always contain a period (.) within the float value, even if the fractional part is 0 7.7
DateTime TIMESTAMP Keyword TIMESTAMP followed by a single quoted, constant length, representation of the date TIMESTAMP '20130102
'*****' formatted yyyy-mm-dd hh:mm:ss.SSS 03:04:05.006'
Date DATE '*****' Keyword DATE followed by a single quoted, constant length, representation of the date DATE '20130102'
formatted yyyy-mm-dd
Operators
Numeric operators perform mathematical operations on expressions, values or columns that are numeric (Integer, Float, Bit). Text operators combine two or more
Text expressions, values or columns.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 49/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Numbers - Subtracts the right hand value from the left hand side MyNumericColumn 1000
Numbers / Divides the left hand side by the right hand side MyNumericColumn / 1000
Any <> Checks if two values or expressions are not equal MyColumn1 <> MyColumn2
Any IS NULL Checks if a value or expression is NULL. NULL is not equivalent to an empty MyColumn1 IS NULL
string
Any IS NOT Checks if a value or expression resolves to a nonNULL value MyColumn1 IS NOT NULL
NULL
Any < Checks if the left value or expression is less than the right value or expression MyColumn1 < MyColumn2
Any <= Checks if the left value or expression is less than or equal to the right value or MyColumn1 <= MyColumn2
expression
Any > Checks if the left value or expression is greater than the right value or MyColumn1 > MyColumn2
expression
Any >= Checks if the left value or expression is greater than or equal to the right value MyColumn1 >= MyColumn2
or expression
Any NOT IN Checks if a value or expression is not contained within a set MyColumn1 NOT IN (1, 2, 3)
Text LIKE Checks if a text value or expression matches a pattern. The % character MyColumn1 LIKE '%Apple'
operates as a wildcard
Text NOT Checks if a text value or expression does not match a pattern. The % MyColumn1 NOT LIKE '%Apple'
LIKE character operates as a wildcard
Comparisons AND Evaluates two comparisons and will return true only if both expressions are MyColumn1 >= MyColumn2 AND
true MyColumn1 IN (1, 2, 3)
Comparisons OR Evaluates two comparisons and will return true if either expression is true (MyColumn1 >= MyColumn2) OR
MyColumn1 IN (1, 2, 3)
Scalar Functions
Scalar functions take input values and return a single value
Bit Functions
CAST(expr AS BIT) Converts a Text/Float/Integer value to a Bit (0 or 1) value CAST('1' AS BIT) => 1
Integer Functions
CAST(expr AS INTEGER) Converts a Text/Float/Bit value to an Integer value CAST('2' AS INTEGER) => 2
TIMESTAMPDIFF([datepart] FROM Retrieves the number of [datepart]'s (DAY) from [datetime_expr1] TIMESTAMPDIFF(DAY FROM
[datetime_expr1] TO [datetime_expr2]) to [datetime_expr2] TIMESTAMP '2013-02-01 00:00:00.000'
TO TIMESTAMP '20130210
00:00:00.000') => 9
DATEDIFF([datepart] FROM [date_expr1] Retrieves the number of [datepart]'s (DAY) from [date_expr1] to DATEDIFF(DAY FROM DATE '2013-02-
TO [date_expr2]) [date_expr2] 01' TO DATE '2013-02-10') => 9
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 50/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
POSITION([find_text_expr] IN Retrieves the first index of [find_text_expr] in the POSITION('at' IN 'hat') => 2
[search_text_expr]) [search_text_expr]. The first character is 1.
POSITION([find_text_expr] IN Retrieves the first index of [find_text_expr] in the POSITION('a' IN 'a hat' FROM 1) => 4
[search_text_expr] FROM [start]) [search_text_expr] after the [start] index (a [start] of 1 means find
the last). The first character is 1.
Float Functions
CAST(expr AS FLOAT) Converts a Text/Integer/Bit value to an Float value CAST('1.01' AS FLOAT) => 1.01
Text Functions
CAST(expr AS NVARCHAR) Converts a Float/Integer/Bit value to a Text value CAST(1.01 AS NVARCHAR) => '1.01'
TRIM([text_expr]) Removes leading and training spaces from [text_expr] TRIM(' xxx ') => 'xxx'
SUBSTRING([text_expr] FROM Extracts a portion of [text_expr] from position [start_int_expr]. The SUBSTRING('aaabbbccc' FROM 3) =>
[start_int_expr]) first character is at position 1 'abbbccc'
SUBSTRING([text_expr] FROM Extracts [len_int_expr] characters from [text_expr] from position SUBSTRING('aaabbbccc' FROM 3 FOR
[start_int_expr] FOR [len_int_expr]) [start_int_expr]. The first character is at position 1 3) => 'abb'
Replaces all instances of [text_expr_1] in [text_expr_3] with the REPLACE('z' WITH 'a' IN 'zba') => 'aba'
REPLACE([text_expr_1] WITH
value [text_expr_2].
[text_expr_2] IN [text_expr_3])
Replaces all instances that match the regular expression REGEX_REPLACE('[0-9]' WITH 'a' IN
REGEX_REPLACE([text_expr_1] WITH
[text_expr_1] in [text_expr_3] with [text_expr_2]. 'a7b5c') => 'aabac'
[text_expr_2] IN [text_expr_3])
Delimit a string by a specific character and select a value from SPLIT_PART('Plan|1991|Tennis', '|', 2)
SPLIT_PART([string],[delimiter],[part])
that set by index. This extracts the nth occurrence of a pattern =>'1991'
only available for custom SQL columns and returns it. The first element starts at 1. If the index is out of SPLIT_PART('Plan|1991|Tennis', '/', 1) =>
bounds, the expression returns an empty string. 'Plan|1991|Tennis'
SPLIT_PART('Plan|1991|Tennis', '/', 2) =>
''
Ensures value is compatible with the planning Account Code field. TO_ACCOUNT_CODE('A - 860+') =>
TO_ACCOUNT_CODE([text_expr_1])
Removes all spaces and then replaces any non-alphanumeric 'A_860'
only available for custom SQL columns characters with underscores and truncates values over 2048
characters long
DateTime Functions
CAST([text_expr] AS TIMESTAMP FROM Converts a Text value with a known structure/format to a CAST('20130102' AS TIMESTAMP
'[timestamp_format]') DateTime value. Only certain [timestamp_format] values are FROM 'yyyy-mm-dd') => TIMESTAMP
allowed (see below) '2013-01-02 00:00:00.000'
Date Functions
CAST([text_expr] AS DATE FROM Converts a Text value with a known structure/format to a Date CAST('2013-01-02' AS DATE FROM
'[date_format]') value. Only certain [date_format] values are allowed (see below) 'yyyy-mm-dd') => DATE '2013-01-02
00:00:00.000'
TRUNCATE_DATE([date_part] FROM Truncates Date [date_expr] to a gregorian calendar [date_part] of TRUNCATE_DATE(MONTH FROM
[date_expr]) YEAR/MONTH/DAY/HOUR DATE '2013-11-22') => DATE '2013-11-
01 00:00:00.000'
Time Constants
Integration supports two constants related to the current date and time that can be used in SQL expressions:
CURRENT_TIMESTAMP Gives current DateTime and can be used in all places where EXTRACT(YEAR FROM CURRENT_TIMESTAMP)
DateTime objects are used
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 51/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
CURRENT_DATE Gives current Date and can be used in all places where Date (DATEDIFF(DAY FROM CURRENT_DATE TO
objects are used [column_reference])) <= 30
CASE Statements
Case statements are used to choose a value based on other values, much like if statements in many languages
CASE WHEN [logic_expr1] THEN [result_expr1] WHEN [logic_expr#] THEN The [result_expr] from the first [logic_expr] CASE WHEN 1>2 THEN 'x'
[result_expr#] ELSE [result_expr_def] END that returns true is returned ELSE 'y' END => 'y'
CASE [expr] WHEN [expr1] THEN [result_expr1] WHEN [expr#] THEN The [result_expr] from the first [expr#] that CASE 2 WHEN 1 THEN 'x'
[result_expr#] ELSE [result_expr_def] END equals [expr] is returned ELSE 'y' END => 'y'
COALESCE Statements
Coalesce evaluates arguments in order and returns the first non-null value from a defined argument list. Coalesce can be used in an SQL column, SQL filters in
loaders, and in join expressions. Coalesce cannot be used in the import filter in a staging table.
COALESCE ([expr]) Returns the first non-null in [expr] COALESCE (NULL,NULL,20,NULL,NULL,10) => 20
The following table details [timestamp_format] values that can be used in the CAST([text_expr] AS TIMESTAMP FROM '[timestamp_format]') function
Format
'mm/dd/yyyy'
'yyyy.mm.dd'
'dd/mm/yyyy'
'dd.mm.yyyy'
'dd-mm-yyyy'
'mon dd yyyy'
'mm-dd-yyyy'
'yyyy/mm/dd'
'yyyymmdd'
'yy-mm-dd hh:mi:ss'
'yy-mm-dd hh:mi:ss.mmmmmm'
'yy-mm-ddThh:mi:ss.mmmmmm'
Data Source Specific Data Import Filter SQL Limitations and Usage Notes
Data source specific Data Import Filter SQL limitations and usage notes are detailed below.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 52/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
When querying NetSuite directly (as opposed to querying records imported into staging from NetSuite) filter expressions are limited to the capabilities exposed by
NetSuite via Web Services.
Simple column filters with Comparison and Logic Expressions may be used when querying NetSuite.
Filters can be ANDed together but cannot be ORed together.
Operators (e.g. +, , /, *, $, ||) can not be used.
Scalar Functions can not be used.
Case Statements can not be used.
In order to filter on a custom column, the custom column must be marked for import.
Some column filters require specific NetSuite features to be enabled in order for the filter to work.
Some tables and some columns do not support filtering.
When querying a spreadsheet file directly (as opposed to querying records imported into staging from a spreadsheet) the filter expression can only specify the
"Upload Id" of the file to be queried. If an "Upload Id" is not specified then data from the most recently imported file is displayed.
Simple column filters with Comparison and Logic Expressions may be used when querying JDBC data sources.
Operators (e.g. +, , /, *, $, ||) can not be used.
Scalar Functions can not be used.
Case Statements can not be used.
Simple column filters with Comparison and Logic Expressions may be used when querying Salesforce.
Operators (e.g. +, , /, *, $, ||) can not be used.
Scalar Functions can not be used.
Case Statements can not be used.
Simple column filters with Comparison and Logic Expressions may be used when querying Intacct. This includes IN(..), IS NULL, IS NOT NULL, LIKE and
NOT LIKE statements.
Intacct does not support operator <>, instead use NOT IN() comparison.
Operators (e.g. +, , /, *, $, ||) can not be used.
Scalar Functions can not be used.
Case Statements can not be used.
Filters against boolean columns must use the true/false keywords as Intacct does not recognise 1/0 as being the same as true/false.
Simple column filters with Comparison and Logic Expressions may be used when querying Microsoft Dynamics GP.
Operators (e.g. +, , /, *, $, ||) can not be used.
Scalar Functions can not be used.
Case Statements can not be used.
When you extract information from a JDBC-compliant database or a scripted data source, you must use a data agent. The data agent is hosted in a Windows
service typically deployed behind your firewall to allow access to specific customer data. It is an extensible component that manages secure access to applications
as well as connections to the hosted Adaptive Planning Integration servers. You use the data agents to extract specified data from remote data sources.
You must have at least one agent on any computer that extracts information from a JDBC database for Adaptive Planning Integration.
Data Agents let you extract information from JDBC-compliant databases or Scripted data sources. The Data Agents are extensible components that give secure
access to applications, and manage connections to your hosted Adaptive Planning instances. These agents run in a Windows service deployed on-premise behind
your firewall, providing access to the specific data you request. Data agents let you extract data from remote and on-premise sources you can't access using other
data sources.
A data agent must run on any computer that extracts information from a JDBC-compliant database for Adaptive Planning Integration.
The Data Agent Service installs as a Java application that runs as a Windows Service. This service manages your data agents from behind your firewall.
When the Data Agent Service runs, it long-polls the Adaptive Planning Gateway. The Gateway runs as a server brokering communication through the firewall to on-
premises instances of the Data Agent Service. This gateway receives requests from Adaptive Planning servers on behalf of all data agents hosted by the service.
Each instance of the Agent Service you install hosts one or more data agents.
The Data Agent installation includes a desktop utility, the Data Agent Service Manager, used to setup and configure the Agent Service.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 53/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
After installing the Data Agent Service, you can upgrade to newer versions as they get released. New version downloads get posted in the Data Agent page within
Integration. Download and install a new version on the PC where the Data Agent Service Manager runs. You can also develop custom connectors using a software
development kit (SDK) and deploy them to the Agent Service.
Important: If you installed Data Agents prior to December 9, 2016 (Kettle 4.4, 5.x), and want to install and use them, refer to Install the Legacy Data Agent.
Install the Data Agent Service Manager on the Windows computer you plan on connecting to Adaptive Planning via a Data Agent. Usually, one installation can
contact all of your source systems. If a single installation can't connect to all of your source systems, install the Data Agent Service Manager on other computers
that can connect to the source systems. If you require Kettle scripts on separate systems, install on each system containing scripts.
Navigation
Prerequisites
Permissions Required: Integration > Data Designer
Verify you have administrative rights to install software on your computer.
Verify the computer has a 64 bit Java Environment version 8 or higher. OpenJDK is supported.
Obtain the username and password for an Adaptive Planning user on your instance.
If you installed Kettle on your computer, make a note of its installation directory.
Steps
1. Download the Data Agent Service Manager installer.
2. Run the installer.
To launch the Scripted Data Source or the Scripted Loader using Pentaho Data Integration (Kettle) 8.2, download Kettle (PDI .zip file) from
https://sourceforge.net/projects/pentaho/files/Pentaho%208.2/client-tools/,
When you install Pentaho Kettle (Pentaho Data Integration) and Kettle Spoon, the Agent Service manages a pool of Kettle ETL execution instances (job runners).
Each job runner is a Java virtual machine running in its own process. The Agent Service manager delegates any launched Kettle ETL scripts to a free job runner.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 54/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Uncheck Script Engine for Custom Data Imports if you do not want to use Kettle.
2. Select Next and continue with the installation.
1. Select Scripting Engine for Custom Data Imports Imports and select Next.
2. Browse into your Kettle installation folder and select the data-integration directory.
3. Select Next and continue with the installation.
Important: You can only have one instance of the Data Agent Service Manager on each computer.
1. Complete the steps in Configuring the Adaptive Data Agent Service Manager.
You can swap from the Oracle JDK to an OpenJDK without uninstalling your Data Agent. Swapping from Oracle can help you avoid the licensing fees associated
with using the Oracle JDK. By default, the Data Agent installer will install the Oracle JRE if it does not detect a valid JDK on your system.
AdoptOpenJDK
https://adoptopenjdk.net/
https://adoptopenjdk.net/migration.html
Amazon Corretto
https://aws.amazon.com/corretto/
RedHat OpenJDK
https://developers.redhat.com/products/openjdk/download
https://developers.redhat.com/blog/2018/11/05/migrating-from-oracle-jdk-to-openjdk-on-red-hat-enterprise-linux-what-you-need-to-know/
Prerequisites
Verify the Data Agent Service Manager v7.1.44 or newer is installed on your local computer.
Verify you have local rights on your computer to install OpenJDK.
Make a note of your Data Agent Service Manager version.
Download a 64-bit OpenJDK build for use with Pentaho Kettle.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 55/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If Data Agent version 7.1.44 will not open after you swap the JDK:
1. Right click on Data Agent Service Manager in the Windows start menu.
2. Select More > Open file location and select C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Workday Adaptive Planning Data
Agent. For data agent versions 7.1.44 and older select C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adaptive Data Agent.
3. Right click on Data Agent Service Manager in the file explorer and select Properties.
4. Change the Target value to indicate the location of the new OpenJDK you installed. This target path to your javaw.exe will vary based on your OpenJDK
installation location. Example: If you installed the RedHat OpenJDK, you would indicate: "C:\Program Files\RedHat\java-1.8.0-openjdk-1.8.0.232-
3\bin\javaw.exe" -jar "C:\Program Files\Workday Adaptive Planning Data Agent\AgentManager-1.0.0.jar" . For older versions you would
indicate, "C:\Program Files\RedHat\java-1.8.0-openjdk-1.8.0.232-3\bin\javaw.exe" -jar "C:\Program Files\Adaptive Data
Agent\AgentManager-1.0.0.jar".
5. Select Apply and OK.
If you installed a Data Agent prior to December 9, 2016, you are using the legacy Data Agent.
The legacy Data Agent installation includes and was developed for use with Pentaho Kettle 4.4 and Kettle Spoon. The Agent Service manages a pool of Kettle ETL
execution instances (job runners), each of which is a Java virtual machine running in its own process. The Agent Service delegates any Kettle ETL scripts to launch
to a free job runner.
To manage legacy data agents you must install and use the legacy Data Agent Service Manager.
Navigation
Prerequisites
Permissions Required: Integration > Data Designer
Verify you need to use Pentaho Data Integration (Kettle) 4.4.
Verify you don't want to use Pentaho Data Integration (Kettle) 6.1 or newer.
Verify you have administrative rights to install software on your computer.
Steps
1. Download the Legacy Data Agent Manager Installer
2. Run the Legacy Data Agent Manager Installer
1. Select Data Agents in the component library to view the list of agents.
2. Select Create New Data Agent.
3. Enter a name that lets you uniquely identify this data agent.
4. Select Create to view the download links.
5. Select here at the end of the Download Legacy Agent section.
6. Select Download Legacy Offline Installer.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 56/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Launch the legacy Data Agent installer you downloaded and run the setup wizard.
2. Uncheck Script Engine for Custom Data Imports if you are not using Kettle
3. Select Next and finish the installation.
4. Launch the legacy Data Agent Service Manager on your computer.
5. Select Provision a New Agent.
6. Select Tenant and Agent and select Provision.
7. Wait a few minutes to refresh the Data Agent page within Adaptive Planning so that Agent status updates to Running.
Important: You can only have one instance of the Data Agent Manager on each computer.
If you want to manually upgrade your existing legacy Data Agent Kettle install to Kettle 6.1 or newer, you need to:
1. Completely uninstall the legacy Data Agent, which also automatically uninstalls Kettle.
2. Download and install the newer Kettle version.
3. Install the Data Agent Service Manager.
4. Completely recreate your Kettle scripts to work with the newer Kettle version.
After you install the Data Agent Service Manager on your PC, you must launch and configure it.
Prerequisites
Required permissions: Integration > Data Designer
Verify you downloaded and installed the Data Agent Service Manager.
Verify you have access to a valid Adaptive Planning username and password
Verify your network whitelists *.adaptiveplanning.com domains, and that port 443 is open on your computer
Navigation
Steps
1. Launch the Data Agent Service Manager and verify connectivity.
2. Configure the Data Agent Service Manager.
From the Data Agent Manager Setup tab, select Refresh to reestablish the connection to your selected server. You can also select Diagnose and Configure
Network to adjust network settings.
Note: Port 443 must be open on the computer running the Data Agent Service Manager to communicate with Adaptive Planning. Also verify that
*.adaptiveplanning.com domains are allowed for your network. See Data Residency Requirements and Domain Access for more information.
The Diagnose and Configure button lets you set the URL for an appliance cluster base if your Dashboards runs as an appliance in a custom cluster. This button
also lets you set the URLs for your Adaptive Planning server information. Contact Adaptive Planning Support before changing them.
1. Select Set as Required for this Cluster to save a change to the cluster base URL.
2. Select Apply Cluster Settings to save changes to the Adaptive Planning server information or select Restore Defaults to restore the default values.
3. Verify the Service Internet Connection field in the Data Agent Manager Setup tab turns green and indicates Healthy.
Gateway URL and geography fields automatically populate when you install and provision agents.
The Switch Geography button activates in the Cluster URLs tab if the Recommended Actions in the Setup tab indicates a gateway geography conflict.
Important: Contact Adaptive Planning Support before modifying Gateway and Geography settings.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 57/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Select Service Info & Options in the Data Agent Service Manager .
2. Select Refresh a few times if you adjusted your network settings and you don't see the changes.
3. Review your settings:
Remote Access URL (Host Hint): (Read-only) the URL uniquely identifies the gateway connecting the Data Agent Service Manager with the
Integration server.
Data Agent Service Id: (Read-only) uniquely identifies the specific agent service. When the agent service ID appends to the remote access URL,
the resulting URL gives the full URL addressing the specific Data Agent service.
Max Disk Storage per Agent (MB): Disk storage in megabytes for storing the information extracted by each agent. Enter -1 for unlimited.
Number of Kettle Job Runners: Number of Kettle job runners allowed on this computer, usually just 1. Best Practice: Fewer is better because more
runners use more RAM.
Max Memory per Job Runner (MB): Maximum memory in megabytes per job runner.
Max Temp Disk Size per Job Runner (MB): Maximum temporary disk size in megabytes per job runner. Enter -1 for unlimited.
Trusted Tenants: Tenants allowed to create new agents on this computer over the Internet without logging in to this computer. You can also select
Users from any Tenant can create Agents on this PC (not recommended), but doing so does not guarantee you control access to your data.
Restrict Job Runner Access to Files: Selected by default. Restricts access to local files directly under control of the data agent. Uncheck to
access files throughout the file system.
Verbose Logging: Select for verbose logging.
Log all Comms: Logs entries for all database and network communication between the Data Agent Service Manager and the agents.
Scrub Non-printing characters: Removes or transforms illegal XML characters and unwanted characters from input text streams. Requires a
scrubbingRules.txt file for removing additional characters you do not want. See the next section, Remove Specified Characters from Input Text
Streams in JDBC and Microsoft Dynamics GP, for details.
4. Troubleshoot any connection problems by selecting Show Data Agent Service Log to display the log files.
5. Select Apply Data Agent Service Settings to apply changes.
6. Continue with Create a Data Agent.
Remove Specified Characters from Input Text Streams in JDBC and Microsoft Dynamics GP
When a Data Agent loads data via a JDBC data source or Microsoft Dynamics GP data source, the data writes to the local hard disk as XML. This XML may contain
control characters:
TAB (0x9)
New Line (0xA)
Carriage Return (0xD)
Other non-printing characters
Data Agents stream data into these XML files without encoding. If control characters outside of the XML character range stream in, errors show up. You can remove
or transform illegal XML and other unwanted characters from input text streams by using a scrubbingRules.txt file.
1. Create a text file named scrubbingRules.txt in C:\Program Files\Workday Adaptive Planning Data Agent. For data agent versions 7.1.44 and
older use C:\Program Files\Adaptive Data Agent
2. List the characters you want removed or transformed in the scrubbingRules.txt file.
Each line must contain the old character and the new value separated by "=".
Leave the new value empty if you to remove the character. Each character must be represented by its Unicode value.
Lines starting with a # get treated as a comment.
0009=
000A=
000D=
#|=_
007C=005F
Scrub Non-printing Characters does not affect Scripted Data Sources. Use scripting to remove or transform characters as needed.
C:Windows\System32\config\systemprofile\AppData\Local\Adaptive AgentService\Agents\<agentId>\Logs\AgentLog.txt
C:Windows\System32\config\systemprofile\AppData\Local\AdaptiveDaemon\DaemonLog.txt
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 58/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can configure the Data Agent Service Manager to email alerts to one or more recipients whenever hard disks drop below a specified free space threshold.
Navigation
Prerequisites
Verify you installed the Workday Adaptive Planning Data Agent.
Permissions Required: Integration > Data Designer
Obtain the username and password for an Adaptive Planning user on your instance with Data Designer permissions
After you configure the Data Agent Service Manager on your PC, you can create a new data agent. You can associate an individual data agent with one or more
JDBC or scripted on-premises data sources.
You can use multiple data agents for the same database. Each data agent can have different properties. You can also have data agents on different computers.
Example: You might work at a company with people using Adaptive Planning Integration in offices across the country. Each worker could have a data agent
associated with a data source that brings the information into their computer.
Navigation
Prerequisites
Permissions Required: Integration > Data Designer
Verify you installed the Data Agent Service Manager on your local computer.
Obtain the username and password for an Adaptive Planning user on your instance.
For Workday tenants that sync users to Adaptive Planning, see Log into the Data Agent with Workday Credentials.
Steps
1. Create a new data agent
2. Provision the data agent
1. Select Data Agents in the component library to view the list of agents.
2. Select Create New Data Agent. to open the Create New page.
3. Enter a meaningful name that uniquely identifies this agent.
4. Select Create.
Note: When you create a new data agent, the configuration and structure get created, but you can't use the agent until you provision it.
1. Launch the Data Agent Service Manager if you don't already have it open.
2. Log in as an Adaptive Planning user who has Data Designer permissions on your tenant. For Workday tenants that sync users into Adaptive Planning, see
Log into the Data Agent with Workday Credentials.
3. Select Provision a New Agent.
4. Provide your Adaptive Planning password.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 59/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
5. Select your tenant from the list. Usually, only one tenant shows up.
Note: Each customer has a tenant with a dedicated database schema containing all of the configuration and data. For reference, a tenant is identical to the
concept of an instance in the Adaptive Planning architecture.
6. Select the agent you want to provision from the Agent Name drop-down list.
7. Select Provision and provide your Adaptive Planning password.
8. Select OK.
At this point, the data agent can communicate with the on-premises source system and Adaptive Planning Integration.
After setting up agents, configure the Data Agent Manager to back them up.
Prerequisites
Permissions Required: Integration > Data Designer
Verify you have administrative rights on the computer
Obtain the username and password for an Adaptive Planning user on your instance.
Launch the Data Agent Service Manager.
Enter the Adaptive Planning username and password.
Allowing all *.adaptiveplanning.com domains on port 443 is a requirement to ensure that data originating in Europe, Australia and Canada is contained completely
on servers within those geographies. Traffic balancing and data sovereignty modifications cannot be performed without allowing all *.adaptiveplanning.com
connections on port 443.
One machine running the agent service cannot serve tenants in multiple geographies.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 60/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
To connect to a regional authentication and API gateway, update the Adaptive Admin Server URL and Adaptive Signin Server URL in the Adaptive Data Agent
on your local computer.
Prerequisites
Permissions Required: Integration > Data Designer
Verify you installed the Data Agent Service Manager on your local computer.
Obtain the username and password for an Adaptive Planning user on your instance.
Visit the whitelist page to determine the signin URL for your organization.
1.1.3.9 | Log In to the Data Agent and Script Editor with Workday Credentials
Some links in this article go to the Workday Community. If you don't have a Community account, request one.
You can log into the Adaptive Data Agent using Workday Credentials when creating an agent if:
Prerequisites
In Adaptive Planning
In Workday
On the network hosting the Data Agent and Data Agent Manager
Verify firewall and network settings can access Workday IP addresses as described in Workday Availability Zones: IP Address Update for Whitelisting FAQ.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 61/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Workday Integration Tab Setup for Data Agents 12.0.240 and Newer
1. Register an API Client in Workday specifically for the Data Agent using a JWT Bearer access token.
a. Select Non-Expiring Refresh Tokens.
b. Set Scope (Functional Areas) to System and add Adaptive Planning.
c. Select OK to generate the Client ID, Token End Point, and other details that identify your new integration client.
d. Copy the Client ID, ISU, Token End Point, and Certificate. You need these once the Data Agent Manager starts.
2. Start the Data Agent Manager on the local computer.
3. Select Diagnose and Configure Network.
4. Select the Workday Integration tab.
5. Enter the information generated when registering the API client for your JWT Bearer access token in Workday:
Client ID copied from Workday
ISU copied from Workday
Token End Point copied from Workday
Certificate copied from Workday
6. Launch the Data Agent and select Sign in with Workday and sign in.
Once you enter the API client information for your Data Agent, you can copy it into the Workday tab in the Adaptive Script Editor.
1. Launch the Adaptive Script Editor on your local computer from the start menu by navigating to Adaptive Data Agent > Adaptive Script Editor.
2. Select the Workday tab in the Script Editor.
3. Paste in these fields from your Data Agent:
Authorization End Point
Token End Point
Client ID copied from Workday
Client Secret copied from Workday
Enter https://www.workday.com for Redirection URL
4. Select the Integration tab.
5. Select Sign In with Workday.
6. Provide your Workday Credentials.
7. If you use Data Agent 12.0.239 and older, stop here. For Data Agent 12.0.240 and newer, configure the Workday Integration tab.
Workday Integration Tab Setup for Data Agents 12.0.240 and Newer
Install Adaptive Script Editor Adaptive Planning Input and Output Plugins with Workday Credentials
The Adaptive Planning Input and Adaptive Planning Output plugins in the script editor run without a user interface. They require a JWT bearer grant and an
Integration System User (ISU) because an individual doesn't log in each time.
1. Open the Adaptive Script Editor on the local computer and sign in.
2. Create a new transformation or job, or open an existing one.
3. Drag the Adaptive Planning Output or Adaptive Planning Input plugin in, and right click it to select Edit.
4. In the Instance Connection tab, change Login method to Workday.
5. Copy all of the contents of the Certificate field. This certificate identifies that this plugin is authorized to communicate with Workday. Don't close the script
editor until you complete the API Client Registration in Workday and editor plugin setup.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 62/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Use the API Client ID, Token End Point, and ISU to complete the plugin setup.
1. Go back to the Adaptive Script Editor to paste the Client ID and Token End Point from Workday.
2. Retrieve your Integration System User (ISU) from your admin and paste it into ISU. See Steps: Configure Workday to Import Data to Adaptive Insights for
more on creating an ISU.
3. Select OK to save.
Data Agents
The data agent is a component of Integration that runs on a Adaptive Planning customer on-premises server. The data agent extracts information from a JDBC-
compliant database or a custom scripted data source. Data agents can also export data from Adaptive Planning. The data agent requires a computer running
Windows deployed behind a customer firewall, and runs as a hosted service. The data agent manages access to on-premises applications as well as connections
to Adaptive Planning on the cloud.
The Data Agent Service (the Agent Service) manages the data agents. This service runs as a Windows Service and launches a Java application installed behind
the customer's firewall. The Agent Service long polls the Adaptive Planning Gateway. The gateway server brokers communication through the firewall to on-
premises instances of the Agent Service. This gateway receives requests from Adaptive Planning servers on behalf of all data agents hosted by that instance of the
service. Each installed instance of the Agent Service can host multiple data agents.
The installation includes the Data Agent Service Manager, a desktop utility the customer uses to initially setup and configure the Agent Service. The installation
optionally includes Pentaho Kettle and Spoon, the Kettle ETL Designer. If the optional Pentaho Kettle components get used, the Agent Service manages a pool of
Kettle ETL execution instances (job runners). Each execution instance is a Java virtual machine running in its own process. The Agent Service delegates any Kettle
ETL scripts that launch to a free job runner. Adaptive Planning provides plugins to enable design-time connectivity between the Spoon environment and Adaptive
Planning Integration. These plugins allow for authenticating into a cloud instance of Adaptive Planning, publishing scripts to the cloud, and testing the script-based
integration from within the Kettle UI. Note that the optional Pentaho components are needed only if there is a requirement to use a Pentaho Kettle script to extract
data. These components are not needed if the data agent extracts data out of JDBC-compliant databases using Adaptive Planning JDBC data sources.
The on-premises data agents get managed and controlled from the cloud using the agent UI. The agent UI is part of the Adaptive Planning data designer, accessed
through a web browser. When an agent is created in the data designer, the customer can download and install the latest version of the data agent, along with the
optional Pentaho Kettle components. The agent UI shows the current status and version details of the agents and allows the customer to
provision/unprovision/suspend/resume data agents. The customer can also upgrade to a newer version of the data agent through the agent UI. See Concept:
Integration.
Technical Specifications
The following technical specifications are recommended for the machine the data agent will reside on. Exact specifications will depend on data volumes and should
be reviewed with an Adaptive Planning Professional Services consultant.
Operating System
Supported platforms:
Data Agent Version Java Version (64 bit Recommended, 32 bit Supported) Pentaho Data Integration (Kettle) Version
2019.3 Data Agent v8 and Newer Support by OS, JDK, and Kettle Version
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 63/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: Kettle Spoon starts with a parameter setting of Max Heap Size 2048MB if you don't specify your own. When Spoon launches with a 32-bit JDK, this parameter
prevents successful start-up. For 32-bit JDKs set the Max Heap Size using: set PENTAHO_DI_JAVA_OPTIONS="-Xmx1024m"
Disk Space
A minimum of 60GB of space dedicated to the Data Agent is required on the C: drive. You cannot use another drive for this space. Temporary files and disk caching
space needs vary by implementation.
Memory
A minimum of 8GB is recommended. If a virtual machine is used to host the data agent, 12GB is recommended.
Connectivity
The data agent uses HTTPS to communicate with the Adaptive Planning servers. Port 443 (default port for HTTPS) is used by the Data Agent Service Manager to
communicate with the Adaptive Planning servers and other web-based sources.
Geographies
One machine running the agent service cannot serve tenants in multiple geographies.
Loaders are a set of business rules that identify how the raw data from a data source is to be used. Loaders take the data from the staging area, prepare it for
loading into Adaptive Planning, and then load the information.
When Integration is enabled, the Integration Operator and Data Designer permissions are available and can be assigned to users. See Concept: Permission Sets.
Note: Users with Integration Operator or Data Designer permissions must have the Import Capabilities permissions to perform imports into Adaptive Planning.
Loaders let you synchronize metadata and data in-bulk from a source system to Adaptive Planning. With loaders you automate the manual steps used in Modeling
> Model Management to create and update hierarchies of attributes, accounts, dimensions, and levels. You can also automate the manual process of importing data
with the Planning Data Loader.
Planning Attribute Loader for mapping attributes from the staging area, then importing their hierarchies.
Planning Account Loader for mapping general ledger (GL) accounts and their properties from the staging area, then importing their hierarchies.
Planning Dimension Loader for mapping dimension values from the staging area, then importing their hierarchies.
Planning Level Loader for mapping levels (organizational structures) from the staging area, then importing their hierarchies.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 64/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Planning Data Loader for mapping data from the staging area, then importing it to GL Accounts (Standard import), cube and modeled sheets, or transactions
tables.
Scripted Loader for using extract, transact, load (ETL) Pentaho Kettle scripts to perform complex calculations and analysis, loading directly from external
sources.
Custom Cloud Loader for loading staging data to an external cloud-based system using javaScript and the ai Namespace.
Note: If your organization uses Discovery Enterprise you can also access the Discovery Metric Loader. This loader cannot load to Adaptive Planning sheets or
transactions.
Loader Workflow
When you create a loader you identify how data and metadata in your staging tables maps to Adaptive Planning by:
Tip: Best Practice: Import the union of all the data you need to the staging area from one data source. Then filter that data for each loader to extract the specific sets
of data you need to load.
Scripted loaders differ from scripted data sources in that they use different submission steps. Scripted loaders have two types of submissions:
The metric submission is a mechanism for updating metrics that predate scripted data sources. Data is submitted directly to the metric data store. The staging area
is not used.
Note: You also can used Scripted loaders for submissions to planning, and exports from Planning.
When you save the basic configuration of the loader, you can add parameters. Use parameters to pass runtime information to the script.
1. Drag a parameter from the Parameter menu and drop it on the Metric Settings table.
2. Click Save on the Actions menu.
1. Click the Edit Parameters icon to the right of the Parameters heading.
2. Click the folder in the left pane that you want to add a parameter to.
3. Click Add and select one of the following options from the floating menu:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 65/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can change individual parameters or the folders by double-clicking the item in the left pane and making changes to the information in the fields, then clicking
Apply to save your changes.
You can create folders to group parameters, then drag parameters to the folder.
Important: Thorough JavaScript programming knowledge and experience are required to build a Custom Cloud Loader. You should not begin creating a Custom
Cloud Loader if you do not have access to an experienced JavaScript programmer. You must also be assigned the Integration Developer permission in
Administration > Permission Sets before attempting to create a Custom Cloud Loader.
Custom Cloud Loaders let you export Adaptive Planning plan data directly to third-party cloud systems.
Basic Steps
1. Enter data source settings.
2. Define paremeters.
3. Write JavaScript using the CCDS APIs in the ai Namespace.
4. Define business rules.
5. Run or schedule the loader.
Prerequisites
Verify that you have the Integration Developer permission.
Verify that Adaptive Planning plan data you want to export already exists in a staging table.
Create an OAuth credential for your external system, or obtain credentials you can explicitly include in your JavaScript.
Know what parameters you need to pass to your external system, and what defaults the external system expects.
Understand how to write to the external system's endpoint.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 66/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2. In the Loaders folder in the Component Library select Create New Loader.
3. Select Custom Cloud Loader as the loader type and enter a name.
If you don't see Custom Cloud Loader as an option, it isn't enabled for this instance or you don't have the Integration Developer permission needed to
access it.
4. Select Create.
Define Parameters
Define what parameters your javaScript requires to export Adaptive Planning data to your external system. Parameters can include connection URLs, user names,
passwords, and dimensions from Adaptive Planning, and other information. Paremeterized settings let you change their values at run time. Static settings persist
across loader runs.
Write JavaScript
1. Select Script.
2. Select the preexisting template and change it or select New Script to make your own.
3. Write the javaScript you want the loader to execute using the CCDS APIs in the ai Namespace.
4. Verify the script includes the required:
testConnection function to create an https request to post to your external system
exportData function to export data from Adaptive Planning.
5. Reference any parameters you created in the Designer Settings by their name.
6. Save the script.
Note: You can format and beautify a script in the editor using the keyboard shortcut CTRL + Shift + B. Find and replace launches with Ctrl+H.
You can separate a long script into multiple files for easier maintenance.
Example: You could contain all of your testConnection logic in one script called testconnectionscript. A second script, called exportdatascript, could
contain all of the exportData logic.
When the same function is declared in multiple scripts, the one from the most recently added script is used.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 67/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The Business Rules tab contains a text area for entering SQL.
Tip: Best Practice: Have separate Integration tasks for each loader.
If a task contains multiple loaders, then parameters from each loader are presented when the task is run. If there is a common/shared parameter used in the
loader(s) within a task, then the task only prompts for the parameter once. You can choose to override parameter prompts.
For scheduled runs of the task, the default values of the parameters stored when the loaders were created are used.
1. Set up a spreadsheet data source. See Steps: Set Up a Spreadsheet Data Source.
2. Create a new Custom Cloud Loader in the Loaders pane.
3. Navigate to the Data Source Settings tab and select your spreadsheet Data Source in the Source Table field.
4. Copy the below sample script in the Scripts tab.
Note: Metadata loaders synchronize hierarchical information from source systems into the hierarchies of your planning model. Your hierarchies should already exist
in your source system before you attempt to synchronize.
The Planning Account Loader lets you map metadata about general ledger accounts from the staging area into Adaptive Planning.Use the account loader to import
accounts in bulk from an external system and synchronize them, instead of creating accounts one at a time in the accounts admin. Once you create a loader, you
can run it manually or schedule it to run as part of an Integration task.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 68/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Basic Steps
Enter data source settings
Configure column mapping
Create business rules
Preview the loader output
Run or schedule the loader
Prerequisites
The Planning Account Loader requires staging data from an import of an existing Data Source. Make a note of what data source you want to use.
Navigation
Tip: Best Practice: Save frequently as you create and update your loader. Click Save in the Actions panel. To discard any unsaved changes click Close, then click
No.
1. Select Create New Loader In the Loaders section of the Component Library.
2. Select Planning Account Loader as the loader type. Enter a name for the loader.
3. Select Create.
4. Enter the Account Loader general properties information:
Source Table: Select the source table from the dropdown list. The list contains all of the tables available in the staging area you can access.
Planning Account: Select the GL account you want to load child accounts into. To load an entire GL accounts tree, select GL Accounts in the
Accounts dropdown. Loading the entire GL account tree requires that the data source contain all of the GL root nodes defined in Adaptive Planning.
Publish pending admin publishing changes: If Admin Publishing has pending workflow changes, select to publish those changes when running
the loader.
Create account if not found in Planning: Select to automatically create new accounts found in the source system, but not found in Modeling >
Model Management > Accounts. Deselecting this updates only existing GL accounts in your model.
Maintain existing order in Planning: Select to keep the existing account sort order already used in Adaptive Planning.
Proceed with warnings: Select to re-parent accounts and make attribute values compatible with their parent account's attribute. If not selected, the
loader errors out when the payload contains child account attribute values not compatible with the parent account's attribute.
Log Level: Choose the type of details to capture when running the loader.
Off: No errors logged.
Error: Log serious errors only.
Info: Log basic information, such as when the loader was updated.
Verbose: Detailed information about all phases and actions. Used primarily for debugging or auditing.
If there are several columns to map, use the Show filter to select:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 69/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Account Details: Shows columns that relate to account details, including Account Code, Short Name, Rolls up to, Description, Type, Weighted By, Display
Text, Planned by, Actuals by, Actuals Overlay, Balance Type, and In Workflow. In Workflow must be a boolean value of 1 for true or 0 for false.
All: Shows all columns. You can only view Data Entry Type in the All category:
Valid values for Data Entry Type are STANDARD, CUBE, or 'blank'.
If blank, Data Entry Type inherits the type from the parent account.
If the parent Data Entry Type is CUBE, then a new account will default to CUBE. Otherwise, new accounts default to STANDARD.
Data Entry Type changes to non-leaf accounts are ignored. The system automatically calculates new Data Entry Type for all non-leaf accounts.
Data Type: Shows columns that relate to account data type settings, including Account Time Stratum, Display As, Master Formula, Weighted-Average
Translation, Reset Balance, Transfer Balance on Reset, Decimal Places, and Exchange Rates.
Sheets: Shows columns that relate to how accounts appear on sheets, including Suppress on sheets, and Start expanded.
Account Attributes: Shows columns that relate to account attributes, including listing all of the account attributes associated with the account.
Data Privacy: Shows columns that relate to how public or private the data for an account is, including Contains Salary Detail.
Consolidation: Shows columns that relate to consolidation settings, including Intercompany, Elimination Trading Partner, and Subsidiary settings. Only
available for instances with Consolidation enabled.
You can use the Search field to find columns. Enter a complete or partial name to search for and click the magnifying glass. Any staging columns matching the
search appear in the results.
Map Columns
Status: A checkmark indicates a mapped column. An exclamation point indicates an unmapped column.
Planning Column: Displays all of the Planning columns available for mapping. The list of Planning columns include a set of mandatory Planning columns,
followed by all other Planning columns. Mandatory Planning columns are indicated by bold text with an asterisk and include a value column. Non-mandatory
columns include the Short Name and Description.
Source Id Column: Displays the columns within the staging table chosen from the Data Source Settings.
Source Account Code Column: Indicates the account code column to simplify the mapping process. Every account in Adaptive Planning requires an
account code.
The Parent Id column indicates the id of an account's parent. To load to the highest account in a hierarchy, the Parent Id value in source data must be empty. Parent
Id must also be empty If you want to create a child account underneath the top level.
Unmap Columns
To unmap columns, click Unmap and choose:
Tip: Best Practice: Along with unmapping to troubleshoot errors and ignoring columns you can use unmap to help with change management. When new columns
get introduced in a data source, you can unmap the older columns to map the new ones.
Any cells marked (INVALID) in the Planning Code or Planning Name columns indicate this code no longer exists in Workday Adaptive Planning.
4. Correct the errors and click Upload Member Mappings to load the file. The Read Only column doesn't upload.
5. Run the loader again.
Note: Don't click Clear Member Mappings unless instructed by your implementation partner or Workday Adaptive Planning Support.
The Business Rules tab contains a text area for entering SQL.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 70/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can click an item in the Available Columns list to bring that column into the SQL expression instead of typing it.
3. Click Apply to check your SQL syntax. Errors in your syntax turn the border around the expression red. Hover your cursor over the SQL editor to see syntax
error information.
For detailed SQL syntax help, click online help in the Notes section of the Edit SQL Filter. See the SQL Expression Reference for more.
Only staging rows that match the SQL expression will import when you run the loader.
When the preview loader output or manual load runs, the source data is validated for errors. Examples of the validations include checks if:
You can also download the preview output as an XML file to manually verify the accounts from your data source against your requirements before loading them.
The loader runs, including all transformations and business rules. A status popup displays the steps as the loader executes. If accounts are available to load, the
loader creates an XML file and sends an email notification with the output as a zipped XML attachment. If no accounts load, the zip will contain a message
indicating none loaded.
An additional popup lets you download the preview loader output as a zipped XML file after the loader succeeds. The download popup may take a moment to
appear depending on the number of accounts and the size of the file.
Important: Wait about 15 - 30 minutes between each Planning Account Loader run so that Adaptive Planning has time to synchronize with your import. Larger
imports take longer to synchronize. Wait time depends on model size and other factors.
To run the loader manually, click Run Manually in the Actions panel.
You can load accounts directly from the source system or you can run the loader using staging values that were already imported. When the loader runs, select
which of these behaviors you want. Choose Bypass data import to use the existing staging table for loading. Bypassing data import is not available when using
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 71/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
As part of the run process, the loader checks that the data in the staging table has been mapped correctly. Multiple validations are applied during the load. Any
errors that occur during the load indicate what needs to be resolved for a successful import.
If a task contains multiple loaders, parameters from each loader display in a prompt when the task runs. If there is a common or shared parameter in the loaders
within a task, the task prompts for the parameter only once. You can choose to override parameter prompts.
For scheduled runs of the task, default values of the parameters for the loaders get used.
Note: Metadata loaders synchronize hierarchical information from source systems into the hierarchies of your planning model. Your hierarchies should already exist
in your source system before you attempt to synchronize.
The Planning Attribute Loader lets you map metadata about attributes from the staging area into Adaptive Planning. Use the attribute loader to import attributes in
bulk from an external system and synchronize them, instead of creating attributes one at a time in the attributes admin. Once you create a loader, you can run it
manually or schedule it to run as part of an integration task.
Basic Steps
Enter data source settings
Configure column mapping
Create business rules
Preview the loader output
Run or schedule the loader
Prerequisites
The Planning Attribute Loader requires staging data from an import of an existing Data Source. Make a note of what data source you want to use.
Navigation
1. Select Create New Loader In the Loaders section of the Component Library.
2. Select Planning Attribute Loader as the loader type. Enter a name for the loader.
3. Select Create.
4. Enter the Attribute Loader general properties information:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 72/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source Table: Select the source table from the dropdown list. The list contains all of the tables available in the staging area you can access.
Planning Attribute: Select the attribute within Adaptive Planning to load into.
Create attribute value if not found in Planning: Select to automatically create new attribute values found in the source system, but not found in
Modeling > Model Management > Attributes. Deselecting this updates only existing attribute values in your model.
Publish pending admin publishing changes: If Admin Publishing has pending workflow changes, select to publish changes.
Log Level: Choose the type of details to capture when running the loader.
Off: No errors logged.
Error: Log serious errors only.
Info: Log basic information, such as when the loader was updated.
Verbose: Detailed information about all phases and actions. Used primarily for debugging or auditing.
You can use the Search field to find columns. Enter a complete or partial name to search for and click the magnifying glass. Any staging columns matching the
search appear in the results.
Map Columns
The Column Mapping tab has these columns:
Status: A checkmark indicates a mapped column. An exclamation point indicates an unmapped column.
Planning Column: Displays all of the Planning columns available for mapping on a sheet. The list of Planning columns include a set of mandatory Planning
columns, followed by all other Planning columns. Mandatory Planning columns are indicated by bold text with an asterisk and include a value column. Non-
mandatory columns include Description.
Source Column: Displays the columns within the staging table chosen from the Data Source Settings.
See Load Attributes From a Spreadsheet Data Source for an example of how attributes and their parents map to planning.
Unmap Columns
To unmap columns, click Unmap and choose:
Tip: Best Practice: Along with unmapping to troubleshoot errors and ignoring columns you can use unmap to help with change management. When new columns
get introduced in a data source, you can unmap the older columns to map the new ones.
Any cells marked (INVALID) in the Planning Code or Planning Name columns indicate this code no longer exists in Workday Adaptive Planning.
4. Correct the errors and click Upload Member Mappings to load the file. The Read Only column doesn't upload.
5. Run the loader again.
Note: Don't click Clear Member Mappings unless instructed by your implementation partner or Workday Adaptive Planning Support.
The Business Rules tab contains a text area for entering SQL.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 73/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
For detailed SQL syntax help, click online help in the Notes section of the Edit SQL Filter. See the SQL Expression Reference for more.
4. Correct any errors in your syntax and click Apply. Only staging rows that match the SQL expression will import when you run the loader.
You can also download the preview output as an XML file to manually verify the attributes from your data source against your requirements before loading them.
The loader runs, including all transformations and business rules. A status popup displays the steps as the loader executes. If attributes are available to load, the
loader creates an XML file and sends an email notification with the output as a zipped XML attachment. If no attributes load, the zip will contain a message
indicating none loaded.
An additional popup lets you download the preview loader output as a zipped XML file after the loader succeeds. The download popup may take a moment to
appear depending on the number of attributes and the size of the file.
To run the loader manually, click Run Manually in the Actions panel.
You can load attributes directly from the source system or you can run the loader using staging values that were already imported. When the loader runs, select
which of these behaviors you want. Choose Bypass data import to use the existing staging table for loading. Bypassing data import is not available when using
spreadsheets as data sources.
As part of the run process, the loader checks that the data in the staging table has been mapped correctly. Multiple validations are applied during the load. Any
errors that occur during the load indicate what needs to be resolved for a successful import.
If a task contains multiple loaders, parameters from each loader display in a prompt when the task runs. If there is a common or shared parameter in the loaders
within a task, the task prompts for the parameter only once. You can choose to override parameter prompts.
For scheduled runs of the task, default values of the parameters for the loaders get used.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 74/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Integration uses the Planning Data Loader to load data into Adaptive Planning.
Some links in this article go to the Workday Community. If you don't have a Community account, request one.
Prerequisites
The Planning Data Loader requires staging data from an import of an existing Data Source. Make a note of what data source you want to use.
Steps
1. Enter data source settings.
2. Select a mapping profile.
3. Configure column mapping.
4. Configure data mapping.
5. Create business rules.
6. Run or schedule the loader.
Navigation
Tip: Best Practice: Save frequently as you create and update your loader. Select Save in the Actions panel. Select Close, then No to discard unsaved changes.
1. Select Create New Loader in the Loaders section of the Component Library.
2. Select Planning Data Loader as the loader type. Enter a name for the loader.
3. Select Create. The center area of the page displays your new loader settings and other information.
4. Enter the Planning Data Loader general properties information:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 75/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source Table: Select the source table from the drop-down list. The source tables in the list are all the tables available in the staging area for this
user.
Import Type: Select an import type from the drop-down list.
Actuals: Enables you to load data into the Actuals version of Adaptive Planning.
Plan: Enables you to load data into any Planning or budget version defined in Adaptive Planning. (This import type isn’t available for a
Consolidation-only instance.)
Transactions: Enables you to load data into the Transactions module in Adaptive Planning. If multiple transaction tables exist in Adaptive Planning,
you can select the appropriate transaction from the drop-down. This option requires the Transactions module for your instance.
Import Into Sheet: Specify the planning sheet to load the data into, using one of these options:
Select Standard to load the data into standard accounts (General Ledger, Custom, or Assumption accounts).
Click the radio button to select a model or cube sheet from the drop-down.
Note: Changing the sheet selection in an existing loader displays a warning that doing so affects the column and members mappings. Clicking OK
removes all column and data mappings from the loader. You must create new mappings for the loader to correspond to the new sheet.
Version Parameter: Enables the user running this loader to select a version to import to. Select from the version parameters you previously defined.
(See the Creating a Version Parameter section later in this article.) The parameters visible in the list vary based on Import Type. You can use Version
Parameters in more than 1 loader.
Import Options: Enables you to select how data updates during import:
Append New Data: Adds new rows without changing existing rows.
Replace existing data in sheet: Replace all of the data in the sheet with the import, without updating or matching rows.
Update existing rows: When a key exists and an existing row matches for a modeled sheet, update the data. If a row can't match to the
import, rows don't update or append. The only required columns are Import Key and at least 1 column being updated. Sheets with Allow
splits selected do not support updates. Values in the Import Key column of your imported file must be unique.
Update existing rows and add new rows: When a key exists and a row matches for a modeled sheet, update the data. If a row can't match
to the import, make a new row. Only required columns are Import Key, Level, and any text selectors, even when not adding new rows. Sheets
with Allow splits selected do not support updates. Values in the Import Key column of your imported file must be unique.
Import Key Column: Indicates the modeled sheet dimension or level column as the key for matching rows when importing. Values in the Import Key
column of your imported file must be unique.
Import Secondary Column: Indicates the modeled sheet dimension or level column as the secondary key for rows that did not match on the Import
Key Column. Only available for the Import Options Update existing rows only and Update existing rows and add new rows.
Make New Actuals Visible: Only available when selecting Actuals for Import Type. When checked, the Actuals version has its Completed Values
Through date set to the final month of data found in the import, making the imported data available for overlaying plan data in plan versions. You
can also access Make New Actuals Visible as a parameter, to allow the user running the integration task to override this setting. Depending on the
period range being imported, and the current date set on the actuals version, the import might move the completed date backwards.
Delete Existing Transactions: Only available when selecting Transactions for Import Type. When checked, all existing transactions associated
with the Period parameter are deleted. Keep this checked unless a specific reason comes up to uncheck it. If you reimport data for a given period
while unchecked, you end up with duplicate transaction records.
Log level: Select a log level to specify the detail for the logging for this loader. Logs automatically erase after a week. If you need logs for debugging,
download them.
Error: Only logs serious errors.
Info: Logs all basic information, such as when the loader was updated.
Verbose: Provides very detailed information about all phases and actions. (This level is used primarily for debugging or auditing, as it may
produce more log information than is practical for typical use.)
GL Accounts: Only available when Import Type is set to Actuals, unless you configure Erase Data settings in Administration > General Setup. If
GL Accounts is selected, all data in general ledger accounts erases for the time period chosen in the loader prior to new data loading. You can also
access GL Accounts as a parameter you can override at runtime. Selecting GL Accounts only deletes data in general ledger accounts but leaves
data unchanged in custom accounts and in cell notes.
Custom Accounts: Only available when Import Type is set to Actuals, unless you configure Erase Data settings in Administration > General
Setup. If Custom Accounts is selected, all data in custom accounts erases for the time period chosen in the loader, prior to new data loading. You
can also access Custom Accounts as a paremeter you can override at runtime. Selecting Custome Accounts only deletes data in custom
accounts but leaves data unchanged in general ledger accounts and in cell notes.
Cube Accounts: Only available when Import Type is set to Actuals, unless you configure Erase Data settings in Administration > General Setup.
If Cube Accounts is selected, all data in cube accounts erases for the time period chosen in the loader, prior to new data loading. You can also
access Cube Accounts as a parameter you can override at runtime. Selecting Cube Accounts only deletes cube accounts but leaves data
unchanged in general ledger accounts, custom accounts, and cell notes.
Cell Notes: Only available when Import Type is set to Actuals, unless you configure Erase Data settings in Administration > General Setup. If
Cell Notes is selected, all data in general ledger accounts erases for the time period selected in the loader, prior to new data loading. You can also
access Cell Notes as a parameter you can overrided at runtime. Selecting Cell Notes only deletes cell notes but leaves data unchanged in general
ledger accounts and custom accounts.
5. Enter the planning loader default period settings:
Period Parameter: You can specify the range of time periods for loading into Adaptive Planning. See the Creating a Period Parameter section that
follows for more on how to create a period parameter. You can use Period Parameters in more than 1 loader.
Start Date: This display-only field shows the start period selected in the Period Parameter.
End Date: This display-only field shows the end period selected in the Period Parameter.
Time Stratum: This display-only field shows the time stratum based on the selection in Import Type. For import type Actuals or Plan, the time
stratum sets to the lowest available time stratum of the sheet you import to. For import type Transactions, the time stratum won't set to Day.
Period Column: Available for Import Type: Transactions. This drop-down displays all columns of type Date or DateTime available in the source
table selected in the Source Table field. When only 1 column meets these criteria, this field defaults to that column. Period Column controls the
mapping of time period data from the staging table, to the period defined in Adaptive Planning. You must align the data values in the staging values
with periods in Adaptive Planning.
Posting Date: Available when Import Type: Transactions. Indicates the staging column that contains the Date or DateTime values for the posting
date. The posting date helps with identifying and finding applicable transactions when drilling through transactions data submitted to Adaptive
Planning.
6. Create a Version Parameter.
You must use a version parameter to specify at runtime which version to load the data into. A version parameter gives you greater flexibility when setting up
a planning data loader, by enabling you to select a version other than the default at runtime.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 76/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You only need to create a version parameter once for a loader. Users with access to the loader can select a value for the parameter by selecting an
available version within the version tree. The version tree you can select from varies depending on the type of the parameter. The versions displayed at
runtime restrict based on the user running the loader.
If you want the parameter to be shared across users or loaders, select a folder from the Shared area. If you want the parameter to only be available to the
current loader, select a folder from the Local area.
3. Click Add.
4. From the context menu, click Actuals Version.
5. Enter the actuals parameters information:
Name: Enter the name for the parameter. The name entered here is the label the planning loader and associated tasks show at runtime.
ActualsActuals Version: Select the default value for the version from the drop-down.
Note: For consolidations, select which of the Actuals sub-versions is used as the default. For planning, there is only 1 Actuals version, which is the
only available selection in this dialog.
6. Click Apply to apply the settings.
7. Click Close to return to the Parameter editor dialog box. The actuals version parameter you have just created is now visible in Version Parameters drop-
down list.
If you want the parameter to be shared across users or loaders, select a folder from the Shared area. If you want the parameter to only be available to the
current loader, select a folder from the Local area.
3. Click Add.
4. From the context menu, click Plan Version.
5. Enter the plan version parameter information:
Name: Enter the name for the parameter. The name entered here is the label the planning loader and associated tasks show at runtime.
Plan Version: Select the default value for the version from the drop-down list.
6. Click Apply to apply the settings.
7. Click Close to return to the Parameter editor dialog box. The plan version parameter you have just created is now visible in Version Parameters drop-down
list.
Dynamic Period
A dynamic period allows configuring an offset from the current time in configured planning calendar:
Offset: A positive integer representing how many Time Strata to offset from the current date.
Time Strata Selector: A drop-down list of the time strata configured in the Planning calendar (months, quarters, weeks, years, etc.).
Direction: The direction of the offset, either forwards or backwards from the current time.
Fixed Period
A fixed period period allows choosing any time values found in Planning's configured calendar by letting you navigate its time hierarchy.
If you want the parameter to be shared across users or loaders, select a folder from the Shared area. If you want the parameter to only be available to the
current loader, select a folder from the Local area.
3. Click Add.
4. From the context menu, click Period Range.
5. Enter the period range parameter information:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 77/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Single Period: Check this box if you want to specify a single period for the date range.
Start Period:
Select Dynamic to choose a dynamic date for the start period, such as the previous quarter, month, year, or other stratum (if you are using a
custom calendar) available from your Planning calendar.
Enter an offset integer and select forward or backward. Use 0 to select the current time stratum.
Select Fixed to specify any time period from your time structure in Planning. The resolved date for your selection appears beneath the
dropdowns.
End Period:
Select Dynamic to choose a dynamic date for the end period, such as the previous quarter, month, year or other stratum (if you are using a
customer calendar) available from your Planning calendar.
Enter an offset integer and select forward or backward. Use 0 to select the current time stratum.
Select Fixed to specify any time period from your time structure in Planning. The resolved date for your selection appears beneath the
dropdowns.
6. Click Apply to apply the settings.
7. Click Close to return to the Parameter editor dialog box.
The period range parameter you created becomes visible in the Period Parameter drop-down list.
The Start Period would resolve to March 1st, the first date of the prior month. The End Period would resolve to May 1st, the first date in the next month.
Auto Mapping
You can select auto mapping options to automatically map new data elements detected at loader run time. Auto mapping can replace the manual steps you take in
the Data Mapping tab for:
Accounts
Levels
Dimensions
Existing loaders and any new loaders you create do not automap by default.
If your Data Mapping doesn't include a selection for Source Display Name, you can automap:
If your Data Mapping does include a selection for Source Display Name Column, you can automap:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 78/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If the loader encounters data elements it cam't automap, the loader errors out.
Erase Data
The Erase Data tab only displays after selecting Enable Integration Loaders - Erase Data in Administration > General Setup.
Note: You must have Import Capabilities > Erase Actuals permission enabled in Adpative Planning to erase actuals data. Erasing actuals is a superuser
permission that enables erasing actuals or plan data across Adaptive Planning, including in locked levels. Erase Actuals overrides Access Rules and level
ownership restrictions.
You can erase plan or actuals data independent of the data being loaded. You can also choose to erase data for specific time periods, versions, levels or accounts.
Erase Data only erases data from non-virtual plan or actuals versions.
Erase Data can erase data from calculated accounts with a data entry override for versions that are set up for data entry.
Selecting a parent level deletes all data in its child levels.
Selecting a rollup account deletes all data in its child accounts.
Formulas will not be deleted.
You can also to choose to use the Version or Period parameters specified in the Data Source Settings tab.
You can include all GL accounts, all custom accounts, all cube accounts in a sheet, or create a new account parameter to erase specific accounts. You can
also select a combination of all the available account options.
You can select all levels or or create a new level parameter for specific levels.
6. Run the loader manually using Erase Manually in the Actions pane or schedule the loader to run as a part of a task.
If more than 1 planning loader exists within a task, then each of the erase options become available for each included loader. The options tag with the name
of the loader to help you identify the source of the erase option.
Note: With Erase Settings, you can erase data from cube assumption accounts. If the request includes an account code used by both an assumption and an
account, the loader returns an error and won't erase anything.
Users must define a linked profile before performing any column mapping.
Important: To use the Default profile you must explicitly link to it, even if it's the only profile available.
Mappings created within a planning loader by default have all mappings in a default, global mapping set: all mappings created are within a single unified mapping
set, with a behavior similar to the one in Adaptive Planning, where there can be no two different maps with the same source member name.
You can save account/level/dimension value mappings for your planning loaders in a new mapping profile for each loader and assign it a name. When you create a
loader, you can then attach either the default profile or the new mapping profile. This is useful if you are creating a large number of planning loaders.
For example, if you are extracting information from multiple different systems such as Workday, NetSuite, and Salesforce, or if you have multiple subsidiaries, you
can use mapping profiles to easily create a large number of mappings. If there are multiple planning loaders in the same Integration instance, the loaders can link to
either the default mapping profile, or can link to a different mapping profile.
Most users do not need to use something other than the default mapping profile. If you don't think you need to use this, you probably don't.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 79/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source1:
Acct1
Acct2
Source2:
Acct1
Acct3
Planning:
Acct10
Acct11
Acct12
1. After completing the Data Source Settings, select the Profile tab.
2. Select the mapping profile you want to use.
You can create a new mapping profile by clicking New at the bottom of the page. You then enter the name of the new mapping profile and click Save. You can also
clone a profile from an existing mapping profile.
Cloning copies all the mappings from an exisn’tting profile into a newly cloned profile. This helps if you want to inherit mappings from an existing profile and then
make changes to some of the mappings that should not affect the original profile. To clone a profile, click the Clone button and then specify the profile to clone from,
as well as the name of the new profile.
When a loader is created, it has the default profile linked to it unless you specify another profile in the Profile tab.
When you create a new profile, it is initially empty. Mappings from the default profile are not copied into it. If you need to duplicate mappings, you must use
Clone.
If you change the linked profile from a named profile to the default profile, only new mappings come in. Integration does not check for conflicts. However, if
the default profile doesn't have any staging values that exist in the staging columns mapped in this loader, then these staging values come into the default
profile as unmapped values when you click the Data Mapping tab.
External Systems
You can double click a profile in the Profiles tab to associate that profile with an external system to allow drill-through on Adaptive Planning sheet and report data.
When a user clicks a drill-through link, Adaptive Planning connects to the external system and reveals the underlying transactions for the data.
Associating a profile with an external system is optional. Only set up an external system to enable drillback to Workday or NetSuite drill-through in Adaptive
Planning.
Warning: Do not associate a profile with an external system if you do not plan on using Drill-through in Adaptive Planning.
Important: You cannot perform column mapping until you link a profile.
The Column Mapping page has four columns. You can complete the entire mapping process with just the Source Id Column. The only requirement is that the
Source Id column must contain unique values from the data source. In cases where the information in the Source Id Column is easily understandable, or if you need
further context for what the identifier represents, you can include an optional source display name column to make it easier to map source values. If you use the
Source Display Name Column in the mapping, its values are used in the member mapping UI; otherwise, the values from the Source Id Column are used.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 80/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If there are a lot of Planning columns to map, you can use the Show filter at the upper left of the page. You can select any of the following options:
You can use the Search field to find staging columns. Enter a complete or partial name to search and click the magnifying glass. Any staging columns matching the
search appear in the staging column.
Note: When you see red exclamation marks for non-mandatory Planning columns in Column Mapping they do not indicate an error. Red exclamation marks simply
mean you did not provide a mapping and nothing will import for those Planning columns when you run the loader.
Once you navigate into the account mapping, level mapping, or dimension mapping page within the data mapping tab, you can see the mapping status for every
member in that category.
Important: Map all accounts, levels, and dimensions, or create explicit business rules to filter out records containing unmapped values. If a loader encounters an
unmapped value during final import, the loader status errors out as Failed.
Important: If you import data from NetSuite and want to configure drill-through to NetSuite based on NetSuite's standard categories of Account, Time Period,
Subsidiary, Department, Class, Location, Item and Customer, you must configure the NetSuite internal identifiers for each of these dimensions as part of your
column and data mapping steps.
You can import and map calculated accounts with data entry override for a plan version.
1. Navigate to the Account mapping, Level Mapping, or Dimension Mapping page within Data Mapping.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 81/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
5. Select a Planning Value to map to the Staging Value you selected in the previous step.
6. Select Apply.
7. Select Save.
1. Navigate to the Account mapping, Level Mapping, or Dimension Mapping page within Data Mapping.
All mappings
Mapped Only
Unmapped Only
Invalid Only
1. Navigate to the Account mapping, Level Mapping, or Dimension Mapping page within Data Mapping.
1. Select the gear icon and select Upload Mappings in the Planning Data Loader data mappings page for accounts, levels, or dimensions.
2. Select Browse and select your updated Excel template file.
3. Select Import.
4. Select Apply
5. Select Save.
For accounts, you can select to automap by source ID column, or by source display name column. For both, you can automap by Account Code or Account Name.
Note: Custom dimension members always automap using dimension member names. You will not see an Automap dialog when you automap dimension members.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 82/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Levels
Users with the Import Capabilities permission can import data into all levels, regardless of level ownership/access.
Linked levels can't map and can't import data.
Cube and modeled sheets show the full level hierarchy but only let you select levels assigned to those sheets. If a sheet isn't available on a level, that sheet
can not hold any data for that level.
Dimensions
You can map to any dimension for standard accounts (GL, custom, and assumption accounts).
Cube accounts can only map to dimension values and dimensions on cube sheets.
You can create mappings for modeled sheet selectors.
The import mapping namespace for dimension values shares across standard, cube, and modeled sheets.
If you create a mapping for standard import for a dimension's dimension value, and the dimension value also resides on a cube sheet, the standard
import mapping applies to that dimension value.
If a dimension is set to automatically create dimension members on data import, then staging columns mapped to that dimension don't need to be mapped.
These dimensions don't show up in the dimension mapping page because they will autocreate at import.
period (.)
underline (_)
hyphen (-)
colon (:)
Rules for account ranges can only use numeric characters. You can create as many skip account business rules as you want. To skip accounts that are in alpha-
numeric format, use the SQL filter in Business Rules.
Note: To create several skip account rules at once, select Create Another. When you then click Save Rule, the skip account rule saves and the Add Skip account
range dialog box stays open.
The process for creating a change signs rule is virtually identical to that for creating a skip account rule. Any account that you specify in a change signs rule will
have the sign reversed when it is loaded into Planning.
This filters out from the load any staging rows that do not match the expression. Click Apply to automatically check the SQL syntax of the filter. (If there are
any errors, the error is indicated in the expression.) For detailed SQL syntax help, you can click the link in the Notes section. The expression you entered
appears in the Business Rules page.
For additional information, click the online help link in the Notes section of the Edit SQL Filter dialog box.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 83/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
As with other loaders, you can import data from the source system or you can run the loader using staging values you already imported. At runtime, you can select
which of these behaviors you want by choosing the Bypass data import parameter to use the existing staging table for loading.
Important: Bypass data import isn’t available for spreadsheet data sources.
As part of the run process, the loader checks that the data in the staging table was mapped correctly using these rules:
Any row that contains an empty account/level value causes the loader to complete with a Failed status. The loader will complete importing all of the data it
can. If the loader is part of an integration task, the failed status causes the task to terminate and not run any additional loaders after the one with the failed
status.
For any row that contains an empty dimension value, the loader passes all rows (including those with a blank value for the dimension) to planning, which will
attempt to import that data using the "uncategorized" value for the blank dimension value.
When processing rows with missing mappings for account/level/dimension for standard and cube sheets, integration skips the row and does not write the
row to Planning. It also logs details of the issue. For modeled sheets, when a row with missing mappings is encountered, integration aborts the load with no
data written to Planning and reports the task as failed.
Note: If your load fails when reparenting levels and you receive the warning Level levelname cannot be moved with Proceed with Warnings set to 0, select
Proceed with Warnings and run the loader again.
The information you need to enter varies depending on the planning loader you're creating.
The loader runs, applying all transformations and business rules as part of the run. A status pop-up displays the steps executed as part of the loader run. If there is
data to be loaded, the loader creates a spreadsheet and sends an email notification with the output of the loader as a spreadsheet attachment.
Any Integration Task can have one or more loaders. A task can contain other tasks, like a Planning Data Loader, a Planning Account Loader, or a Scripted Loader.
Tip: Best Practice: Have separate Integration tasks for each loader.
If a task contains multiple loaders, parameters from each loader display in a prompt when the task runs. If there is a common or shared parameter in the loaders
within a task, the task prompts for the parameter only once. You can select to override parameter prompts.
For scheduled runs of the task, default values of the parameters are used.
You can set up an external system and associate it with a mapping profile in a Planning Data Loader to allow drill through from Adaptive Planning sheet and report
data into NetSuite. When a user clicks a drill through link, Adaptive Planning connects to the system and reveals the data's underlying transactions.
Associating a mapping profile with an external system is optional. Only set one up to enable drill through from Adaptive Planning to NetSuite.
NetSuite External Systems only support drilling from leaf levels, not rollup levels. NetSuite Basic supports drilling from rollup levels.
Prerequisites
Permissions required: Integration, Data Designer
Verify you have access to NetSuite data sources in your instance
Verify you created a NetSuite Credential for Token Based Authentication
When you create a new data source specifically for drilling, make a note of the NetSuite columns you want to map to data in Adaptive Planning .
Only the standard NetSuite dimensions (categories) of Account, Level, Customer, Item, and Department allow drilling
Navigation
Go to nav menu Integration > Data Designer
Basic Steps
1. Create an external system and give it a name.
2. Set up external system settings so that Adaptive Planning knows how to connect and what account and/or credentials to use.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 84/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
3. Set up external dimension mappings to identify how dimensions on the external system map into the dimensions in Adaptive Planning.
4. Configure tuple SQL columns if multiple external columns map to one Adaptive Planning dimension
Tip: Best Practice: Configure an external system for NetSuite before configuring a planning loader for the data source. After you create the external system, you will
need to return to the NetSuite data source to complete the drill through set up.
Warning: If you are importing data from NetSuite and would like to also configure drill through to NetSuite based on the standard categories Account, Time Period,
Subsidiary, Department, Class, Location, Item and Customer, then you will need to configure the NetSuite internal identifiers for each of these dimensions as part of
your column and data mapping steps in the Planning Data Loader.
1. Select an External System listed in the Component Library to map additional external dimensions to a single Planning dimension.
2. Select the External Dimension Mapping tab and double click a Planning dimension to launch the mappings editor.
3. Select external dimensions. Selected dimensions shift to the top of the list, possibly out of view without scrolling up.
4. (Optional) Drag and drop the selected dimensions that shift to the top of to reorder them. Ensure that the order you configure matches the order you expect
them to load from NetSuite.
5. Enter a delimiter in the mappings editor. A delimiter is required when multiple external dimensions get selected.
6. Delimiters cannot exceed five characters in length and should not match any characters used in a dimension value (actual values in the tuple mapped
columns described later). Click Apply.
7. View the External Dimension(s) column to verify it indicates multiple external dimensions mapped to a single Planning dimension.
8. Click Save in the Actions panel after you finish mapping the Planning Dimensions the External Dimensions.
If you do not require data from multiple NetSuite columns into the same Planning dimension, then you do not need to create a Tuple SQL column in the data
source.
If you plan to reuse an existing NetSuite data source to enable drill through and if you need to bring multiple NetSuite columns into a single Planning dimension, you
must redo that mapping using Tuple SQL columns. Reconfigure your loaders to ensure that the integration task can be valid. Make these types of changes in a test
environment and validate the changes there before rolling them out to a production system.
All of the following steps need to be completed to configure the Tuple SQL Column for drill through. Perform them only if you require data import from multiple
NetSuite columns into a single Planning dimension.
In order for Adaptive Planning to parse the different data items into the source NetSuite categories, you will need to specify which NetSuite source columns
combine to form a single column before importing this data into Planning.
The order in which the different NetSuite columns combine, and the delimiter specified, should match how the many-to-one column mappings are specified in the
NetSuite external system.
By indicating the constituent NetSuite columns and what their underlying NetSuite categories are, Adaptive Planning constructs drill through URLs on the Planning
sheet.
Important: Before you create a Tuple SQL column, ensure that you have configured the many-to-one column mapping in the NetSuite external system.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 85/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: Metadata loaders synchronize hierarchical information from source systems into the hierarchies of your planning model. Your hierarchies should already exist
in your source system before you attempt to synchronize.
Important: The Planning Dimension Loader requests are limited to updating a maximum of 10000 dimension values in a hierarchical dimension, or 40000 dimension
values in a flat dimension. These limits do not apply to creation of new dimension values within a loader request.
The Planning Dimension Loader lets you map metadata about dimension values from the staging area into Adaptive Planning. The primary benefit of the Planning
Dimension Loader is that it allows you to import dimensions values in bulk, instead of creating them one at a time within Modeling > Model Management >
Dimensions. Once you create a loader, you can run it manually or schedule it to run as part of an integration task.
Tip: Best Practice: Save frequently as you create and edit your loader by clicking Save in the Actions panel. You can discard any unsaved changes by clicking
Close, then clicking No.
Enter the Planning Dimension Loader general properties information:
Source Table: Select the source table from the dropdown list. The source tables in the list are all the tables available in the staging area you have access
to.
Planning Dimension: Choose a dimension from all of the dimensions for the source to load into. The dimensions listed come from Modeling > Model
Management > Dimensions.
Create dimension value if not found in Planning: Check the box to automatically create new dimension values found in the source system, but not found
in Modeling > Model Management > Dimensions. If this option is not checked, only updates to existing dimension values are performed and no new
dimensions are created.
If the dimension you load into does not have 'Data import automatically creates dimension values' enabled in Modeling > Model Management >
Dimensions, the loader will warn you.
Log Level: Choose the type of details logged when running the loader.
Error: Log serious errors only.
Info: Log basic information, such as when the loader was updated.
Verbose: Provide detailed information about all phases and actions. This level is used primarily for debugging or auditing, as it may produce more
log information than is practical for typical use.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 86/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If there are several columns to map, you can use the Show filter to select:
You can use the Search field to find columns. Enter a complete or partial name to search for and click the magnifying glass. Any staging columns matching the
search appear in the results.
Map Columns
See Example: Load Dimension Values From Spreadsheet Data Sources for an example of how dimension values and their parents map to Planning.
1. Select the Source Column that uniquely identifies the dimension value in the source.
2. Map the id column to the dimension value id.
3. Map the name to the dimension value name.
Unmap Columns
To unmap columns, click Unmap and choose:
You can associate attributes with a list dimension by mapping columns from a data source import.
Note: Associating attributes with dimensions is only possible for list dimensions. You cannot associate attributes with hierarchical dimensions.
Within Adaptive Planning you can visit Model Management > Dimensions and click a dimension to view its details to find out if it is a list dimension.
Within Data Source Settings, select a list dimension as the Planning Dimension.
Attributes become available as columns within Column Mapping because the dimension is a list dimension.
Because list dimensions are not hierarchical, parentId is not an option for the Source Column.
Any cells marked (INVALID) in the Planning Code or Planning Name columns indicate this code no longer exists in Workday Adaptive Planning.
4. Correct the errors and click Upload Member Mappings to load the file. The Read Only column doesn't upload.
5. Run the loader again.
Note: Don't click Clear Member Mappings unless instructed by your implementation partner or Workday Adaptive Planning Support.
For detailed SQL syntax help, you can click 'online help' in the Notes section of the Edit SQL Filter. You can also visit the SQL Expression Reference.
4. Correct any errors in your syntax and click Apply. Only staging rows that match the SQL expression will import when you run the loader.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 87/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The loader runs, applying all transformations and business rules as part of the run. A status popup displays the steps the loader executed. If there are dimension
values to load, the loader creates an XML file and sends an email notification with the output of the loader as a zipped XML attachment.
An additional popup lets you download the preview loader output as a zipped XML file after the loader succeeds. The download popup may take a moment to
appear depending on the number of dimension values and the size of the file.
The source Id value for the dimension value is missing (empty) in the data.
There are duplicate Source Ids in the data. Source Ids must be unique.
A dimension value name is missing (empty) in the data.
There are duplicate dimension value names in the data.
A ParentId is the same as the Source Id in the data. In this case, the column is referring to itself as its parent.
When importing a sub tree, the root of the sub tree maps to an existing node in Planning. In this case, the parentID is not in the source data for a new node
being introduced to Planning.
An existing node is moved under a new node and the Create New flag is disabled. In this case, an existing dimension value is moving into a new node when
the loader has been explicitly told not to make new dimension values.
The data has a cyclic reference in its hierarchy. In this case, a ParentId is referring to its own child as its parent.
You can import directly from the source system or you can run the loader using staging values that were already imported. When the loader runs, select which of
these behaviors you want. Choose Bypass data import to use the existing staging table for loading. Bypassing data import is not available when using
spreadsheets as data sources.
As part of the run process, the loader checks that the data in the staging table has been mapped correctly. Multiple validations are applied during the load. Any
errors that occur during the load indicate what needs to be resolved for a successful import.
If a task contains multiple loaders, then parameters from each loader are presented when the task is run. If there is a common/shared parameter used in the
loader(s) within a task, then the task only prompts for the parameter once. You can choose to override parameter prompts.
For scheduled runs of the task, the default values of the parameters stored when the loaders were created are used.
This table illustrates the mappings the loader already established. The source dimension value 'USA' maps to the source id column '1001'.
In the source system, if 'USA' changes to 'United States', then the Planning Dimension Loader can apply this change at load because the loader maintains the
mapping between the source id column '1001' and Planning's internal id for the dimension value 'USA'.
Running the loader will change the dimension value in Planning from 'USA' to 'United States'.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 88/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This example illustrates loading a CRM Customer list from a spreadsheet data source into Adaptive Planning using the Planning Dimension Loader. It assumes a
hierarchical dimension called Customer already exists.
The end goal is to add several dimension values directly under the hierarchical Customer dimension as a collection of CRM Customers, so that the tree looks like:
Customer
|__Customer 1
|__Customer 2
|__CRM Customers
|__R.G. Barry Corporation
|__Sierra Bancorp
|__SkullCandy, Inc.
...
|__StoneMore Partners L.P.
|__ScanSource, Inc.
...
Id: The unique identifier for the dimension value in the source system.
ParentId: The Id for the parent of the dimension value in the source system if it has a parent.
Name: The name of the dimension in the source system that ideally should match the Planning dimension value if it exists in Planning for the first run of the
loader.
The Id column uniquely identifies each dimension value. The ParentId column indicates the Id the dimension values point to as their parent. To load at the root,
ParentID should be null.
Option Description
1 ID column
2 ParentId column
Notice that CRM Customers has an Id of 3. This Id of 3 is referenced in the ParentId column to flag all of the dimension values that will become its children.
The dimension Customer does not need to be included in the spreadsheet because it will be selected in the Data Source Settings of the loader.
Create a CRM Sheet Data Source for the Planning Dimension Loader
Using the spreadsheet shown above, create a spreadsheet data source called CRM Sheet.
Import the sheet contents for the data source to populate the staging area.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 89/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Column Mapping
Because of the data source spreadsheet's format and columns, the column mappings for this loader should be:
Parent Id ParentId
Customer Id Id
Review the Preview Loader Output Status to verify that no errors occur.
The loader is also ready to be included in a scheduled Integration Task that could run automatically.
Option Description
3 Parent Id column
Customer, at the top of the Dimension Values list on the left, was selected as the Planning Dimension in the Data Source Settings dropdown within the loader.
Customer
|__Customer 1
|__CRM Customers
|__R.G. Barry Corporation
|__Sierra Bancorp
|__SkullCandy, Inc.
...
|__Customer 2
|__StoneMore Partners L.P.
|__ScanSource, Inc.
...
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 90/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Option Description
1 ID column
2 ParentId column
Customer 1 has an Id of 1. It will become the parent of CRM Customers as indicated in the parentId column for CRM Customers.
Notice that Customer 1 is the parent of CRM Customers as indicated by the parentId column in the spreadsheet.
A list dimension is a dimension that is entirely non-hierarchical. It has no sub-dimensions and no hierarchy of dimension values, only a flat list of values.
A spreadsheet data source for the list dimension Product would have columns for each of its dimension attributes such as Group, Color, and Size.
The columns for Group, Color, and Size contain the attributes for the product dimension.
The attributes for Product become available as columns within Column Mapping because this dimension is a list dimension.
These additional columns would not be available for column mapping if this were a hierarchical dimension.
Important: The Planning Dimension Loader requests are limited to updating a maximum of 10000 dimension values in a hierarchical dimension, or 40000 dimension
values in a flat dimension. These limits do not apply to creation of new dimension values within a loader request.
Details
The Planning Dimension Loader logs the create, update, error, and warning messages generated during a load.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 91/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Each line item in the log contains a maximum of 100 dimension value entries. Hovering an item in the log shows the updated or created items. You can download
the full log of the load as a spreadsheet by clicking .
Tip: Best Practice: Download your logs if you need them at a later date. They remain available up to 1 week following a loader run.
When you visit the URL, you end up on a page that describes the file and lets you download it. Downloads are deleted after seven days.
Create/Update Message
These messages appear for successful creation or update of dimension values.
The following dimension values were updated Product A3, Product A1, Product A2.
Warning Message
These messages appear for list dimensions when the loader encounters attribute values in the source that are not found in Adaptive Planning. The Planning
Dimension Loader does not automatically create attribute values.
Example Warning
The following values were not recognized for attribute Color: Mauve
Error Message
These messages appear when the loader encounters a dimension value in the source that already exists the Adaptive Planning.
Example Error
Error Id "{0}" does not exist. Id "456" does not exist. The id indicated does not match any id in the system.
Error {0} "{1}" must be an integer value Dimension id "-3" must be an integer value within range from 1 (inclusive) to 2,147,483,647 (inclusive).
within the range {2} (inclusive) to {3}
(inclusive).
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 92/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Error The {0} "{1}" cannot be more than {2} The dimension name "more-than-5-chars" is too long. It cannot be more than X characters in length.
characters long.
Error The {0} can not be empty. The dimension name can not be empty.
Error A dimension with the name "{0}" A dimension with the name "Product" already exists.
already exists.
Error The "{0}" is too long. It cannot be more The short name "more-than-5-chars" is too long. It cannot be more than 5 characters in length.
than {0} characters long.
Error A dimension with id "{0}" does not A dimension with id "123" does not exist." The id indicated for a dimension does not match any id of a
exist. dimension in the system.
Error {0} "{1}" must be an integer value Dimension value id "-3" must be an integer value within range from 1 (inclusive) to 2,147,483,647
within the range {2} (inclusive) to {3} (inclusive).
(inclusive).
Error The {0} "{1}" cannot be more than {2} The dimension value name "more-than-5-chars" is too long. It cannot be more than X characters in
characters long. length.
Error "{0}" is NOT allowed as name. "This" is not allowed as a name. "This" is a reserved word that cannot be used as a name. Applies to
dimension value names only.
Error The {0} can not be empty. The dimension value name cannot be empty.
Error A dimension value with the name "{0}" Dimension value names must be unique within a dimension.
already exists.
Error "{0}" is duplicated for IDs {1}. "Computers 2A" is duplicated for IDs 50, 69.
Error Found {0} new entities in the payload Found 2 new entities in the payload with value "Computers".
with value "{1}".
Error Illegal Input. Input data must be an The input was not XML.
XML document.
Error A dimension value cannot be its own A dimension value referred to itself as a parent.
parent.
Error Parent node "{0}" is becoming the Parent node "2" is becoming child of its current direct/indirect child node "3". A parent is set to become
child of its current direct/indirect child the child of itself or one of its children.
node "{1}".
Error Invalid {0} "{1}". Invalid dimension name "foo(+)". Invalid dimension name "foo(-)." + and - are invalid characters for a
dimension name.
Error Invalid {0} "{1}". Invalid dimension value name "foo(+)". Invalid dimension value name "foo(-)." + and - are invalid
characters for a dimension value name.
Warning Both useOnLevels and listDimension List dimensions cannot have parents.
cannot be "1" at the same time.
Warning Invalid "autoCreate" value "x". The Illegal values for fixed-value properties (e.g. listDimension="1999") leaves the property unchanged and
value must be "1" or "0". generates a warning.
Warning Invalid "listDimension" value "w". The Illegal dimension names and dimension value names (length restrictions and character restrictions) are
value must be "1" or "0". warnings and leaves the element's property unchanged
Warning Invalid "keepSorted" value "z". The Attempting to change a listDimension or useOnLevels setting to an illegal combination will be a
value must be "1" or "0". warning and leaves the flag unchanged.
Warning Invalid "useOnLevels" value "y". The Attempting to create an invalid version visibility combination (stating allVersions=true but then
value must be "1" or "0". specifying versions) is a warning and will ignore the conflicting "visible" setting, and will respect the
allVersions setting.
Warning A list dimension value cannot have List dimensions are not hierarchical and should not have parents.
parents.
Warning A dimension value name cannot be Dimension values cannot have the same name as their dimension.
the same as its dimension name.
Warning The {0} "{1}" cannot be more than {2} The dimension value short name "more-than-5-chars" is too long. It cannot be more than 5 characters
characters long. in length.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 93/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Warning The provided dimension attribute {0} is An attribute was provided in the input, but that attribute is not associated with the indicated dimension.
not associated with the dimension {1}.
Note: Metadata loaders synchronize hierarchical information from source systems into the hierarchies of your planning model. Your hierarchies should already exist
in your source system before you attempt to synchronize.
The Planning Level Loader lets you map metadata about organizational hierarchies from the staging area into Adaptive Planning.Use the planning level loader to
import levels in bulk, instead of creating them one at a time in the levels admin. Once you create a loader, you can run it manually or schedule it to run as part of an
Integration task.
Basic Steps
Enter data source settings
Configure column mapping
Create business rules
Preview the loader output
Run or schedule the loader
Prerequisites
The Planning Level Loader requires staging data from an import of an existing Data Source. Make a note of what data source you want to use.
Navigation
1. Click Create New Loader In the Loaders section of the Component Library.
2. Select Planning Level Loader as the loader type. Enter a name for the loader.
3. Click Create.
4. Enter the Planning Level Loader general properties information:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 94/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source Table: Select the source table from the dropdown list. The source tables in the list are of all the tables available in the staging area you have
access to.
Create level if not found in Planning: Check to automatically create new levels found in the source system, but not found in Modeling > Model
Management > Levels. Uncheck update only existing levels in your model.
Propagate applicable level updates to children: Check to update child levels if the change involves a cascading property. If this is unchecked only
the level explicitly updated will change.
Delete workflow items when disabling workflow: Check to delete items within workflow if you disable workflows. If this is unchecked, workflow
items will not get deleted when workflow is disabled.
Delete inaccessible actuals when updating level availability: If the start or end date for actuals on a level changes to make actuals inaccessible,
delete the actuals data that can't be accessed.
Publish pending admin publishing changes: If Admin Publishing has pending workflow changes, check to publish the changes.
Maintain existing order in Planning: Select to keep the existing level sort order already used in Adaptive Planning.
Log Level: Choose the type of details to capture when running the loader.
Off: No errors logged.
Error: Log serious errors only.
Info: Log basic information, such as when the loader was updated.
Verbose: Detailed information about all phases and actions. Used primarily for debugging or auditing.
Level Details: Shows columns that relate to level details, including Short Name, Currency, and In Workflow. In Workflow must be a boolean value of 1 for
true or 0 for false.
Elimination Settings: Shows columns that relate to elimination settings, including elimination level, and elimination trading partner. These boolean values
must be either 1 for true or 0 for false.
Version Settings: Shows columns that relate to version settings, including actuals start, and actuals end. These values should be date formats like
01/01/2010.
Level Attributes: Shows columns that relate to level attributes.
Level Dimensions: Shows columns that relate to level dimensions.
You can use the Search field to find columns. Enter a complete or partial name to search for and click the magnifying glass. Any staging columns matching the
search appear in the results.
Map Columns
Status: A checkmark indicates a mapped column. An exclamation point indicates an unmapped column.
Planning Column: Displays all of the Planning columns available for mapping on a sheet. The list of Planning columns include a set of mandatory Planning
columns, followed by all other Planning columns. Mandatory Planning columns are indicated by bold text with an asterisk and include a value column. Non-
mandatory columns include the Short Name and Currency.
Source Column: Displays the columns within the staging table chosen from the Data Source Settings.
See Example: Load Levels From Spreadsheet Data Sources for an example of how levels and their parents map to planning.
Unmap Columns
To unmap columns, click Unmap and choose:
Tip: Best Practice: Along with unmapping to troubleshoot errors and ignoring columns you can use unmap to help with change management. When new columns
get introduced in a data source, you can unmap the older columns to map the new ones.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 95/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can download, modify, then upload mappings for loaders to quickly resolve mapping errors. Uploads perform an all or nothing, replace-all action. Only 1 sheet
of mappings from the file processes on upload. Additional sheets of mappings will error out and cancel the upload.
Any cells marked (INVALID) in the Planning Code or Planning Name columns indicate this code no longer exists in Workday Adaptive Planning.
4. Correct the errors and click Upload Member Mappings to load the file. The Read Only column doesn't upload.
5. Run the loader again.
Note: Don't click Clear Member Mappings unless instructed by your implementation partner or Workday Adaptive Planning Support.
The Business Rules tab contains a text area for entering SQL.
For detailed SQL syntax help, click online help in the Notes section of the Edit SQL Filter. See the SQL Expression Reference for more.
4. Correct any errors in your syntax and click Apply. Only staging rows that match the SQL expression will import when you run the loader.
You can also download the preview output as an XML file to manually verify the levels from your data source against your requirements before loading them.
The loader runs, including all transformations and business rules. A status popup displays the steps as the loader executes. If levels are available to load, the
loader creates an XML file and sends an email notification with the output as a zipped XML attachment. If no levels load, the zip will contain a message indicating
none loaded.
An additional popup lets you download the preview loader output as a zipped XML file after the loader succeeds. The download popup may take a moment to
appear depending on the number of levels and the size of the file.
To run the loader manually, click Run Manually in the Actions panel.
You can load levels directly from the source system or you can run the loader using staging values that were already imported. When the loader runs, select which
of these behaviors you want. Choose Bypass data import to use the existing staging table for loading. Bypassing data import is not available when using
spreadsheets as data sources.
As part of the run process, the loader checks that the data in the staging table has been mapped correctly. Multiple validations are applied during the load. Any
errors that occur during the load indicate what needs to be resolved for a successful import.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 96/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Any integration task can have one or more loaders. A task can contain other integration tasks, like metric loaders and scripted loaders.
Tip: Best Practice: Have separate Integration tasks for each loader.
If a task contains multiple loaders, parameters from each loader display in a prompt when the task runs. If there is a common or shared parameter in the loaders
within a task, the task prompts for the parameter only once. You can choose to override parameter prompts.
For scheduled runs of the task, default values of the parameters for the loaders get used.
This example illustrates loading a list of levels from a spreadsheet data source into Adaptive Planning using the Planning Level Loader. It assumes a level called
Total Company already exists as the top level of the organization:
The end goal is to add two new levels Sales - South East and Sales - South West under the existing level Sales - South. After loading, the level structure
you see in the Levels admin will end up looking like:
Total Company
|__Company A (100% owned)
|__Operations
|__United States
|__Sales - North
|__Sales - South
|__Sales - South East
|__Sales - South West
|__Sales - East
|__Sales - West
|__Services - East
|__Services - West
|__Support
|__Canada
|__United Kingdom
...
id: The unique identifier for the level in the source system.
Level: The name for the level in the source system.
ParentId: The unique identifier for the parent level in the source system.
The id column uniquely identifies each level. The ParentId column indicates the id of a level's parent. To load to the highest level in a hierarchy, ParentId must be
empty. ParentId must also be empty If you want to create a child level underneath the top level.
Option Description
1 ParentId column
2 Sales - South
ParentId value is blank for Company A (100% owned). This means Company A (100%) is the child of the highest level in the organization, Total Company. To load
new levels beneath id columns of Sales - South, the rows for Sales - South East and Sales - South West reference Sales - South in the ParentId
column. These two new levels will get Sales - South as their parent.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 97/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Important: Always include the full level tree of parents above the levels you intend to load. The loader needs to know how to distinguish levels with the same name
that sit under different parents. An organization can have a West for Sales and a West for Marketing. Loading the full tree of parents is how to handle duplicate
names in different levels.
Boolean columns, like in workflow, elimination level, and elimination trading partner require either a 1 for true, or a 0 for false. Other characters should not be used
in boolean columns.
Import the sheet contents for the data source to populate the staging area.
Enable Create level if not found in Planning. This setting makes new levels if the loader can't find levels with the same name in Adaptive Planning.
Column Mapping
Because of the data source spreadsheet's format and columns, the column mappings for this loader must be:
Parent Id ParentId
Level Id id
Remember, the Source Column references a unique id for each level. The Source Column Name row references the name of the level.
Review the Preview Loader Output Status to verify that no errors occur.
The loader is also ready to be included in a scheduled Integration Task that can run automatically.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 98/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Option Description
3 ParentId column.
If the ParentId column is left blank, the top level of the hierarchy, Total Company, becomes the parent.
Reparent Levels
To reparent existing levels with the loader, provide the ID of the new parent in the ParentId column of the level you need to move. Example: Taking the results from
above, if you wanted Sales - South East and Sales - South West to become direct children of United States so that the tree looks like:
Total Company
|__Company A (100% owned)
|__Operations
|__United States
|__Sales - North
|__Sales - South
|__Sales - South East
|__Sales - South West
|__Sales - East
|__Sales - West
|__Services - East
|__Services - West
|__Support
|__Canada
|__United Kingdom
...
Option Description
1 Sales- S
2 Sales- SE
3 Sales-SW
United States is the parent of Sales - South. United States will also become the parent of Sales - South East and Sales - South West as indicated in the
ParentId column. The other siblings get listed below those levels to make sure they load in the order we want.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 99/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Notice that United States is now the parent of Sales - South East and Sales - South West, as indicated by the ParentId column in the spreadsheet.
To create new attribute values during load, make sure that Level import automatically creates attribute values is enabled for the attribute in the Level Attributes
Admin.
A spreadsheet data source for the level would have a column for each level attribute. In this example, there is one level attribute, Region Code. The sales levels
each get one Region Code level attribute value:
Notice that Sales - North has N20 as an attribute value that does not already exist in Adaptive Planning. Because of the setting for Region Code in the level
attribute admin, N20 will get created as a new level attribute value when we run the level loader.
The level attribute Region Code is available as a column within Column Mapping because it is a level attribute available in Adaptive Planning:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 100/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The result of loading the spreadsheet with the level loader would create the attribute value N20 for Region Code and immediately associate N20 with the level
Sales - North.
Details
The Planning Level Loader logs create, update, error, and warning messages generated during a load.
Each line item in the log contains a maximum of 100 Level entries. Hovering an item in the log shows the updated or created items. Click to download the full log
as a spreadsheet.
Tip: Best Practice: Download your logs if you need them at a later date. They remain available up to 1 week following a loader run.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 101/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This message provides a URL you can use to download a zipped XML file of the updateLevels API response to your loader run.
When you visit the URL, you go to a page with a description of the file and a link to download it. Downloads are deleted from your instance after seven day
Warning Message
The messages appear for levels when the loader encounters attributes in the source that are not found in Adaptive Planning. The Planning Level Loader does not
automatically create attributes. To avoid this message, make sure the attributes already exist.
Example Warning
The following attributes were not recognized for the level HQ: Color
Error Message
These messages appear when the loader encounters a level in the source that already exists Adaptive Planning.
Example Error
Error System dimensions cannot be updated via Only custom dimensions can be updated.
API.
Error Id "{0}" does not exist. The ID "456" does not exist. The id indicated does not match any ID in your instance.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 102/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Error {0} "{1}" must be an integer value within the The Dimension ID "-3" must be an integer value within range from 1 (inclusive) to 2,147,483,647
range {2} (inclusive) to {3} (inclusive). (inclusive).
Error The {0} "{1}" cannot be more than {2} The dimension name "a very long name" is too long. It cannot be more than N characters in
characters long. length.
Error The {0} can not be empty. The dimension name cannot be empty.
Error A dimension with the name "{0}" already The dimension Product already exists in your instance.
exists.
Error The "{0}" is too long. It cannot be more than The short name "a very long name" is too long. It cannot be more than 5 characters in length.
{0} characters long.
Error A dimension with id "{0}" does not exist. A dimension with ID "123" does not exist. The ID for a dimension does not match any ID of a
dimension in your instance.
Error {0} "{1}" must be an integer value within the Dimension value ID "-3" must be an integer value within range from 1 (inclusive) to
range {2} (inclusive) to {3} (inclusive). 2,147,483,647 (inclusive).
Error The {0} "{1}" cannot be more than {2} The dimension value name "more-than-5-chars" is too long. It cannot be more than X characters
characters long. in length.
Error "{0}" is NOT allowed as name. "This" is a reserved word and cannot be used as a name.
Error The {0} can not be empty. The dimension value name must have a value.
Error A dimension value with the name "{0}" Dimension value names must be unique within a dimension.
already exists.
Error A dimension value with the name "{0}" A dimension value"Computers" already exists in the instance for the dimension value ID "317".
already exists in the Planning instance for
the dimension value ID {0}.
Error A dimension value with the name "{0}" exists A dimension value "Computers" was found twice in the payload.
in the payload {0} times.
Error Illegal Input. Input data must be an XML The input is not XML.
document.
Error A dimension value cannot be its own parent. A dimension value referred to itself as a parent.
Error Parent node "{0}" is becoming the child of its Parent node "2" is set to become the child of its current direct or indirect child node "3". A parent
current direct/indirect child node "{1}". is set to become the child of itself or one of its children.
Error Invalid {0} "{1}". The dimension name "foo(+)" contains the reserved character "+" and is invalid. + and - are
invalid characters for a dimension name.
Error Invalid {0} "{1}". Invalid dimension value name "foo(+)". Invalid dimension value name "foo(-)." + and - are invalid
characters for a dimension value name.
Levels rolling up to the top level have a value in the Rolls up To field. Specify a blank value in
the "Rolls up To" field for this record.
Warning Both use OnLevels and listDimension cannot List dimensions cannot have parents.
be "1" at the same time.
Warning Invalid "autoCreate" value "x". The value Values other than 1 or 0 for fixed-value properties (e.g. listDimension="1999") leaves the
must be "1" or "0". property unchanged and generates a warning.
Warning Invalid "listDimension" value "w". The value Dimension names and dimension value names that are too long generate warnings and leaves
must be "1" or "0". the element's property unchanged
Warning Invalid "keepSorted" value "z". The value An attempt to change a listDimension or useOnLevels setting to an illegal combination
must be "1" or "0". generates a warning and leaves the flag unchanged.
Warning Invalid "useOnLevels" value "y". The value An attempt to to create an invalid version visibility combination (stating allVersions=true but then
must be "1" or "0". specifying versions) generates a warning and will ignore the conflicting "visible" setting, and will
respect the allVersions setting.
Warning A list dimension value cannot have parents. List dimensions are not hierarchical and should not have parents.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 103/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Warning A dimension value name cannot be the same Dimension values cannot have the same name as their dimension.
as its dimension name.
Warning The {0} "{1}" cannot be more than {2} The dimension value short name "a very long phrase" is too long. It cannot be more than 5
characters long. characters in length.
Warning The provided dimension attribute {0} is not An attribute was provided in the input. That attribute is not associated with the indicated
associated with the dimension {1}. dimension. Verify what attributes are associated with the dimension.
You can use the Scripted Planning Exporter (SPE), a customized Pentaho plugin, to export Planning data to external systems. For additional information on
Adaptive Planning use of Pentaho, see Setting Up a Scripted Data Source.
The SPE is a plugin bundled with the Data Agent starting with version v51.17.0734. You can verify which version of the Data Agent Service Manager you have by
opening the program. The version number appears on the information in the About tab. For information on installing the Data Agent, see Install the Data Agent
Service Manager. When the SPE is installed, the Adaptive Planning plugin appears in the Input folder on the Design tab of Spoon.
Note: The terminology around the Scripted Planning Exporter Adapter may be slightly confusing. Because the data flows from Planning to the script and then on to
some external destination, it is a data export from Planning and a data import into the external destination. However, looked at from Spoon, the SPE is an input
step, because it provides input into the script. This is why it is labeled "Adaptive Planning Input" in Spoon.
You can start the SPE directly from within the Spoon environment or remotely by including it in a scripter loader. The general process for using the SPE is to write a
script that creates an XML request in the format accepted by the Planning server, passes that to the SPE, and then processes the results. Below is a sample script
that shows the minimum requirements for an SPE script:
All the input field names are case-sensitive. Define them in the Kettle script accordingly.
requestXMLString: Each export API has its own request XML format. See the Adaptive Planning REST API for more information.
targetResponseFormat: As of API v11, only the payload of the 'exportData' API can be transformed into CSV format. All other exports must be XML.
TargetFolder: In general, do not select the Restrict Runner Access to Files checkbox in the Agent Service Manager. The target folder can be anywhere in
the file system.
responseFileName: The name of the response file is in the following format: <targetFolder>_ApiResponse_<exportMethod>_<UUID>.
<targetFormat>; Example: C:\pdiTemp\ApResponse_exportData_83980a17b3dc40c48282483cb9ea5e96.csv
requestSuccess: If the export request goes through on the Planning server side, the requestSuccess has a value of true ('Y'). If the export request fails on
the results of a call to planning, the SPE throws an exception with the error messages returned by the Planning server.
The general workflow for extracting the information from planning and sending it to an output file:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 104/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
customReportValues : returns a set of data for the requested report criteria in the requested instance
exportData : retrieve a set of values from a specified version
You need to create a script that defines the inputs and outputs for the SPE operation. Refer to the sample script in this article.
Start by creating a new scripted loader. See Creating Scripted Loaders for more information. You also need to select an entry point in the Entry Point drop-down.
The entry point is set to the name of the script to be executed when the scripted loader is executed.
You must map and expose the local and shared context parameters defined in the scripted loader as environment variables in the Kettle/Spoon environment.
Example: if a context parameter called "login" is defined in the loader setup screen in the Parameters section, it is exposed as the variable "${login}" in the Kettle
environment. The definition of two context parameters in a scripted loader then get used in the SPE for both of the corresponding Kettle variables.
You can update the Kettle variables at design time with the current default context parameter values by starting the Adaptive Script Editor and triggering a refresh
by clicking Refresh Configuration.
The Planning Association Loader lets you map metadata about user dimension and level associations from the staging area into Adaptive Planning. Associations
connect levels and custom dimensions to users. Level ownership is a type of user association that connects users to levels. Unlike regular level associations, level
ownership also comes with other privileges. See Concept: Associations.
Once you create a loader, you can run it manually or schedule it to run as part of an Integration task. See Create Integration Tasks.
Prerequisites
The Planning Association Loader requires staging data from an import of an existing Data Source.
Required Permissions: Model, Integration Operator, Data Designer
Basic Steps
1. Enter data source settings
2. Configure column mapping
3. Create business rules
4. Preview the loader output
5. Run or schedule the loader
Navigation
1. Select Create New Loader in the Loaders pane of the Component Library.
2. Select Planning Association Loader as the loader type. Enter a name for the loader.
3. Click Create.
4. Enter the Association Loader General Properties information in the Data Source Settings tab:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 105/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source Table: Select the source table from the dropdown list. The source tables in the list are of all the tables available in the staging area you have
access to.
Mapping Profile: You can link to a mapping profile as part of the loader creation process. Select the mapping profile from the dropdown list. The
mapping profiles in the list are the ones you have access to. See the mapping profile section of the Planning Data Loader. This mapping profile,
along with any mappings loaded as part of metadata loaders map the planning levels and dimensions. See Create Planning Data Loaders. Example:
If the association loader has level column value "999999" (or for Workday, a WID) then the mapping profile determines which planning level that
refers to.
Level or Dimension: Select level for level ownership or level association. Select a dimension to load dimension associations.
Mode: Select Update to only add new users. Select Replace All to delete all users within the associations mentioned in the payload and replace
them.
If you use Adaptive Planning with Workday Human Capital Management or Workday Financials, Mode automatically populates with Update.
If you don't use Adaptive Planning with Workday Human Capital Management or Workday Financials, Mode automatically populates with
Replace All.
Proceed with warnings: Check to continue running the loader with warnings. If you leave it unchecked, the loader will stop when it encounters a
warning. Enabling this means the loader skips unmapped dimensions or levels and creates a warning in the logs while allowing the loader to
continue processing.
Log Level: Choose the type of details to capture when running the loader.
Off: No errors logged.
Error: Log serious errors only.
Info: Log basic information, such as when the loader was updated.
Verbose: Detailed information about all phases and actions. Used primarily for debugging or auditing.
You can use the Search field to find columns. Enter a complete or partial name to search for and click the magnifying glass. Any staging columns matching the
search appear in the results.
Map Columns
1. Click the Column Mapping tab. The Column Mapping tab has these columns:
Status: A checkmark indicates a mapped column. An exclamation point indicates an unmapped column.
Planning Column: Displays all of the Planning columns available for mapping. Mandatory Planning columns are indicated by bold text with an
asterisk.
Source Column: Displays the columns within the staging table chosen from the Data Source Settings.
2. Select an unmapped column and click the dropdown. A list of columns you can map to appears in the dropdown list. As you map the columns, the status
indicator changes from red to green .
If you want to load level and dimension associations, map an identifier such as Ref ID for the association code in the Source Column.
Important: You can't load both level ownership and level association in a single loader. Create one loader for level ownership and a separate loader for level
association.
Unmap Columns
You can unmap columns to ignore the staging data you don't want to load. You can also unmap columns one at a time following loader runs, to troubleshoot which
columns generate errors in the logs.
To unmap columns, click Unmap and choose:
The Business Rules tab contains a text area for entering SQL:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 106/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
For detailed SQL syntax help, click 'online help' in the Notes section of the Edit SQL Filter. See Reference: SQL Expressions.
4. Correct any errors in your syntax and click Apply. Only staging rows that match the SQL expression will import when you run the loader.
The loader runs, applying all transformations and business rules as part of the run. A status popup displays the steps the loader executed. If there are user
association values to load, the loader creates an XML file and sends an email notification with the output of the loader as a zipped XML attachment.
An additional popup lets you download the preview loader output as a zipped XML file after the loader succeeds. The download popup may take a moment to
appear depending on the number of association values and the size of the file.
The Source Id value for the User or Level and Dimension value is missing (empty) in the data.
The Source Id is not mapped.
You can import directly from the source system or you can run the loader using staging values that were already imported. When the loader runs, select which of
these behaviors you want. Choose Bypass data import to use the existing staging table for loading. Bypassing data import is not available when using
spreadsheets as data sources.
As part of the run process, the loader checks that the data in the staging table has been mapped correctly. Multiple validations are applied during the load. Any
errors that occur during the load indicate what needs to be resolved for a successful import.
If a task contains multiple loaders, then parameters from each loader are presented when the task is run. If there is a common/shared parameter used in the
loader(s) within a task, then the task only prompts for the parameter once. You can choose to override parameter prompts.
For scheduled runs of the task, the default values of the parameters stored when the loaders were created are used.
You can run a loader manually from within the loader itself, or as part of an Integration task.
Prerequisites
Run a Loader Manually from Inside a Loader
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 107/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Workforce planning is an Adaptive Planning instance that uses your Workday HCM data. The model foundation includes dimension and data loaders, top-down and
bottom-up modeled sheets, dimensions, and formulas.
Running the loaders is one step of the workforce planning setup. To get started, see Steps: Set Up Workforce Planning with Workday HCM. The loaders that you
run when you get started with workforce planning add:
Levels.
Custom dimension values.
Associated custom dimension attributes.
The data associated with the corresponding Workday report in some cases.
Navigation
Level Loaders
The Workday dimension you load into levels appears on all sheets. This is because all sheets require levels. For levels you can choose Company, Cost Center, or
Supervisory Org. Load the remaining two as custom dimensions.
Workday Report Source Adaptive Planning Data Source and Loader Name Result Sheets with the Dimension or Data
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 108/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Workday Report Source Adaptive Planning Data Source and Loader Name Result Sheets with the Dimension
Planned Loader name: Compensation Grade For future developments. Do not None
Dimensions/Hierarchies run.
PLN-Job Profile Data source: Job Profile with Attributes Loads dimension values.
Bottom Up: Position
Dimension
Loader name: Job Profile Management Plan
Bottom Up: Job
Management Plan
Bottom Up: Aggregated
(Position + Job
Management) Plan
PLN Worker Dimension Data source: Worker with Attributes Loads dimension values tagged
Bottom Up: Position
with Worker Type attributes.
Loader name: Worker Dimension Management Plan
Bottom Up: Job
Management Plan
Worker Data
Data Loaders
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 109/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
PLN-All Data source: Position Data Loads data into Bottom Up: Position Management Plan Bottom Up: Position
Positions modeled sheet. Management Plan
Loader name: Position Data Model
Sheet
PLN-All Data source: Worker Data Loads data into the Worker Data sheet. Worker Data
Workers
Loader name: Worker Data Model
Sheet
Tasks are predefined sets of actions you can create to set up an import process, then share the tasks with other users. Tasks combine the various operations into a
single contiguous operation: the task extracts information from a data source, uses a loader to edit, filter, and specify a timestamp for raw data, and then loads the
information into Adaptive Planning. Tasks can also have multiple data sources, multiple loaders, and even multiple tasks.
Integration tasks let you build import processes and filters, then give those tasks to the users who need them to do their jobs. You can schedule tasks to run
automatically, or users can run them on-demand as needed. Most day-to-day use of integration involves tasks.
Prerequisites
Required Permissions: Integration Management > Data Designer
Requires Integration
Navigation
1. Drag an hourly, daily, weekly, or monthly schedule item from the Data Components pane to the Schedule Settings table.
2. Fill in the Edit Schedule fields:
Name: Enter the name for the schedule.
Run: Select the frequency from the drop-down. Frequencies other than the default change the other fields accordingly.
Schedule information: Depending on the schedule frequency, integration shows different schedule options:
Hourly lets you select the minute of the hour using a slider bar.
Weekly lets you select the day or days you want to run the task and the time.
Monthly lets you select the day of the month and the time of day.
Time Zone: Select the time zone of the time to run the task.
Local Time: Display-only for reference.
Active: Uses this schedule information to run the task. If unchecked, the schedule saves in the Data Components menu, but the task does not
schedule. Add multiple schedules to a task if for multiple scheduling scenarios. Only one schedule can be active at a time.
Run as me: View only.
3. Select Save.
4. Drag loaders and tasks from the Data Components pane to the Tasks and Loaders table.
Add a loader to extract data, perform data manipulation, and load the information into Adaptive Planning.
Add other tasks to create smaller subtasks as building blocks that combine into larger tasks.
When Integration runs a task, it takes a collection of loaders and tasks and builds a single list of loaders. Integration then refreshes all needed data sources.
The loaders then execute in these groups, in this order:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 110/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Within the groups, tasks execute in the order that they were added to the task.
5. Select Save.
Note: By reorganizing items in subtasks of a larger task, you can run the same operations in a different order depending on the time of day or month.
You can grant permissions for user groups, roles, or individuals to launch integration tasks. Granting launch permissions lets users run tasks but not edit the task
settings. Use launch permissions when you want to restrict lower-level payroll or accounting clerks to running specific tasks. Granting edit permissions lets users
edit task settings and launch tasks. You can grant edit permissions to more senior-level staff who should edit tasks and run them.
Prerequisites
Required Permissions: Integration Operator, Data Designer
Requires Integration
Navigation
You can set up email notifications for events related to an integration task. Notifications can go out to one or more users or groups when a task succeeds or fails.
Users with different addresses in the username and email fields get notifications at both email addresses. All notifications get permanently recorded in the
Notification Logs.
Note: Users can't be locked out and must have authenticated with Adaptive Planning at least once to receive notifications.
Prerequisites
Required Permissions: Integration Management, Integration Designer
For Workday users, all notifications become Workday Notifications
Navigation
When you navigate to Integration, the integration Tasks Overview page loads by default. Integration tasks are predefined sets of actions created as an import flow.
Tasks can contain multiple data sources, multiple loaders, and even other tasks. This overview shows all existing scheduled and unscheduled tasks you can view or
run.
Each row in the Tasks Overview shows the type of task, the task name, the time and date of the next scheduled run, the current status, and task queue status. If
you select a task, it opens within a new tab inside the page.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 111/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Prerequisites
Permissions Required: Integration > Integration Operator
Verify someone with Integration > Data Designer permissions set up tasks for you to view
Verify someone with Integration > Data Designer permissions granted you launch permissions for the tasks you want to run
Product documentation for Custom Cloud Data Source (CCDS) creation and scripting.
Important: Prerequisite: Thorough JavaScript programming knowledge and experience are required to build a Custom Cloud Data Source (CCDS). You should not
begin creating a CCDS if you do not have access to an experienced JavaScript programmer. You must also be assigned the Integration Developer permission
within Administration > Permission Set before attempting to create a CCDS in the Data Designer.
Integration supports custom, ad-hoc, and generic data sources hosted on external cloud systems for loading data to Planning, Consolidation and Dashboards.
Technically skilled JavaScript developers (in Adaptive Planning, Integration Developers) can build data sources and expose them in Adaptive Planning Integration
using Custom Cloud Data Sources (CCDS).
A CCDS is a custom-built adapter designed to connect to internet addressable systems and supply data to Adaptive Planning. Once these data sources are
enabled, web-based sources like Google Sheets, Quickbooks, Sage Intacct, and other applications become available for Planning Loaders. Adaptive Planning
partners and customers can then leverage pre-written CCDS data sources without having to write JavaScript themselves. Access to CCDS Data Sources may be
turned on or off for specific customers.
Note: CCDS does not allow third parties to load pre-compiled code (JDBC drivers, DLLs) onto Adaptive Planning servers.
You can set up a Custom Cloud Data Source (CCDS) and make scripts available for Data Designers using the Data Sources pane in the Component Library.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 112/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Steps
Create and Configure a CCDS
Determine the parameters that the Data Designer should fill in. You can add and configure parameters in Designer Settings tab and reference them your script.
For example you can add Location, GPS information, Username and Password as your parameters.
You can run the CCDS scripts created by the Integration developers by accessing your CCDS in the user interface.
You can authenticate your CCDS data source with an OAuth service provider by configuring an OAuth Credential. Data Designers attempting to use the CCDS
must log in and authorize an access request.
Note: If you created a Workday Credential, you can use this to authenticate your CCDS.
Prerequisites
New to CCDS? See Concept: CCDS and Set up a Custom Cloud Data Source(CCDS).
Required Permissions to Set up and Authenticate a CCDS with OAuth: Integration Developer within Administration > Permission Set
Required Permissions to Request Authorization for a CCDS: Data Designer within Administration > Permission Set
Create a CCDS or select an existing CCDS.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 113/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Consumer Key: Client Id or client identifier, issued to the client during registration process. The Consumer Key and Consumer Secret form the
credentials pair for identifying and authenticating the client making a request.
Consumer Secret: The secret key of the client.
Redirect URI: Redirect the user after authorization. The Integration developer uses this URI during the OAuth 2.0 application setup on the third party
server.This field cannot be changed.
Scope: The scope of services or objects for authorization access requests.
Authorization Header Required: Select this checkbox if the third party service provider requires the authorization header in the request when
requesting or refreshing the access token after authorization.
Access Token Renewable: Select this checkbox if the initial authorization process fetches the original access and refresh tokens for renewal, and if
the access token on the third party server renews automatically.
Authorize Redirect URL: The URL to obtain the temporary credentials for delegation request identification.
Access Token Service Http Method: Select either GET or POST according to the external access token service requirements.
Access Token Service Endpoint: URL to fetch the token for accessing protected resources.
Token Expiry Default (sec): Default expiration in seconds for access tokens without an expiry time.
4. Click Save in the Actions pane.
See OAuth 1.0 Protocol and The OAuth 2.0 Authorization Framework for more information.
Request Authorization
These steps are for Data Designers.
A new browser window opens for authorizing the third party website. After the authorization is complete, the OAuth 1.0a application connects to your
account to access data. For OAuth 2.0, if the third party website allows, it may indicate the full scope of services you provided in the OAuth 2.0 Settings -
Scope field.
3. Refresh the Adaptive Planning CCDS Data Sources page. Notice that all the menu items in the Actions pane become enabled.
The Data Source Settings tab displays the Authorization Status with the third party authorization ID, and the date of the authorization. Authorization expiration
dates vary from one provider to another. Notice when your authorization will expire.
Click the Reset Authorization in the Actions pane to re-authorize when needed. You can use Reset Authorization to provide different authorization credentials to
a third party website.
The CCDS API is designed to assist the Integration Operator with connecting to the data source, creating objects inside the data source, parsing XML, converting
dates, and frequently utilizing items when creating a data source.
Namespaces
The JavaScript engine provides access to built-in Adaptive Planning Integration through the 'adaptive' namespaces or 'ai' (Adaptive Planning) namespace (Alias).
This is similar to popular JavaScript libraries like jQuery (https://jquery.com/).
Beneath the root 'ai' namespace, a number of core functions are exposed to allow the JavaScript to interact with the internet and Adaptive Planning
Discovery/Integration features. These public JavaScript APIs are modeled using Node.js (https://nodejs.org/) APIs as a guide.
Functions
Functions get and set data to make the API consistent, provide encapsulation, and explicitly allow setters and getters. Functions also provide encapsulation of C#
objects to only expose JavaScript language functionality and prevent unnecessary crossing of the JavaScript / C# boundary to improve performance. The getters
are prefixed with get and setters are prefixed with set.
Functions Context
Each function called by a CCDS takes a Context object. The context contains read-only objects to help with the processing.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 114/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function importData(context) {
var tableId = context.getTableId();
var tables = context.getDataSource().getTables();
var setting = context.getDataSource().getSetting('password');
}
The context is made up of objects passed in from C#. To improve performance, we avoid exposing C# objects in the JavaScript by encapsulating each object in a
JavaScript object. This allows managing communication across the JavaScript / C# boundary. For example, when asking the context for tables, the C# object
returns wrapped in a JavaScript object. When there is an object hierarchy, we wrap each level in a JavaScript object. When asking for the columns in a table, we
return a list of JavaScript wrapped objects.
Limitations
The limits below apply to a running CCDS script process session.
Max Heap Amount of RAM the V8 engine can consume. 800 Yes Yes
Megabytes
CPU Time Limit Amount of time the V8 engine can use CPU 10 minutes Yes Yes
resources.
Run Duration Amount of time the V8 engine can run for 60 minutes Yes Yes
Limit regardless of whether it is actively using CPU
resources.
Logs Per Maximum number of logs that can be created 5 Yes Yes
Second Limit from script per second.
Logs Per Hour Maximum number of logs that can be created 1000 Yes Yes
Limit from script per hour.
Network Usage Maximum megabytes that a script can send and 5 gigabytes Yes Yes
Limit Megabytes receive over the network.
Max Page size Number of rows of data the Task service will 10000 Yes Yes
request in each page of data
Script Pool Maximum time a request for a script runner process 180 seconds Yes No
Wait Timeout can be queued for.
Other limits:
Without using the ai.https.sax.parser method in your script, there is a limit to the size of an XML file for parsing. The upper size limit is not known, but for
reference, it is possible to parse 10mb file with a 100mb heap size. We recommend using ai.https.sax.parser for large files.
Scripts cannot access IPs within the Adaptive Planning network.
HTTP is not supported, only HTTPS.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 115/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Known Issues
During importData/importStructure, a datasource will call testConnection. In CCDS, this means two separate script runner processes. It is possible for the
first process to be successfully created to run testConnection. The second process to run importData/importStructure may be queued in the Pool Manager
and eventually timeout, then fail.
Sibling flexible settings can have the same display name. Therefore, in scripts that access a setting via getSetting(displayName), only a single instance is
returned, and there is no guarantee which one is returned. Users should be prevented from creating sibling flexible settings with the same display name.
You can create scripts to retrieve data from a source system. Scripts reference their unique names created in the Parameters Maintenance Panel.
Prerequisites
New to CCDS? See Concept: CCDS
Required Permissions: Integration Developer in Administration > Permission Set
CCDS Developers must be experienced JavaScript programmers
Navigation
Steps
1. Select an existing CCDS or create a CCDS from Data Sources pane in Design Integrations.
2. Select the Scripts tab for your CCDS.
3. Enter semicolon-separated URIs that your scripts connect to in the Source URIs field. This field identifies the source system connected to your CCDS.
4. Click the edit icon for the SampleCCDSJavaScript from the Included Scripts pane or double click the row containing SampleCCDSJavaScript. The
SampleCCDSJavaScript code has templates for creating a https:// request, sending a request, receiving a response and validating the response.
Keyboard shortcuts: CTRL + Shift + B on Windows to format your scripts and Ctrl+H to find and replace.
5. Select Save in the Actions pane.
Tip: Best Practice: Make small changes at a time and run scripts often to find syntax errors more easily. Use Logs in the Actions pane to identify errors. Due to
the sparse nature of error messages in the log file, it can be difficult to identify a problem if you've made many changes.
Script Functions
Use the following functions in your script to test your connection, create or update the data source's schema, import rows from the source system to Adaptive
Planning staging and preview data in the source system. See Adaptive Planning functions.
Sample Scripts
Google Sheets
You can add and configure parameterized (dynamic), static, and configuration (SFTP/PGP) parameters to your script via the Designer settings tab. Example:
Connection URLs, user names, passwords, start and end address for a mapped delivery route, time periods, and other information. See Reference: Parameters for
information about the various parameter types.
Navigation
Steps
Add Parameters to Designer Settings
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 116/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Click on a parameter from the Settings Component pane and drag it into the Designer Settings tab. You can add as many as you want to be referenced in a
script.
1. Select the Edit icon next to the parameters available in the Designer Settings tab. Set Parameterized variables during run time or set static variables that
persist for every run.
2. You can change the Setting Name for both Parameterized and Static parameters.
3. To change a parameterized variable, select Edit parameters on the Edit Parameterized Settings window. Edit parameters link is not available for Static
variables.
Example:
In CCDS you can choose parameters to be added to your scripts to import data using web APIs.
The CCDS parameter types are described here. You might also want to read
Parameter types
Parameterized and Static
Type Description
Dimension Dimension values can include Levels, Level Attributes, Dimensions, Dimension Attributes, Account Attributes and Versions.
Period Range Start and End timeframe periods (can be Dynamic or Fixed).
Additional Settings
Type Description
SFTP User defined value created in the Credentials area in the Component library. An SFTP connection includes a server and its authentication
Connection details.
PGP Encryption User defined value created in the Credentials area in the Component library. A PGP encryption includes partner, public, and private key
details.
You can upload and download encrypted files from Adaptive Planning using Pretty Good Privacy (PGP) to a secure server. This article explains how to create PGP
credentials from Design Integrations, how to add PGP encryption to your CCDS and how to encrypt and decrypt files using PGP.
With PGP you can share your Public key with partners and retrieve partner keys.
Basic Steps
1. Create a PGP Encryption credential.
2. Input the partner key.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 117/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Copy all of the text from your .asc file, including -----BEGIN PGP PUBLIC KEY BLOCK----- and -----END PGP PUBLIC KEY BLOCK-----
2. Paste the key in the Partner key field and save the form.
function testConnection(context) {
var text = "Text to encrypt";
var encrypedPgpMessage = ai.util.encrypt(text,'myPgp');
ai.log.logInfo("encrypted message", encrypedPgpMessage );
return true;
}
function testConnection(context) {
var message = "-----BEGIN PGP MESSAGE-----"
+"Version: GnuPG v2.0.14 (GNU/Linux)"
+"Your Message"
+"-----END PGP MESSAGE-----";
var text = ai.util.decrypt(message,'myPgp');
ai.log.logInfo("text message", text);
return true;
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 118/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can create a client to connect to your Secure File Transfer Protocol (SFTP) server and perform various operations on your files. This article explains how to add
an SFTP Connection to the Custom Cloud Data Source (CCDS) and how to include the SFTP connection in your script. See Set up PGP Encryption for information
about encrypting and decrypting your files.
Navigation
When you select Test Connection for the first time, the Fingerprint field populates. This enables server verification for future connections. The client server
administrator can verify the Fingerprint confirming that you are connected to the right server.
After running Test Connection for the first time, click your SFTP connection in the Credentials pane to reload the connection and view the fingerprint field.
When you select Test Connection or use the SFTP connection in a script, the fingerprint from the server must match or the connection fails.
1. Create a client using ai.sftp.createClient() and provide the name of your SFTP setting. For example: const client =
ai.sftp.createClient('mysftp'). After connecting successfully, a client object is created.
2. Test your Connection from the Actions pane to run your script. You can find find test results of your script in Logs in the Actions pane.
createClient(sftpConnection)
client = ai.sftp.createClient('mysftp');
uploadFile(Writer, uploadedFileName)
client.uploadFile(writer,'./archive/datasample.csv.asc');
downloadFile(filename)
client.downloadFile('./archive/datasample.csv.asc');
client.disconnect();
reader.cleanUp();
function testConnection(context) {
let client;
try {
client = ai.sftp.createClient('mysftp');
}
catch(e) {
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 119/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function importData(context) {
const rowset = context.getRowset();
const client = ai.sftp.createClient('mysftp');
const reader = client.downloadFile('./someData.csv');
try {
reader.readLine();
let line = reader.readLine();
while (line)
{
let cells = line.split(',');
rowset.addRow(cells);
line = reader.readLine();
}
}
catch(e) {
ai.log.logError('An error occurred downloading the file: ' + e);
}
finally {
client.disconnect();
reader.cleanUp();
}
}
1.1.6.3.1 | ai Namespace
Namespace Description
1.1.6.3.2 | ai.date
The ai.date namespace allows users to create ISO8601 datetime strings, as well as convert them into different timezones. Read more about ISO8601 here.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 120/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
format : String
Optional - Format
string to assist
parsing date
convertTimezone( date, String Converts a JavaScript date object or valid ISO8601 date string from one
date : Date/String
targetTz ) timezone into another. The return value is an ISO8601 date string formatted in
Date to convert
the target timezone. Valid values for timezones can be found below.
targetTz : String
Timezone to
convert date to
getServerTimezone() String Returns the Integration servers' timezone. Any new date objects created in
user scripts will be treated as in the servers' timezone.
getSupportedTimezones() Array<String> Returns an array containing all valid timezones for use in convertTimezone().
Supported Timezones
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 121/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 122/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 123/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
YY 14 2 digit year
YYYY from version 2.10.5 supports 2 digit years, and converts them to a year near 2000 (same as YY).
For these, the lowercase tokens use the locale aware week start days, and the uppercase tokens use the ISO week date start days.
m mm 0..59 Minutes
s ss 0..59 Seconds
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 124/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
// create a date from a date fragment that is NOT in ISO8601 format, but in Australian format
var date = ai.date.create('02/01/2016', 'America/Los_Angeles', 'DD/MM/YYYY');
// date is "2016-01-02T00:00:00-08:00"
// create a date from a date and time fragment, but no offset, fragment is in ISO8601 format.
var date = ai.date.create('2016-02-01T05:00', 'America/Los_Angeles');
// date is "2016-02-01T05:00:00-08:00"
1.1.6.3.3 | ai.https
Request
Method Description
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 125/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Method Description
authorizedRequest(url, method, Makes an https request with authorization header generated for an OAuth enabled CCDS. Returns a response.
body, headers)
Uses the underlying OAuth configuration item details along with authorization information from the data source to
generate the authorization header for the https request.
requestAuthorizedStream(url, Makes an HTTPS stream request with authorization header generated for an OAuth enabled CCDS. Returns a
method, body, headers) response.
available with 2018.3 Uses the underlying OAuth configuration item details along with authorization information from the data source to
generate the authorization header for the https stream request.
RequestAuthorizedStream(method) supports
Response
Method Description
getHttpCode() Returns the HTTP code of the response. For a complete list of HTTP response codes click here.
Examples
ai.https.request
function testConnection(context) {
//This example connects to Postman Echo using GET
var URL = 'https://postman-echo.com/get?foo1=bar1&foo2=bar2';
var method = 'GET';
var body = '';
var headers = null;
//ai.https.request
var response = ai.https.request(URL, method, body, headers);
var responseCode = response.getHttpCode();
if (responseCode == 200) {
ai.log.logInfo('Test Connection Succeeded','Response code was 200');
return true;
}
else{
ai.log.logInfo('Test Connection Failed','Response code was not 200');
return false;
}
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 126/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.https.requestStream
function testConnection(context) {
//This example connects to Postman Echo using GET
var URL = 'https://postman-echo.com/get?foo1=bar1&foo2=bar2';
var method = 'GET';
var body = '';
var headers = null;
var response = ai.https.requestStream(URL, method, body, headers);
return true;
}
ai.https.authorizedRequest
function testConnection(context) {
//This example connects to Postman Echo using GET
var URL = 'https://postman-echo.com/basic-auth';
var method = 'GET';
var username='postman';
var pwd='password';
var body = '<username>'+username+'</username><password>'+pwd+'</password>';
var headers = {'Authorization': 'Basic cG9zdG1hbjpwYXNzd29yZA=='};
var response = ai.https.authorizedRequest(URL, method, body, headers);
var responseCode = response.getHttpCode();
ai.log.logInfo(responseCode);
if (responseCode == 200) {
ai.log.logInfo('Test Connection Succeeded','Response code was 200');
var responseBody = response.getBody();
ai.log.logInfo(responseBody); //{"authenticated":true}
return true;
}
else{
ai.log.logInfo('Test Connection Failed','Response code was not 200');
return false;
}
}
ai.requestAuthorizedStream
function testConnection(context) {
//This example connects to Postman Echo using GET
var URL = 'https://postman-echo.com/basic-auth';
var method = 'GET';
var username='postman';
var pwd='password';
var body = '<username>'+username+'</username><password>'+pwd+'</password>';
var headers = {'Authorization': 'Basic cG9zdG1hbjpwYXNzd29yZA=='};
var response = ai.https.requestAuthorizedStream(URL, method, body, headers);
}
1.1.6.3.4 | ai.calendar
A period of time that can contain raw or aggregated data. See Set Up Calendars.
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 127/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
getPeriodStartDateTime( String Returns the start date time for the period in
period: ai.calendar.period Period you want
period ) ISO8601 date string format (ex '2015-06-
to get the start date time for
15T12:00:00+10:00')
getPeriodEndDateTime( String Returns the end date time for the period in
period: ai.calendar.period Period you want
period ) ISO8601 date string format (ex '2015-06-
to get the end date time for
15T12:00:00+10:00')
isWithinAdaptivePeriodRange Boolean Returns true if both the start date and end date
start: String ISO8601 formatted start date
( start, end, periodFrom, given falls within the 2 the from period and to
of the period to convert
periodEnd ) period. Returns false otherwise. (ex true/false)
end: String ISO8601 formatted end date
of the period to convert
periodFrom: ai.calendar.period Period
from which you want to compare
periodEnd: ai.calendar.period Period to
which you want to compare
Examples
Example for getNextPeriod( period [, options ] ) and getPeviousPeriod( period [, options ] )
function PreviewData(context) {
var calendar = context.getCalendar();
var dataSource = context.getDataSource();
var periods = dataSource.getSetting("Periods").getValue();
// getNextPeriod
var nextMonth = calendar.getNextPeriod(periods.getFromPeriod());
//getPreviousPeriod
var prevMonth = calendar.getPreviousPeriod(periods.getFromPeriod());
}
function PreviewData(context) {
var calendar = context.getCalendar();
var newDate = calendar.convertToAdaptivePeriodStart(ai.date.create('2016-02-01', 'America/Los_Angeles'), ai.date.create('2016-05-01', 'America/Los_Angeles'));
// write the corresponding Adaptive Planning period start date to log.
ai.log.logInfo(newDate);
//Assuming server is in PST timezone, the corresponding output is '2016-04-01T00:00:00.0000000-07:00'
}
function PreviewData(context) {
var dataSource = context.getDataSource();
var calendar = context.getCalendar();
var availableTypeMonth = calendar.getAvailablePeriodTypes('month');
var availableTypeQuarter = calendar.getAvailablePeriodTypes('qtr');
var availableTypeYear = calendar.getAvailablePeriodTypes('year');
ai.log.logInfo("Stratum code of one of the available Strata for month: "+availableTypeMonth);
ai.log.logInfo("Stratum code of one of the available Strata for quarter: "+availableTypeQuarter);
ai.log.logInfo("Stratum code of one of the available Strata for year: "+availableTypeYear);
}
//Stratum code of one of the available Strata for month: month,qtr,year
//Stratum code of one of the available Strata for quarter: qtr,year
//Stratum code of one of the available Strata for year: year
ai.calendar.period
A time period that can contain raw or aggregated data.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 128/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Functions
getValue() string Returns the string value of the Period that child columns that can be used to pass to Calendar functions as
arguments.
Example
function PreviewData(context) {
var dataSource = context.getDataSource();
var calendar = context.getCalendar();
var periods = dataSource.getSetting("Periods").getValue();
var period = calendar.nextPeriod(periods.getFromPeriod());
var nextPeriod = calendar.nextPeriod(period.getValue());
}
1.1.6.3.5 | ai.dataSource
Functions
getTable( tableId ) tableId : String Remote Id of the ai.dataSource.table Returns the table with requested table id. Returns null if no
table table is found.
getSetting( displayName : String Name of the ai.dataSource.setting Returns a flexible setting by its display name
displayName ) setting
Example
function previewData(context) {
var dataSource = context.getDataSource();
var allTablesInThisDataSource = dataSource.getTables();
//Navigate to Designer Settings tab, drag and drop a Static Integer parameter from the Settings Component
//Setting Name: Custom Integer and Value: 100
var getSetting=dataSource.getSetting("Custom Integer" );
ai.log.logInfo(getSetting.getValue()); //100
}
ai.dataSource.table
getColumnByDisplayName( name : String Display name of the column ai.dataSource.column Finds a column by its
name ) display name. Returns
null if no column found.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 129/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 130/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 131/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.dataSource.table.column
getColumnType() String Returns the column type. Value is either 'DateTimeColumn', 'IntegerColumn', 'FloatColumn',
'BooleanColumn' or 'TextColumn'.
getId() String Returns the columns remote Id, or display name is no remote Id was specified.
getIncludeByDefault() Boolean Returns true if the column is included in the data import.
getIncludeInKey() Boolean Returns true if the column is part of the table key. Key columns do not allow null values.
getLength() Integer Note: Only for TextColumns. Returns the max length of values held in a TextColumn.
getMandatoryForImports() True Returns true if the column is required to be part of the data import.
getNonFilterable() True Returns true if the column cannot be used as part of a SQL filter (WHERE statement).
getRemoteColumnType() String Returns the columns' remote column type as defined in the import structure script.
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 132/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function testConnection(context) {
return true;
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 133/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.dataSource.table.relationship
Functions
getJoinExpression() String Returns the relationships' expression storage SQL e.g. 'P.Column123 = R.Column321'.
getJoinType() Int Returns the relationships' type of join. Values are either 0 (Inner), 1 (LeftOuter) or 2 (RightOuter).
getRelatedTableId() String Returns the remote Id of the relationships' related table, or its display name is no remote Id was
specified.
getRelatedTableName() String Returns the display name of the relationships' related table.
ai.dataSource.setting
Flexible settings are child items of a Custom Cloud Data Source. Settings can be static in that a value is configured, or they can be parameterized in that at script
runtime, users are prompted to enter in a value for the setting. Examples of setting usage are urls, usernames, passwords, date ranges or dimensions that a script
can access.
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 134/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
getValue() Mixed Returns the value of the setting's parameter. Value may be a primitive type or complex object - see Value
Types below.
Example
//Navigate to Designer Settings tab and drag an Integer Static parameter from the Settings Component pane
//Name the setting Custom Integer and set the value to 100
var dataSource= context.getDataSource();
var setting=dataSource.getSetting("Custom Integer" );
//Example: getDisplayName
var name = setting.getDisplayName(); //Custom Integer
//Example: getValue
var value = setting.getValue(); //100
Value Types
Each setting's getValue() function can return a primitive type or a complex object.
Period Range Settings: getValue() returns the value as a complex object. This object is defined as such:
getFromPeriod() String Returns a string defining the internal representation of resolved Adaptive Planning From
Period that can be used to pass to the ai.calendar method calls. E.g. "3152|5201611100000"
getToPeriod() String Returns a string defining the internal representation of resolved Adaptive Planning To Period
that can be used to pass to the ai.calendar method calls. E.g. "3152|5201611100000"
getFromPeriodStartDateTime() String Returns a datetime string representation of the From Period start datetime, expressed in local
time. E.g. "2016-01-01T00:00:00+10:00"
getFromPeriodEndDateTime() String Returns a datetime string representation of the From Period end datetime, expressed in local
time. E.g. "2016-02-01T00:00:00+10:00"
getToPeriodStartDateTime() String Returns a datetime string representation of the To Period start datetime, expressed in local
time. E.g. "2016-06-01T00:00:00+10:00"
getToPeriodEndDateTime() String Returns a datetime string representation of the To Period end datetime, expressed in local
time. E.g. "2016-07-01T00:00:00+10:00"
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 135/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function importData(context)
{
var dataSource = context.getDataSource();
//getFromPeriod
var getFromPeriod=dataSource.getSetting("Period Range").getValue().getFromPeriod();
//getToPeriod
var getToPeriod=dataSource.getSetting("Period Range").getValue().getToPeriod();
//getFromPeriodStartDateTime
var getFromPeriodStartDateTime = dataSource.getSetting("Period Range").getValue().getFromPeriodStartDateTime().substring(0, 10);
ai.log.LogInfo("getFromPeriodStartDateTime"+getFromPeriodStartDateTime); //2017-12-01
//getFromPeriodEndDateTime
var getFromPeriodEndDateTime = dataSource.getSetting("Period Range").getValue().getFromPeriodEndDateTime().substring(0, 10);
ai.log.LogInfo("getFromPeriodEndDateTime"+getFromPeriodEndDateTime); //2017-12-31
//getToPeriodStartDateTime
var getToPeriodStartDateTime = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10);
ai.log.LogInfo("getToPeriodStartDateTime"+getToPeriodStartDateTime); //2018-01-01
//getToPeriodEndDateTime
var getToPeriodEndDateTime = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10);
ai.log.LogInfo("getToPeriodEndDateTime"+getToPeriodEndDateTime); //2018-01-30
}
Dimension Settings
getValue() returns the value as a complex object. This object is defined as such:
getDimensionName() String Returns the name of the Dimension defined in the value.
getValueName() Mixed Returns the name of the Dimension Member defined in the value.
Example
//Navigate to Designer Settings tab and drag a Static Dimension parameter from the Settings Component pane
//Name the setting "Custom Dimension" and set a value from the Static Dimension Setting dropdown
var setting=dataSource.getSetting("Custom Dimension" );
var value = setting.getValue();
//Example: getDisplayName
var name = value.getDimensionName();
var settingValue=value.getValueName();
//Example: getDisplayName
var name = value.getDimensionName();
var settingValue=value.getValueName();
ai.dataSource.table.requiredParameter
During script execution, valid Required Parameters prompt a user to provide values. These values are then accessible in scripts. Required Parameters can be
created during importStructure.
Note: During ImportData, only Required Parameters that have been configurable as setForDataImport(true) are accessible in the script.
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 136/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
getValue() Mixed Returns the value of the required parameter's parameter. Value may be a primitive type or complex object -
see Value Types below.
Value Types
Each required parameter's getValue() function can return a primitive type or a complex object.
getValue() returns the value as a complex object. This object is defined as such:
getFromPeriod() String Returns a string defining the resolved Adaptive Planning From Period. E.g. "Month y2016
M1"
getToPeriod() String Returns a string defining the resolved Adaptive Planning To Period. E.g. "Month y2016 M1"
getFromPeriodStartDateTime() String Returns a datetime string representation of the From Period start datetime, expressed in local
time. E.g. "2016-01-01T00:00:00+10:00"
getFromPeriodEndDateTime() String Returns a datetime string representation of the From Period end datetime, expressed in local
time. E.g. "2016-02-01T00:00:00+10:00"
getToPeriodStartDateTime() String Returns a datetime string representation of the To Period start datetime, expressed in local
time. E.g. "2016-06-01T00:00:00+10:00"
getToPeriodEndDateTime() String Returns a datetime string representation of the To Period end datetime, expressed in local
time. E.g. "2016-07-01T00:00:00+10:00"
Dimension Settings
getValue() returns the value as a complex object. This object is defined as such:
getDimensionName() String Returns the name of the Dimension defined in the value.
getValueName() Mixed Returns the name of the Dimension Member defined in the value.
1.1.6.3.6 | ai.log
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 137/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
logError( Boolean Adds an event log with an ERROR log level. 'summary' is truncated at 128 characters. 'detail' is
summary :
summary, truncated at 1000 characters. All non string values are converted to strings. Log entry is added if the
Mixed Log
detail ) logging thresholds have not been breached. Returns true if logging was successful.
summary text
detail : Mixed
Optional -
further detail
about log
logInfo( Boolean Adds an event log with an INFO log level. 'summary' is truncated at 128 characters. 'detail' is truncated
summary :
summary, at 1000 characters. All non string values are converted to strings. Log entry is added if the logging
Mixed Log
detail ) thresholds have not been breached. Returns true if logging was successful.
summary text
detail : Mixed
Optional -
further detail
about log
logVerbose( Boolean Adds an event log with an INFO log level. 'summary' is truncated at 128 characters. 'detail' is truncated
summary :
summary, at 1000 characters. All non string values are converted to strings. Log entry is added if the logging
Mixed Log
detail ) thresholds have not been breached. Returns true if logging was successful.
summary text
detail : Mixed
Optional -
further detail
about log
Example
function testConnection(context) {
// Step 1: Create a https request to send to Earthquake USGS API
var url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.atom';
var method = 'GET';
var body = ``;
var headers = {};
// Step 2: Send request and receive response
try{
write more than X logs per second (Burst: default is 5, configurable as AppSetting or per tenant)
write more than X logs per hour (Sustained: default is 1000, configurable as AppSetting or per tenant)
1.1.6.3.7 | ai.util
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 138/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
apply( obj, Object Copies all the properties of config to obj and r
obj : Object The receiver of the properties
config )
String
decodeHtml( encodedHtml: String Returns a string as raw HTML.
encodedHtml )
A string with reserved characters translated in order to be used in HTML literals. Hello 'Hello <b> [there] >words<!'
available in <b> [there] >words<!
2018.3
String
decodeUrl( encodedUrl: String Returns a string with a raw URL.
encodedUrl )
A string with an HTML encoded URL. E.g. https://www.example.com/fings/?id=123&mor
available in https%3a%2f%2ffanyv88.com%3a443%2fhttps%2fwww.example.com%2ffings%2f%3fid%3d123%26more%3dwords%23hash
2018.3
String
decodeBase64( encodedBase64: String Returns a decoded Base64 string.
encodedBase64
A string encoded as Base64. E.g. dGV4dA== Text
)
available in
2018.3
String
encodeHtml( rawHtml: String Returns a string with reserved characters tran
rawHtml )
A string with raw HTML. E.g. 'Hello <b> [there] >words<!' Hello <b> [there] >words<!
available in
2018.3
String
encodeUrl( rawUrl: String Returns a raw URL as an encoded HTML.
rawUrl )
A string with a raw URL. E.g. https://www.example.com/fings/?id=123&more=words#hash https%3a%2f%2ffanyv88.com%3a443%2fhttps%2fwww.example.com%2ffings%
available in
2018.3
String
encodeBase64( rawBase64: String encodes text as Base64.
rawBase64 )
A string with text. E.g. Text dGV4dA==
available in
2018.3
isDefined( value Boolean Returns true if the passed value is not 'undefi
value : Mixed The value to test
)
toArray( a, i, j ) Array
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 139/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Examples
}
else
{
ai.log.logInfo("Value is defined");
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 140/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
}
//Value is undefined
}
else
{
ai.log.logInfo("Value is undefined");
}
//Value is defined
}
else
{
ai.log.logInfo("Not an Array");
}
//It is an array
}
else
{
ai.log.logInfo("Not a string");
}
}
else
{
ai.log.logInfo("Not a number. Provided value is of type: "+typeof(sampleValue));
}
//Not a number. Provided value is of type: object
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 141/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
if (verifyIfPrimitive)
{
ai.log.logInfo("Provided value is a Primitive Data Type");
}
else
{
ai.log.logInfo("Provided value is not primitive: "+typeof(sampleValue));
}
return true;
1.1.6.3.8 | ai.xml
Functions
ai.xml.sax Creates an XML SAX parser object that can parse an XML
createFromUrl(url, method, body, url: String Valid URL
stream.
headers, callbacks)
method: String Valid HTTP
available as of 2018.3 method
ai.xml.sax Creates an XML SAX parser object that can parse an XML
createFromUrlWithAuthorisation(url, url: String Valid URL
stream with authorisation using OAuth.
method, body, headers, callbacks)
method: String Valid HTTP
available as of 2018.3 method
createParser() ai.xml.parser Creates a XML parser object that can parse XML strings.
createDocType( xmlStr ) ai.xml.docType Create a doctype object that is added to a XML document
xmlStr : String Valid
to define its doctype.
DOCTYPE XML
string
createElement( name ) ai.xml.element Create a XML element, which is the basic building block of
name : String Name
a XML document, that can be added to an XMLdocument.
of the XML element
createAttribute( name, value ) ai.xml.attribute Creates an attribute object that can be added to a XML
name : String Name
element.
of the attribute
value : String Value
of the attribute
Examples
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 142/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.xml.sax
createFromText() ai.xml.sax Creates an XML SAX parser object that can parse XML text.
XML:string
Encoding: UTF8
createFromUrl() ai.xml.sax Creates an XML SAX parser object that can parse an XML stream.
url: String Valid URL
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 143/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
createFromUrlWithAuthorisation() ai.xml.sax Creates an XML SAX parser object that can parse an XML stream with
authorisation using OAuth.
Note: The ai.xml.sax examples below use callbacks. A callback is a function that executes after another function finishes executing. One of the benefits of using
callbacks with ai.xml.sax parsers is that you can catch errors and present those errors in the logs of a CCDS run for easier troubleshooting.
ai.xml.sax.createFromText example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 144/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
var data = {
books: [],
currentTag: ''
};
function createSaxParser(callbacks) {
var xml = '<BookStore><book category="Cooking"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>$30.00</p
try {
return ai.xml.sax.createFromText(xml, "UTF8", callbacks);
}
catch(exception) {
ai.log.logError('Unable to setup sax parser', '' + exception);
throw exception;
}
}
function testConnection(context) {
var parser = null;
var callbacks = {};
var matched = false;
parser = createSaxParser(callbacks);
parser.readToEnd();
return matched;
}
function importStructure(context) {
var builder = context.getStructureBuilder();
function importData(context) {
var rowset = context.getRowset();
rowset.setSmartParsingEnabled(true);
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 145/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
parser = createSaxParser(callbacks);
parser.readToEnd();
}
ai.xml.sax.createFromUrl example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 146/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
var data = {
entires: [],
currentTag: ''
};
function createSaxParser(callbacks) {
var url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.atom';
var method = 'GET';
var body = ``;
var headers = {};
try {
return ai.xml.sax.createFromUrl(url, method, body, headers, callbacks);
}
catch (exception) {
ai.log.logError('Unable to setup sax parser', '' + exception);
throw exception;
}
}
function testConnection(context) {
var parser = null;
var callbacks = {};
var matched = false;
parser = createSaxParser(callbacks);
parser.readToEnd();
return matched;
}
function importStructure(context) {
var builder = context.getStructureBuilder();
var table = builder.addTable('StandardLoaderData');
table.setDisplayName('StandardLoaderData');
function importData(context) {
var rowset = context.getRowset();
rowset.setSmartParsingEnabled(true);
if (tag.name == 'entry') {
var entry = {};
data.entires.push(entry);
return;
}
if (tag.name == 'link') {
if (tag.attributes) {
var current = data.entires.length > 0 ? data.entires[data.entires.length-1] : null;
if(current !== null) {
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 147/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
current.link = tag.attributes["href"];
}
}
}
};
if (data.currentTag == 'summary') {
var current = data.entires.length > 0 ? data.entires[data.entires.length-1] : null;
current.summary = data;
}
};
parser = createSaxParser(callbacks);
parser.readToEnd();
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 148/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
cells.push(entry.summary || '');
cells.push(entry['georss:point'] || '');
cells.push(entry['georss:elev'] || '');
rowset.addRow(cells);
};
ai.xml.parser
parse( xmlStr ) ai.xml.document Parses a valid XML document string into a XML document.
xmlStr Valid XML document string
ai.xml.document
ai.xml.docType
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 149/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.xml.element
getAttribute( name ) name : String Name of the ai.xml.attribute Gets the attribute of the given name.
attribute
getAttributeAt( index ) index : Integer Index of ai.xml.attribute Gets the attribute at the given index of the attributes array for this
attribute element.
getAttributeValue( String Gets the value of the attribute of the given name.
name : String Name of
name )
the attribute
getChildElement( name ai.xml.element Gets the first child element having the specified given name.
name : String Name of
)
the element
getChildElementAt( ai.xml.element Gets a child element at the given index within the child elements.
index : Integer Index of
index )
the element
getChildElements() Array<ai.xml.elements> Gets the array of all child elements for this element.
getChildElements( Array<ai.xml.element> Gets the array of child elements for this element with the given
name : String Name of
name ) name.
the elements
hasContents() Boolean Indicates whether or not this element has child contents: Text,
CDATA or child elements.
removeAttribute( name Removes the attribute of the given name in the element attributes
name : String Name of
) array, and recompresses the array.
the attribute
removeChildElement( Removes the first child element having the specified name.
name : String Name of
name )
the element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 150/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
removeChildElementAt( Removes a child element at the given index within the child
index ) elements.
removeChildElements() Integer Removes all child elements from this element and returns count of
elements removed.
removeChildElements( Integer Removes all child elements of the given element name from this
name : String Name of
name ) element and returns count of elements removed.
the elements
setAttribute(name, Sets the value of the attribute of the given name, for this element.
name : String Name of
value )
the attribute
value : String Value of
the attribute
setCDATAText( text ) Removes all existing content (except comments) from this
text : String CDATA text
element, including child elements, and then sets CDATA section
text for this element.
setCommentText( text ) Removes all comments attached directly to this element, and then
text : String Comment
adds a new comment with the given text.
text
setText( text ) Removes all existing content (except comments) from this
text : String Text value
element, including child elements, and then sets the element text.
of the element
Examples
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 151/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
//setCommentText
requestEl.setCommentText("The above element is cloned");
//get comment text
ai.log.logInfo(getCommentText()); //Log Output: The above element is cloned
/*
Output:
<request>
<control>
<senderid>adaptiveplanning</senderid>
</control>
<senderid>adaptiveplanning</senderid>
<!-- The above element is cloned-->
</request>
*/
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 152/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
//getChildElement(name)
var firstChildElement="First Child element of <control> is "+requestEl.getChildElement( "senderid" ).toString();
//Output: First Child element of <control> is <senderid>Sender id 1</senderid>
//getChildElementAt(index)
var elementIndex="Element at index 0 is"+requestEl.getChildElementAt( 0 ).toString();
/* Output: Element at index 0 is
<control><senderid>Sender id 1</senderid><senderid>Sender id 2</senderid><password>pwd</password></control> */
//getChildElements()
var specificChildElements="Child elements for the control element:"+controlEl.getChildElements().toString();
//Output: <senderid>Sender id 1</senderid><senderid>Sender id 2</senderid><password>pwd</password>
//getChildElements(name)
var childElementsControl="All child elements of control element with <senderid>: "+controlEl.getChildElements("senderid" ).toString();
//Output:All child elements of control element with <senderid>:<senderid>Sender id 1</senderid>,<senderid>Sender id 2</senderid>
Examples for hasContents(), removeChildElement( name ), removeChildElementAt(index), removeChildElements() and removeChildElements( name )
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 153/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<control> <control>
<senderid>Sender id 1</senderid> <senderid>Sender id 2</senderid>
<senderid>Sender id 2</senderid> <password>pwd</password>
<password>pwd</password> </control>
<control/> </request>
<request/>
*/
//removeChildElementAt index 0
var removeIndexChildElement=requestEl.removeChildElementAt(0);
/*Output:
|Initial XML | After removing the child element at index 0
<request> <request><request/>
<control>
<senderid>Sender id 1</senderid>
<senderid>Sender id 2</senderid>
<password>pwd</password>
<control/>
<request/>
*/
//removeChildElements()
var removeAllChildElements= controlEl.removeChildElements();
/*Output:
|Initial XML | After removing the child element at index 0
<request> <request><control/><request/>
<control>
<senderid>Sender id 1</senderid>
<senderid>Sender id 2</senderid>
<password>pwd</password>
<control/>
<request/>
*/
ai.xml.attribute
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 154/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
//Or set the name and value of the attribute for the <row> elements using setAttribute(name,value)
row1.setAttribute('age','50');
row1.setAttribute('color','white');
row2.setAttribute('age','35');
row2.setAttribute('color','blue');
/*Ouput
<Tables>
<Table remoteId="248"> Sample table
<row age="50" />
<row age="35" />
</Table>
</Tables>
*/
//Clone() attributes
var cloned = row1.clone();
cloned.setName('cloned_row');
table1Element.addChildElement(cloned);
/*Ouput
<Tables>
<Table remoteId="248"> Sample table
<row age="50" />
<row age="35" />
<cloned_row age="50">
</Table>
</Tables>
*/
//getAttribute( name )
ai.log.logInfo(table1Element.getAttribute("remoteid")); //Output:remoteId="248"
//getAttributeAt( index )
ai.log.logInfo(row1.getAttributeAt(0).toString()); //Output: age=50
//getAttributes()
ai.log.logInfo(row1.getAttributes().toString()); //Output: age="50",color="white"
//getAttributeValue( name )
ai.log.logInfo(row2.getAttributeValue('color').toString()); //Output: blue
//removeAttribute( name )
var removeRow1Attribute=row1.removeAttribute('age');
/*Output:
|Inital XML | After removing the attribute 'age' for row1
<Tables> <Tables>
<Table remoteId="248">Sample table <Table remoteId="248">Sample table
<row age="50" color="white" /> <row color="white" />
<row age ="35" color="blue" /> <row age ="35" color="blue" />
<Table/> <Table/>
<Tables/> <Tables/>
*/
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 155/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
//removeAllAttributes()
var removeRow1Attributes=row1.removeAllAttributes();
/*Output:
|Inital XML | After removing the attribute 'age' for row1
<Tables> <Tables>
<Table remoteId="248">Sample table <Table remoteId="248">Sample table
<row age="50" color="white" /> <row/>
<row age ="35" color="blue" /> <row age ="35" color="blue" />
<Table/> <Table/>
<Tables/> <Tables/>
*/
Use the example below to connect to your AWS S3 instance for creating and viewing your XML results. You will need the bucket name, key, access key, secret key
and region values. For more information and example codes, see ai.awss3
Example
function testConnection(context) {
var bucketName = 'xxx';
var key = 'newfile.xml';
var awsAccessKey = 'xxx';
var awsSecretKey = 'xxx';
var region = 'xxx'
Context Parameter
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 156/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function testConnection(context) {
// Step 1: Create a https request to send to Earthquake USGS API
var url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.atom';
var method = 'GET';
var body = ``;
var headers = {};
// Step 2: Send request and receive response
try{
Context Parameter
getProgressManager() ai.progressManager Returns an object that can be used to update the Import Structure task percentage
complete value.
getStructureBuilder() ai.structure.structureBuilder Returns an object that is used to create the data source structure - tables,
columns, parameters etc.
Example
function importStructure(context) {
//getDataSource
var dataSource=context.getDataSource();
// getStructureBuilder
var builder = context.getStructureBuilder();
//getCalendar
var calendar= context.getCalendar();
}
ai.progressManager
The ai.progressManager object allows a user to manually set the percentage complete of the task that is running their Import Structure script. Script execution
accounts for 70% of the overall task percentage complete. Therefore, progress values defined via the ai.progressManager are scaled to represent the progress of
the overall task. Example: Setting the ai.progressManager percentage complete to 100% would equate to 70% of the running task, 50% would equate to 35% of the
running task and so on.
Functions
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 157/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
getProgress() Number Returns the percentage complete of the script as defined be the user. If the user has
not previously set the percentage complete, this function would return 0.
setProgress(
value: Number Value to Sets the script percentage complete. This works as follows:
value )
set script percentage
Only numeric values are accepted such as 0, 10, 22.5 100, 110.
complete to
Values greater than 100 are treated as 100.
Values less than the current script progress are ignored. Example: Call
setProgress(50) followed by setProgress(40). This results in the script
percentage complete to 50%.
All other input types for 'value' will have no effect on script progress,
Example
function importStructure(context) {
..........
..........
return builder;
}
ai.structure.structureBuilder
Functions
addTable( tableId ) ai.structure.editableTable Creates and returns a new table for the data source.
tableId : String Unique Id of the table
Example
Provides the ability to define the tables and column structure that will be populated by data.
function importStructure(context) {
........
//getStructureBuilder
var builder = context.getStructureBuilder();
//Example addTable( tableId )-"Sample"
var table = builder.addTable("Sample");
.......
}
ai.structure.editableTable
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 158/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Functions
setDisplayName( displayName : String Value ai.structure.editableTable Sets the display name of the table.
displayName ) to set the table's display
name property to.
addColumn( columnId ) columnId : String ai.structure.editableColumn Creates and returns a new child column of the table.
RemoteId of the column
addRequiredParameter( parameterId : String Id of ai.structure.editableParameter Creates and returns a new required parameter for the table. An
parameterId ) the parameter assignable parameter must be set as the value of a Required
Parameter when this table is used as part of ImportData or
ImportStructure.
ai.structure.editableColumn
Functions
ai.structure.editableParameter
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 159/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Functions
Example
function importStructure(context) {
...............
//addColumn
var valueColumn= table.addColumn('Value');
//setDisplayName
valueColumn.setDisplayName('Value');
// Set the data type for the column - Can be Integer, Float, DateTime or Boolean values
valueColumn.setFloatColumnType();
//setDisplayOrder
valueColumn.setDisplayOrder('0');
//setIncludeByDefault
valueColumn.setIncludeByDefault(true);
//setRemoteColumnType
valueColumn.setRemoteColumnType('float');
// setIncludeInKey
valueColumn.setIncludeInKey(false);
//setMandatoryForImports
valueColumn.setMandatoryForImports(false);
..............
}
Context Parameter
Example
This example assumes that the rowset contains an Integer column and a Text column in order.
function importData(context) {
...........
var rowset = context.getRowset();
..........
var rowset= context.getRowset([ 'NAME', 'ID']);
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 160/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ai.rowset
The Rowset object is the mechanism by which 'rows' inside a users' script are transported into the Integration stack. A Rowset models the shape (column names
and their data types, maxRows and tableId) of the table that a user is running either their PreviewData or ImportData script against.
Functions
addRow( cells ) cells : Adds an array of cell values as a row to the Rowset. Cell values
Array<Primitive must be either a valid String (can be null), Number (Finite Integer
Types> Array of or Decimal), Boolean or Date object. Each cell value type must
values for each match its corresponding column data type in the order defined by
column, in order getColumnNames. The number of cell values must match the
number of columns defined.
getMaxRows() Integer Returns the maximum number of rows allowed in this Rowset. 0
means unknown, as used by ImportData.
getColumns() Array<ai.dataSource.table.column> Returns the table columns selected for the preview.
setSmartParsingEnabled( If possible, enabling this setting will parse each string cell value
val :
val ) into the target columns required data type automatically during
Boolean
the addRow() function. This saves a user having to lookup a
Value
target columns' data type and doing manual parsing if the data
indicating
type of the value for the current cell does not match the target
whether
columns' data type. This is especially useful when dealing with
to turn
3rd party API's that return all row values as strings via JSON or
this
XML, and each cell value can be successfully parsed into Integer,
feature
Float, Boolean or DateTime values.
on or off
function importData(context) {
var dataSource = context.getDataSource();
var settings = dataSource.getSettings();
var rowset = context.getRowset();
//Set a Start date and End date in the Designer Settings tab with the name "Period Range"
var startDateString = dataSource.getSetting("Period Range").getValue().getFromPeriodStartDateTime().substring(0, 10);
var endDateString = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10);
//get columns
var columns = rowset.getColumns();
}
}
if (cells.length == columns.length) {
//add rows
rowset.addRow(cells);
}
}
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 161/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The Preview Data function is used to query an external system for rows of data for the specified table and columns. It is limited by the max rows the external system
allows a user to see during a preview in that system.
Context Parameter
getRowset() ai.rowset Returns the Rowset object that rows are added to. The Rowset defines the Table, Columns and
MaxRows.
Example
function previewData(context) {
//Set a Start date and End date in the Designer Settings tab with the name "Period Range"
var startDateString = dataSource.getSetting("Period Range").getValue().getFromPeriodStartDateTime().substring(0, 10);
var endDateString = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10);
//get columns
var columns = rowset.getColumns();
}
}
if (cells.length == columns.length) {
//add rows
rowset.addRow(cells);
}
}
}
//Table Definition
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 162/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ExternalMetadataDefinition = {
Tables: [{
name: "dataSample",
displayName: "Sample",
columns: [{
name: "Value",
displayName: "Value",
type: "float",
includeByDefault: true
}, {
name: "Measure",
displayName: "Measure",
includeByDefault: true
}, {
name: "Test",
displayName: "Test",
includeByDefault: true
}, {
name: "Effective Date",
displayName: "Date",
type: "datetime",
includeByDefault: true
}]
}]
};
//Since this example uses a static data source,testConnection() function can return true
function testConnection(context) {
return true;
}
//Import Structure
function importStructure(context) {
var addColumn = function(table, column, order)
{
var recordColumn = table.addColumn(column.name);
recordColumn.setDisplayName(column.displayName);
switch (column.type)
{
case "text":
recordColumn.setTextColumnType(column.length);
break;
case "int":
recordColumn.setIntegerColumnType();
break;
case "float":
recordColumn.setFloatColumnType();
break;
case "boolean":
recordColumn.setBooleanColumnType();
break;
case "datetime":
recordColumn.setDateTimeColumnType();
break;
default:
recordColumn.setTextColumnType(200);
break;
}
recordColumn.setDisplayOrder(order);
recordColumn.setIncludeByDefault(column.includeByDefault || false);
recordColumn.setIncludeInKey(column.includeInKey || false);
recordColumn.setMandatoryForImports(column.mandatoryForImport || false);
recordColumn.setRemoteColumnType(column.remoteColumnType || "String");
};
var builder = context.getStructureBuilder();
for (var i = 0; i < ExternalMetadataDefinition.Tables.length; i++)
{
var externalTable = ExternalMetadataDefinition.Tables[i];
var table = builder.addTable(externalTable.name);
table.setDisplayName(externalTable.displayName);
for (var j = 0; j < externalTable.columns.length; j++)
{
addColumn(table, externalTable.columns[j], j + 1);
}
}
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 163/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function previewData(context) {
//Since the data is static, previewData() function can invoke importData()
importData(context);
}
function importData(context) {
var dataSource = context.getDataSource();
var settings = dataSource.getSettings();
var rowset = context.getRowset();
//Set a Start date and End date in the Designer Settings tab with the name "Period Range"
var startDateString = dataSource.getSetting("Period Range").getValue().getFromPeriodStartDateTime().substring(0, 10);
var endDateString = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10);
//get columns
var columns = rowset.getColumns();
}
}
if (cells.length == columns.length) {
//add rows
rowset.addRow(cells);
}
}
}
1.1.6.3.10 | ai.awss3
Functions
region: String
awsAcceskey: String
awsSecretKey: String
region: String
awsAcceskey: String
awsSecretKey: String
awsAcceskey: String
Not recommended for
buckets with over 5000 awsSecretKey: String
keys.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 164/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
fetchOwner: Set to true to list owners with each key. If not specified
the owner is null.
prefix: Limits the response to keys that begin with the specified
prefix.
requestPlayer: String
startAfter: The list begins after this key. Use any key in the bucket.
Can't be set at the same time as the continuationToken.
httpStatusCode:
name:
prefix:
maxKeys:
delimiter:
commonPrefixes:
encoding:
continuationToken:
startAfter:
Examples
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 165/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 166/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This example shows how to request objects and page through the results.
//Navigate to Designer Settings tab and add 2 "text" parameters from the Settings pane.
//Enter awsAccessKey and awsSecretKey in the Name fileds and provide your keys in the Value field
function processFiles(context) {
// Retrieve access and secret keys from settings
const awsAccessKey = context.getDataSource().getSetting('awsAccessKey').getValue();
const awsSecretKey = context.getDataSource().getSetting('awsSecretKey').getValue();
const region = 'us-west-1'
// Create the request for objects, at a minimum a bucket name is required
const request = {
BucketName: 'xxx',
Prefix: 'mydata/', // Return keys from this directory
};
if (response.isTruncated)
{
// If the response did not include all remaining results, use the
// nextContinuationToken from the response in the next request
request.ContinuationToken = response.nextContinuationToken;
}
else
{
// If the response did include all remaining results, exit the loop
ai.log.logInfo('Response indicated no further keys available');
processing = false;
}
}
ai.log.logInfo("List of Objects:"+JSON.stringify(keyNames));
//List of Objects:["attribute-import-demo (7).csv","cloadertest.csv"]
}
The parameter BucketName, is the only required value. Prefix indicates the directory.
{
BucketName: 'ag-ccds-test',
Prefix: 'samplenumber/',
StartAfter: 'samplenumber/001_samplefile',
MaxKeys: 3
}
Sample listObjects
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 167/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
{
"isTruncated": true,
"s3Objects": [
{
"eTag": "\"4c7507b8cf17a6650bcff6787ccd0915\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575352592693.txt",
"lastModified": "2019-12-03T15:56:34+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353843184.txt",
"lastModified": "2019-12-03T16:17:24+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353844190.txt",
"lastModified": "2019-12-03T16:17:25+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353845193.txt",
"lastModified": "2019-12-03T16:17:26+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353846195.txt",
"lastModified": "2019-12-03T16:17:27+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353847194.txt",
"lastModified": "2019-12-03T16:17:28+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353848223.txt",
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 168/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
"lastModified": "2019-12-03T16:17:29+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
},
{
"eTag": "\"b2addf641c43f17df4492524c834984c\"",
"bucketName": "ag-ccds-test",
"key": "archiveListing/archiveList_1575353849192.txt",
"lastModified": "2019-12-03T16:17:30+10:00",
"owner": null,
"size": 1323,
"storageClass": {
"value": "STANDARD"
}
}
],
"name": "ag-ccds-test",
"prefix": "archiveListing/",
"maxKeys": 8,
"commonPrefixes": [],
"delimiter": null,
"encoding": null,
"keyCount": 8,
"continuationToken": null,
"nextContinuationToken": "1Vut/ORdOSPdn8ZQdd8Z5nhNvlEfPkw0hkekFIDTVzk8Hn8jlttn/yIjkl67yK3RAUkPIoUHwDuiybia7Rx7YjVaRefLocnF4",
"startAfter": null,
"responseMetadata": {
"requestId": "5ACCAA141D2F7D2B",
"metadata": {
"x-amz-id-2": "zlslMcRM+qj6SCKELuE2crlEzhc0eEFkpo5OC3Pzn9tMvtOYnaEkLoRQNj1m1SThPzI1lQ233Zo="
}
},
"contentLength": -1,
"httpStatusCode": 200
}
1.1.6.3.11 | ai.oauth
Functions
getPlanningTokenFromWorkday() None Return Type: Object { authorization : string } Obtain a token for authenticating against planning.
Pairing their Workday tenant with Adaptive Planning by working with Provisioning.
Workday SAML SSO into Adaptive Planning.
The Public API setup task in Workday within the Public API tab of the Adaptive Planning tab in Workday.
Note: If you do not currently have a project open with a resource certified in the Workday platform, please contact your Customer Success Manager to get the next
steps and scope of work for the configuration. If you have a project in place, you can open a ticket with Provisioning to enable the connection. You must have a
project in place with an Implementer certified on the Workday platform for us to enable the connection.
Some links in this article go to the Workday community. If you don't have a community account, request one.
Example
function testConnection(context) {
var token = ai.oauth.getPlanningTokenFromWorkday();
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 169/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.1.6.3.12 | ai.sftp
The article describes the ai.sftp namespace and the associated methods to create a client, perform basic client operations, upload and download files with the file
Reader and Writer objects.
The ai.sftp namespace allows a user to upload and download files to an SFTP server. It also allows uploading and downloading encrypted files letting you encrypt
and decrypt them with PGP.
Create a Client
ai.sftp.createClient
You can create an SFTP instance with the createClient() method and initiate all operations with the SFTP server. This function takes the name of the SFTP
connection string configured for the script as a parameter and returns a client instance object.
Usage
isConnected() Boolean Returns True if the SFTP client is connected; False otherwise.
disconnect() Logs out and closes the client session with the server. Any further
operations called on the client will result in an exception being thrown.
renameTo : String
changeDirectory(newLocation) String Changes the current working directory on the server. This operation will
newLocation : String
return the current working directory
Relative path of the new
location on the server
getFileSizeBytes(fileName) fileName : String File name Number Returns the size of the specified file in bytes
for the file size fetched
listCurrentDirectory() Collection Returns a list of all files and directories in the current working directory.
Download a File
Use the following client methods to download files from the server.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 170/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
downloadFile(fileName) Object Downloads the file and returns a reader to read through
fileName: String
the file line by line.
Name of the file to download
encryptionSettingName : String
downloadAndVerifyEncryptedFile(fileName, Object Downloads the file, verifies and decrypts it using the
fileName : String
encryptionSettingName) specified encryption setting and returns a reader which to
Relative path of the file to download read through the file line by line
encryptionSettingName : String
You can invoke these methods on the reader object returned from the downloadFiles() method.
cleanUp()
Free the system resources consumed by the file Reader object.
Example
//Pass the relative filepath and the name of your encryption setting
const reader = client.downloadEncryptedFile('./archive/datasample.csv.asc', 'mypgp');
let line = reader.readLine()
while(line !== null){
//Process the line
line = reader.readLine()
}
Upload a File
To upload a file, a writer must be created to which lines can be written. The writer object is obtained from the ai.sftp namespace. Once the file has been created it
can be uploaded to the client using one of the following methods.
Obtained from
ai.sftp.createFileWriter()
method
uploadedFileName:
String
uploadEncryptedFile (writer, Encrypts the file using the specified encryption setting (found in the Credentials
Writer : writer
uploadedFileName, area in Design Integrations) and uploads it to the server. The file name and
encryptionSettingName ) Obtained from location is specified by the uploadedFileName argument.
ai.sftp.createFileWriter()
method
uploadedFileName:
String
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 171/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
encryptionSettingName
: String
Name of your
encryption setting
uploadEncryptedAndSignedFile(writer, Encrypts and signs the file using the specified encryption setting (found in the
Writer : writer
uploadedFileName, Credentials area in Design Integrations) and uploads it to the server. The file
encryptionSettingName) Obtained from name and location is specified by the uploadedFileName argument.
ai.sftp.createFileWriter()
method
uploadedFileName:
String
encryptionSettingName
: String
Name of your
encryption setting
You can invoke the following methods on the Reader object that has been returned from downloading files.
cleanUp()
Free the system resources consumed by the File Writer object.
Example
CreateDirectory
AWS S3 allows you to specify the path of new directories. For example, client.createDirectory('./parent/child'); will create the parent directory.
However, If the parent directory already exists and you attempt to create a child directory, an exception will be thrown.
Prerequisites
Connecting to Google Drive requires a few preliminary steps:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 172/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
//Create an HTTPS request to send to the Google Drive API using the callApi function.
function callApi() {
var method = 'GET';
var body = '';
var headers = null;
//Construct and send an HTTPS request to get all of the tables.
return ai.https.request(url, method, body, headers);
}
function testConnection(context)
{
var response = callApi();
var responseCode = response.getHttpCode();
// Interrogate the response to check if it succeeded and that HTTP communication was successful.
if (responseCode == 200)
{
ai.log.logInfo('Test Connection Succeeded');
return true;
}
else
{
ai.log.logError('Test Connection Failed','Response code was ' + responseCode);
return false;
}
}
function importStructure(context)
{
//Use the callAPI function to construct and send an HTTPS request to get all the tables
var response = callApi();
//Get the structure builder object used to create tables, columns and other needed structures.
var builder = context.getStructureBuilder();
var table = createTable(builder, tableName);
var lines = extractLines(response);
var headingLine = lines[0];
var headings = extractCells(headingLine);
//parse the HTTPS response to construct a table
for(var i = 0; i < headings.length; i++) {
var heading = headings[i];
createColumn(table, heading);
}
}
function importData(context)
{
var response = callApi();
//Use the passed-in contextual information to create a rowset object.
var rowset = context.getRowset();
var lines = extractLines(response);
//Skip the heading row and process each row to extract cell values for each column.
for(var i = 1; i < lines.length; i++) {
var line = lines[i];
if(line === '') continue;
var cells = extractCells(line);
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 173/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function extractLines(response) {
var content = response.getBody();
return content.split('\n');
}
function extractCells(line) {
return line.split(',');
}
//In this example, reuse the import data function with context for previewing the data.
//A separate function might be needed to limit the amount of data preview gets back.
function previewData(context)
{
importData(context);
}
Copy the sample code into the Scripts section of your CCDS. You don't have to configure parameters or external resources to run this script. The script contains
the following code modules:
Test Connection
Import Structure
Import Data
Preview Data
Prerequisites
Required Permissions: Integration Developer within Administration > Permission Set
See Concept: CCDS, Create Scripts for CCDS
Understand the various Adaptive Planning Functions
CCDS Developers must be experienced JavaScript programmers
Example
var sampleData = {
validConnection: true,//Change this for an invalid connection
headings: ['Heading A', 'Heading B', 'Heading C'],
data: [
['A1','B1','C1'],
['A2','B2','C2'],
['A3','B3','C3']
],
tableName: 'Example'
};
function testConnection(context)
{
return sampleData.validConnection;
}
function importStructure(context)
{
var builder = context.getStructureBuilder();
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 174/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
function importData(context)
{
Integration acts as a secure bridge to import data from a wide variety of spreadsheets and databases into Adaptive Planning.You can filter, clean, and map
information being imported so you can eliminate potential errors that can happen during a manual data import. In addition, you can schedule tasks and operations
so data can be imported at specific times automatically. Adaptive Integration for Discovery Enterprise will allow customers to bring data from different data sources
into Discovery Enterprise.
Data analysts run tasks and work with the imported information in the Adaptive Planning. Data analysts have access to the Tasks Overview and Tasks Detail
screens and can view and run tasks shared with them and view the task history. Data analysts must have the Integration Operator role.
IT users are high-level users (frequently administrators) who can set up and edit data sources, loaders, and tasks. IT users must be familiar with the
Adaptive Planning and have a substantial understanding of databases and connectivity. IT users must have the Data Designer role and one of Discovery
Classic standard or admin roles.
The IT users do the initial set up of integration and then work in a maintenance mode, responding to requests for new tasks or different data sources from the data
analysts. IT users also grant permissions to other users to perform tasks.
Typical Workflow
The general process for importing data with integration is as follows:
1. The IT user sets up a data source that extracts information from a spreadsheet, a JDBC-compliant database, NetSuite, a table group (featuring SQL-joined
tables), or an ETL scripted data source. If extracting from a JDBC-compliant database, the IT user must also use the Adaptive Data Agent Service Manager
to set up a data agent for secure communication between the database and Adaptive Integration. SQL joins and expressions can be added to filter data.
2. The IT user previews the extracted information, which is held in Adaptive Integration's staging area.Columns or tables can be specified for use or to be
ignored. SQL expressions can be added to filter data. The IT user can also change the data type of individual columns.
3. The IT user sets up a loader, which takes the data from the staging area and loads it into Discovery. The IT user selects a table source and assigns a
date/time type to it. Columns are dragged and dropped into metrics and dimensions. The columns can be configured with the metrics and dimensions
already configured in Discovery, or the IT user can set up new metrics or dimensions as part of the loader creation process. Duplicate data rows can be
eliminated and additional calculations or SQL operations specified. When the loader is ready, the IT user can test it by running the loader manually to load
the information into Discovery.
4. The IT user creates a task, a predefined set of operations that combines loaders and sub-tasks, to extract, process, and load data that has been filtered and
scrubbed appropriately into Discovery. Tasks can be scheduled to run automatically at a specific minute, hour, day, or day of month. The IT user can
optionally grant edit and launch permissions to data analysts and other users and roles for data sources, loaders, and tasks.
5. The data analyst (or other permitted user) can run tasks manually on demand or use the scheduler to run tasks automatically. When you log on to Adaptive
Integration, the default screen is the Task Overview screen. The Tasks Overview screen displays the active tasks.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 175/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Click a task in the Tasks Overview to display detailed information about the task in the Tasks Detail screen. The Task Detail screen provides detailed information
and options for the task you selected, as follows:
You can view information about pending and recent runs of a specific task. When you click a specific run, the status of the three phases of the run (the data
import, the transformation, and the data load into Adaptive Planning) appear on the screen. You can use this information for troubleshooting errors.
To run a task manually from the Task Detail screen, enter the file to extract information from in the field, then click Run. Adaptive Integration runs the task
and displays the status of the three phases.
Click Execution History at the bottom of the screen to display the task's execution history, which includes the run time/date, the task name, the run duration
in seconds, and the status of the run. You can drill down by Clicking any entry in the execution history to display the log history for that instance.
2. In the Data Source folder in the Component Library on the right side of the screen, click Create New Data Source. The Create New dialog box appears.
3. Select Spreadsheet as your data source type and enter the name for the data source
4. Click Create.
Skip failed uploads: Check this box to skip failed uploads from the spreadsheet. When this box is checked and you are importing multiple tables, if one of
the tables fails on upload, the process continues to the next table instead of ending with an error because of the first failed table.
Log level: Select a log level from the drop-down list to specify the detail for the logging for this data source. Your options are:
Info: Logs all basic information, such as when the data source was updated.
Verbose: Provides very detailed information about all phases and actions. (This level is used primarily for debugging or auditing, as it may produce more log
information than is practical for typical use.)
When you have entered the basic configuration of the spreadsheet data source, you need to import the spreadsheet.
2. Enter the name of the spreadsheet to open. You can click Browse to search for a file. When you select the spreadsheet, Adaptive Integration opens the
spreadsheet and imports the information. Adaptive Integration also imports the spreadsheet structure (field names, order of fields). It assigns a default data
type to each column but does not interpret any formatting rules associated with each spreadsheet column. The data structure appears in the Data
Components menu on the left side of the screen, which is populated with the worksheets and contents of the imported spreadsheet.
2. In the Loaders folder in the Component Library on the right side of the screen, click Create New Loader. The Create New dialog box appears.
3. Select Discovery Metric Loader as the loader type and enter a name for the loader.
4. Click Create. The center area of the screen displays your new loader's settings and other information
1. In the Settings area, select the source table to point to the staging table which contains data to be brought into Discovery.
2. If the staging table contains date/period information as a column, select the appropriate option for Period source and the Period column fields.
4. Within the Data Component palette, select the staging table you have chosen. Identify the columns which you would to bring into Discovery as metrics and
dimensions.
5. Drag and drop staging columns into the Metrics or Dimensions area. While defining the metrics and dimensions, use the default values to get started
quickly.
7. Optionally, if you would like to bring a subset of records from within your staging table, you can choose to enter a SQL filter. Click in the text box under Filter
Settings. The Edit SQL Filter dialog box appears. Here, enter a SQL Filter expression. The help text in the editor provides examples and also a link to a
detailed help document.
Creating a Task
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 176/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Integration tasks let you build and refine the importing and filtering processes, then let users run the specific tasks they need to perform their jobs. You can run
tasks manually on demand or schedule tasks to run automatically at a specific time or day. Tasks can be shared with other users (this is primarily how data analysts
get access to tasks). Tasks can contain one or more loaders. They can also contain other tasks.
2. In the Tasks folder in the Component Library on the right side of the screen, click Create New Task. The Create New dialog box appears.
4. Click Create. The center area of the screen displays your new task's settings and other information.
5. Select a log level from the drop-down list to specify the detail for the logging for this data source. See Creating a Task.
When you have saved the basic configuration of the task, you need to add loader and task information. If you want to run the task at regular intervals, you will also
need to add a schedule.
The final step in creating a task is to add loaders and tasks so that the task does something. Adding a loader lets you extract data, perform data manipulation, and
load the information into Discovery. Adding other tasks lets you optionally create smaller, subtasks as building blocks that you then can combine into larger custom
tasks.
1. Drag a loader or task from the Data Components menu to the Tasks and Loaders table. The loader or task appears in the table.
2. Continue dragging loaders and tasks to the Tasks and Loaders table. Loaders and tasks are performed in the order they appear in the table.
1. Drag a scheduling option (hourly, daily, weekly, or monthly) from the Data Components menu to the Schedule Settings table. The Edit Schedule dialog
box appears.
2. Enter schedule information, including how often the task has to run and time at which it has to run. Be sure to set the task as active if you want it to go into
effect. Do not mark it as active if you only want to store the schedule data, not have the schedule implemented. See Using Tasks and Schedules for more on
each field.
3. Click Save.
Whether you are just beginning to use Adaptive Planning or you need to update an existing model, getting your data from another source system into your model
requires a data import. You can choose to:
Import using a Planning Data Loader, that you can schedule with an Integration Task if your organization has Integration.
Import Manually
You may be asked to map account names, level names, and dimension names in the spreadsheet to their corresponding values in Adaptive Planning. You can view
and modify any existing manual import mappings you already made by clicking Import Account Mappings, Import Level Mappings, or Import Dimension Value
Mappings under Integration > Manual Import.
On upload, your data automatically maps to a best-fit for the data contents. You can also manually adjust:
If data exists in the system at the same location, the import replaces it. This replacement occurs row by row. The import does not replace everything at once.
For example, you perform two imports. Your first import file loads data that your second import file does not contain. That existing data will remain after the second
import.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 177/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Include the column and leave its cells blank in your spreadsheet import.
You can import data into standard, cube, and modeled sheets by filling in a downloaded spreadsheet template and uploading it to your instance. If your company
has the transactions module, Adaptive Planning also lets you import transactions details from a spreadsheet. As part of the import process, you map accounts,
levels, and dimensions from your source to what already exists in Adaptive Planning.
The Import Data interface lets you select import type, source, and destination. Your choices generate an import template spreadsheet you then download and fill in
with your source system's data. After you fill in the spreadsheet template, you import it.
To find out how to import Accounts, Dimensions, and Levels (organization structure) your data loads into, see structure import.
To find out how to erase data from actuals versions in GL, custom, and cube accounts on sheets, see Erase Data.
Note: Other Ways to Import: If your company purchased the NetSuite Integration option, you can also import actuals data directly from your NetSuite account.
Adaptive Planning Integration provides a complete data integration platform that lets you schedule automatic data imports and metadata imports from a variety of
external systems. See Concept: Integration for more.
Prerequisites
Required permissions:
Import Capabilities and edit access to the specific intersections you want to import data to.
Or Import to All Locations, which enables import to all areas, regardless of location or level access.
For transactions import, you must have the transactions module and define your transaction fields.
Know the sheet name and sheet type the data will import to.
Have an export from your ERP or other source system in a CSV, XLSX, or other file you can copy data from.
To make the process efficient, verify that the accounts, levels, and dimensions your data values need to load to already exist in Adaptive Planning.
Navigation
Basic Steps
1. Select the import type and where you are importing from.
2. Select where to import to.
3. For spreadsheet imports, download and fill in a template for one of the following:
Modeled Data
Cube Data
Standard Data
Transactions Data
4. Import the template and select your account, level, and dimension value mappings if applicable.
Actuals versions contain your actual financial results for a given period of time, like your income or expenses from May 2020. Actuals are records of events that
happened.
Note: You can view the history of actuals imports by navigating to Integration > Import History. You can view each actuals import request under File Name and its
status or error messages under Action.
Plan versions, also referred to as planning versions, plans, and planning, may be budgets, what-if scenarios, or almost anything else you can imagine.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 178/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Transactions are typically data related to time-stamped orders, invoices, sales process activities, or payments. Transaction data can only be imported if you have
the transactions module.
If you do not see a section called Import From, your organization does not use NetSuite Basic or Custom Scripts. Only the Import Type and Import Into sections
would be visible.
If your company has NetSuite Integration - Basic, you can select the NetSuite actuals option.
If you have a custom script, you will see a Custom Script option. See Import Data from Custom Scripts for more.
Best Practice: After you fill in a template, save it. You can simply reopen your saved template to make edits and if you plan on loading from the same sheet, reuse it.
Excel Date Format: Adaptive Planning will find the time period that contains this date at the appropriate time stratum.
Text strings in the format MMM-YYYY (e.g. jun-2016): If your organization configured a custom calendar, this format will not be accepted.
The preferred method of entering dates within imported files is to use time period codes. See Set Up Calendars.
Standard data is data that resides in GL accounts, custom accounts, assumption accounts, and exchange rates but does not reside in a sheet. You do not select a
sheet when you import standard data.
1. Select Standard.
2. Click Download template and follow its instructions to create the columns and fill in the data you need to import.
3. Click Choose File and browse to the template you edited and click Import.
4. Select how you want Adaptive Planning to map account identifiers, levels or dimension values from your file.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 179/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Account (Required): An account identifier from your external system such as an account name or account code. It cannot be empty.
Level (Required): Organization levels from your general ledger. It cannot be empty.
Split Label: Used to distinguish between two or more splits. It can be left blank if it isn't needed.
Region: This is an example of a custom dimension column and can be renamed to any dimension in Adaptive Planning, or it can be deleted. Add columns to
specify more dimensions.
Time Period: Represented by codes of time periods at the import accounts' time stratum, or any date within the target time periods. Requires at least one
time period of data.
1. Select a sheet. You will know the selected sheet is a modeled sheet if you see Import Mode options.
2. Select an import mode. If your instance uses access rules, some of the options are different. See Access Rules and Your Model.
Add the imported rows to the sheet.
Replace all data in the sheet, for all levels.
Replace all the data in the sheet, but only for imported levels.
Update existing rows. Only required column is Import Key. Sheets with Allow splits selected do not support updates. Values in the Import Key column
of your imported file must be unique.
Update existing rows and add new rows. Only required columns are Import Key, Level, and any text selectors, even when not adding new rows.
Sheets with Allow splits selected do not support updates. Values in the Import Key column of your imported file must be unique.
3. Click Download template and follow its instructions to create the columns and fill in the data you need to import.
4. Click Choose File and browse to the template you edited and click Import.
5. Select an Import Key for import modes that update rows. Choose a custom dimension or level to indicate the rows in the modeled sheet your import will
update. Any rows that match the import key will update. Values in the Import Key column of your imported file must be unique.
6. Select how you want Adaptive Planning to map account identifiers, levels or dimension values from your file.
Before you import, check that the sheet does not have duplicate column names. Only the Timespan column and one Display column can have the same name. All
other duplicate names cause the import to fail. If you get a duplicate column name error message, you may have more duplicates than the error message indicates.
You must find and remove the duplicate names from the sheet, not the template. See Add or Edit Modeled Sheet Columns.
Level (required): Organization levels from your general ledger. It cannot be empty.
Data Entry
Text: Any string value.
Number: Any numeric value.
Date: Any date value.
Text selector: String value of corresponding text selector option.
Initial Balance: Any numeric value.
Timespan: Any numeric value. The order of the time span columns should match the one given in the template.
Dimension: String value of the corresponding dimension value.
Attribute: String value of the corresponding attribute value.
The Services Revenue modeled sheet below only requires three columns:
Level
Rev Rec
Invoicing
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 180/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Select a sheet. You will know if the selected sheet is a cube sheet if you do not see Import Mode options.
2. Click Download template and follow its instructions to create the columns and fill in the data you need to import.
3. Click Choose File and browse to the template you edited and click Import.
4. Select how you want Adaptive Planning to map account identifiers, levels or dimension values from your file.
Level (required): Organization levels from your general ledger. It cannot be empty.
Account (required): An account identifier from your external system such as an account name or account code. It cannot be empty.
Custom Dimensions (required): All other labeled columns represent Custom Dimensions available on the cube. Enter names of values in each dimension for
each row. None of these columns can be empty.
The final columns represent time periods which contain the data. Values in these columns are the values which will be imported into the corresponding
location in the cube. A value of 0 will be imported as a blank value to allow for erasing data in the cube. Titles of time period columns are codes of time
periods at the import accounts' time stratum, or any date within the target time periods.
Level
Account
Customer
Product
and at least one time period
When your file uploads, Adaptive Planning will attempt to match the accounts, levels, or dimensions values in that file to those already in Adaptive Planning.
If you already have mappings, you can choose the option that best fits them.
Click Continue.
If you don't have accounts, levels, or dimension values already mapped from your sheet to Adaptive Planning, you can map them by continuing through a wizard-
like process.
Follow the same mapping steps to map levels and dimension values, if needed. After you verify all of the mappings, click Import.
The import in general succeeds but ignores updating the locked rows. Super users with the Import To All Locations permission can continue to import data to all
sheets regardless of Workflow status.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 181/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
When you import data, you must map accounts, levels, and dimension values from your source to their counterparts in Adaptive Planning. The first time you import
mappings, the mapping process gets triggered for you. You can also start the mapping process separately from a data import using the Import Account Mappings,
Import Level Mappings, and Dimension Value Mappings pages.
Prerequisites
Required permissions: Import Capabilities
You should have a CSV, XLSX, or other export file you can copy your external account, level, or dimension value names from.
Although these have the same names, these mappings are not associated with mappings found in Integration.
Navigation
From the nav menu, go to Integration > and select Import Account Mappings, Import Level Mappings, or Import Dimension Value Mappings
Import (Required): Enter the name of the account, level, or dimension value from your external source.
Mapped: Enter the account, level, or dimension value already in Adaptive Planning. If this column is left empty, you will be asked to complete the mappings
after upload.
If you are a NetSuite customer you can import actuals directly from NetSuite if you complete the NetSuite Basic setup and configure your NetSuite category
mappings. The NetSuite actuals option then becomes available in the Import Data page.
Prerequisites
Permissions Required: Import Capabilities
NetSuite Basic must be enabled and configured.
Your NetSuite Category Mappings must be complete.
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 182/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
3. Verify that Standard is selected for Import into Sheet. For NetSuite Actuals, Standard is the default.
4. Select one or a range of time periods to import.
5. Click Continue.
6. Configure your NetSuite Category Mappings if you haven't already done so.
7. Click Continue
8. Decide whether the actuals you are importing are ready to appear on sheets in your model by clicking yes or no.
9. Click Import Actuals.
Once the import completes you can view information on its success or failure in the Results of Import page.
Transactions are typically data related to time-stamped orders, invoices, sales process activities, or payments. Transactions can come from a variety of external
systems. You can import transactions if your instance has transactions enabled.
Prerequisites
Permissions required: Import Capabilities
Understand and complete your transaction field definitions.
Navigation
Import Transactions
Before you can import transactions, you need to create your transaction field definitions. Your transaction field definitions determine what columns appear in your
transactions template.
See Transactions for details.
Posting Date (Required): A date field for the transaction posting date.
Transaction Type (Required): The transaction type.
Account (Required): The account for the transaction.
Level (Required): The level the transaction applies to.
Transaction Amount (Required): The amount for the transaction.
Description: A text field.
If you select Yes, provide a date range and choose which transactions get removed before the import begins.
Custom scripts are an older method of importing data from external sources like CRM, ERP or HR systems. These scripts were written specifically for your
organization's needs and pull data directly from your source system.
Note: Custom scripts are in the process of being migrated to Integration tasks. Once the migration is complete, all custom scripts will be removed.
Prerequisites
Required permissions: Import Data Capabilities
The version you are in at the time you run the Custom script is the version you are importing to/exporting from
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 183/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
5. Select the first time period the script should import to.
6. Select the last time period the script should import to. If you are only importing to one period, select the same one for first and last.
7. Provide the credentials your custom script needs connects to your source system.
8. Click Run Script.
After your script runs, the script list updates to indicate the new last run time and last run status.
You can use Integration > Export Data to export account values from the currently-selected version into a comma separated value (csv) file which can be opened
in Microsoft ExcelTM. It is in many ways similar to a download or printable view of a standard sheet. This page exports all specified accounts and their values. It
optionally maps accounts to external account codes and level names, such as those seen during Import.
If your company has the NetSuite Integration option, this page also lets you export a budget version from Adaptive Planning into NetSuite. For more information on
this feature, see NetSuite Budget Export.
To export your data, choose from the four sets of options, and select Export. Values on individual splits aggregate on export.
You can also export using the Custom Cloud Loader in Integration to export to external, cloud-based systems.
Format
This section lets you select how the accounts and levels are labeled in the Export file. Select Edit next to Format to see the choices:
Note: See the Export Account and Export Level Mappings sections for how to set external export names.
Adaptive Planning Account Names and Codes - This option labels the exported data with the account names and level names found in Adaptive
Planning.
External Account Codes - Labels the exported data with the account codes and level names established in the Export Account Mappings and Export
Level Mappings. External account codes are extremely useful when importing Adaptive Planning data into other systems that require different account or
level mappings. If an account or level does not have an Export Mapping it is excluded from the export by default. You can include all accounts and levels by
selecting Include Unmapped Items, to give unmapped items the names they have in Adaptive Planning.
Filter
Select Edit to specify the accounts, levels, and time range to be included in the exported data. All data exports unless otherwise specified.
Accounts - This section displays a list of all accounts (GL, custom, metric, modeled, cube, assumptions and exchange rates) that exist in the model. You
can Ctrl- or Shift-click to specify particular selections or ranges of accounts to include in the export. You can Ctrl-Shift-click within the Name column, then
use a right-click context menu to check or uncheck multiple selections at once. When you right click a selected parent, you can use the context menu to
check or uncheck its descendants. If you select accounts that use different time strata such as month and quarter, the export will use the higher of the two
(e.g. quarter).
Levels - This section lists all levels you can access. You can Ctrl- or Shift-click to specify particular selections or ranges of accounts to include in the export.
You can Ctrl-Shift-click within the Name column, then use a right-click context menu to check or uncheck multiple selections at once. When you right click a
selected parent, you can use the context menu to check or uncheck its descendants.
Time Range - You can select the time periods to include by using the From and To drop-down selectors. The time selector dynamically updates to indicate
the range based on the time strata of the accounts you select. If you select accounts that use different time strata such as month and quarter, the range
displays the higher of the two (e.g. quarter).
Dimensions
Select the dimension or dimensions you want tagging the data in your export file. Select Edit to show a list of all custom dimensions in your model.
Rules
Select Edit next to Rules to see the options for:
Currency - Select the currency in which all monetary values should be exported. The default choice, "Use Level's Currency" will export each level's
monetary values in the currency of that level.
Include Empty Rows - Rows that only contain zeroes or blank cells are excluded from the export by default. If you would like to include all of the accounts
and levels you have specified for this export regardless of whether the account or level has data, select this option.
Include Account and Level Rollups- if no filters are being applied to the export, you can optionally choose to include rollup (parent) accounts and levels in
the export by selecting this option. If filters are being applied, this option is unavailable, as rollups will be emitted if they are selected in the filters.
Include Time Rollups - if selected, the export will include columns for time rollups within the requested time range. If not selected, only individual default
time stratum columns will be included.
Export Data
After setting your filters, dimensions, and rules, select Export.
1. Navigate and expand the parent accounts to select the child level accounts you wish to map. Parent accounts cannot be selected. You can select/deselect
all accounts by clicking the box at the top left, in the header of the Account Mappings list.
2. To use the existing import name, click Use import name in the detail panel to the right, then click OK in the confirmation popup.
3. If more than one item was selected, all of the selected accounts use their import names.
You can enter a custom external account name by visiting Integration > Export Account Mappings and following these steps:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 184/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Navigate and expand the parent accounts to select the child accounts you wish to map. Parent accounts cannot be selected. You can select/deselect all
accounts by clicking the box at the top left, in the header of the Account Mappings list.
2. Enter a custom name in the External account name field in the detail panel on the right. Click Cancel if you'd like to discard your changes.
6. Click Printable View at the top of the page to view a spreadsheet containing all of the account mappings.
1. Navigate and expand the levels to select the levels you wish to map. You can select/deselect all levels by clicking the box at the top left, in the header of the
Level Mappings list.
2. To use the existing import name, click Use import name in the detail panel to the right, then click OK in the confirmation popup.
3. If more than one level was selected, all of the selected levels use their import names.
You can enter a custom external export level name by visiting Integration > Export Level Mappings and following these steps:
1. Navigate and expand the levels to select the levels you wish to map. You can select/deselect all levels by clicking the box at the top left, in the header of the
Level Mappings list.
2. Enter a custom name in the External export level name in the detail panel on the right. Click Cancel if you'd like to discard your changes.
6. Click Printable View at the top of the page to view a spreadsheet containing all of the level mappings.
For step-by-step instructions on importing sheet and transactions data, see Spreadsheet Import.
Fields Description
Spreadsheet
Custom Script (For Legacy Connectors)
Import Into Sheet Identifies the sheet the data will import to. Do not select a sheet when importing Transactions.
Select File Choose the file on your local system to import. Format it by using the download template.
Download Template Downloads an import template for the sheet you selected within Import Into Sheet. The templates for modeled, cube, and
standard sheet data are different based on their contained dimensions and accounts.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 185/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Important: This article assumes that your current version of NetSuite is 2018.1. For versions older than 2018.1, See Prepare for NetSuite 2018. 1 and Two Factor
Authentication.
What's Coming?
NetSuite 2020.1 enforces Token Based Authentication (TBA) for all NetSuite users. This feature upgrade is not automatic for existing customers. You must manually
upgrade the default version of your existing NetSuite Data Sources to 2020.1.
Your current webservices version must be less than 3 years old to ensure Adaptive Planning and NetSuite are able to provide optimal support.
Why?
Token Based Authentication (TBA) for all NetSuite users enables Adaptive Planning to maintain Built For NetSuite (BFN) certification. For more on NetSuite's two-
factor authentication see their documentation here.
Review the existing NetSuite users and roles involved in integrating with Adaptive Planning. Create a role that can use two-factor authentication and has all of the
needed permissions for integrating with Adaptive Planning.
Generate Authentication keys from within NetSuite and paste them into specific locations inside the Adaptive Planning user interface.
1.2.9.2 | Enter NetSuite Keys for Token-based Authentication with NetSuite 2020.1
Prerequisites
Enable token-based authentication in NetSuite, generate and save the Consumer Key, Consumer Secret, Access token ID, and Access token secret in a secure
location.
Your company either uses NetSuite Basic or a NetSuite Data Source in Integration.
NetSuite Basic
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 186/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can upgrade an existing NetSuite data source, or create a new NetSuite data source.
If you have an existing NetSuite data source you must upgrade to NetSuite 2020.1.
If you create a new NetSuite data source you automatically get NetSuite 2020.1 and don't need to upgrade.
In both cases you create a NetSuite Credential that holds your access keys.
1. Log in to NetSuite.
2. Go to Setup > Users/Roles > Login Audit Trail Search.
3. Select Use Advanced Search.
4. Select the Results tab.
5. Add the following to the results:
Token-based Access Token Name
Token-based Application Name
Detail
6. Submit the search.
7. Sort the most recent logins to the top and review the status and detail columns for your login attempts.
A new custom NetSuite role with only the specific permissions needed for integrating, following security best-practices
Or the existing administrator (role id=3) web services role
Prerequisites
Log in to NetSuite as an administrator
Review the NetSuite account, email address, and NetSuite role you already use in Adaptive Planning
Basic Steps
Decide if you want to use a custom role to integrate Adaptive Planning with NetSuite (recommended) or use the existing administrator (role id=3) role
Configure a user with a custom role for integrating with Adaptive Planning (recommended)
Configure an existing administrator (role id=3) for integrating with Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 187/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Decide if You Want to Use a Custom Role to Integrate Adaptive Planning with NetSuite
If you want to follow best-practices, create a custom role with only the specific permissions needed to integrate NetSuite with Adaptive Planning. Grant this custom
role token-based authentication.
If you already have an administrator (role id=3) you want to continue using for integration, you can create an integration record and user access tokens for it. The
steps for an administrator appear at the bottom of this article.
Configure a User with a Custom Role for Integrating with Adaptive Planning (Recommended)
Turn on Token-based Authentication in NetSuite For the Role
1. Navigate to Setup > Company > Enable features > Suite Cloud > Manage Authentication and select Token-Based Authentication.
2. Navigate to Setup > Users/Roles > Manage Roles and click New to create a new custom role. Name the custom role "Adaptive Planning Integration."
3. Give the role the permissions needed to integrate with Adaptive Planning with token-based authentication and add the permission "Setup > Log in Using
Access Tokens - FULL."
For NetSuite enhanced integrations (NetSuite data sources in Integration) use these typical permissions.
1. Navigate to Lists > Employees > Employees > Edit User and select the user who manages data integration within Adaptive Planning.
2. Click Access > Roles
3. Assign the custom role you just created to the user.
4. Navigate to Setup > Integration > Manage Integrations > New.
5. Enter the name "Adaptive Planning Integration" and click Token-based Authentication. Double check that State is set to Enabled.
6. Click Save. This creates an Integration Record you will use to create access tokens.
7. Copy and paste the following values for the integration record into a text file and save the file in a secure location you can access in the future:
Application ID (only used for your record keeping, not used by Adaptive Planning)
Consumer Key
Consumer Secret
Copy the information to a secure location before you navigate away from this page. It only displays once and can't be retrieved later.
These values are required to complete integration with Adaptive Planning. Next, you'll generate the Access Token and and Access Token ID values for the NetSuite
user associated with your Adaptive Planning integration.
1. Navigate to Setup > Users/Roles > Access Tokens and click New.
2. Select the application name "Adaptive Planning Integration" you created in the previous steps.
3. Select the user and then the role you created. Select "Adaptive Planning Integration" and associate the Adaptive Planning integration record.
4. NetSuite generates a response. Copy and paste the Access Token ID and the Access Token into the secure location you created in the previous steps.
Copy the response before you navigate away from this page. It only displays once and can't be retrieved later.
These values are also required to complete integration with Adaptive Planning.
Configure an Existing Administrator (role id=3) for Integrating with Adaptive Planning
Existing administrator (role id=3) web services users follow different steps than custom roles. Where administrators (role id=3) create access tokens within NetSuite
is also different.
Copy the information to a secure location before you navigate away from this page. It only displays once and can't be retrieved later.
These values are required to complete integration with Adaptive Planning. Next, you'll generate the Access Token and and Access Token ID values for the NetSuite
user associated with your Adaptive Planning integration.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 188/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Copy the information to a secure location before you navigate away from this page. It only displays once and can't be retrieved later.
1. Log in to NetSuite.
2. Go to Setup > Users/Roles > Login Audit Trail Search.
3. Select Use Advanced Search.
4. Select the Results tab.
5. Add the following to the results:
Token-based Access Token Name
Token-based Application Name
Detail
6. Submit the search.
7. Sort the most recent logins to the top and review the status and detail columns for your login attempts.
A NetSuite credential is a collection of token-based authorization keys from NetSuite that act like a password for connecting to a NetSuite endpoint. You can
associate a NetSuite credential with one or more NetSuite data sources as a centralized way of reusing NetSuite login details.
Important: Because token-based authorization keys function exactly like a password for a NetSuite account, Adaptive Planning prevents viewing their values the
moment you enter them. Always treat token-based authorization keys as you would a password.
Prerequisites
In NetSuite
Generate authorization tokens within NetSuite for the user that integrates with Adaptive Planning and have the keys available
In Adaptive Planning
Navigation
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 189/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Important: NetSuite's deadline for updating to two-factor authentication (2FA) is April 8, 2019. Existing legacy integrations will not work once NetSuite turns off the
legacy method of authentication. Below are the specific steps you need to take.
What's Coming?
The way you authenticate with NetSuite throughout Adaptive Planning is changing because NetSuite began requiring two-factor authentication (2FA). Regardless of
how you integrate Adaptive Planning with NetSuite, NetSuite's two-factor authentication requirement affects you.
Why?
For enhanced security, NetSuite's 2018.1 release requires two-factor authentication for all highly-privileged roles in NetSuite production, sandbox, development,
and Release Preview accounts. In NetSuite's 2019.1 release, two-factor authentication also becomes mandatory for API and integration access.
Adaptive Planning uses highly-privileged roles to integrate with NetSuite. Your Adaptive Planning integration must meet NetSuite's two-factor authentication
requirements to continue working.
Review the existing NetSuite users and roles involved in integrating with Adaptive Planning. Create a role that can use two-factor authentication and has all of the
needed permissions for integrating with Adaptive Planning.
After generating your authentication keys from within NetSuite and saving them, you'll need to paste them into specific locations inside the Adaptive Planning user
interface.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 190/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
What Happens if I Don't Upgrade to NetSuite 2018.1 and Token Based Authentication?
NetSuite is rolling out two-factor authentication and token-based authentication for integrations to all of its customers. If you don't update to token-based
authentication by April 8, 2019, your connection to NetSuite within Adaptive Planning will fail and your integration with NetSuite won't work.
Important: NetSuite's deadline for updating to two-factor authentication (2FA) is April 8, 2019. Existing legacy integrations will not work once NetSuite turns off the
legacy method of authentication. Below are the specific steps you need to take.
Prerequisites
Enable token-based authentication in NetSuite, generate and save the Consumer Key, Consumer Secret, Access token ID, and Access token secret in a secure
location.
Your company either uses NetSuite Basic or a NetSuite Data Source in Integration.
NetSuite Basic
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 191/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 192/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can upgrade an existing NetSuite data source, or create a new NetSuite data source.
If you have an existing NetSuite data source you must upgrade to NetSuite 2018.1 by April 8, 2019.
If you create a new NetSuite data source you automatically get NetSuite 2018.1 and don't need to upgrade.
In both cases you create a NetSuite Credential that holds your access keys.
1. Log in to NetSuite.
2. Go to Setup > Users/Roles > Login Audit Trail Search.
3. Select Use Advanced Search.
4. Select the Results tab.
5. Add the following to the results:
Token-based Access Token Name
Token-based Application Name
Detail
6. Submit the search.
7. Sort the most recent logins to the top and review the status and detail columns for your login attempts.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 193/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
For enhanced security, NetSuite's 2018.1 release requires two-factor authentication (2FA) for all highly-privileged roles in NetSuite production, sandbox,
development, and Release Preview accounts. In NetSuite's 2019.1 release, two-factor authentication also becomes mandatory for new integration and API access.
This means the NetSuite user you set up to integrate with Adaptive Planning requires a role with token-based authentication access. You can grant token-based
authentication for:
A new custom NetSuite role with only the specific permissions needed for integrating, following security best-practices
Or the existing administrator (role id=3) web services role
Prerequisites
Log in to NetSuite as an administrator
Review the NetSuite account, email address, and NetSuite role you already use in Adaptive Planning
Basic Steps
Decide if you want to use a custom role to integrate Adaptive Planning with NetSuite (recommended) or use the existing administrator (role id=3) role
Configure a user with a custom role for integrating with Adaptive Planning (recommended)
Configure an existing administrator (role id=3) for integrating with Adaptive Planning
Decide if You Want to Use a Custom Role to Integrate Adaptive Planning with NetSuite
If you want to follow best-practices, create a custom role with only the specific permissions needed to integrate NetSuite with Adaptive Planning. Grant this custom
role token-based authentication.
If you already have an administrator (role id=3) you want to continue using for integration, you can create an integration record and user access tokens for it. The
steps for an administrator appear at the bottom of this article.
Configure a User with a Custom Role for Integrating with Adaptive Planning (Recommended)
Turn on Token-based Authentication in NetSuite For the Role
1. Navigate to Setup > Company > Enable features > Suite Cloud > Manage Authentication and select Token-Based Authentication.
2. Navigate to Setup > Users/Roles > Manage Roles and click New to create a new custom role. Name the custom role "Adaptive Planning Integration."
3. Give the role the permissions needed to integrate with Adaptive Planning with token-based authentication and add the permission "Setup > Log in Using
Access Tokens - FULL." For NetSuite Basic's permission read this article For NetSuite enhanced integrations (NetSuite data sources in Integration) use
these typical permissions.
4. Save the role.
1. Navigate to Lists > Employees > Employees > Edit User and select the user who manages data integration within Adaptive Planning.
2. Click Access > Roles
3. Assign the custom role you just created to the user.
4. Navigate to Setup > Integration > Manage Integrations > New.
5. Enter the name "Adaptive Planning Integration" and click Token-based Authentication. Double check that State is set to Enabled.
6. Click Save. This creates an Integration Record you will use to create access tokens.
7. Copy and paste the following values for the integration record into a text file and save the file in a secure location you can access in the future:
Application ID (only used for your record keeping, not used by Adaptive Planning)
Consumer Key
Consumer Secret
Important: Copy the information to a secure location before you navigate away from this page. It only displays once and can't be retrieved later.
These values are required to complete integration with Adaptive Planning. Next, you'll generate the Access Token and and Access Token ID values for the
NetSuite user associated with your Adaptive Planning integration.
1. Navigate to Setup > Users/Roles > Access Tokens and click New
2. Select the application name "Adaptive Planning Integration" you created in the previous steps.
3. Select the user and then the role you created. Select "Adaptive Planning Integration" and associate the Adaptive Planning integration record.
4. NetSuite generates a response. Copy and paste the Access Token ID and the Access Token into the secure location you created in the previous steps.
Important: Copy the response before you navigate away from this page. It only displays once and can't be retrieved later.
These values are also required to complete integration with Adaptive Planning.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 194/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
After Adaptive Planning releases support for token based authentication after November 29, 2018, follow these steps to enter your keys.
After Adaptive Planning releases support for token based authentication expected mid-January 2018, follow these steps to enter your keys.
Configure an Existing Administrator (role id=3) for Integrating with Adaptive Planning
Existing administrator (role id=3) web services users follow different steps than custom roles. Where administrators (role id=3) create access tokens within NetSuite
is also different.
These values are required to complete integration with Adaptive Planning. Next, you'll generate the Access Token and and Access Token ID values for the
NetSuite user associated with your Adaptive Planning integration.
After Adaptive Planning releases support for token based authentication following November 29, 2018, follow these steps to enter your keys.
After Adaptive Planning releases support for token based authentication expected mid-December 2018, follow these steps to enter your keys.
1. Log in to NetSuite.
2. Go to Setup > Users/Roles > Login Audit Trail Search.
3. Select Use Advanced Search.
4. Select the Results tab.
5. Add the following to the results:
Token-based Access Token Name
Token-based Application Name
Detail
6. Submit the search.
7. Sort the most recent logins to the top and review the status and detail columns for your login attempts.
For both options, you must install the Adaptive Insights for NetSuite bundle to enable SSO and to enable drill through from Adaptive Planning back into NetSuite.
Follow these instructions for how to install the Adaptive Insights for NetSuite bundle:
1. Login to NetSuite
2. Go to Setup > Customization > Search & Install Bundle
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 195/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Logging in directly to Adaptive Planning offers the benefit of not requiring a NetSuite seat for every user.
Transaction Drill-through
NetSuite External Systems only support drilling from leaf levels, not rollup levels. NetSuite Basic supports drilling from rollup levels.
Transaction Drill-through can be achieved in one of the following ways:
1. Both NetSuite Integration Basic and Adaptive Integration with NetSuite Enhancements allow for drilling back into NetSuite on the standard categories. This
requires that the user have a NetSuite seat.
2. It is also possible to import NetSuite transactions into the Adaptive Planning Transactions module and allow drill-through into those transactions within
Adaptive Planning. This can be achieved through Adaptive Integration with NetSuite enhancements and the Adaptive Planning Transactions module. An
integration task can be set up to automate the import of transactions into Adaptive Planning. This approach does not require individual NetSuite seats for
business users who need drill-through. If you need to drill into transactions for more than the standard NetSuite categories, then import transactions into
Adaptive Planning and use the Transactions Module.
Export mappings need to be created in order to export Adaptive Planning data back into NetSuite. If you are using the Basic option to export, then the export
process is manual and cannot be scheduled.
Note: If you are using NetSuite Integration Enhancements for importing data, you need to maintain import mappings through Integration > Design
Integrations, and export mappings through Integration > Manage Export Mappings.
2. Using Adaptive Integration with NetSuite Enhancements
You can choose to manage both import and export through Adaptive Integration with NetSuite Enhancements. In this case, you will need to manage export
data through a Scripted Export Loader within Adaptive Integration. This option allows for automation of the export process and creating scheduled exports. It
requires implementation of export scripts through Adaptive Professional Services and the installation of an on-premises data agent. For more details see
Steps: Set Up NetSuite Data Sources.
Menu used to manage mappings for import Integration > Import Integration > Design Integrations
Account Mappings
Menu used to manage mappings for export Integration > Export Set up a scripted export loader and manage mappings within
Account Mappings Integration > Design Integrations
To set up Import
To set up Export using a scripted export loader. This
also requires the installation of an on-premises data
agent.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 196/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The options shown below for Integration and NetSuite are provided in the General Setup screen to let company administrators choose the setup they need for their
use case.
The Integration: <data source type> options allow an administrator to limit what data source types can be created within Adaptive Integration's Data Designer
screen. If only NetSuite is enabled, only new NetSuite data sources can be created in the Data Designer screen.
The NetSuite Customer: NetSuite SSO option allows companies who are also NetSuite customers to log into Adaptive Planning from within the NetSuite UI.
The NetSuite Customer: NetSuite Basic option enables the NetSuite specific menus available within Adaptive Planning's main navigation.
If the NetSuite Integration feature is enabled and the current user has the Export Budgets to NetSuite permission, then NetSuite Budget Export will be available on
the Export screen. The choices for Export are NetSuite and CSV file. When you select one of these options, the other sections shown on the screen update
according to your selection. If the Output Target is a CSV File, all the current Export tab sections appear below the Output Target section (see the Export tab help
page for more information). If the Output Target is set to NetSuite, then none of the current Export tab sections appear, and instead the following sections appear:
Budget Category - In this selector, the list of all budget categories available in NetSuite is shown.
Fiscal Years - This section contains a series of check boxes, one for each fiscal year where the start month and year in NetSuite and Adaptive Planning are
equal. The labels shown for the check boxes are the labels of the NetSuite fiscal years. The check boxes are initially unchecked and a user must check at
least one of the boxes in order to continue.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 197/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You must have the Multiple Budget Categories feature enabled in NetSuite before exporting data into NetSuite Budgets.
The data is exported from the current working version only; this is the version currently selected on the screen.
Data is exported only from GL accounts. Custom accounts, Assumptions, Modeled Accounts, and Cube Accounts are not exportable - NetSuite does not
support budgets for anything other than GL accounts.
All old budget entries in NetSuite for the selected Budget Category for the selected fiscal year(s) are deleted, then the data from Adaptive Planning is
exported into NetSuite, completely replacing any data in the NetSuite budget.
Data associated with Adaptive Planning Dimension Values whose Export Mappings are marked as "Ignore During Export" or remain unmapped will not be
exported.
Custom level dimensions are not considered when exporting GL data. Only dimension values which are assigned by the account having splits will be
considered.
Clicking the Export button on the Export Main Page when NetSuite is the selected output target will send the user to the NetSuite Export Category
Mappings page if the system finds that there is data which would be exported which is currently unmapped in the Export Mappings screen. If all of the data
which would be exported is mapped in the Export Mappings screen, then the user is not sent to the Export Mappings screen and the export proceeds
immediately.
After the export to NetSuite, the user is taken to a results page where they are informed of the success or failure of the export.
If no Adaptive Planning dimension maps to Subsidiary, then all data will be exported to the "root" subsidiary in NetSuite.
The values which are exported are converted to currencies according to the following rules:
If Adaptive Planning levels are not configured as a dimension mapping, all values to be exported are from the level rollup at the organization structure in
Adaptive Planning, so all values are converted to the top level currency prior to any export.
If Adaptive Planning levels are mapped, and the target Budget Category is not a Global Category, then values to be exported will be exported in the
currency of the level where the values reside. They will be exported in that currency to the subsidiary or other dimension associated with that level in
NetSuite. The user must ensure that Adaptive Planning levels map to subsidiaries of equivalent currency in NetSuite.
If Adaptive Planning levels are mapped, and the target Budget Category is a Global Category, values to be exported will be converted into the Corporate
Currency at each level, then exported in the corporate currency and in the level where the values reside.
Note: Exchange Rates will not be exported from Adaptive Planning to NetSuite; there must be equivalent exchange rates in the two systems (in particular, in the
Budget Exchange Rates area for NetSuite) so that the converted numbers roll up and tie.
Adaptive Planning offers a unique and full-featured integration with NetSuite, the ERP, CRM, and accounting system. In particular, we offer one-click importing of
actuals from your general ledger into Adaptive Planning, to simplify your budgeting process. Importing your actuals from NetSuite is easy. You can do it every
month, or even every day, and re-forecast or monitor your budget changes on a more frequent basis. You can also export budgets from Adaptive Planning into the
NetSuite Budget area, and drill directly from Adaptive Planning actuals numbers into NetSuite Transaction Detail reports.
1. Configure your Adaptive Planning account to connect to your NetSuite account (either Production or Sandbox) by using the NetSuite Integration Setup
screen
2. Describe how your Adaptive Planning accounts and dimensions map to your NetSuite categories on the NetSuite Category Configuration screen
3. On the Import tab, select the NetSuite choice and click the Import button. See Concept: Import Data
Once configured, future updates and imports can be done merely by clicking the Import button on the Import tab.
See NetSuite Integration Options for more on the two ways Netsuite integrates with Adaptive Planning.
Note: If you are using the NetSuite Adapter for Adaptive Planning integration, refer to Setting up a NetSuite Data Source, and the External Systems section for full
details on configuring the NetSuite Adapter for Adaptive Planning integration for drill through. The content below is helpful for understanding how drill through works.
The following is for configuring NetSuite Transaction Drill through within the Adaptive Planning UI. Users who have the NetSuite Integration feature turned on can
drill into transaction level detail in NetSuite for accounts that are in the Actuals version and are the target of some NetSuite Import Mapping. Users can drill into
transaction level detail from sheets or from the Cell Explorer, which can be accessed in both sheets and reports.
When viewing a sheet which contains an actuals number that has been mapped for importing from NetSuite, the user may drill into the number and launch a
NetSuite report which details which transactions comprise that number. To drill into a cell on a sheet, right-click a cell and select the Drill Through to
NetSuite option from the context menu.
When viewing the Cell Explorer window which contains an actuals number that has been mapped for importing from NetSuite, the user may drill into the
number and launch a NetSuite report which details which transactions comprise that number. When a Cell Explorer window is displaying a number which is
available for drilling, a Drill Through to NetSuite link appears in the Cell Explorer in the upper left area of the cell explorer window.
A user must have the Drill Into NetSuite Imported Numbers permission turned on in their permissions in order to access this functionality.
When the NetSuite report is launched, the user will be asked to log into NetSuite if they are not currently logged in and then the report will be run using the
NetSuite credentials provided by the user.
If you are using NetSuite Basic (NetSuite OEM) integration, the following helps you configure NetSuite Categories. Before performing the first import from NetSuite,
users must map the NetSuite categories which are in use in their NetSuite account to the corresponding Adaptive Planning dimensions. In this screen, an
Administrator can specify how NetSuite categories (Subsidiary, Department, Class, Location, Item and Customer) relate to corresponding dimensions in
Adaptive Planning (Account, Level A level within the organization structure, and any custom dimensions).
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 198/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The associations established in this screen can be more sophisticated than a standard one-to-one relationship. Multiple NetSuite categories can be mapped to a
single dimension in Adaptive Planning, or a single NetSuite category can be associated with more than one dimension in Adaptive Planning.
The associations created in this screen are aspects of the NetSuite Integration that will not change frequently. These associations determine the choices that are
presented when mapping category values, either during the import process or through the NetSuite Category Mappings page.
If multiple NetSuite categories are associated with a single Adaptive Planning dimension, the values in those categories are concatenated and mapped at
one time as though they were one category. Example: If Department and Location are both associated with level, then the import mapping screen may have
choices such as Engineering - US or Sales - London.
If a single NetSuite category is associated with two Adaptive Planning dimensions, the mapping appears for both dimensions. Example: If Class is
associated with both Region and Product, then the import mapping screen will display the Class in each dimension, allowing the user to map the Class
Americas: Product A to Americas in the Region dimension and to Product A in the Product dimension.
Note: The NetSuite Categories page is only available to companies that have the NetSuite Integration feature turned on. See Concept: NetSuite Basic Integration.
1. Next to each of the NetSuite categories, select the corresponding Adaptive dimension from the drop-down list. If the NetSuite category is not in use or does
not map to any Adaptive dimension, select N/A. If multiple NetSuite categories map to one Adaptive Planning dimension, select that Adaptive Planning
dimension in multiple drop-down fields. If one Category in NetSuite corresponds with more than one dimension in Adaptive Planning, click the Add link next
to the dimension selection for that category. An additional dimension drop-down list will appear and you can associate another Adaptive Planning dimension
with that category. You can add up to three additional dimension drop-down lists for each category, which means that each category can be associated with
as many as four dimensions.
2. Once you have specified the dimensions in the drop-down list, select Save.
Note: NetSuite is requiring two-factor authentication and token-based authentication for all of its customers. If you don't upgrade your NetSuite integration to token-
based authentication, your connection to NetSuite within Adaptive Planning will fail and your integration won't work. See Prepare for NetSuite 2020.1.
If you are an Adaptive Planning customer who's also a NetSuite customer, you can automate the import of actuals data from your NetSuite accounts into your
Adaptive Planning model using the NetSuite connector. Once the NetSuite connector gets turned on and configured, you can also export budgets from Adaptive
Planning to NetSuite and enable drill through from Adaptive Planning into NetSuite. This method of connecting is also known as NetSuite Basic.
In an Adaptive Planning model, Adaptive Planning users with administrative permissions can grant NetSuite Setup permission to any permission set. Users with that
permission can then set up the NetSuite Connector.
You can integrate using NetSuite Basic using token-based authentication requiring a Consumer Key, Consumer Secret, Token ID and Token Secret you generate in
NetSuite.
Prerequisites
Permissions required in Adaptive Planning: Administrator
Permissions required in NetSuite: NetSuite admin (role id=3)
Obtain your company's NetSuite account ID from within NetSuite by navigating to Setup > Company > Company Information
For Token-Based Access, see Generate token-based authorization keys in NetSuite
Basic Steps
Grant the NetSuite Setup permission in Adaptive Planning and assign that permission set to the user who needs to set up the NetSuite connector
Enter your NetSuite Account ID and the NetSuite System type (production or sandbox) from NetSuite. Log in to Adaptive Planning as the user with the
NetSuite Setup permission and enter NetSuite token-based authentication keys in the NetSuite Integration Setup page.
Set up NetSuite category configuration and mappings in Adaptive Planning before importing from NetSuite the first time.
Import from NetSuite to Adaptive Planning
If needed, export budgets to NetSuite
Navigation
Set Up Integration
Set up the NetSuite integration once for each Adaptive Planning instance.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 199/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: You may need to select Update Import User to unlock the settings. Updating the import user does not delete any mappings or previously imported
actuals.
4. Enter the NetSuite Account ID and select the System Type. If your company purchased the Adaptive Planning for Netsuite bundle in the NetSuite Bundle
Marketplace (recommended), select Enhanced bundle-based drill-through.
Important: If the NetSuite Sandbox Account ends in _SBx (eg. _ SB1 or _ SB2, etc.) System type must be set to Production.
5. Enter authentication details. For Token-Based Authentication enter the NetSuite Consumer Key, Consumer Secret, Token ID, and Token Secret you
generated from NetSuite.
6. Save the setup.
Note: For security purposes, user NetSuite passwords and email addresses are not stored in Adaptive Planning applications.
Adaptive Planning attempts to connect to NetSuite to establish the integration when you click Save. If the connection succeeds, this page confirms the integration
and displays the NetSuite account ID. If the connection fails, the page will display an error message with a description of the issue.
If you do not want to use a NetSuite seat specifically for handling the integration and import process, you can use the following instructions to set up an existing
user with the correct permissions.
1. Create a new role in NetSuite called Adaptive. Give it web-services-only access with these permissions:
Transactions > Find Transactions FULL
Transactions > Set Up Budgets FULL
Lists > Perform Search FULL
Lists > Accounts VIEW
Lists > Classes VIEW
Lists > Customers VIEW
Lists > Departments VIEW
Lists > Items VIEW
Lists > Locations VIEW
Lists > Subsidiaries VIEW
Reports > Balance Sheet VIEW
Reports > Income Statement VIEW
Reports > Financial Statements VIEW
Setup > Accounting Lists EDIT
Setup > Deleted Records FULL
Setup > Login Using Access Tokens FULL
Setup > Manage Accounting Periods VIEW
Setup > SOAP Web Services FULL
Note: Permissions can be renamed in NetSuite. If you don't see a permission from this list, navigate in NetSuite to Setup > Company > Rename
Records/Transactions and check for changed names. Example: Class could have been renamed Classification. Error messages use the original names.
Note: If you are a NetSuite OneWorld customer with multiple subsidiaries, grant the role access to all subsidiaries and check the cross-subsidiary record
viewing permission box. In the Subsidiaries Restrictions section of the role page, set accessible subsidiaries to ALL.
2. Make a note of the role's Internal ID.If the internal ID does not show, navigate to Home > Set Preferences > General > Defaults > Show Internal IDs and
select T.
3. Create a new user in NetSuite called Adaptive Planning Integration and assign this user the Adaptive role.
4. Navigate to Integration > NetSuite Setup in Adaptive Planning.
5. Select Update Import User.
6. Enter the Adaptive Planning Integration user's authorization details. To view the account ID in NetSuite, navigate to Setup > Integration > Web Service
Preferences. The role ID is the Internal ID you noted earlier.
You can restore an integration by re-entering authentication information in the NetSuite Integration Setup page described earlier.
An administrator can specify how NetSuite categories (e.g. Subsidiary, Department, Class, etc.) relate to dimensions in Adaptive Planning (e.g. Account, Level,
etc.). The associations established here let you map:
Mappings determine what choices the person importing gets during the import process or from the NetSuite Category Mappings page. Mappings don't need to
change often, if at all.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 200/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If multiple NetSuite categories are associated with a single Adaptive Planning dimension, the values in those categories get concatenated and mapped as
though they were one category. Example: If Department and Location are both associated with Level, then the import mapping screen will display choices
like Engineering US or Sales London.
If a single NetSuite category is associated with two Adaptive Planning dimensions, the mapping appears for both dimensions. Example: If Class is
associated with both Region and Product, then the import mapping screen will display both dimensions, allowing the user to map Americas: Product A to
Americas in one instance and Americas: Product A to Product A in another.
1. Select the corresponding dimension for each category in the drop-down lists to map NetSuite categories to Adaptive Planning dimensions. The drop-downs
display Account, Level, and any custom dimensions for your model. If multiple NetSuite categories map to one Adaptive Planning dimension, select that
same dimension in the drop-down list for those categories.
2. Select Add next to the drop-down list to associate a category with multiple dimensions. Up to three additional drop-down lists can be added for each
category, for a total of four dimensions assigned to that category.
3. Click Save when you finish.
Export to NetSuite
Administrators can configure Adaptive Integration to export budgets into NetSuite.
Required Permissions
Administration > General Setup > Integration and NetSuite Basic
Administration > Permission Set edit the user who exports and select Export Capabilities and Export Budgets to NetSuite.
1. Set up the NetSuite Category Configuration described earlier if you didn't already.
2. Go to Integration > Export Data.
3. Select NetSuite for the output target.
4. Select the budget category in NetSuite you want to export to.
5. Select one or more fiscal years in NetSuite you want to export to.
6. Select Export.
Drill Through
When you view a sheet in Adaptive Planning or Cell Explorer window containing an actuals number mapped for importing from NetSuite, you can drill down into the
number. This launches a NetSuite report detailing the transactions that comprise the number.
The NetSuite Basic check box in Administration > General Setup enables the Drill into NetSuite Imported Numbers permission you can grant to any
permission set.
The drill behavior depends on whether or not the Adaptive Insights for Netsuite bundle (from the NetSuite Bundle Marketplace) has been installed in your NetSuite
installation. If the bundle has been installed, be sure to go to the NetSuite Integration Setup page and check the Adaptive Insights for Netsuite bundle installed
check box.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 201/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Read more about requirements for drill through to NetSuite here.Without the Adaptive Insights for Netsuite Bundle
If the Adaptive Insights for Netsuite bundle was not installed in NetSuite, the Drill Through to NetSuite option will appear in the right-click menu only when all of
the following are true:
The user has a permission set that includes Drill into NetSuite Imported Numbers.
The NetSuite Integration Setup succeeded and the NetSuite connection is configured.
The right-clicked number belongs to the actuals version.The number is not the result of a formula; it must be either a raw piece of data or a rollup of such
data, and that data was imported from NetSuite.
The number is for a timeslot that maps to at least one NetSuite accounting period.
The number is for an account that is a target of a NetSuite Import Account Mapping.
The number is not in a cube account. (Linked accounts which are linked to cube accounts, but are showing their own actuals numbers, can be drilled
through.)
The number is on a level which fulfills at least one of the following requirements:
The level is the Top Level.
The level is included in the NetSuite Import Organization Mapping.
If the number is on a split, then all dimension values assigned to the split (other than blank or Any values) are included in one or more NetSuite
Import Dimension Mappings.
The number maps to at most one value for each NetSuite category.
To be more specific, the Drill Through to NetSuite option appears in the right-click menu only if all of the following are true:
The user has a permission set that includes Drill into NetSuite Imported Numbers.
The NetSuite Integration Setup succeeded, and the NetSuite connection is configured.
The right-clicked number belongs to the actuals version.
The number is not the result of a formula; it must be either a raw piece of data or a rollup of such data. If a rollup, at least one of the pieces of data in that
rollup must have come from NetSuite, but not necessarily all of them.
The number is for a timeslot that maps to at least one NetSuite accounting period.
The number is for an account that is a target of a NetSuite Import Account Mapping.
The number is not in a cube account. (Linked accounts which are linked to cube accounts, but are showing their own actuals numbers, can be drilled
through.)
The number is on a level which fulfills at least one of the following requirements:
The level is the Top Level.
The level is included in the NetSuite Import Organization Mapping.
If the number is on a split, then all dimension values assigned to the split (other than blank or Any values) are included in one or more NetSuite
Import Dimension Mappings.
The number maps to at least one value for at least one NetSuite category.
If the coordinates being explored or visited were mapped from NetSuite at all, then the Drill Through to NetSuite option shows. A mapping does not need
to be exactly one-to-one.
Drilling on rollups is allowed when at least one of the leaf cells included in the rollup got mapped from NetSuite. Not all cells included in the rollup need
mapping.
Either way, a right-click on an actuals number opens a menu including the choice, Drill Through to NetSuite.
Select Drill Through to NetSuite from the right-click menu to launch a NetSuite transaction report in a new browser window. If you haven't logged in yet to
NetSuite, you get prompted to log in.
After log in, either the NetSuite Profit and Loss Detail report or the NetSuite Balance Sheet Detail report shows up, depending on the selected number. The Profit
and Loss Detail report shows if the drilled number is in a NetSuite account of type Expense, Income, Other Income, Other Expense, Non-Posting, or Cost of Goods
Sold. All other account types launch a Balance Sheet Detail Report.
You can click on anything NetSuite allows and drill into whatever detail NetSuite provides.
Note: If the number being drilled into was changed in Adaptive Planning, it may no longer match what was originally imported from NetSuite. The number in
NetSuite may have changed at some time after it was imported into Adaptive Planning. In these cases, the NetSuite report reflects a different number than the
number you drilled into in Adaptive Planning.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 202/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
OR
c. Within Administration > Permission Set, enable Drill into NetSuite Imported Numbers for those users who need to drill.
Note: The Drill into NetSuite Imported Numbers permission is only available as a choice within P ermission Sets if either Integration: NetSuite
or NetSuite Customer: NetSuite Basic have been enabled within General Setup.
This topic describes how you can enable drill through for actuals data imported using Adaptive Planning integration NetSuite Adapter.
Actuals data that is imported using the NetSuite adapter within Adaptive Planning integration can be made available for drill-through on Planning standard sheets
and the cell explorer within reports. Planning users can click on the drill-through URLs available on standard sheets and reports to navigate back to NetSuite and
view additional transactional information related to the actual value.
Before getting started, ensure the Enhanced bundle-based drill-through checkbox is checked within Adaptive Planning Integration > NetSuite Setup menu.
2. If you have multiple NetSuite categories mapped into the same Planning Dimension, revisit the NetSuite Data Source to add a tuple SQL column for a many-to-
one mapping of the columns.
3. After the above steps, configure a Planning Loader to import NetSuite actuals data.
Refer to the Steps: Set up NetSuite Data Sources article, and the External Systems section of the Steps: Create Planning Data Loaders for full details on
configuring the NetSuite Adapter for Adaptive Planning integration for drill-through.
See: Steps: Set Up NetSuite Data Sources, Steps: Create Planning Data Loaders
You must use v15 + of the Adaptive API if you use a custom calendar. See Set Up Calendars.
Note: With the release of API v15, the online API documentation pages indicate in-line version changes with Supported in API v15+, Supported in API v16+, etc. If a
method is completely new for a version, the version appears in a note at the top of the page. See API Changes by Release for details.
Previous API Versions: API Version 14, API Version 13, API Version 12
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 203/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Adaptive Planning offers a rich API for use by our customers and partners. The API adheres to the principles of RESTful Web Services, providing a lightweight
interface through which users can access and manipulate data within their instance. The API accepts requests in the form of XML documents and returns XML
documents as responses. A small subset of our APIs also use JSON format with GET, POST, PUT, PATCH and DELETE Https requests. This REST API is a full-
featured data interface which allows users or client programs to retrieve data from versions, import data into various sheets, and read information about the
customer metadata such as versions, accounts, organizational levels, and users. Each API call is individually authenticated to ensure that the user invoking the API
call has the permission to perform the action and access the data being requested
A client can invoke an API call by sending an HTTP POST request to the main Adaptive Planning web services endpoint. The endpoint has appended to it a version
number indicating which version of the API is being invoked. The current version of the Adaptive Planning API is v31:
https://api.adaptiveinsights.com/api/v31
API Versions are generally updated when new releases of Adaptive Planning products are published, though not all releases of products will result in a new API
Version. The current version will continue to be supported for at least one year after the release of the subsequent version of the API.
The HTTP POST request will contain post data, which itself will be an XML document. This XML document contains some standard sections that are present on
every API method call and some other sections that are specific to each API method call. The Adaptive Planning server will process the API method call and return
the results as another XML document. Like the request, the response XML document has some sections that are the same for each API method and some sections
that are specific for each API method.
All data retrieval is done in the form of a search. The caller specifies some criteria to match some number of elements, and the server responds with a list of
metadata entities or data that match those criteria. Data creation and updating is done in the form of a bulk upload of data, also submitted via a POST directive.
Security
All API requests are stateless, single-action requests. The user must be authenticated on each separate invocation, so there is no possibility of an intruder
attempting to hijack any existing web service session.
All API requests are encrypted, as they are required to be performed using the https web protocol. The authentication credentials of the user performing the action
are transmitted to Adaptive Planning as part of the body of the web services request. This means that a user's login ID and password are encrypted by the web
layer before they leave the computer generating the web services request, and are only decrypted once received by the target server.
Authenticating a user in an API request does not create a persistent session for this user each separate web service call must authenticate its user separately.
In addition, the web service methods restrict the output of each call to the set of data visible to the user making the request. For example, the exportData web
service method limits the data returned to the data found on the set of levels owned by the calling user.
2021R2
(October 2021)
The following specific APIs now support level, dimension, and attribute codes for display names when:
You enable display names for your instance by contacting Workday Adaptive Planning Account Provisioning.
You call API v30 or higher.
You enable displayNameEnabled per call (see each API documentation page for details).
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 204/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Updated: updateLevels, updateDimensions, updateAttributes requests now accept code and name and continue to use id as the key.
code and name are required when you create dimension values, attribute values, and levels.
Updated: updateLevels, updateDimensions, updateAttributes responses now return name, code, displayName and displayNameType.
Updated: importDimensionMapping requests accept:
id and name for dimension.
id and code for levels and dimension values.
Updated: exportDimensionMapping requests filtering:
keyword value as a partial match on the display name.
level uses code instead of name.
dimensionValue uses code instead of name.
Attribute value refers to code, instead of name.
Updated: exportDimensionMapping responses return id, name, code, display name for levels and dimension values.
Updated: exportLevels, exportDimensions, and exportAttributes responses now return name, code, displayName, displayNameType.
Updated: importStandardData, importCubeData, importConfigurableModelData, and importTransactions request:
Header row Level changes to Level Code.
Header row Account changes to Account Code.
Header row Dimensions change to "<dimension> Code" and "<dimension> Name". "<dimension> Code" is required. "<dimension> Name" is
only allowed when "Data import automatically creates dimension values" is enabled for a dimension.
Localization is supported in the column header for the text "Code", "Name", and "Display Name".
useMappings=false uses code in the system.
useMappings and displayNameEnabled can't be true at the same time.
Updated: exportConfigurableModelData (requires API v31) requests :
level element no longer supports name in API v31+.
level element adds support for code.
modeled-sheet element adds support for includeCodes, includeNames, and includeDisplayNames with true/false options that apply to all
dimension values and levels in the call. At least one of these three options must be true.
Updated: exportConfigurableModelData responses:
Includes columns for "<dimension> Code", "<dimension> Name", and "<dimension> Display Name"
Localization is supported on the column header for the text "Code", "Name", and "Display Name".
Updated: exportData requests:
level element no longer supports name in API v30+.
level element adds support for code.
level will match code in the system.
dimensionValue element no longer supports name in API v30+.
dimensionValue adds support for code.
dimensionValue will match code in the system.
Updated: exportData responses:
Includes columns for "<dimension> Code", "<dimension> Name", and "<dimension> Display Name"
Includes columns for "<level> Code", "<level> Name", and "<level> Display Name"
Localization is supported on the column header for the text "Code", "Name", and "Display Name".
Updated: eraseData requests:
level element no longer supports name in API v30+.
level element adds support for code.
level will match code in the system.
(September 2021)
Updated: importConfigurableModelData, importTransactions, importCubeData, and importStandardData error out when the number of pipe
characters in the header and the data don't match.
Updated: updateAccessRules now requires the Users permission to invoke it, instead of the Admin permission.
Updated: updateAccounts now allows creating a new parent account between an existing parent and its child accounts.
Updated: updateAttributes, updateDimensions, updateLevels no longer support Unicode white space characters within name and shortName. Refer to
https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isWhitespace(char) for disallowed white space characters. A single space is allowed
between words in name and shortName.
2021R1
(May 2021) Introduction of API v29
Updated: updateAccounts requests now allow creating new accounts with dataEntryType=CUBE. Adaptive Planning automatically calculates the
dataEntryType for any non-leaf accounts. If the parent dataEntryType is CUBE, new accounts will default to dataEntryType=CUBE. Otherwise, new
accounts default to dataEntryType=STANDARD. Changes to dataEntryType for non-leaf accounts are ignored.
Updated: UpdateAccounts responses indicate dataEntryType for all leaf accounts as either CUBE or STANDARD.
Updated: exportVersions responses now include isPredictive=true in the version element to indicate predictive versions.
Updated: createUser requests now include alternateEmail and samlFedId. Use alternateEmail to set an alternate email, which we automatically
select as the user's email in the User Details section. Use samlFedId to include the SAML federation ID for the user for single sign-on.
Updated: updateUser requests now include alternateEmail and samlFedId. Use alternateEmail to set an alternate email, which we automatically
select as the user's email in the User Details section. Use samlFedId to include the SAML federation ID for the user for single sign-on.
Updated: exportUsers responses now include alternateEmail and samlFedId.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 205/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Updated: updateAttributes and updateDimensions requests include retainExistingOrder for indicating if the payload order is ignored to maintain the
order Adaptive Planning already uses for hierarchies. If false, the order of the payload determines how Adaptive Planning will order elements.
Updated: updateLevels requests now set the default value of retainExistingOrder to 1.
Updated: updateAccounts requests now set the default value of retainExistingOrder to 1.
Updated: importModeledSheet requests now include requiredColumn for indicating if a dimension value must be provided for users to save the modeled
sheet. You must ask Adaptive Planning support to enable requiredColumn for importModeledSheet requests.
Updated: exportModeledSheet responses now include requiredColumn for indicating if a dimension value must be provided for users to save the modeled
sheet.
Updated: updateAccounts and updateLevels requests include retainExistingOrder for indicating if the payload order is ignored to maintain the order
Adaptive Planning already uses for hierarchies. If false, the order of the payload determines how Adaptive Planning will order elements.
Renamed: For all v26 APIs, permissionSetId replaces roleId with the renaming of Roles and Permissions to Permission Sets in Adaptive Planning.
New: updateAssociations for setting user dimension and level associations. Alternatively sets user level ownership for levels when code is not included in
the Association element.
Removed: roleID is no longer supported in APIs v26 and newer. APIs v25 and older continue to support roleID.
2020R2
(February 2021) Updated: eraseData requests ignore the case of the Accounts and Levels tags.
(December 2020) Updated: updateDimensions request replaces newline characters found in the dimensionValue name of a payload with a blank space.
Preceding or trailing newline characters in the name become spaces that get trimmed during payload processing.
(December 2020) Updated: updateDimensions request now handle multiple renames of the same entity in the same updateDimensions call. This helps
resolve an issue when names swap more than once in a remote system between synchronizations into Adaptive Planning.
Updated: exportData request no longer includes includeRollups. Request includes boolean includeRollupAccounts for account rollups and
includeRollupLevels for level rollups.
Updated: updateLevels request includes publishCurrency for indicating the currency when publishing a Financial Plan to Workday Core Financials.
Updated: exportLevels response includes publishCurrency for indicating the currency when publishing a Financial Plan to Workday Core Financials.
Updated: exportInstances response includes notificationType for indicating Workday tenant notification setting when Adaptive Planning is set up for
Workday.
Updated: exportData request includes stratum for indicating the code of the time stratum for the exported data. When specified, the start and end time
periods must fall within the time stratum. The time stratum must be equal to or greater than the account with the highest time stratum in the request.
Updated: exportData: When includeZeroRows=false, rows with a combination of only blanks and zeroes will not output in the response, even if
markBlanks=true.
New: eraseData for erasing plan and actuals data. Provides the same capabilities as eraseActuals but also includes the ability to erase Plan data, with
additional control over specific account-plan combinations that are targets.
New: updateAccessRules for updating access rules in-bulk by uploading a multipart xml document containing an .xslx formatted for the Access Rules
template.
2020R1
Introduction of API v23
Updated: importConfigurableModelData request includes importKey for indicating the dimension or level to map import rows to the modeled sheet rows
you want to update.
Updated: exportUsers and exportLevels requests can include the boolean groups so that responses include groupIds. GroupIds contain a comma-
separated list of all groups the level or user belongs to. The groups attribute defaults to false.
New: (Available only with sales planning.) exportDimensionMapping export user-defined dimension mapping rules.
New: (Available only with sales planning.) importDimensionMapping update existing user-defined dimension mapping rules.
2019.3
Introduction of API v22
Updated: exportConfigurableModelData request includes the new optional property useNumericIDs to remove the S prefix from split IDs, returning only
numeric values.
If your company transitions to Access Rules for security, exportAccounts, exportActiveCurrencies, exportAttributes, exportDimensions,
exportLevels, exportTime, and exportVersions will only validate on API v22. The response will contain only what the user indicated in the
credentials element has access to.
Updated: updateDimensions includes the new optional properties element for a dimensionValue that can contain up to five property elements. Each
property element includes a name and value. The value must be numeric.
Updated: exportDimensions response includes the new properties element.
Updated: exportSheetDefinition cube sheet response includes the account code and name within the account element.
Updated: exportSheetDefinition cube sheet response includes the dimension name within the dimension element.
Updated: exportSheetDefinition cube sheet response includes the attribute name within the attribute element.
Updated: exportConfigurableModelData request includes the new optional includeAllColumns in the modeled-sheet element so that the response
includes all columns.
Updated: exportConfigurableModelData response now indicates numberOfPages instead of pageCount in the job element.
Updated: exportInstances response now indicates if an instance allows Admin Publishing in the options attribute.
Removed: rootActuals is no longer supported for exportVersions regardless of API version.
2019.2
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 206/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(September 2019) New: exportSecurityAudit returns a report of all security events in a specified time range.
2019.1
Introduction of API v20
Updated: exportInstances includes workdayTenantId, workdayEnvironment, workdayUiUrl, and workdayRestUrl information for instances with
Workday Power of One enabled.
New: updateAccounts for updating/creating accounts in-bulk. Manage accounts and their properties. Allows reparenting of existing accounts.
New: updateAttributes for updating/creating attributes in-bulk. Manage attributes and their attribute values. Allows reparenting of existing attribute values.
Updated: exportAttributes includes the the autoCreate boolean property to indicate if importing dimensions, levels, accounts, or attributes automatically
creates new attribute values not found Adaptive Planning.
Updated: exportInstances includes workdayTenantID, workdayEnvironment, workdayUiUrl, workdayRestUrl for instances with Workday Power of
One enabled.
Removed: Single-entity APIs for createDimension, updateDimension, createDimensionValue, updateDimensionValue, createLevel, and
updateLevel. Use the metadata bulk APIs of updateDimensions and updateLevels for single-entity creation or update in API v20 and beyond.
2018.3
Introduction of API v19
New: updateLevels for updating/creating levels in-bulk. Manage levels and their attribute values. Allows reparenting of existing levels.
New: exportConfigurableModelData for exporting modeled sheet rows.
2018.2
Introduction of API v18
Removed: exportLevels no longer contains inaccessibleLevels attribute in the request. See the new inaccessibleValues.
Removed: exportUsers no longer contains options for hiddenVersions and ownedLevels.
Removed: exportAccounts no longer contains the formula attribute.
New: exportAccounts, exportAttributes, exportDimensions, and exportLevels include the new inaccessibleValues attribute in the request
so that only users with the appropriate permissions can view inaccessible values.
Updated: exportAccounts, exportAttributes, exportDimensions, and exportLevels only show accessible values by default. Only users with
appropriate permissions can view inaccessible values.
Updated: exportAccounts, exportDimensions, and exportLevels include element versionName and versionID attribute in the request call will
only succeed if the user has access to the version.
Updated: exportAccounts the name "GL" is now "GL Accounts" to match how reports named this account.
Updated: exportActiveCurrencies response is now ordered by code.
Updated: exportTime version element option attribute for a single version in the request will only succeed if the user has access to the version.
2018.1
Introduction of API v17
2017.3
Introduction of API v16
Updated: response formats of exportAccounts, createAccount, updatedAccount display the time stratum code of each account in the timeStratum field
Updated: eraseActuals only accepts time periods at the same time stratum as the input account type for API v15 +
Updated: eraseActuals uses the phrasing "time stratum" instead of "granularity"
Updated: request format of importModeledSheet includes optional strata-code
Updated: response format of exportModeledSheet includes optional strata-code
Added: inUse and isDefault property to stratum element in exportTime
Added: optional leafStratumId property to the request format of exportTime
New: API recalculateSheet for recalculating sheets that have the Recalculate on demand property
2017.2
Introduction of API v15
Companies are only upgraded from API v14 to API v15 if they import a custom calendar in the Time Administration UI.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 207/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Removed: calendar-related attributes for exportInstances calendarType, q1FirstMonth, lastMonthIsFY, firstDayOfWeek, periodAlgorithm,
leapWeekPeriod, and extraPeriodQuarter attributes from instance element
Updated: exportTime significantly overhauled
Updated: exportData the behavior of start and end attributes use time period codes instead of MMM-YYYY date strings.
Updated: exportData output date headers changed to time period codes.
Updated: exportVersions to replace attributes startVerFY, completedValuesThruYr, completedValuesThruMon, completedValuesThruPer,
startScrollYr, startScrollMon, startScrollPer, endVerFY, lockLeadingYr, lockLeadingMon, lockLeadingPer, leftScrollFY,
startPlanYr, startPlanMon, startPlanPer, endPlanFY with startVer, endVer, startScroll, completedValuesThru, leftScroll,
startPlan, endPlan, lockLeading
Updated: importStandardData, importConfigurableModelData, importCubeData accept time period codes instead of MMM-YYYY date strings
Updated: exportLevels modified the format of the availableStart and availableEnd attributes output time period codes instead of MMM-YYYY date
strings.
Updated: eraseActuals behavior of attributes start and end to use time period codes instead of MMM-YYYY date strings
New: API exportLocales for exporting the locales from the Time Administration UI.
2017.1
Introduction of API v14
2016.3
Introduction of API v13
2016.2
Introduction of API v12
Updated: importCubeData, importStandardData, importConfigurableData, importTransactions context information that is part of their error
messages can be disabled using the attribute includeContext.
2016.1
Introduction of API v11
API Methods
The following methods are supported in the Adaptive Planning API:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 208/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
You can include internal ids in an API Request to obtain metadata for the create, update, and read methods. When you make requests for these methods, use the
associated Export API calls to get the IDs your request requires. The Requests for all the APIs in the table below require a credentials element.
Example
You must pass the Dimension ID to update a dimension in the updateDimensions API Request. You can pass the Dimension ID "7" to update the dimension "
Education".
<dimensions>
<dimension id="7" name="Education" shortName="" autoCreate="0" listDimension="1" keepSorted="0" useOnLevels="0">
--------------------------
</dimension>
</dimensions>
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 209/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<response success="true">
<output>
<dimensions>
<dimension id="7" name="Education" shortName="" autoCreate="0" listDimension="0" keepSorted="0" useOnLevels="1" seqNo="35">
--------------------------------------------
</dimension>
</output>
</response>
exportAccounts Account ID and Account attribute ID List of all accounts, including all account types: Assumptions,
Cube Accounts, Custom Accounts, GL Accounts, Metric
Account Ids can be used to identify accounts in other API
Accounts, and Modeled Accounts.
calls, such as exportDimensionFamilies.
exportAttributes Attribute ID and attributeValue element ID List of all attributes in the system.
exportGroups User group Id and user Id who owns this user group (only List of all groups defined for the given instance. This includes
set when isGlobal="false"). those groups defined for global across the whole instance and
those groups defined by users.
Available in API v25+. This is used to identify the permission set assigned to a
user in the exportUsers API call.
Available in API v25 and This is used to identify the role assigned to a user in the
earlier. exportUsers API call.
exportSheets List of all sheets defined for the given instance. This includes
Sheet ID (can be standard , cube and modeled sheet
"incomplete" sheets as well as user-assigned sheets.
elements)
exportTime Initial balance time period ID Time metadata either for a specific version, or for all versions
if none is specified.
exportTransactionDefinition IDs for dimension, text-selector and value elements. The definition (available columns) of the transactions in the
instance.
exportUsers User ID and the role ID assigned to this user List of all users in the instance.
All IDs are unique among all versions, sub-versions, and after verification.
folders.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 210/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Some links in this article go to the Workday Community. If you don't have a Community account, request one.
Workday-synchronized users who log in to Workday and use the Adaptive Planning Worklet can run Adaptive Planning public APIs. Users must create an ISU
specifically for making these API requests. These users must provide a token in the credentials element of Adaptive Planning API requests instead of a
username and password. You can cache this token and use it until it expires. After it expires, you must get a new token.
Prerequisites
Workday Domain and Security Groups
Verify the ISU users who need API access are part of the Set Up: Adaptive Planning API Access security domain.
Verify that Single Sign-On tasks are enabled within the User Sign-on tab in the Adaptive Planning tab.
Verify the Public API setup task is enabled within the Public API tab in the Adaptive Planning tab.
Verify an integration system user (ISU) setup task created an ISU specifically for making Workday Adaptive Planning API requests and mapped it to an
Adaptive Planning user account.
Verify you see the ISU beginning with PublicAPIISU_ in the users list within Administration > Users.
Verify this user has the level access needed for the APIs they want to run. New ISUs don't receive level access by default.
Steps
1. Get a Certificate and Extract your Public Key.
2. Register an API Client in Workday with that certificate.
3. Generate a JWT Token, Retrieve Workday access_token, and Retrieve AdaptiveAPIAccessToken.
4. Use the AdaptiveAPIAccessToken in an Adaptive Planning API Request.
1. Extract the public key from your certificate for uploading to Workday.
2. Retain your private key for use in your calling application.
3. Paste the certificate into Workday when registering your JWT bearer token. Reference your private key in your script.
See OAuth with JWT (JSON Web Token) and Access External Endpoints.
https://i-0b73e720dd1d2a041.workdaysuv.com/ccx/oauth2/super/token
3. Retrieve the AdaptiveAPIAccessToken by calling the Workday endpoint using the Workday access token. Use the prior access_token value as the Bearer
token in the Auth header for this GET. Example Access Token:
https://i-0b73e720dd1d2a041.workdaysuv.com/ccx/api/planning/v1/super/adaptiveAPIAccessToken
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 211/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
4. Call the Adaptive Planning API using the AdaptiveAPIAccessToken in the credentials element of the XML in an HTTP POST . Example:
curl -H "Content-Type: text/xml" -d '<?xml version='1.0' encoding='UTF-8'?><call method="exportLevels" callerName="a string that identifies your client app
//**********************************************************************
//
// File: TestPublicAPISample.java
//
// Copyright 2004-2019 Workday Adaptive Planning.
// All Rights Reserved.
//
// This work contains trade secrets and confidential material of
// Workday Adaptive Planning and its use or disclosure in whole or in part
// without the express written permission of Workday Adaptive Planning is prohibited.
//
//**********************************************************************
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Signature;
import java.text.MessageFormat;
//import java.util.Base64;
import org.apache.commons.codec.binary.Base64;
System.out.println(GetAccessToken(clientIDString,userIdString,jwtKeyStoreFileString));
}
try {
StringBuffer token = new StringBuffer();
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 212/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
This sample code requires a NuGet page. Required NuGet package: System.IdentityModel.Tokens.Jwt
var signingCredentials = new X509SigningCredentials(new X509Certificate2(pfxFilePath, pfxPassword), SecurityAlgorithms.RsaSha256); // the matching PKC
var jwtHeader = new JwtHeader(signingCredentials);
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 213/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. This line indicates that the subsequent data is XML encoded in UTF-8.
2. The <call> tag indicates which API method is being called using its method attribute. In this example, the API method is exportData. In addition, callerName
is a required attribute on the <call> tag. It identifies your client application to the system and is used for identification purposes when troubleshooting and
logging.
3. Every API method needs to authenticate the user making the call. This is typically done by providing a login name and password. Other attributes are
allowed to be specified here. See the documentation for each API function for more details on credentials.
4. Some API methods require additional data in the request. For example, the exportData method requires some criteria describing which time periods,
accounts, levels, etc, should be used when retrieving its data. This portion of the request will vary from method to method.
5. This is the closing tag for the call tag on line 2.
The Response
Every response from an API method will have the following structure:
1. Similar to the request, this line indicates the subsequent data is formatted as XML and encoded in UTF-8.
2. Each response is enclosed in a <response> tag. If the request was successful, the success attribute on the response tag is set to true. If the request was
unsuccessful, the success attribute is set to false.
3. Many API calls will return this optional <messages> block containing a list of server-generated messages. This block may not appear if the server had no
messages to return in response to the call. Error messages will always appear within the messages block.
4. Each message within the messages block has a key attribute identifying the type of message being transmitted. The message tag also contains the text of
the message from the server, including any return values, status values, or other standalone metadata about the success or failure of the request. A
response may contain an unlimited number of message tags.
5. The closing messages tag.
6. The actual output from the API method call, if any is returned, is enclosed in an <output> tag.
7. The actual output from the API method call will appear here. This output varies depending upon which method was called.
8. The closing output tag.
9. The closing response tag.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 214/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.4.3.1 | createAccount
Description Create an account in the system. This API either returns an error message when validation or creation fails, or it returns metadata for the
created account upon success. This API supports only the following account types: Assumption, GL Account, and Custom Account. It does
not support system or linked accounts.
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model or Assumptions permission to perform the account
creation. The XML request is validated for each field and against certain business logic. Error messages are returned as part of the response when the creation
fails. The operation may be halted and a warning message provided when a risky operation (one that would potentially have unexpected side effects on other
accounts or data) is detected; in which case, the request needs to be resubmitted with the attribute "ignoreWarnings" set to 1 in order to complete the account
creation.
Request Format
The request schema is provided in the Relax NG Compact format.
start =
element account {
attribute parentId { xsd:integer }, #id of the parent account the new account should roll up to
attribute name { xsd:string { maxLength="2048" minLength="1"} }, #Non-empty string with a maximum length of 2048 characters.
attribute isGroup { string "0" | string "1" }, #0=No, 1=Yes
attribute code { xsd:string { maxLength="2048"} }, #String with a maximum length of 2048 characters.
attribute description { xsd:string { maxLength="2048"} }?, #Potentially empty string with a maximum length of 2048 characters.
attribute shortName { xsd:string { maxLength="64"} }?, #Potentially empty string with a maximum length of 64 characters.
attribute exchangeRateType { xsd:string }?, #displayAs must be CURRENCY (only if multicurrency is enabled)
attribute hasSalaryDetail { string "0" | string "1" }?, #0=No, 1=Yes
attribute dataPrivacy { string "PRIVATE" | string "PUBLIC_TOP" | string "PUBLIC_ALL" }?,
attribute isBreakbackEligible { string "0" | string "1" }?, #0=No, 1=Yes
attribute proceedWithWarnings { string "0" | string "1" }?, #0=No, 1=Yes
element attributes{
element attribute{
attribute attributeId{ xsd:integer },
attribute valueId{ xsd:integer }
}*
}?
}
Example
credentials element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 215/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
account element
parentId Y The internal system ID number for the account's roll-up-to account. 16
name Y The name of the account, as it appears on reports and sheets. Current
Assets
code N The code of the account, alphanumeric characters and underscores only. Must be empty or not Cur_Assets
supplied if creating an account group.
description N The textual description of the account. Defaults to empty string. Total
current
assets
shortName N The short name for the account. Defaults to empty string. CA
exchangeRateType N Only present for instances with multicurrency enabled and for accounts with E
displayAs="CURRENCY". Possible values: any of the exchange rate type codes present in the
instance, as configured in Manage Currencies. "A"=Monthly Average, "E"=End of Month. Inherits
from parent if not set. If multicurrency is disabled or parent doesn't have an exchangeRateType, this
defaults to E for cumulative accounts and A for everything else.
hasSalaryDetail N Viewing splits of account requires salary detail permission. 0 for no, 1 for yes. Inherits from parent if 1
not set, or if parent does not have hasSalaryDetail, this default to 0.
dataPrivacy N Choose whether the value of account is private (PRIVATE), public at top level only (PUBLIC_TOP) PRIVATE
or public at all levels (PUBLIC_ALL). This defaults to PRIVATE.
isBreakbackEligible N Available as a weighting choice in breakback. 0 for no, 1 for yes. Applicable only for assumptions. 0
This defaults to 0.
proceedWithWarnings N Indicates whether the user wants to ignore warning messages and go ahead with the create 1
operation. 0 for no, 1 for yes. If there are warnings and proceedWithWarnings=0, then the account
will not be created. Set proceedWithWarnings=1 to create the account when there are warnings.
One optional attributes element if you want to add one or more account attributes associated with the account.
attributes element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 216/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
attribute element
attributeID Y The ID of the account attribute that was generated by the system. 20
valueID Y The unique ID of the account attribute value that was generated by the system. If this value is 0, then this 170
attribute will be removed from the account.
none
Response Format
These are examples of responses for successful and unsuccessful creating of an account.
Success Example
Error Example
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 217/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
type Y Type is a way to identify the type of message. The different types are INFO, WARNING and ERROR. Type WARNING
ERROR means that this request was not processed.
key Y A key is a way to identify a particular message or type of message, useful for purposes of automated error logging warning-
and recovery in client programs. Keys do not change under different locales of requests, even when the language invalid-
of the message changes. Keys also are unlikely to change in the future due to wording adjustments or timespan-
terminology changes. start
values N When given, the values represent variables used in the message text. 199,12
parentId N When available, the ID of the new account's parent that was supplied in the request. 50
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value that caused an error.
accounts element
(none)
account element
Description Represents a single account being returned in the response to an exportAccounts API call. If this element is directly
within the enclosing accounts element of the response (that is, it is not enclosed within another account element),
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 218/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
this account element represents a root account, an account which has no parent.
name Y The name of the account, as it appears on reports and sheets. Current Assets
code Y The code of the account, as it appears when referenced in formulas. Cur_Assets
id N The internal system ID number for the account. This can be used to identify accounts in 16
other API calls, such as exportDimensionFamilies.
accountTypeCode N The letter code corresponding to the data type of this account.
A Asset GL
B Current Asset GL
EN YTD Earnings/Loss GL
F Fixed Asset GL
I Income GL
J Non-Operating Income GL
L Liability GL
M Current Liability GL
MT Metric Metric
N Net Income GL
O Other Asset GL
Q Equity GL
S Assumption Assumption
W Modeled Modeled
X Expense GL
Y Non-Operating Expenses GL
Z Custom Custom
description N The textual description of the account, if any, as entered in Account Administration Total current assets
shortName N The short name for the account, if any, as entered in Account Administration CA
N The time stratum of the account, as the code of the time stratum. For Cube accounts, Month
timeStratum
Modeled accounts, and cube-entered GL accounts, the time stratum is determined by
Supported in API v16 the time stratum of their owning sheet. All other accounts use the default time stratum
displayAs N The account's output display setting: NUMBER, CURRENCY, or PERCENT. Only NUMBER
provided for accounts that have a Display As property in Account Administration.
isAssumption N Either "0" or "1", indicating whether the account is an assumption. This is set to 1 for 1
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 219/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
suppressZeroes N Flag indicating whether the account allows users to suppress zeroes on sheets or not. 0 1
is disallowed, 1 is allowed. Only provided for accounts that have a Suppress Zeroes
property in Account Administration.
isDefaultRoot N Either "0" or "1", indicating whether the account or account group is a default root. 1
decimalPrecision N Number of decimal places to display for numbers in this account. Default is 0. The 0
special value of 99 is used to indicate a Linked Account that inherits the decimal
precision of its target. A value of -1 means the account is a currency account and uses
the precision of whichever currency it is displaying.
planBy N For Cumulative accounts, indicates whether the account is plan by balance (BALANCE) BALANCE
or plan by delta (DELTA).
exchangeRateType N Only present for accounts with displayAs="CURERENCY". Possible values: any of the E
exchange rate type codes present in the instance, as configured in Manage Currencies.
"A"=Monthly Average, "E"=End of Month.
isImportable N 1
Indicates whether the account is able to accept imported data. 0 means the account is
not importable and 1 is importable. Only present if versionName or versionId is
specified in the request.
Note: isImportable only indicates that an account is available for import in the specified
version, not that the user making the API call has the permission to import into the
version or account. Use exportVersions to see which versions are available to the user
for import.
balanceType N Indicates the balance type of an account, DEBIT or CREDIT. This attribute is empty if DEBIT
the account does not have an associated balance type. Only GL accounts have a
balance type.
dataEntryType N Indicates the data entry type of an account. Either STANDARD or CUBE. A blank value CUBE
indicates that data entry type is not applicable to an account. For example, a linked
account or a modeled account will have a blank data entry type.
timeRollUp N Indicates how the account behaves when rolled up over a time period. Can be SUM, SUM
WEIGHTED_AVERAGE, LAST, or AVERAGE. This will be empty for account groups
and metric accounts.
timeWeightAcctId N If this account has a timeRollup of WEIGHTED_AVERAGE, this will be the internal 133
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account does not have a timeRollup of
WEIGHTED_AVERAGE .
hasSalaryDetail N Either 0 or 1 to indicate whether this account has splits that require the Access Salary 1
Detail permission to be viewed. This will be empty if not applicable to this account.
dataPrivacy N Indicates which levels the account's values are public on and able to be referenced in PRIVATE
other levels when writing formulas. Can be PRIVATE so that the account's values are
private, PUBLIC_TOP so that the account's values are public at only the top level, or
PUBLIC_ALL so that the account's values are public at all levels. Assumptions do not
have a dataPrivacy setting since they are always public.
subType N Indicates whether the account is PERIODIC or CUMULATIVE. If an account is periodic, PERIODIC
its value in a given month equals the net activity for the month. Examples include
revenue and expense accounts. If an account is cumulative, its value equals the ending
balance for a given month. This is the prior month's value plus or minus any activity in
the given month. Balance sheet accounts are cumulative. This will be empty for account
groups and metric accounts.
startExpanded N This indicates whether an account and its children start out in an expanded state when 1
first loading a sheet. This applies only for parent accounts. This will be empty for leaf
accounts.
isBreakbackEligible N Either 0 or 1 to indicate whether this account can be used in a breakback. This applies 0
only to standard assumptions. This will be empty for other types of accounts.
levelDimRollup N Indicates how the account behaves when rolled up along a level or dimension. Can be NONBLANK_AVERAGE
SUM, WEIGHTED_AVERAGE, TEXT, or NONBLANK_AVERAGE. This will be empty
for account groups and metric accounts.
levelDimWeightAcctId N If this account has a levelDimRollup of WEIGHTED_AVERAGE, this will be the internal 118
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account's levelDimRollup is not
WEIGHTED_AVERAGE .
rollupText N If this account has a levelDimRollup of TEXT, then this is the text string that will show None
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 220/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
enableActuals N 0 to show only plan data for the account. 1 to import actuals into the account. For linked 1
accounts, 0 will show actuals only if the linked account has them, and 1 will enable
actuals for the linked account. This will be empty for account groups and metric
accounts.
owningSheetId N For accounts that can be on modeled and cube sheets, the internal system id number 17
of the sheet that this account is on. This will be empty if it is not such an account, or if it
is such an account but is not currently assigned to a sheet.
One nested account element for each direct child account of this account.
One attributes element if account has one or more attributes associated with it.
attributes element
(none)
attribute element
Description Represents a single non-blank account attribute mapping to which an account is associated.
value Y The name of the account attribute associated with the account. Yes
valueId Y The internal system ID number of the account attribute value. 108
None.
1.4.3.2 | createDimension
Description Create a dimension. If successful, the API returns details for the dimension that has just been created.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 221/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model permission to create the dimension.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as this user (any
audit trail or history of actions in the system will show that this user performed the action), and therefore the user must have the required
permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
dimension element
name Y The name of the dimension. The name must be unique. NewDimensionName
listDimension N "1" means this is a list dimension, "0" (or not specified) means it isn't. 0
useOnLevels N "1" means this dimension can be used on levels, "0" (or not specified) means it can't 0
autoCreate N "1" means values for this dimension can be created via the import, "0" (or not specified) 0
means they can't.
keepSorted N "1" means values for this dimension are always sorted alphabetically, "0" (or not specified) 0
means they can be manually ordered.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 222/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<dimensions>
<dimension id="41" name="New Dimension Name" shortName="" autoCreate="0" listDimension="0"
keepSorted="0" useOnLevels="0">
</dimension>
</dimensions>
</output>
</response>
Dimensions element
(none)
dimension element
Description Represents a single custom dimension being returned in the response to an exportDimensions API call
id Y The internal system ID number for the dimension. This can be used to identify dimensions in other API calls, 16
such as exportDimensionFamilies
name Y The name of the dimension, as it appears on reports and sheets. Customer
shortName N The short name for the dimension, if any, as entered in Dimension Administration cust.
autoCreate Y 1 if the selected dimension has the "Data import automatically creates dimension values" field set; 0 otherwise. 0
Zero or more dimensionValue elements. Each enclosed dimensionValue element represents a "root dimension value" in the dimension, a value which has no
parent value.
1.4.3.3 | createDimensionValue
Description Create a dimension value. If successful, the API returns details for the dimension and all dimension values including the one
that has just been created.
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model permission to create the dimension. This method
returns an error if there are unpublished changes.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 223/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<dimensionValue
dimensionId="10"
name="New Dimension Value">
<attributes>
<attribute attributeId="20" valueId="170" />
</attributes>
</dimensionValue>
</call>
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as this user (any
audit trail or history of actions in the system will show that this user performed the action), and therefore the user must have the required
permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
dimensionValue element
parentId N The id of the parent dimension value. Either dimensionId or parentId must be 220
specified.
(none)
attributes element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 224/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
attributes element
valueID Y The unique id of the dimension attribute value generated by system. If this value is 0 then this attribute is 170
removed from the account.
(none)
Response Format
These are examples of responses for successful and unsuccessful creating of a dimension value.
Success Example
Error Example
response element
Tag response
Name
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 225/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
dimensions element
(none)
dimension element
Description Represents a single custom dimension being returned in the response to an exportDimensions API call.
id Y The internal system ID number for the dimension. This can be used to identify dimensions in other API calls, 16
such as exportDimensionFamilies.
name Y The name of the dimension, as it appears on reports and sheets Customer
shortName N The short name for the dimension, if any, as entered in Dimension Administration cust.
autoCreate Y 1 if the selected dimension has the "Data import automatically creates dimension values" field set; 0 otherwise 0
Zero or more dimensionValue elements. Each enclosed dimensionValue element represents a "root dimension value" in the dimension, a value which has no
parent value
dimensionValue element
Description Represents a single member value of a custom dimension being returned in the response to an exportDimensions API call.
id Y The internal system ID number for this member value of the dimension. 34
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 226/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
name Y The label for the member value of the dimension, as displayed on reports and used in formulas. A Corp
shortName N The short name for the dimension value, if any, as entered in Dimension Administration A
description N The description of the dimension value, if any, as entered in Dimension Administration A Corporation
Zero or more optional dimensionValue elements. Each enclosed dimensionValue element represents a "child dimension value" of this dimension value, whose
members implicitly roll up to this value
attributes element
valueID Y The unique id of the dimension attribute value generated by system. 170
(none)
1.4.3.4 | createLevel
Description Create a level. If successful, the API returns details for the level that has just been created.
This method's request contains a credentials tag to identify and authorize the calling user. User must have Organization Structure permission to create the level.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 227/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Name
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
level element
name Y The name of the level. The name must be unique. New Level
Name
proceed- N Indicates whether the user wants to ignore warning messages and go ahead with the create operation. 0 for no, 1 for 1
WithWarnings yes. If there are warnings and proceedWithWarnings=0, then the level will not be created. Set
proceedWithWarnings=1 to create the level when there are warnings.
One optional attributes element if you want to set one or more level attributes associated with the level.
attributes element
(none)
attribute element
valueID Y The unique id of the level attribute value generated by system. If this value is 0 then this attribute is removed 170
from the account.
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 228/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Response Format
output element
(none)
A single required level element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
levels element
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
level element
Description Represents a single organization level being returned in the response to an exportLevels API call.
name Y The name of the level, as it appears on reports and sheets. Development
currency Y The currency code for the currency assigned to this level of the organization. The currency will be one of INR
the configured currencies for the instance, found in the exportActiveCurrencies call.
shortName N The abbreviation for the level, if any, as entered in Organization Administration. Dev
availableStart N The start date for the availability of the level for actuals verion, applicable only when the Actuals version is 01/2013
specified in the request. The value can be either a specific month, in the format "MM/YYYY", or the
special value "START" indicating the start of the version.
availableEnd N The end date for the availability of the level for actuals verion, applicable only when the Actuals version is 12/2013
specified in the request. The value can be either a specific month, in the format "MM/YYYY", or the
special value "END" indicating the end of the version.
isImportable N 1
Indicates if the associated level is importable in the specified version. '0' means it is not importable and '1'
means it is importable. A level is importable if at least one timeslot in the specified version is importable.
isImportable attribute is only emitted if versionName or versionID is specified in the request.
Note: isImportable only indicates that a level is available for import in the specified version, not that the
user making the API call has the permission to import into the version or level. Use exportVersions to see
which versions are available to the user for import.
workflowStatus N Emits the workflow status for the associated level. I for "In Progress", S for "Submitted", R for "Rejected", I
A for "Approved" and L for "Locked". Only included in the response if workflow is enabled for this
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 229/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
company, and a planning versionName or versionID is specified in the request. Workflow is not available
on actuals versions.
isLinked Y Indicates whether the level is a linked level. 0 for no, 1 for yes. 1
isElimination Y Indicates whether the level is an elimination level. 0 for no, 1 for yes. 0
One nested level element for each direct child level of this level. One attributes element if this level has one or more attributes associated with it.
attributes element
(none)
attribute element
Description Represents a single non-blank level attribute mapping to which a level is associated.
value Y The value of the level attribute associated with the level. Yes
valueID Y The internal system id number of the level attribute value. 188
(none)
1.4.3.5 | createUser
Description Create one or more users. If successful, the API will return a message for the user that has just been created. Supports creating
no more than 1000 users in a single request.
This method's request contains a credentials tag to identify and authorize the calling user. User must have "User Permission" permission to create the user(s).
Important: This method does not function following user synchronization from Workday.
Request Format
<user
email="[email protected]"
name="new guy"
password="new Password"
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 230/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
alternateEmail="[email protected]"
samlFedId= "1234"
permissionSetId="1"
ownedLevels="2,3,7,11"
timeZone="America/Mexico_City"
/> </users>
</call>
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
users element
Contains one or more user elements. Supports creating no more than 1000 users in a single request.
user element
email Y The email address for this user. Uniqueness is required. The only allowed characters are [email protected]
a-z, A-Z, 0-9, - and .
password Y The password of this user. If SAML SSO is configured with Workday, then password is newpassword
optional for the new user.
N The alternate email address for this user. We automatically select this option and [email protected]
alternateEmail
populate with the email ID of the user in the User Details section.
Available in API
v27
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 231/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
samlFedId [email protected]
Available in API
v27
Available in API
v25+
N The internal system ID of the role assigned to this user. There is no default. (The roleId 3
roleId
attribute is also covered in the exportRoles API.)
Available in API
v25 and earlier
ownedLevels N The internal system ID for the levels separated by comma. There is no default. (The 5,10,13
ownedLevels attribute is also covered in the exportLevels API.)
timeZone N The time zone of the user. If none is specified, it defaults to US/Pacific. US/Pacific
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
A single result element with created_user or updated_user status elements depending on whether a createUser or updateUser call was made, respectively.
result element
(none)
One or more created_user or updated_user status elements depending on whether a createUser or updateUser call was made, respectively.
created_users element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 232/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Represents a message sent from the system back to the caller.
user success Y The status returned by the call. Can be true or false. true
1.4.3.6 | customReportValues
Description Returns a set of data for the requested report criteria in the requested instance.
Permissions Required To Invoke None (user must have a permission set assigned)
Note: For API Version 15 and newer, call exportTime to retrieve the correct time element IDs.
This method's request contains a specification for a report that can be used to search data and return values. The API takes internal id numbers as inputs.
Metadata retrieval APIs can be called to get valid ids. The results are represented by coords and values. The response also returns warnings and error messages if
applicable.
This API is based on the matrix reports. The request requires that the caller specify elements on an X-axis (columns), Y-axis (rows), and on an optional filter axis
used to filter all data retrieved by the API. Matrix reports contain axes that determine which data appears on the report. Each axis defines an edge of the report. All
matrix reports have three axes:
the X axis (the top edge). It defines the set of columns on the report.
the Y axis (the left edge). It defines the set of rows on a report
the filter axis, a global axis that defines properties that apply to all data on the report. See the filter axis examples for more.
An axis can be divided into multiple segments. A segment is a way of separating sets of dimensions on a single axis. The filter axis can only have one segment, but
the other two axes can have as many segments as you wish.
Each segment can have an unlimited number of tiers. A tier represents a single logical dimension used to describe which elements of that dimension apply to the
rows or columns under it. A segment can only contain at most one tier per logical dimension.
Each tier can contain one or more elements of the tier's dimension. (All elements in the tier must belong to the dimension specified in the tier.) An element is usually
an item in the dimension, such as a particular account in the account dimension, or a fiscal quarter in the time dimension. These elements are then used by the
system to select and aggregate the data found on the report.
When a segment on the X or Y axis contains multiple tiers, the elements of each tier are combined with all the elements of all the other tiers to form the Cartesian
product of all possible combinations of tier elements. Each column or row represents one possible combination of elements, selecting one element from each tier.
For example, if a segment on the X axis--the columns along the top--contains a tier with five elements and a second tier with two elements, the segment will result
in ten separate columns, representing all possible combinations of the elements on the tiers. You cannot place an element type on multiple axes. For example, if
you place the account element type on rows, you cannot then add accounts on columns or filters.
A tier can have both individual elements or rollup elements. Rollup elements arbitrarily rollup all elements specified under them. Rollup elements are not allowed in
the filter.
The filter axis behaves very similarly to the X and Y axes, but it has one slight difference: because the filter axis applies to all data in the report, it cannot combine its
tiers to form multiple rows or columns. Instead, the filter axis combines all elements of each tier, aggregating the data from all elements together as though those
elements were rolling up to a single aggregation.
See matrix reports for more information on segments, axes, and dimensional elements.
<axis type="FILTER">
<segment>
<!-- Account filter -->
<tier type="acct">
<el id="258" />
</tier>
<!-- Time filter -->
<tier type="time">
<el id="342" />
</tier>
<!-- Level filter -->
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 233/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<tier type="lvl">
<el id="354" />
</tier>
<!-- Version filter -->
<tier type="ver">
<el id="385" />
</tier>
<!-- Currency filter -->
<tier type="cur">
<el id="448" />
</tier>
<!-- Account Attribute filter -->
<tier entity-id="23" type="aAttr">
<el id="512" />
</tier>
<!-- Level Attribute filter -->
<tier entity-id="25" type="lAttr">
<el id="607" />
</tier>
<!-- Dimension Attribute filter -->
<tier entity-id="21" type="dAttr">
<el id="649" />
</tier>
<!-- Dimension filter -->
<tier entity-id="1" type="dim">
<el id="717" />
</tier>
</segment>
</axis>
Request Format
The XML schema for the request can be found here: customReportValues REST Specification.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 234/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</report>
</call>
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
report
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
report element
suppress- N Specifying this attribute suppresses data in different ways. The valid values for this attribute are 0, 1, 2. 0=Nothing 0
zeroes suppressed, 1=Suppress blank cells but not zeroes, 2=Suppress blank and zero cells(Default). A cell is considered
blank if the cell explorer value for that cell is empty. Cells that roll up to an empty text value are not considered
blank.
show- N When given, this attribute either shows or hides cell notes. 0=Don't show cell notes(default), 1=show cell notes 1
cell-notes
suppress- N When given, this attribute either shows or hides rollup rows and columns.Rollup rows and columns are suppressed 1
rollups only for those parents whose children are present on the report. Valid values are 0 (Don't suppress rollups), or 1
(Suppress rollups). The default value is 0.
(none)
Response Format
The XML schema for the response can be found in customReportValues REST Specification.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 235/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</messages>
<!-- Global filters. Although the request did not supply any filters, defaults are used when dimension types are not
specified. Reporting against version with id 2 which is the current version. Level with id 1 is the top most level this user
has access to. -->
<filters>
<coords>
<coord type="ver" rollup="1">
<el id="2" />
</coord>
<coord type="lvl" rollup="1">
<el id="1" />
</coord>
</coords>
</filters>
<!-- Only two time columns Dec-2014 and Jan-2015 have data, all other columns have been removed -->
<cols>
<col id="1">
<coords>
<coord type="time">
<el id="179001" />
</coord>
</coords>
</col>
<col id="2">
<coords>
<coord type="time">
<el id="180001" />
</coord>
</coords>
</col>
</cols>
<rows>
<row>
<!-- Row coordinates are account with id 51 and dimension value with id of 135 from dimension with id of 13 -->
<coords>
<coord type="acct">
<el id="51" />
</coord>
<coord type="dim" entity-id="13">
<el id="135" />
</coord>
</coords>
<cell value="2.345" col="1" /> <!-- This value's coordinates are the row coordinates listed above, matches column position 1 and the global filters
<cell value="2.345" col="2" /> <!-- This value's coordinates are the row coordinates listed above, matches column position 2 and the global filters
</row>
<row>
<!-- Row coordinates are account with id 53 and dimension value with id of 135 from dimension with id of 13 -->
<coords>
<coord type="acct">
<el id="53" />
</coord>
<coord type="dim" entity-id="13">
<el id="135" />
</coord>
</coords>
<cell value="5.34" col="1" /> <!-- This value's coordinates are the row coordinates listed above, matches column position 1 and the global filters
<cell value="7.44" col="2" /> <!-- This value's coordinates are the row coordinates listed above, matches column position 2 and the global filters
</row>
</rows>
</report>
</output>
</response>
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 236/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
type Y Type is a way to identify the type of message. The different types are INFO, WARNING and ERROR. Type WARNING
"ERROR" means that this request was not processed.
key Y A key is a way to identify a particular message or type of message, useful for purposes of auto- mated error warning-
logging and recovery in client pro- grams. Keys do not change under different locales of requests, even when the invalid-
language of the message changes. Keys also are unlikely to change in the future due to wording adjustments or time-
terminology changes. span-start
values N When given, the values represents variables that are used in the message text. 199,12
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
output element
Description
(none)
Request
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 237/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<segment>
<tier entity-id="2" type="dim">
<el id="8" />
</tier>
<tier entity-id="22" type="lAttr">
<el id="0" />
</tier>
<tier type="ver">
<el id="2" />
</tier>
<tier type="lvl">
<el id="2" />
</tier>
<tier type="time">
<el complex-type="timespan" end="227001" show-time="1,2,3" />
<el complex-type="ptd" as-of="207001" stratum-id="3"/>
<el complex-type="ptd" as-of="207001" stratum-id="2"/>
<el id="17003" />
<el id="69002" />
<el id="210001" />
</tier>
</segment>
</axis>
<axis type="Y">
<segment>
<tier entity-id="11" type="dim">
<el id="34" />
</tier>
<tier entity-id="18" type="aAttr">
<el id="14" />
</tier>
<tier entity-id="29" type="dAttr" >
<el id="87" />
</tier>
<tier type="cur">
<el id="6600" />
</tier>
<tier type="acct">
<el id="1" />
</tier>
</segment>
</axis>
</report>
</call>
start =
element call {
attribute callerName { text },
attribute method { "customReportValues" },
element credentials {
attribute instanceCode { text },
attribute login { text },
attribute locale { text }?,
(attribute password { text } | attribute ticket{ text })
},
element report {
attribute suppress-zeroes { "0" | "1" | "2" }?, #0=Nothing suppressed, 1=Suppress blank cells but not zeroes, 2=Suppress blank and zero cells(Default)
attribute show-cell-notes { "0" | "1" }?, #0=Don't show cell notes(default), 1=show cell notes
X-axis, # Axes must be specified in order X, Y, (optional) FILTER
Y-axis,
Filter-axis?
}
}
X-axis =
element axis {
attribute type { "X" },
segment+
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 238/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
}
Y-axis =
element axis {
attribute type { "Y" },
segment+
}
Filter-axis =
element axis {
attribute type { "FILTER" },
segment
}
segment =
element segment {
(dimTier | levelTier | accTier | timeTier | versionTier | currencyTier | accAttrTier | levelAttrTier | dimAttrTier)+
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 239/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
element tier {
attribute type { "lAttr" },
attribute entity-id { xsd:integer }, #level attribute id
(stdRollup | stdEl)+ #stdRollup will allow for arbitrary rollups and stdEl will provide the level attribute value id
}
acctEl =
element el {
attribute id { xsd:integer },
( attribute rollup-mode { "R" | "C" } |
attribute show-acct-splits { "0" | "1" } #0=don't show splits in account(default), 1=show splits in accounts (not valid with arbitrary rollup)
)?
}
acctRollup =
element rollup {
acctEl+
}
Assumptions
Credentials can be login or ticket (as currently).
Axes must be specified in the following order: X, Y, (optional) FILTER.
Invalid values will always be marked. In the response, there is an invalid attribute flag on the cell.
Timespan, qtd and ytd specified in the filter will appear as timeranges in the filters in the response.
A cell is considered blank if the value for that cell in the cell explorer is empty. Cells that roll up to an empty text value are not considered blank.
TimeId construction:
Year: 4 digit year followed by 00. Ex: FY-2014 would have timeId:201400
Quarter: 4 digit year followed by '9' followed by 1 digit quarter number(1-4). Ex: Q3-2014 would have timeId: 201493
Month/Period: 4 digit year followed by the 2 digit month(01-12) or period number(01-13). Ex: Jan 2014 would be timeId: 201401, Period 3 2014
would be timeId: 201403
Response
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 240/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 241/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<row>
<coords>
<coord type="acct">
<el id="46" />
</coord>
</coords>
<cell value="5.6" col="1" />
<cell value="2.7" col="2" />
<cell value="1.9" col="3" />
<cell value="9.4" col="4" />
</row>
</rows>
</report>
</output>
</response>
start =
element response {
attribute success { xsd:boolean },
element messages {
element message {
attribute key { text }?,
attribute type { "INFO" | "ERROR" }?,
attribute values { text }?,
text
}+
}?,
element output {
element report {
element filters {
coords
}?,
element cols {
element col {
attribute id { xsd:integer },
coords
}+
},
element rows {
element row {
coords,
element cell {
attribute col { xsd:integer },
attribute value { xsd:decimal },
attribute text-rollup { xsd:string }?, # shows up only for text rollups
attribute invalid { "0" | "1" }?, # 0=value is valid(default), 1=value is invalid
attribute blank { "0" | "1" }?, # 0=value is not blank(default), 1=value is blank
element note { xsd:string }? # shows up only if show-cell-notes in the request is "1" and there is a note at this location.
}+
}*
}
}
}?
}
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 242/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
coordEl =
element el {
attribute id { xsd:integer }, #This is the dimValId/accAttrValId/lvlAttrValId/dimAttrValId. Id = 0, indicates the root
attribute rollup-mode { "U" }? # rollup-mode=U means categorized value
}
coordAcctEl =
element el {
attribute id { xsd:integer },
attribute split-label { xsd:string }? #Will only be emitted if this corresponds to an account split.
}
If a coord in a filter, col or row contains more than 1 element, it means that it represents the arbitrary rollup of all the elements in the coord.
If a timespan, qtd or ytd is passed in the filter, the response contains the corresponding timerange element in the filter.
In the filter axis, dimensions of the same type will be combined into an arbitrary rollup, except for dimensions, account attributes, and level attributes, which
will be combined if both the type and the entity-id match.
Rollup mode of C in the response for an element on the filter gets turned into a single rollup element in the response.
If there are no filter coordinates, then the response will not include a filters element.
If there is an error and the report could not be run, then there will not be an output element and the messages element will include a message with type
error.
If a cell is a text rollup, then the value attribute will be 0.
1.4.3.8 | exportAccounts
Important: This API only supports user access rules in API v22 and above.
Description Returns metadata for the complete list of all accounts in the system, including all account types: Assumptions, Cube Accounts,
Custom Accounts, GL Accounts, Metric Accounts, and Modeled Accounts.
Parameters Credentials
Required On
Request
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 243/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method's request contains a credentials tag to identify and authorize the calling user and an ''include'' tag to indicate whether the response should include
information about the importability of the accounts in a particular version. Once verified, the method returns an XML document describing the complete set of
accounts in the system. Accounts are returned in a nested tree fashion, with one account tag enclosing another if the account represented by the enclosing tag is a
parent of the enclosed account.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the accounts' information should be included or excluded from the
response. This element is optional: if not present, the API will return account information for all versions, and will not
include the isImportable attribute.
N Budget
versionName Indicates whether the response should include the isImportable attribute in the response for each
2016
account, indicating whether the account can accept imported data for the specified version. The default, if
Updated in API
this element or its attribute is not present, is to not emit any isImportable attributes in the response. If both
v18
versionName and versionID attributes are specified on this element, the versionID is ignored.
When specifying a version, the call will succeed only if the user has access to the version.
N 102
versionID Same as versionName (above) except it takes an internal version ID number as a parameter. Indicates
whether the response should include the isImportable attribute in the response for each account,
Updated in API
indicating whether the account can accept imported data for the specified version.
v18
When specifying a version, the call will succeed only if the user has access to the version.
attributes N Indicates whether the response should include the attributes in the response for each account. false
inaccessibleValues N Indicates whether the response should include values inaccessible to the current user. Defaults to false. false
Only users with the "Modeling" or "Import to all levels" permissions may set this option to true.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 244/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
sheet element
Description Represents a sheet in which only accounts available for that sheet should be included in the response. This element is optional: if
not present, the API will return account information independent of a particular sheet.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 245/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
accounts element
seqNo
account element
Description Represents a single account being returned in the response to an exportAccounts API call. If this element is directly
within the enclosing accounts element of the response (that is, it is not enclosed within another account element), this
account element represents a root account, an account that has no parent.
name Y The name of the account, as it appears on reports and sheets. Current
Assets
code Y The code of the account, as it appears when referenced in formulas. Cur_Assets
id N The internal system ID number for the account. This can be used to identify accounts in other API calls, 16
such as exportDimensionFamilies.
accountTypeCode N The letter code corresponding to the data type of this account
A Asset GL
B Current Asset GL
EN YTD Earnings/Loss GL
F Fixed Asset GL
I Income GL
J Non-Operating Income GL
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 246/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
L Liability GL
M Current Liability GL
MT Metric Metric
N Net Income GL
O Other Asset GL
Q Equity GL
S Assumption Assumption
W Modeled Modeled
X Expense GL
Y Non-Operating Expenses GL
Z Custom Custom
description N The textual description of the account, if any, as entered in Account Administration Total current assets
shortName N The short name for the account, if any, as entered in Account Administration CA
N The time stratum of the account, as the code of the time stratum. For Cube accounts, Modeled Month
timeStratum
accounts, and cube-entered GL accounts, the time stratum is determined by the time stratum of
Supported in API v16 their owning sheet. All other accounts use the default time stratum set within the Time Admin UI.
displayAs N The account's output display setting: NUMBER, CURRENCY, or PERCENT. Only provided for NUMBER
accounts that have a Display As property in Account Administration.
isAssumption N Either "0" or "1", indicating whether the account is an assumption. This is set to 1 for 1
assumptions and exchange rate accounts.
suppressZeroes N Flag indicating whether the account allows users to suppress zeroes on sheets or not. 0 is 1
disallowed, 1 is allowed. Only provided for accounts which have a Suppress Zeroes property in
Account Administration.
isDefaultRoot N Either "0" or "1", indicating whether the account or account group is a default root. 1
decimalPrecision N Number of decimal places to display for numbers in this account. Default is 0. The special value 0
of 99 is used to indicate a Linked Account which inherits the decimal precision of its target. A
value of -1 means the account is a currency account and uses the precision of whichever
currency it is displaying.
planBy N For Cumulative accounts, indicates whether the account is plan by balance (BALANCE) or plan BALANCE
by delta (DELTA).
exchangeRateType N Only present for accounts with displayAs="CURERENCY". Possible values: any of the exchange E
rate type codes present in the instance, as configured in Manage Currencies. "A"=Monthly
Average, "E"=End of Month.
isImportable N 1
Indicates whether the account is able to accept imported data. 0 means the account is not
importable and 1 is importable. Only present if versionName or versionId is specified in the
request.
Note: isImportable only indicates that an account is available for import in the specified version,
not that the user making the API call has the permission to import into the version or account.
Use exportVersions to see which versions are available to the user for import.
balanceType N Indicates the balance type of an account, DEBIT or CREDIT. This attribute is empty if the account DEBIT
does not have an associated balance type. Only GL accounts have a balance type.
dataEntryType N Indicates the data entry type of an account. Either STANDARD or CUBE. A blank value indicates CUBE
that data entry type is not applicable to an account. For example, a linked account or a modeled
account will have a blank data entry type.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 247/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
timeRollUp N Indicates how the account behaves when rolled up over a time period. Can be SUM, SUM
WEIGHTED_AVERAGE, LAST, or AVERAGE. This will be empty for account groups and metric
accounts.
timeWeightAcctId N If this account has a timeRollup of WEIGHTED_AVERAGE, this will be the internal system id 133
number of the account from where the weights are determined. This will be empty if no weight
account exists or the account does not have a timeRollup of WEIGHTED_AVERAGE.
hasSalaryDetail N Either 0 or 1 to indicate whether this account has splits that require the Access Salary Detail 1
permission to be viewed. This will be empty if not applicable to this account.
dataPrivacy N Indicates which levels the account's values are public on and able to be referenced in other PRIVATE
levels when writing formulas. Can be PRIVATE so that the account's values are private,
PUBLIC_TOP so that the account's values are public at only the top level, or PUBLIC_ALL so
that the account's values are public at all levels. Assumptions do not have a dataPrivacy setting
since they are always public.
subType N Indicates whether the account is PERIODIC or CUMULATIVE. If an account is periodic, its value PERIODIC
in a given time period equals the net activity for the time period. Examples include revenue and
expense accounts. If an account is cumulative, its value equals the ending balance for a given
time period. This is the prior time period's value plus or minus any activity in the given time
period. Balance sheet accounts are cumulative. This will be empty for account groups and metric
accounts.
startExpanded N This indicates whether an account and its children start out in an expanded state when first 1
loading a sheet. This applies only for parent accounts. This will be empty for leaf accounts.
isBreakbackEligible N Either 0 or 1 to indicate whether this account can be used in a breakback. This applies only to 0
standard assumptions. This will be empty for other types of accounts.
levelDimRollup N Indicates how the account behaves when rolled up along a level or dimension. Can be SUM, NONBLANK_AVERAGE
WEIGHTED_AVERAGE, TEXT, or NONBLANK_AVERAGE. This will be empty for account
groups and metric accounts.
levelDimWeightAcctId N If this account has a levelDimRollup of WEIGHTED_AVERAGE, this will be the internal system id 118
number of the account from where the weights are determined. This will be empty if no weight
account exists or the account's levelDimRollup is not WEIGHTED_AVERAGE.
rollupText N If this account has a levelDimRollup of TEXT, then this is the text string that will show up in the None
cell indicating the rolled up value of the account.
enableActuals N 0 to show only plan data for the account. 1 to import actuals into the account. For linked 1
accounts, 0 will show actuals only if the linked account has them, and 1 will enable actuals for the
linked account. This will be empty for account groups and metric accounts.
owningSheetId N For accounts that can be on modeled and cube sheets, the internal system id number of the 17
sheet that this account is on. This will be empty if it is not such an account, or if it is such an
account but is not currently assigned to a sheet.
One nested account element for each direct child account of this account. One attributes element if account has one or more attributes associated with it.
attributes element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 248/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
attribute element
Description Represents a single non-blank account attribute mapping to which an account is associated.
value Y The value of the account attribute associated with the account. Yes
none
1.4.3.9 | exportActiveCurrencies
Important: This API only supports user access rules in API v22 and above.
Description Returns metadata for the complete list of all currencies which have been configured in the system.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all currencies which have been configured in the system. A currency has been "configured" once it has been added to the currency list in Currency
Administration, even if it does not yet have an exchange rate. Instances which do not have the Multiple Currencies feature enabled return only a single currency in
this list.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 249/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single required currencies element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
currencies element
seqNo
currency element
Description Represents a single currency being returned in the response to an exportActiveCurrencies API call. For versions
previous to API v17, it will not show the user Defined attribute, or the user defined currencies.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 250/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
id Y The internal system ID number for the currency. This number can be used to uniquely identify the 1
currency, but is not used in any other API calls.
code Y The three-letter code for the currency, as specified in the ISO 4217 standard. usd
precision Y The typical decimal precision (number of digits after the decimal place) to be used when displaying 2
amounts in this currency. This precision is only used for accounts which have a display type of
Currency and have their decimal precision set to "Use currency's precision."
isReportingCurrency Y Whether the currency was selected by an admin as available for use in "arbitrary report conversions". 1
True=1, False=0.
Y Whether the currency was created by the user or not. True=1, False=0. 0
userDefined
Available in API
v17+
description Y Basic description of the currency, consisting of the currency's country and its name. United
States of
America,
Dollars
(none)
1.4.3.10 | exportAttributes
Important: This API only supports user access rules in API v22 and above.
Description Returns metadata for the complete list of all attributes in the system.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all custom attributes (excluding the trading partner sys- tem attribute for consolidation instances), including all of their member values. Member
values within an attribute are returned in tree form, with parent members containing their children.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 251/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the 'attribute values' information should be included or
excluded from the response. This element is optional: if not present, all attributes will appear in the
response.
N A list of ids which will appear in the API response. This acts like a filter. "1,2,3,14"
attributeIDs
N Indicates whether the response should include values inaccessible to the current user. 1
inaccessibleValues
Defaults to false. Only users with the "Modeling" or "Import to all levels" permissions may set
Supported in API v18 + this option to true.
N Indicates whether the response should include the phantom nodes in the response for each false
uncategorized
attribute. Defaults to false. The phantom nodes are included in response only when the user
displayNameEnabled N true
displayNameEnabled=true indicates exportAttributes should respect display name properties
Only available in API v30+ for when Enable Display Name is ON for the instance.
instances that enable display
displayNameEnabled=false indicates the exportAttributes API should continue following the
name.
pre-v30 API contract even when Enable Display Name is ON for the instance. The
exportAttributes API ignores the display name properties.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 252/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
response element
success Y Either "true" or "false", indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single required attributes element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
attributes element
Description Container for zero or more attribute elements. Attributes will be ordered so that attributes will be in the following order according
to type: 'account', 'level', and 'dimension'. Attributes with the same type will be ordered by name.
(none)
attribute element
Description Represents a single attribute being returned in the response to an exportAttributes API call.
name Y The name of the attribute as it appears on the attribute administration page. Industry
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 253/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
displayNameType The internal representation of the selected display name format for values on the Attribute NAME
Administration pages.
Only available in
API v30+ for NAME
instances that CODE
enable display NAME_CODE
name. CODE_NAME
type Y The type of the attribute. This will be 'account' if the attribute is for an account, 'level' if the attri- bute is dimension
for a level, or 'dimension' if the attribute is for a dimension.
Y 1 if the selected attribute has "Level/Account/Dimension import automatically creates attribute values" 0
autoCreate
field set, 0 otherwise.
Supported in API
v20+
Y 1
keepSorted "1" indicates values for this attribute are always sorted alphabetically.
Supported in API "0" (or not specified) means attribute values sort based on their position in the request payload.
v20+
If the XML contains both the parent and at least one sibling of an unlisted hierarchical attribute value, the
unlisted value is moved to the end of the listed siblings during the update (in reordering the children of
the parent, all listed siblings come first, in the order they are specified in the XML. All unlisted siblings
come last, in the order they already have in the system).
seqNo
Zero or more optional attributeValue elements. Each enclosed attributeValue element represents a "root attribute value" in the attribute, a value which has no
parent value.
attributeValue element
Description Represents a single member value of an attribute being returned in the response to an
exportAttributes API call.
id Y The internal system ID number for this member value of the attribute. 34
name Y The label for the member value of the attribute as displayed on the attribute Available
administration page.
displayName N The displayName of the member value of the attribute as derived from the Available
displayNameType of the attribute.
Only available in API v30+ for instances that
enable display name.
description N The description of the member value of the attribute as displayed on the
attribute administration page.
Only available in API v30+ for instances that
enable display name.
Zero or more optional attributeValue elements. Each enclosed attributeValue element represents a "child attribute value" of this attribute value, whose
members implicitly roll up to this value.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 254/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.4.3.11 | exportConfigurableModelData
Description Returns a set of rows from the requested modeled sheet in the requested version and instance.
Permissions Required To Invoke Read access to the sheet, version, and instance being requested.
This method's request contains the parameters that will be used to determine which modeled rows will be returned. User must have read access to the sheet,
version, and instance containing the modeled sheet.
Tip: Best Practice: Invoke exportSheets to retrieve the modeled sheet name and ID needed for your exportConfigurableModelData request.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as this
user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the user must
have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
(none)
version element
modeled-sheet element
Description Specifies which modeled sheet to retrieve the modeled rows from. Uses the id or name of the model sheet as the
identifier.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 255/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
isGlobal N Specifies if the sheet is user assigned sheet or a level assigned sheet. If true the sheet is a user- false
assigned sheet. If false the sheet is a level assigned sheet.
N Specifies whether to include all columns in the response. Any value other than true will result as false
includeAllColumns
false.
N true
useNumericIDs Specifies if the internal IDs in the response should be in a numeric format. E.g. "100" vs "S100". If it
is absent or set to anything other than "true" (case insensitive), it results in false.
Supported in API v22+
Example split ID when true:
271
S271
displayNameEnabled N false
displayNameEnabled=true indicates exportConfigurableModelData should respect display name
Only available in API properties of code, displayNameType, and description when Enable Display Name is ON for the
v31+ for instances that instance.
enable display name.
displayNameEnabled=false indicates the exportConfigurableModelData API should continue
following the pre-v30 API contract even when Enable Display Name is ON for the instance. The
exportConfigurableModelData API ignores the properties code, displayNameType and
description.
includeCodes false
This option is meaningful only when the effective enable display name setting is ON.
Only available in API
Set to "true" to include the code column for level and each dimension in the API response.
v31+ for instances that
enable display name. Set to "false" to exclude the code column for level and each dimension in the API response.
includeNames false
This option is meaningful only when the effective enable display name setting is ON.
Only available in API
Set to "true" to include the name column for level and each dimension in the API response.
v31+ for instances that
enable display name. Set to "false" to exclude the name column for level and each dimension in the API response.
includeDisplayNames false
This option is meaningful only when the effective enable display name setting is ON.
Only available in API
Set to "true" to include the display name column for level and each dimension in the API response.
v31+ for instances that
enable display name. Set to "false" to exclude the display name column for level and each dimension in the API response.
(none)
job element
Description Specifies the API handler serial number for the API call job.
jobNumber Y 2
0 for the initial call. A job number returns in the response. Use this job number for every subsequent request.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 256/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The API handler will then create a sheet model which will load the sheet into memory. The sheet remains in
memory until the request times out and gets garbage collected. The API then returns the first page along with
the other parameters listed above.
pageSize N 200
Overwrites the default pageSize to let the API user specify how many rows per page get retrieved for each call.
It only takes effect on the first call, when jobNumber="0". If the pageSize given is larger than the number of
rows in the sheet, pageSize is ignored.
If the number of cells in the sheet is less than 20,000, then the sheet row limit is ignored.
pageNumber Y 1
Specifies the page number being requested if more than one page exists. The page number index starts with
"1."
The API handler is for the same user who makes subsequent call using the same request API and
authentication.
The subsequent request must be within 3 minutes of the last response time.
(none)
filters element
levels element
Description Container for one level element Specifies the level to retrieve rows from.
level element
Name is only supported for pre-v30 requests when the effective enable display name settings
is OFF.
includeDescendants N true
Indicates whether the export should include all descendants of the specified level or not. If set
to true, all children of this level will export, as will their children, and so on. If set to false, this
level will be exported alone.
Indicating "false" allows exporting levels indicated as level (only) in the Adaptive Planning web
UI.
code N false
The code of the level to be exported. This code is as specified in Level Administration. The
Only available in API v31+ for code attribute has been added in API v31.
instances that enable display
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 257/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
name. Use name attribute for pre-v30 API request and when the effective enable display name
setting is OFF.
timeSpan element
Description
If the model sheet has a timeSpan element, the start and end specify the time range of data to export from the sheet. If timeSpan
is not included, data from the version's full date range export. Use an internal time period code (See Set Up Calendars) or
localized time label from the sheet view to indicate a timeSpan start or end.
TimeSpan duplicates the functionality of the Display Options > Time settings for leaf time selections in Start and End for a
modeled sheet in the Adaptive Planning UI.
start N The time code or localized time label visible in the sheet of the first time period in the range to export. The start time
Jan-2016
period must be a leaf time period. If start is not indicated, the start of the version is used.
01/2016
end N The time code or localized time label of the last time period in the range to export. The end time period must be a
Nov-
leaf time period. If end is not indicated, the end of the version is used.
2016
11/2016
timeSpan examples
Start of January 2016 and end April 2016. Jan-2016 is the internal time period code indicated by the Time Administration UI. 04/2016 is a sheet time label.
<timeSpan end="04/2016"/>
Start of February 2016 and end at the version's end date. 02/2016 is a sheet time label.
<timeSpan/>
Start with the version's start date and end November 2016. Nov-2016 is the internal time period code indicated by the Time Administration UI.
<timeSpan end="Nov-2016"/>
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 258/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A single optional messages element, and exactly one required output element.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
job element
Description Specifies the job and data paging information for the data returned so the user can make a series of calls to extract all the
data for the filtered dataset from the model sheet.
jobNumber N The dedicated API handler serial number assigned by the server for the API call job. Used in all subsequent 2
requests.
numberOfPages N The total number of pages of data available for the filter set. 3
pageNumber N The page number for the current dataset being returned. 1
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
output element
Description
The response returns a CDATA block containing a CSV-formatted data dump of the modeled rows being exported. The first row
of the CDATA block is the "header row" of the CSV, and all following rows are data rows. If no rows match the filtering request,
then only the header row is output.
The columns of the CSV begin with up to five hardcoded internal-focused columns. These columns can identify the row and some
of its immutable properties. The columns present on the sheet follow, regardless of whether:
The individual user may have hidden them in their display options
The columns are read-only or not.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 259/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
All columns in the API response are the visible/defined columns for the sheet, with their declared column header being their label
in the header row. This includes any attribute columns placed on the sheet. For the timespan account, the column headers are
the months of the current version in the same format as the exportData API.
Level N The name of the level where this row or split/row resides. This appears regardless of whether the level being Engineering
requested is a rollup level or not.
1.4.3.12 | exportCustomerLogo
Description Returns a URL that can be used to retrieve the Customer Logo
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document containing the
URL which points to the Customer Logo.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 260/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
logos element
(none)
logo element
Description Represents a URL by which the Customer Logo can be retrieved in the response to an exportCustomerLogo API call.
url Y URL by which the Customer Logo can be retrieved, or the /logo/DCNT/55.jpg?
empty string if no customer logo is defined for this instance. ticket=-1183195070:1:s&[email protected]
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 261/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.4.3.13 | exportData
Description Returns a set of data from the requested version in the request instance.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains the parameters that will be used to search the data in the specified version and return values which match the requested filters and
format. This is the basic method used to retrieve data from Adaptive Planning, and can be used to retrieve values from any accounts, including standard accounts,
GL accounts, modeled accounts, cube accounts, custom accounts, metric accounts, assumptions, and exchange rates.
If you export a plan version, your export will include actuals data for any actuals overlay periods. You will see actuals or plan data as you would in the sheets UI.
Request Format
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
version
format
filters
accounts > account
levels > level
dimensionValues > dimensionValue
timeSpan
dimensions > dimension
rules > currency
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action).
Note: The Export Capabilities permission in the Planning UI does not affect exportData.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 262/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
version element
Description Indicates which version should be used to retrieve the requested data. A version must be provided for each call.
name N The name of the version to be used to receive the data. Only one version can be accessed within a single API call. Budget
If a name is not provided, the isDefault flag must be set to true on this element. 2014
isDefault N If the caller wishes to access the current default version of the instance regardless of its name, this attribute can be false
set to true, in which case the name attribute of the tag (if present) is ignored. Otherwise, if this value is false or if
this attribute is not present, a version with the supplied name must exist and be accessible to the user in order for
this call to succeed.
(none)
format element
Description Indicates the type of formatting that should be used on the individual fields of the data to be returned.
useInternalCodes Y Set to "true" to have account codes and level codes emitted using the codes for each entered in the true
Account and Level Admins. Set to "false" to have codes mapped in the output data using the Export
Account Mappings or Export Level Mappings found on the Export tab.
useIds N true
Set to "true" to have the accounts/levels in responses expressed in their IDs, instead of their codes.
Also, it will require the accounts in `<filters>` section to be expressed in their IDs.
includeUnmappedItems N This attribute only applies if useInternalCodes is false and export mappings are used. If not otherwise false
specified, items which have no Export Mapping on the Export tab will not be emitted in the output. If
includeUnmappedItems is set to "true", then accounts or levels which have no Export Mapping will be
emitted, using their internal codes (the ones set in Account or Level Administration) as their codes,
yielding a blend of mapped and unmapped items in the data, but a complete set of data. If this flag is
set to "false", some requested items may not be emitted, if those items have no Export Mapping.
includeCodes N false
This option is meaningful only when the effective enable display name setting is ON.
Set to "true" to include the code column for level in the API response.
Set to "false" to exclude the code column for level in the API response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 263/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
includeNames N This option is meaningful only when the effective enable display name setting is ON. false
Only available in API Set "true" to include the name column for level in the API response.
v30+ for instances that
Set "false" to exclude the name column for level in the API response.
enable display name.
Default value is false.
includeDisplayNames N false
This option is meaningful only when the effective enable display name setting is ON.
Only available in API
Set "true" to include the display name column for level in the API response.
v30+ for instances that
enable display name. Set "false" to exclude the display name column for level in the API response.
displayNameEnabled N false
displayNameEnabled=true indicates exportData should respect duplicate metadata properties of
Only available in API code, displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances that
displayNameEnabled=false indicates the exportData API should continue following the pre-v30 API
enable display name.
contract even when Enable Display Name is ON for the instance. The exportData API ignores the
duplicate metadata properties code, displayNameType and description.
(none)
filters Element
Description Holds the specification for the filters which determine which data from the requested version is retrieved by the API. This element specifies the
accounts, levels, months, and dimension values which will be retrieved.
(none)
A single required accounts element, a single optional levels element, a single required timeSpan element, and an optional single dimensionValues element.
accounts element
(none)
account element
Description Specifies an account to have its data exported in the exportData API call. If more than one account element is placed
within the accounts element, all accounts which match any of the account elements will be exported. If any given
account element results in no accounts which match it, that element is ignored while the other elements still apply.
code Y The code of the account to be exported. This code is as specified in Account Administration. Current_Assets
isAssumption Y Indicates whether the code specifies an assumption or a non-assumption account. You can us a false
single code for both an assumption and account. Use this flag to indicate the type of account.
includeDescendants Y Indicates whether the export should include all descendants of the specified account or not. If set true
to true, all children of this account will be exported, as will their children, etc. If set to false, this
account will be exported as a single rollup account value.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 264/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
levels element
(none)
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
level element
Description Specifies an organization level to have its data exported in the exportData API call. If more than one level element is
placed within the levels element, all specified levels will be exported. If any given level element has no matching levels
in the instance, that element is ignored while the other elements still apply.
You must filter by code instead of name when meeting all of these conditions:
code Y The code of the level to be exported. This code is as specified in Organization Administration. Development
Only available in Code is supported only when the effective enable display name setting is ON.
API v30+ for
instances that
enable display
name.
name Y The name of the level to be exported. This name is as specified in Organization Administration. Development
Name is only supported for pre-v30 API requests when the effective enable display name settings is
OFF.
isRollup Y If this level has children, isRollup="true" will output the rollup value for the level (including the values false
of all of its children) and isRollup="false" will only output the uncategorized value for the level (the
values entered in Edit Data for that level). If this level does not have children, the isRollup must be
set to false (or omitted from the tag entirely).
includeDescendants Y Indicates whether the export should include all descendants of the specified level or not. If set to true
true, all children of this level will also be exported, as will their children, etc. If set to false, this level
will be exported alone. Note this is different than isRollup: isRollup affects which value will be output
for this level, while include Descendants indicates whether descendants should also be included in
the export. If both isRollup and includeDescendants are set to true and the level is a parent level, the
output will contain values for both rollup and non-rollup (uncategorized) levels for this level and each
of its descendants.
(none)
timeSpan element
Description Indicates which time periods should be returned in the response. Time periods between the specified range, inclusive, are
included in the output as separate columns of data; they are not aggregated or rolled up.
start Y The code of the first time period in the range of time periods to have their data exported. The start time period must 01/2015
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 265/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
end Y The code of the last time period in the range of time periods to have their data exported. The end time period must 03/2015
be a leaf time period.
stratum N month
The code of the time stratum for the exported data. When specified, the start and end time periods must fall within
the time stratum. The time stratum must be equal to or greater than the account with the highest time stratum in the
request. See Model Dependent Time for more information
For example, indicating a stratum of quarter requires all of the accounts to have the stratum of quarter, year or
larger.
(none)
dimensionValues element
Description Container for one or more dimensionValue elements. This element is optional and should not appear if no dimension value filtering is desired.
(none)
dimensionValue element
Description Indicates that the exported data should contain only values which match the specified dimensionValue. Multiple
values from different dimensions in the dimensionValues element operate as if grouped by their dimensions.
Data returns if at least one of the dimensionValues matches in each dimension. For dimensionValues within the
same dimension, data can match on any dimension value. For example, if a request specifies dimension values
of Region=East, Region=West, and Product=Product_A, then data must match either East or West Region, but
must also match Product_A Product in order to be exported.
You must filter by code instead of name when meeting all of these conditions:
dimName N The name of the dimension to which the dimension value (see name attribute below) belongs. Region
code N The code of the dimension value to be exported. The code attribute is meaningful only when the
effective enable display name setting is ON for the instance.
Only available in API v30+
for instances that enable
display name.
Name is only supported for pre-v30 API requests when the effective enable display name settings
is OFF.
directChildren N If set to true, this will cause the API to export rollup data for each of the direct children of this false
dimension value, but not a rollup for the value itself. In other words, this will cause exportData to
export the values "one level down" in the dimension tree from the specified value. If not specified,
defaults to false.
uncategorized N If set to true, matches the "uncategorized" value of the dimension value and not the values of any true
of its descendant values (if any). Has no effect on dimension values with no children. If not
specified, defaults to false.
uncategorizedOfDimension N 15
Specify the uncategorizedOfDimension in place of the dimName/name attributes.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 266/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
directChildrenOfDimension N 12
Specify the directChildrenOfDimension in place of the dimName/name attributes.
The directChildren and uncategorized attributes will be ignored and assumed to be true
and false respectively.
id N 14
Specify the id in place of the dimName/name attributes.
(none)
dimensions element
(none)
dimension element
Description Indicates that the exported data should be broken down, or sliced, by the specified dimension. Note that this tag is not a part of
the filters tag and does not control filtering: it instead controls how many rows are exported for each account/level combination.
For each dimension specified in the dimensions tag, each existing combination of values will be exported as a separate row of
data. Each dimension present in the dimensions element also causes an extra column to appear in the output, labeled with that
dimension name.
name Y Name of the dimension by which the export should be sliced. Rows of data in the export which cannot be sliced by Customer
the dimension will appear only once and will show the dimension name itself in the column where the dimension
value name for this dimension would appear.
(none)
rules element
Description Specifies some extra output rules that control which types of rows are emitted and how some field values will be
rendered.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 267/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
includeZeroRows N true
Set to "true" to emit rows even if they contain only zeroes or blanks. Set to "false" to omit rows without
data from the output. Default value is false.
This option is not available within the application user interface for exports that include dimensions.
For API calls, True gets ignored when exporting data by dimension. It will only emit data for dimension
values that have data.
N If set to true, rollup values for all accounts and levels in the filters tag will be included in addition to the false
includeRollups
values for their descendants. This attribute does not affect how custom dimensions specified in
Available in API v24 dimensionValue filters or in the dimensions tag behave. Default value is false. The includeRollups flag
and earlier. only applies when no explicit filtering is being applied for accounts or for levels. If any individual
accounts are included in a filter, you need to specify the individual rollup accounts if you want them
Not available in API included.
v25+.
N If set to true, rollup values for all accounts in the filters tag will be included in addition to the values for false
includeRollupAccounts
their descendants. This attribute does not affect how custom dimensions specified in dimensionValue
Available in API v25+. filters or in the dimensions tag behave. Default value is false.
N If set to true, rollup values for all levels in the filters tag will be included in addition to the values for false
includeRollupLevels
their descendants. This attribute does not affect how custom dimensions specified in dimensionValue
Available in API v25+. filters or in the dimensions tag behave. Default value is false.
markInvalidValues N If set to true, the export will add the letter "I" to invalid values. Otherwise adds "=NA()" to invalid false
values, to make them Excel compatible. Default value is false.
N false
markBlanks If set to true, blank values will be output as "B". Otherwise, values which are blank will be output as
zeroes. Default value is false.
Updated in API v24.
When includeZeroRows=false, rows with a combination of only blanks and zeroes will not output in
the response, even if markBlanks=true.
timeRollups N Has three possible values: true, false, and single. If set to true, quarter and year rollups will appear in false
their proper place within the exported span of months. Quarter rollups appear immediately after the
last month of their quarter, and year rollups appear immediately after the quarter rollup for their last
quarter. If set to single, no individual months, quarters, or years are returned and only a single time
rollup of all months covered in the timespan element is returned. If set to false, only individual months
are returned, with no time rollup columns. Default value is false.
An optional currency element to specify what currency should be used in the export.
currency element
Description Indicates which currency should be used in the output when emitting the values of currency accounts.
useCorporate N Only one of the three attributes can be set for a currency element. If useCorporate is set to true, it indicates false
that the "corporate currency" (the currency at the top of the organization tree) should be used. Default value is
false.
useLocal N Only one of the three attributes can be set for a currency element. If useLocal is set to true, it indicates that false
currency values should be emitted in the currency of the Organization Level where they reside. Each row of the
output indicates an Organization Level, and currency values on that row will be in that level's currency. Default
value is false.
override N Only one of the three attributes can be set for a currency element. If override is present, it must specify the AUD
three-letter currency code of one of the configured currencies for the instance. When specified, all currency
amounts in the export will be converted to that currency.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 268/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
output element
Description Contains the resulting data of the export in an enclosed CDATA block.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 269/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
A CDATA block containing the CSV-formatted data of the export. Rows are separated by newline characters. The first row of returned data is the set of "column
headers" describing the format of each of the following rows. Dimensions and filtering elements are listed first, followed by the series of requested time period
values. Time period codes and system-generated labels such as the "(Rollup)" suffix on rollup levels are translated to the locale of the request when possible.
Values are emitted in normalized form, without commas, using a period as the decimal separator.
1.4.3.14 | exportDimensionFamilies
Description Returns metadata describing the relationships between sets of accounts and sets of dimensions.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing a set
of dimension families, which describe how specific sets of dimensions are related to specific sets of accounts. Each family consists of a set of accounts and a set of
dimensions, which indicates that those dimensions apply to those accounts, while other dimensions do not. Accounts and dimensions may belong to many families.
Families are defined as follows:
Accounts on a modeled sheet belong to a family for that sheet, which contains all dimensions placed on that sheet and all organization dimensions.
Accounts on a cube sheet belong to a family for that sheet, which contains all dimensions placed on that sheet and all organization dimensions.
Accounts on a standard sheet with dimensions belong to a family for that sheet, which contains all dimensions placed on that sheet and all organization
dimensions.
Standard sheets that do not have dimensions placed on them do not have an associated dimension family.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not speci- fied, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 270/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<families>
<family name="Personal" id="381" accounts="734-739, 744" dimensions="9321,9422, 9455, 9458" />
<family name="Capital" id="382" accounts="853" dimensions="4" />
<family name="Sales" id="386" accounts="769, 4112" dimensions="" />
<family name="Balance" id="255" accounts="545, 66" dimensions="6,7" />
</families>
</output>
</response>
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning mes- sages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
families element
(none)
family element
Description Describes a single dimension family associated with a single modeled or cube sheet. A single family is also output for all non-
modeled, non-cube assumptions and exchange rates. This catch-all family has id = 0.
name Y The name of the dimension family. The family comprised of all non-cube assumptions and exchange Capital
rate accounts (which have no dimen- sions) will have the name '*'. The dimension family for a
standard sheet has the same name as the standard sheet, while the dimension fam- ily for a cube or
modeled sheet uses the sheet's prefix as the family name.
id Y The id of the dimension family, which is the ID of the sheet this family is described by. 3
accounts Y The set of account ID numbers belonging to this family. IDs are the internal system IDs for the 734-739,744
accounts, visible in the exportAccounts API call. IDs are comma-separated and may contain
hyphenated ranges, which indicate that all IDs within the range are included.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 271/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
dimensions Y The set of dimension ID numbers belonging to this family. IDs are the internal system IDs for the 9321,9422,9455,9458
dimensions, visible in the exportDimen- sions API call. IDs are comma-separated and may contain
hyphenated ranges, which indicate that all IDs within the range are included.
(none)
1.4.3.15 | exportDimensions
Important: This API only supports user access rules in API v22 and above.
Description Returns metadata for the complete list of all dimensions in the system.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of custom dimensions in the system, including all of their member values. This method does not return any of the required system dimensions such as
Version, Time, or Accounts, each of which is available in its own metadata API call. Member values within a dimension are returned in tree form, with parent
members containing their children.
Note: You can find dimension IDs using an exportDimensions request with no dimensionIDs element. This produces a list of all dimensions and their IDs. Review
the response to find the the dimension IDs you need. Dimension IDs are not available from the Adaptive Planning web user interface.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the 'dimension values' information should be included or
excluded from the response. This element is optional: if not present, the default value is blank (or all versions) for
versionName/versionID.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 272/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
N Budget
versionName Indicates whether the response should exclude dimension values which are unavailable for the
2004
requested version name. The default, if the element or its attribute is not present, is to return all
Updated in API v18
dimensions and values. If a version name is specified, dimension values which are unavailable for the
specified version will not be returned. If the specified version name is not found, this API returns an
error. If both versionName and versionID attributes are passed, the versionID is ignored. <?xml
version='1.0' encoding='UTF-8'?> <response success="true"> <output> <dimensions> <dimension
id="6" name="Department" shortName="" autoCreate="0" listDimension="0" keepSorted="0"
useOnLevels="1" seqNo="35"> <dimensionValue id="7" name="Engr" description="Engineering"
shortName=""> <dimensionValue id="52" name="QA" description="Quality Assurance" shortName=""
/> <dimensionValue id="53" name="Dev" description="Development" shortName="" />
</dimensionValue> </dimension> <dimension id="7" name="Education" shortName="" autoCreate="0"
listDimension="1" keepSorted="0" useOnLevels="0" seqNo="21"> <dimensionValue id="32"
name="Graduate" description="Graduate degree" shortName=""> <attributes> <attribute
attributeId="21" name="Education Type" valueId="197" value="Tech1" /> </attributes>
</dimensionValue> <dimensionValue id="33" name="Masters" description="Masters degree"
shortName=""> <attributes> <attribute attributeId="21" name="Education Type" valueId="196"
value="Management" /> </attributes> </dimensionValue> <dimensionValue id="34" name="Phd"
description="Phd" shortName="" /> </dimension> </dimensions> </output> </response>
When specifying a version, the call will succeed only if the user has access to the version.
N 3
versionID Same as versionName (above) except taking a version ID number as a parameter. Indicates whether
the response should exclude dimension values which are unavailable for the requested version. The
Supported in API v17
default, if the element or its attribute is not present, is to return all dimensions and values. If a version
+ Updated in API v18
ID is specified, dimension values which are unavailable for the specified version will not be returned. If
the specified version ID is not found, this API returns an error. If both versionName and versionID
attributes are passed, the versionID is ignored.
When specifying a version, the call will succeed only if the user has access to the version.
N A list of ids which will appear in the API response. This filters for a dimension, but not a dimension "1,2,3,14"
dimensionIDs
value.
Supported in API v17
+
attributes N Indicates whether the response should include the attributes in the response for each flat dimension. false
N Indicates whether the response should include values inaccessible to the current user. Defaults to 1
inaccessibleValues
false. Only users with the "Modeling" or "Import to all levels" permissions may set this option to true.
Supported in API v18
+
N false
dimensionValues Indicates whether the response should include dimension values for each dimension. The default value
is true. If set to false, returns filtered dimensions only, and not the dimension values. If
Supported in API
dimensionValues is not part of the include element, returns all dimensions and their values.
v22+
If the include element is not part of the request, all dimensions and their values will return.
displayNameEnabled N true
displayNameEnabled=true indicates exportDimensions should respect display name properties of
Only available in API code, displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances
displayNameEnabled=false indicates the exportDimensions API should continue following the pre-v30
that enable display
API contract even when Enable Display Name is ON for the instance. The exportDimensions API
name.
ignores the display name properties code, displayNameType and description.
(none)
Response Format
Dimensions are ordered by name.
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 273/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
dimensions element
(none)
dimension element
Description Represents a single custom dimension being returned in the response to an exportDimensions
API call.
id Y The internal system ID number for the dimension. This can be used to identify 16
dimensions in other API calls, such as exportDimensionFamilies.
name Y The name of the dimension, as it appears on reports and sheets. Customer
displayNameType N The internal representation of the selected display name format for values on the NAME
Dimension Administration pages.
Only available in API v30+ for instances
that enable display name. NAME
CODE
NAME_CODE
CODE_NAME
shortName N The short name for the dimension, if any, as entered in Dimension Administration. cust.
autoCreate Y 1 if the selected dimension has the "Data import automatically creates dimension 0
values" field set, 0 otherwise.
seqNo
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 274/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Zero or more dimensionValue elements. Each enclosed dimensionValue elements represents a root dimension value in the dimension, a value that has no
parent value.
dimensionValue element
Description Represents a single member value of a custom dimension being returned in the response
to an exportDimensions API call.
id Y The internal system ID number for this member value of the dimension. 34
code N The code for the member value of the dimension, if any, as entered in A Corp
Dimension Administration.
Only available in API v30+ for instances that
enable display name.
name Y The label for the member value of the dimension, as displayed on reports A Corp
and used in formulas.
displayName N The display name of the member value, as derived from the A Corp
displayNameType.
Only available in API v30+ for instances that
enable display name.
shortName N The short name for the dimension value, if any, as entered in Dimension A
Administration
Zero or more optional dimensionValue elements. Each enclosed dimensionValue element represents a "child dimension value" of this dimension value, whose
members implicitly roll up to this value.
properties element
(none)
property element
Description Specifies a custom property. The property element values only contain numeric characters.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 275/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
attributes element
(none)
attribute element
valueID Y The unique id of the dimension attribute value generated by system. 170
(none)
1.4.3.16 | exportGroups
Description Return the complete list of all groups defined for the given instance. This includes those groups defined global across whole
instance and those groups defined by users.
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all groups defined in the instance.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 276/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
A single optional messages element, and exactly one required output element.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 277/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of automated error
logging and recovery in client programs. Keys do not change under different locales of requests, even when the
language of the message changes. Keys also are unlikely to change in the future due to wording adjustments or
terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
output element
(none)
A single groups element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
groups element
(none)
group element
Description Represents a single group being returned in the response to an exportGroups API call.
ownerId Y The internal system ID of the user who owns this user group. Only set when isGlobal="false". 5
(none)
1.4.3.17 | exportInstances
Description Returns metadata for the complete list of all instances of Adaptive Planning to which this user has access.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains a credentials tag to identify and authorize the calling user and an optional include tag to indicate which instances to include in the
response. Once the user credentials are verified, the method returns an XML document describing the instance specified in the credentials, or the complete set of
all instances to which this user has access. If the Multiple Instance feature has not been purchased, this call always returns a single ele- ment for the instance to
which the user belongs.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 278/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not speci- fied, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the instances' information should be included or excluded from the
response. This element is optional: if not present, the default value is false for accessibleInstances.
accessibleInstances N False
Either true or false. Whether the response should include other instances besides the single instance
specified in the credentials
The default, if the element or its attribute is not present, is false. If included and is true, then the API
should return the list of all instances to which the user has access. These instances are not returned in
any nested or parent-indicating fashion; they merely are enumerated with the properties as shown in the
API. The first instance returned is always the default instance for the user.
(none)
Response Format
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 279/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
instances element
(none)
instance element
Description Describes a single instance to which this user has access, including a number of attributes of that instance.
sessionTimeout Y Timeout in 60
minutes of the
user session.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 280/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
N mytenant
workdayTenantID The Workday
tenant ID or
available in API
tenant name that
v20+
uniquely
identifies the
tenant.
Requires
Adaptive
Planning set up
for Workday,
enabled by
provisioning.
N Prod
workdayEnvironment The Workday
environment as
available in API
either Prod
v20+
(production),
Sandbox
(sandbox), or
Impl
(implementation).
Requires
Adaptive
Planning set up
for Workday,
enabled by
provisioning.
N www.myworkday.com/mytenant/d/home.html
workdayUiUrl The Workday UI
URL domain
available in API
name for the
v20+
Workday tenant.
Requires
Adaptive
Planning set up
for Workday,
enabled by
provisioning.
N www.myworkday.com/ccx/service/
workdayRestUrl The REST URL
domain name for
available in API
the Workday
v20+
tenant.
Requires
Adaptive
Planning set up
for Workday,
enabled by
provisioning.
N NONE
notificationType The notification
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 281/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Requires
Adaptive
Planning set up
for Workday,
enabled by
provisioning.
(none)
1.4.3.18 | exportLevels
Important: This API only supports user access rules in API v22 and above.
Description Returns metadata for the complete list of all organization levels in the system.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains a credentials tag to identify and authorize the calling user and an optional include tag to indicate which levels to include in the
response. Once the user credentials are verified, the method returns an XML document describing the set of organization levels in the system corresponding to the
request. Levels are returned in a nested tree fashion, with one level tag enclosing another if the level represented by the enclosing tag is the parent of the enclosed
level.
Level Filtering
Unavailable level/version filtering always applies when a version is specified.
If a user specifies a user-assigned sheet in the request:
Levels return if the user does have access to that sheet. For admin users, if inaccessibleValues is true, then levels will return for the sheet.
All levels on the sheet return if the user has access to the sheet, regardless of the user's level access.
If a user specifies a level-assigned sheet in the request:
User-access filtering applies when required by inaccessibleValues, which determines if the response should include levels the user has no
access to.
Then, sheet filtering gets applied.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 282/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the levels' information should be included or excluded from the
response. This element is optional: if not present, the default value is false for inaccessibleValues, and blank (or all
versions) for versionName/versionID.
N Indicates if the level elements in the response includes a groupIds attribute. If true, the groupIds in true
groups
the response contains a comma-separated list of all groups the level is in. If the attribute is not
Available in API v23+ present, or if its value is something other than true or false, the default value of false is used.
N false
inaccessibleValues Whether the response should include levels to which the user has no access. Either true or false.
Available in API The default, if the element or its attribute is not present, is false.
v18+.
If set to false, the response will only include levels to which the user has data access, either direct or
implied. Note that this means the response may no longer be a single rooted tree of levels, but may
be a series of disjoint subtrees of the overall tree.
Only users with the "Organization Structure: All Levels" or "Import to all levels" permissions may set
this option to true.
N true
inaccessibleLevels Either true or false. Whether the response should include levels to which the user has no access.
Available in API v17 The default, if the element or its attribute is not present, is true. If set to false, the response will only
and earlier. Not include levels to which the user has data access, either direct or implied. Note that this means the
available in API v18+. response may no longer be a single rooted tree of levels, but may be a series of disjoint subtrees of
the overall tree.
N Engineering
versionName Indicates whether the response should only include levels which are available for the requested
version name. The default, if the element or its attribute is not present, is to return all levels. If a
Updated in API v18
version name is specified, only levels which are available for the specified version will be returned.
If present, the inaccessibleValues attribute will also be applied, and only levels which are available in
the specified version and accessible by the requesting user will be returned.
If the specified version name is not found, this API returns an error. If both versionName and
versionID attributes are passed, the versionID is ignored.
When specifying a version, the call will succeed only if the user has access to the version.
N 3
versionID Same as versionName (above) except taking a version ID number as a parameter. Indicates
whether the response should only include levels which are available for the requested version. The
Updated in API v18
default, if the element or its attribute is not present, is to return all levels. If a version ID is specified,
only levels which are available for the specified version will be returned.
If present, the inaccessibleValues attribute will also be applied, and only levels which are available in
the specified version and accessible by the requesting user will be returned.
If the specified version ID is not found, this API returns an error. If both versionName and versionID
attributes are passed, the versionID is ignored.
When specifying a version, the call will succeed only if the user has access to the version.
N Indicates whether to include the phantom levels in the response. Defaults to false. The phantom false
uncategorized
levels are included in the response only when the user has access to them.
Supported in API
v22+ when the
instance uses Access
Rules for security.
displayNameEnabled N false
displayNameEnabled=true indicates exportLevels should respect display name properties of code,
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 283/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Only available in API displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances
displayNameEnabled=false indicates the exportLevels API should continue following the pre-v30
that enable display
API contract even when Enable Display Name is ON for the instance. The exportLevels API ignores
name.
the display name properties code, displayNameType and description.
(none)
sheet element
Description Represents a sheet, where only levels available for that sheet will be included in the response. This element is optional: if not
present, the API will return level information independent of a particular sheet. If the given sheet is a level-assigned sheet, this
filtering would be applied on top of the version and user access filtering, if present. If the given sheet is a user-assigned sheet to
which the current user has access, then all levels on that sheet after any version filtering will be returned.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 284/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
levels element
seqNo
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
level element
Description Represents a single organization level being returned in the response to an exportLevels API call.
name Y The name of the level, as it appears on reports and sheets. Development
displayName N The display name of the level as derived from the displayNameType. Development
currency Y The currency code for the currency assigned to this level of the organization. The currency will be INR
one of the configured currencies for the instance, found in the exportActiveCurrencies call.
N The currency code for the currency assigned to publish from this level. This property is only USD
publishCurrency
applicable when Power of one has been enabled for the instance. The currency will be one of the
Available in API configured currencies for the instance, found in the exportActiveCurrencies call.
v24+
shortName N The abbreviation for the level, if any, as entered in Level Administration. Dev
availableStart N The start time period for the availability of level for actuals version, applicable only when ACTUALS 01/2013
version is specified in the request. The value can be either a time period code, such as "01/2012" or
the special value "START" indicating the start of the version.
availableEnd N The end time period for the availability of level for actuals version, applicable only when ACTUALS 12/2013
version is specified in the request. The value can be either a time period code, such as "12/2013",
or the special value "END" indicating the end of the version.
isImportable N 1
Indicates if the associated level is importable in the specified version. '0' means it is not importable
and '1' means it is importable. A level is importable if at least one timeslot in the specified version is
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 285/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Note: isImportable only indicates that a level is available for import in the specified version, not that
the user making the API call has the permission to import into the version or level. Use
exportVersions to see which versions are available to the user for import.
workflowStatus N Emits the workflow status for the associated level. I for "In Progress", S for "Submitted", R for I
"Rejected", A for "Approved" and L for "Locked". Only included in the response if workflow is
enabled for this company, and a planning versionName or versionID is specified in the request.
Workflow is not available on actuals versions.
hasChildren N Indicates whether the level has children. "false" for no, "true" for yes. This attribute is set for any true
level that has children, independent of the children being accessible or not. If a level has children
but the children are not accessible, the hasChildren attribute is still set to true.
One nested level element for each direct child level of this level. One attributes element if this level has one or more attributes associated with it.
attributes element
(none)
attribute element
Description Represents a single non-blank level attribute mapping to which a level is associated.
value Y The value of the level attribute associated with the level. Yes
valueID Y The internal system id number of the level attribute value. 188
(none)
1.4.3.19 | exportLocales
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 286/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all locales associated with that company.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not speci- fied, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated . While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 287/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A single optional messages element, and exactly one required output element.
output element
(none)
A single required attributes element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
locales element
(none)
locale element
isDefault Y If this locale is the default for the company, then 1. Otherwise, 0. 1
(none)
1.4.3.20 | exportDimensionMapping
Description Exports the derived dimension mapping criteria for one or more dimensions in a given version.
This API is used to retrieve a list of mapping criteria for one or more derived dimensions. For each dimension in the request it will retrieve the mapTo values and
dimension value conditions.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 288/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials Element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the xref API method.
(none)
version Element
(none)
dimensions element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 289/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
dimension elements
dimension Element
name Y The name of the dimension for which to import mappings Area
A mappingCriteria element.
filters Element
Description Holds the specification for the filters which determine which data from the requested version and dimension(s) is retrieved by the
API. This element specifies the keyword, levels and dimension values which the corresponding mapping criterion entries contain
will be retrieved.
(none)
A single optional keyword element, a single optional levels element, and an optional single dimensionValues element.
levels Element
(none)
level Element
Description Specifies an organization level to have its data exported in this API call.
name Y The name of the level to be exported. This name is as specified in Organization Administration. Development
code Required when The code of the level to be exported. This code is as specified in Organization Administration. Development
id is not
In API v30+ use
specified.
code instead of
name.
includeDescendants Y Indicates whether the export should include all descendants of the specified level or not. If set to True
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 290/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
true, all children of this level will also be exported, as will their children, etc. If set to false, this
level will be exported alone.
Contents of Element
(none)
dimensionValues Element
(none)
Contents of Element
dimensionValue Element
Description
Indicates that the exported data should contain only the mapping criterion entries which contain
the matching specified dimensionValue. If more than one dimensionValue element is within the
dimensionValues element, then the exported mapping criterion entries must contain all
specified dimension/values. For example, if a request specifies dimension values of
Region=East, and Product=Product_A, then mapping criterion must have Region contain East
and Product contains Product_A in order to be exported.
Also note that each dimensionValue within the dimensionValues element must belong to
different dimension. For example, a request with dimension values of Region=East and
Region=West won't be accepted.
In the case when the input filtering dimensions do not belong to any of the requested
dimensions, they will be ignored.
dimName required when The name of the dimension to which the dimension value (see name attribute Region
uncategorizedOfDimension below) belongs.
is not specified
code Required when id is not The code of the dimension value to be exported. US West
specified
Only available in API v30+
for instances that enable
display name.
uncategorized N If set to true, exported data will contain the mapping criterion with only the true
matching dimension value and not the values of any of its descendant values (if
any). Has no effect on dimension values with no children. If not specified,
defaults to false.
dimId required when dimName is The internal system ID number of the dimension to which the dimension value 15
not specified. (see name attribute above) belongs.
id Required when code is not Specify the id in place of the name attributes. 14
specified
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 291/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Contents of Element
(none)
Response Format
<response success="true">
<output>
<mappings>
<version name="Budget 2017"/>
<dimensions>
<dimension name="Area">
<mappingCriteria>
<mappingCriterion id="121">
<mapTo dimensionValue="East"/>
<dimension name="Level" value="HQ"/>
<dimension name="State" value="MA"/>
</mappingCriterion>
<mappingCriterion id="122">
<mapTo dimensionValue="West"/>
<dimension name="Level" value="HQ"/>
<dimension name="State">
<dimensionValue name="CO"/>
<dimensionValue name="CA"/>
</dimension>
</mappingCriterion>
</mappingCriteria>
</dimension>
<dimensions/>
</mappings>
</output>
</response>
response Element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
A single optional messages element, and exactly one required output element.
dimensions Element
(none)
dimension elements
dimension Element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 292/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
name Y The name of the dimension for which to import mappings Area
A mappingCriteria element.
mappingCriteria Element
id N If a id is provided, an existing mapping criterion with this id will be updated. If no id is provided, a new mapping 12
criterion is added to the dimension.
mappingCriterion elements for each dimension value for the derived dimension.
mappingCriterion Element
DescriptionDescription Describes the individual dimensions and dimension values that govern if a dimension value is being mapped to. Must be
followed by a group of mapTo, dimension and dimensionValue tags.
id N If a id is provided, an existing mapping criterion with this id will be updated. If no id is provided, a new mapping 12
criterion is added to the dimension.
mapTo Element
Description Specifies the dimension value that is derived based on the mapping criteria.
dimensionValueId Y The id of the dimension value to which this mapping criterion maps. 11
dimensionValue Y The name of the dimension value this mapping criterion maps to. California
dimensionValueCode Y The code of the dimension value to which this mapping criterion maps. CA
dimensionValueDisplayName Y The display name of the dimension value to which this mapping criterion maps. California
(none)
dimension Element
Description Describes one of the dimensions being used to derive the mapTo dimension value.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 293/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ValueId N The id of the dimension value. Required unless there are dimensionValue elements. 282
value N The name of the dimension value. Required unless there are dimensionValue elements West
valueCode N The code of the dimension value. Required unless there are dimensionValue elements. We
valueDisplayName N The display name of the dimension value. Required unless there are dimensionValue elements. West
(none)
dimensionValue Element
Description (Optional) If more than one dimension value needs to be listed for a dimension tag, a series of dimensionValue tags can be
used instead of the name attribute.
(none)
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
1.4.3.21 | exportModeledSheet
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 294/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Parameters Required On Request Credentials, and a specification of which sheet is being requested.
Request Format
The call element contains a credentials element, as well a single exportModel element.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
<response success="true">
<output>
<ConfigurableModel allow-actuals="false" allow-allocation="true" allow-edits-in-rollup-mode="false" breakback-pattern="0" code="Open Positions" descriptio
to be filled" frozen-column-count="0" has-salary-detail="true" id="15" isglobal="1" prefix="Openings" revision="0" selected-plan-ids=
"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18" state="A" strata-code="month" strata-id="3">
<Columns>
<AssignablePlan abbr="" code="Plan" id="0" is-splitable="false" name="Plan" read-only="false" show-total-at-bottom="false" tool-tip="" />
<Driver abbr="" code="PositionCode" decimal-precision="0" driver-type="0" id="22" is-split-key="false" is-splitable="false" name="Position Code" r
show-total-at-bottom="false" tool-tip="" />
<Dimension abbr="" code="Department" codeHasBeenUpdated="false" hasOverriddenTitle="false" id="6" is-splitable="true" isEditDimension="false" isHi
isTextSelector="false" name="Department" read-only="false" show-total-at-bottom="false" tagType="0" tool-tip="" requiredColumn="true">
<DimensionValue abbr="" id="7" in-use="0" name="Engr" sort-order="0" />
<DimensionValue abbr="" id="40" in-use="0" name="QA" sort-order="1" />
<DimensionValue abbr="" id="8" in-use="0" name="PS" sort-order="3" />
<DimensionValue abbr="" id="41" in-use="0" name="Dev" sort-order="2" />
<DimensionValue abbr="" id="9" in-use="0" name="G & A" sort-order="4" />
<DimensionValue abbr="" id="10" in-use="0" name="Sales" sort-order="5" />
<LookupTables />
</Dimension>
<Dimension abbr="" code="Title" codeHasBeenUpdated="false" hasOverriddenTitle="false" id="16" is-splitable="true" isEditDimension="false" isHidden
isTextSelector="false" name="Title" read-only="false" show-total-at-bottom="false" tagType="0" tool-tip="">
<DimensionValue abbr="" id="64" in-use="0" name="Sales Rep" sort-order="8" />
<DimensionValue abbr="" id="65" in-use="0" name="Engr Mgr" sort-order="10" />
<DimensionValue abbr="" id="66" in-use="0" name="Sr Engr" sort-order="11" />
<DimensionValue abbr="" id="67" in-use="0" name="Engr" sort-order="12" />
<DimensionValue abbr="" id="68" in-use="0" name="GUI Engr" sort-order="13" />
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 295/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
ConfigurableModel element
Description Represents a single modeled sheet being returned in the response to an export- ModeledSheet API call.
code Y The name of the sheet. This can be used to identify sheets in other API calls, such as Open Positions
importModeledSheet.
1.4.3.22 | exportPermissionSets
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 296/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Returns metadata for the complete list of all permission sets in the instance.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete permission set found in the user's instance.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attribute is not present.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 297/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
permission_sets element
(none)
permission_set element
id Y The internal system ID number for the permission set. This is used to identify the permission set 1
assigned to a user in the exportUsers API call.
name Y The name of the permission set, as seen in Permission Set Administration Standard
permissions Y A comma-separated list of codes for permissions assigned to this permission set. The codes are SHT,RPT,SCOREBOARD
internal abbrevi- ations such as "SHT" for Sheet Access and "RPT" for Report Access.
(none)
1.4.3.23 | exportRoles
Description Returns metadata for the complete list of all roles in the instance.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all roles found in the user's instance.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 298/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have a role containing [email protected]
the permissions required for the method being invoked.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 299/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
roles element
(none)
role element
id Y The internal system ID number for the role. This is used to identify the role assigned to a user in 1
the exportUsers API call.
permissions Y A comma-separated list of codes for permissions assigned to this role. The codes are internal SHT,RPT,SCOREBOARD
abbrevi- ations such as "SHT" for Sheet Access and "RPT" for Report Access.
(none)
1.4.3.24 | exportSecurityAudit
Description Returns a report of all security events in a specified time range, filterable by event type. Security events include unsuccessful login attempts,
password changes, account lockout, account creation, and other security related information. If no time range is requested, all events from
the last 24 hours return. Security events recorded by the audit log are based on NIST 800-53. Adaptive Planning only keeps 30 days of audit
trail data.
Permissions Administrator
Required To
Invoke
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user, and an include tag identifying the actor and time range to retrieve security
events for. Once verified, the method returns an XML document describing all security events in the specified time range, filterable by event type.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as this
user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the user must
have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 300/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
none
include element
Description
actor N The username whose security events you want to retrieve. Returns events for all users when [email protected]
actor is not included.
dateTimeFrom N The start of the time range in ISO-8601 compatible format (YYYY-MM-DDTHH:MM:SS) in UTC for 2019-07-30 00:00:00
the security events you want to retrieve.
dateTimeTo N The end of the time range in ISO-8601 compatible format (YYYY-MM-DDTHH:MM:SS) in UTC for the 2019-07-30 11:59:59
security events you want to retrieve.
none
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 301/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
output element
(none)
A single audit element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
audit element
(none)
event element
action Y SUC
The action that triggered the audit event:
actor Y ID of the actor (service, user, system user) that initiated the operation triggering the 475245454E434F000000000001000004
event (NULL if no particular user can be assigned).
interface N The interface (API, UI, or URI) triggering the audit event. API
outcome Y The success or failure of the action. 0 indicates success, 1 indicates failure. 0
(none)
1.4.3.25 | exportSheetDefinition
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 302/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Permissions Required To Invoke IMP (import data) or MOD (create, edit, and delete sheets)
Parameters Required On Request Credentials and a specification of which sheet is being requested.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to per- form the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
modeled-sheet element
Description Identifies a single modeled sheet requested via an exportSheetDefinition API call.
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 303/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The modeled-sheet element contains a single columns child holding one or more of these in the order defined for the sheet:
1. levels
2. dimension
3. text-selector
4. text
5. number
6. date
7. initial-balance
8. level-currency
9. display
10. timespan
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
modeled-sheet element
Description Represents a single modeled sheet being returned in the response to an export- Sheets API call.
id Y The internal system ID number for the sheet. This can be used to identify sheets in other API calls, such as 234
exportSheetDefinition.
available- Y Can be true or false. Denotes whether the modeled sheet is available in actuals version or not. true
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 304/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
in-actuals
split- N The additional column title for import when allow-splits is enabled. Use a localized string if a locale is specified Is Split
column- in the request. This attribute is only present when allow-splits is set to true and at least one column is splittable. Child Row
title
columns element
(none)
One or more of the following elements, ordered as they appear on the sheet:
levels
dimension
text-selector
text
number
date
initial-balance
level-currency
display
timespan
levels element
Description Represents the "level" column on a modeled sheet. Container for one or more level elements.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as their parent. true
level element
Description One of the levels defined for this company which is on this sheet (or on which this sheet has been placed). Level metadata,
including the hierar- chical structure, can be obtained by a call to exportLevels.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 305/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
text element
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
(none)
dimension element
Description One of the dimensions defined for this company. Represents a column on the sheet which holds the dimension.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
One or more value elements, each of which is a valid selectable value in the dimension for this sheet. If a value of the dimension is not included here, that
value cannot be used on data rows on this sheet.
value element
Description One of the values defined for this dimension or text-selector. Complete dimension metadata, including
its hierarchical structure, can be obtained by a separate call to exportDimensions.
code N The code for the member value of the dimension, if any, as entered in Dimension Mexico
Administration.
Only available in API v30+ for
instances that enable display name.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 306/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
displayName N The display name of the member value, as derived from the displayNameType. Mexico
(none)
text-selector element
Description Custom list of values defined for this sheet. Represents a text selector column on a modeled sheet.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
number element
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
(none)
date element
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 307/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
(none)
initial-balance element
Description Represents a column on the sheet that holds a user-supplied value for the initial balance of an account with a formula that
determines the monthly change in the account's value.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as their true
parent.
id Y Internal numeric identifier of the account associ- ated with this column. 42
(none)
level-currency element
Description Represents a column on the sheet that displays the code for the currency associ- ated with each row. This is the currency of the
level where the row is located.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. For level- true
currency elements, this value is always true.
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as their true
parent.
(none)
display element
Description Represents a column on the sheet that holds a row-based, read-only calculation.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 308/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Name
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
(none)
timespan element
Description At most one per sheet, this represents a timespan set of columns, which appear on the right of the sheet and can hold
periodic data.
code Y A symbolic identifier for the column, used in sheet formulas and references. MyColumn
read-only Y True if the column is marked as read-only on the sheet, false if values can be entered into the column. false
splittable Y True if splits of rows can have different values for this column, false if splits must have the same value as true
their parent.
id Y Internal numeric identifier of the account associ- ated with this timespan. 42
(none)
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to per- form the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have a permission set [email protected]
containing the permissions required for the method being invoked.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to for- mat fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 309/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
cube-sheet element
Description Identifies a single cube sheet requested via an exportSheetDefinition API call.
(none)
The cube-sheet element contains a single dimensions child holding these in the order defined for the sheet:
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 310/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attri- bute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single required cube-sheets element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
cube-sheet element
Description Represents a single cube sheet being returned in the response to an exportSheets API call.
id The internal system ID number for the sheet. This can be used to identify sheets in other API calls, such as 34
exportSheetDefinition.
(none)
dimensions element
(none)
dimension element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 311/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
uncategorized Y True means the uncategorized element of the dimension itself (the root uncategorized ele- ment) is true
available as a selection on the cube.
rollup Y True means the rollup element of the dimension itself (the rollup of all elements) is available as a selection true
on the cube.
Available in API
v22+
One or more value elements, indicating which dimension values are available on the sheet.
attribute element
Description One of the attributes placed on this cube sheet. Attribute metadata, including its hierarchical structure, can be obtained by
a call to exportAttributes.
uncategorized Y True means the uncategorized element of the attribute itself (the root uncategorized ele- ment) is available true
as a selection on the cube.
rollup Y True means the rollup element of the attribute itself (the rollup of all elements) is available as a selection on true
the cube.
Available in API
v22 +
One or more value elements, indicating which values of the attribute are available on the sheet.
value element
Description One of the values for this dimension which has been marked as available on the sheet. The same value id can appear up to
twice: with and without uncategorized set to true. Dimension metadata, including its hierar- chical structure, can be obtained
by a call to exportDimensions.
rollup N true indicates the rollup of this dimension value. Only allowed if the value has child values in the dimension. If true
the attribute is missing, false is used.
uncategorized N true indicates the uncategorized value of this dimension value. Only allowed if the value has child values in the true
dimension. If the attribute is missing, false is used.
(none)
levels element
Description Enforced container for one or more level elements. Individual levels are returned, even if they affect visibility only. Data can be
imported into any level.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 312/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
level element
Description A level found on this sheet, on which this sheet appears. Level metadata, including its hierarchical structure, can be obtained by a call to
exportLevels.
(none)
accounts element
Description Enforced container for one or more account elements. Individual accounts are returned, even if they affect visibility only. Data
can be imported into any input account.
(none)
One or more account elements. Available account elements and order determined by Use GL Account Treatment option in the cube sheet properties.
account element
Description One of the accounts defined for this cube sheet. Account metadata, including its hierarchical structure, can be obtained
by a call to exportAccounts.
Available in API
v22+
(none)
time element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 313/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
1.4.3.26 | exportSheets
Description Returns the complete list of all sheets defined for the given instance. This includes "incomplete" sheets as well as user-
assigned sheets.
Permissions Required To IMP (import data) or MOD (create, edit, and delete sheets)
Invoke
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all sheets found in the user's instance.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to per- form the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to for- mat fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 314/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated by Adaptive Planning. While it continues to function
at this time, it may cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single required cube-sheets element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
sheets element
Description Container for one or more standard-sheet, modeled-sheet and cube-sheet elements.
(none)
standard-sheet element
Description Represents a single standard sheet being returned in the response to an exportSheets API call.
id Y The internal system ID number for the sheet. This can be used to identify sheets in other API calls, 123
such as exportSheetDefinition.
prefix Y The prefix of the sheet. For standard sheets, this is always empty. Other sheet types have non-
empty values for this attri- bute.
description N The textual description of the sheet, if any. These are the rollup
modes...
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 315/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
modeled-sheet element
Description Represents a single modeled sheet being returned in the response to an exportSheets API call.
id Y The internal system ID number for the sheet. This can be used to identify sheets in other API calls, 234
such as exportSheetDef- inition.
available-in- Y Can be true or false. Denotes whether the modeled sheet is available in actuals version or not. true
actuals
description N The textual description of the sheet, if any. This is the Capital
Model...
(none)
cube-sheet element
Description Represents a single cube sheet being returned in the response to an exportSheets API call.
id The internal system ID number for the sheet. This can be used to identify sheets in other API calls, such as 34
exportSheetDefinition.
(none)
1.4.3.27 | exportTime
Important: This API only supports user access rules in API v21 and above.
Description Returns time metadata either for a specific version, or for all versions if none is specified.
Permissions Required To Invoke None (must be valid credentials for the instance)
This method's request contains a credentials tag to identify and authorize the calling user and an optional version tag to specify which version to retrieve information
for. If no version is specified, the method returns time information for the time range encompassing all versions' start and end times. Once the caller is verified, the
method returns an XML document describing the complete set of time information for the version in a nested tree fashion.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 316/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Options element
includeAllLocales N Optionally, make export time export all translations for each strata / time period. If not specified, "1"
only the locale specified in the credential block is exported.
includeLegacyInformation N Optionally, make export time export additional attributes containing legacy time information. These "1"
additional attributes will not be included if isCustom = 1
N Optionally, provide the id of a time stratum to treat as the leaf. Any time strata that are finer than "5"
leafStratumId
the given time stratum will not be included in the response, nor will any time periods that belong to
Supported in API v16 + time strata that are finer than the given time stratum.
(none)
version element
Description Indicates which version should be used to retrieve the requested data. The user must be able to access the version specified and
it cannot be a folder. A version element is not required, but if one is included, the version specified must be valid.
N single
option Sets the range of time to export. Can be set to "all", "single", or omitted. Defaults to "single". If single, user must
also specify either "name" or "id". Returns the time range of the single version specified and initial balance for that
updated
version. If both name and id specified, then they must refer to the same version. If all, return the time range of min
in API
to max of all versions including the initial balance period for the first stratum in the min-max time range. If all, then
v18
must not specify version "name" or "id". If omitted, return all defined time.
When specifying a single version, the call will succeed only if the user has access to the version.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 317/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
name N The name of the version to be used to retrieve the data. Only one version can be accessed within a single API call. Budget
If a name is not pro- vided, then an id must be. If both are given, then they must correspond to the same version. 2014
id N The id of the version to be used to retrieve the data. Only one version can be accessed within a single API call. If 3
option is "single" and an id is not provided, then a name must be. If both are given, then they must correspond to
the same version.
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 318/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning mes- sages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 319/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
output element
(none)
A single required time element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
time element
Description Container for one root stratum element, zero or one initial-balance elements and one or more root stratum period
elements.
isCustom Y Either 1 or 0, indicating whether the calendar for this instance has been customized or not. 1
q1FirstMonth N The month that the fiscal year starts in (starting from 0). This attribute only appears if 8
includeLegacyInformation was 1 in the request and if isCustom is 0.
lastMonthIsFY N Indicates whether the fiscal year is equivalent to the calendar year that the fiscal year ends in. This 0
attribute only appears includeLegacyInformation was 1 in the request and if isCustom is 0.
seqNo
Exactly one stratum element, zero or one initial-balance elements and one or more root stratum period elements.
stratum element
Description Represents a stratum of the calendar being returned from the exportTime API call.
label Y A non-unique, user-defined text identifier for the time stratum. Fiscal
Year
shortName Y A non-unique, user-defined text identifier used when a shorter name is desired. If a short name is not Year
defined, the label will be displayed here.
N Flag indicating whether a cube sheet or modeled sheet is associated with the time stratum, or if this is the 1
inUse
default time stratum.
Supported in API
v16 +
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 320/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
N Flag indicating whether the time stratum is the default stratum or not. 1
isDefault
Supported in API
v16 +
Zero or one stratum element. Every stratum apart from the leaf has exactly one stratum element. The leaf stratum element has zero contained stratum
elements.
initial-balance element
Description Represents the last leaf time period before the start of the version being returned in the response to an exportTime API
call. This is only included if one and only one version is requested.
code Y The unique, user-defined identifier for the initial balance time period. 12/2003
label Y The non-unique, user-defined text identifier for the initial balance time period. Dec-
2003
shortname Y The non-unique, user-defined, short text identifier for the initial balance time period. If no short name was Dec
defined, then the label is displayed.
timeslot Y The timeslot of the time period the initial balance belongs to.. 47
encodedTimePeriod Y The encoded data for time period, in the format of strutumId::timeslot. 1::47
id Y The unique, system-generated integer identifier for the initial balance time period. 47001
start Y The starting date (inclusive) of the initial balance, in the form YYYY-MM-DD. 2003-12-
01
end Y The ending date (exclusive) of the initial balance, in the form YYYY-MM-DD. 2004-01-
01
legacyReportTimeId N The report id that would have been displayed for this time period in older versions of this API. This 200312
attribute only appears includeLegacyInformation was 1 in the request and if isCustom is 0.
legacySheetTimeId N The sheet time id that would have been used for this time period in older versions of this API. This 48, Q63
attribute only appears includeLegacyInformation was 1 in the request and if isCustom is 0. or Y72
Period element
Description Represents a single calendar time period being returned from the exportTime API call.
label Y A non-unique, user-defined text identifier for the time period. Q1-FY04
shortName Y A non-unique, user-defined text identifier used when a shorter name is desired. If a short name is not Q1
defined, the label will be displayed here.
id Y The unique, system-generated integer identifier for the time period . 16002
start Y The starting date (inclusive) of the time period, in the form YYYY-MM-DD. 2004-01-
01
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 321/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
end Y The ending date (exclusive) of the time period, in the form YYYY-MM-DD. 2004-04-
01
legacyReportTimeId N The report id that would have been displayed for this time period in older versions of this API. This 200491
attribute only appears includeLegacyInformation was 1 in the request and if isCustom is 0.
legacySheetTimeId N The sheet time id that would have been used for this time period in older versions of this API. This 48, Q63
attribute only appears includeLegacyInformation was 1 in the request and if isCustom is 0. or Y72
Locales element
(none)
locale element
Description Description of locale. Note that the text will follow the locale fallback rules.
shortName Y The localized short name for the time period/strata.. 2016
(none)
1.4.3.28 | exportTransactionDefinition
Description Returns the definition (available columns) of the transactions in the instance.
Permissions Required To Invoke IMP (import data) or MANAGE_TX (manage the transaction field definition)
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
definition of a transaction in the instance.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to per- form the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 322/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to for- mat outgoing fr_FR
numbers and dates (using the proper thousands separator, month names, and date formatting). The
locale is also used to specify the language in which any system messages in the response should
appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive Planning, this MYINSTANCE1
attribute can be used to specify that the user is intending to access an instance other than their default
instance. If not specified, the user's default instance will be used. To determine the available instance
codes, use the exportInstances API.
(none)
Response Format
1. posting-date (one)
2. type (one)
3. accounts (one)
4. levels (one)
5. dimension (zero or more)
6. text-selector (zero or more)
7. text (zero or more)
8. number (zero or more)
9. date (zero or more)
10. amount (one)
transaction element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 323/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
fields element
(none)
One element for each of the fields each transaction should have.
posting-date element
(none)
type element
accounts element
Description The account this transaction belongs to. Account metadata, including the hierarchical structure, can be obtained by a call to
exportAccounts.
(none)
levels element
Description The level this transaction belongs to. Level metadata, including the hierarchical structure, can be obtained by a call to
exportLevels.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 324/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
dimension element
Description A dimension assignable to a transaction. Complete dimension metadata, including its hierarchical structure, can be obtained by
a separate call to exportDimensions.
text-selector element
value element
Description One of the values defined for the enclosing type, dimension or text-selector.
(none)
text element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 325/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
number element
(none)
date element
(none)
amount element
(none)
1.4.3.29 | exportUsers
Description Returns metadata for the complete list of all users in the instance.
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
complete set of all users defined in the instance.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 326/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the users' information should be included or excluded from the
response. This element is optional: if not present, the default values are true for ownedLevels and false for hiddenVersions.
N Either the word true or false. Indicates if the user elements in the response includes a groupIds attribute. If true
groups
true, the groupIds in the response contains a comma-separated list of all groups the user is in. If the attribute
Available in is not present, or if its value is something other than true or false, the default value of false is used.
API v23+.
N Either the word true or false. Indicates if the user elements in the response should include ownedLevels true
ownedLevels
attributes or not. If the attribute is not present, or if its value is something other than true or false, the default
Available in value of true is used.
API v17 and
earlier.
Not available in
API v18+.
N Either the word true or false. Indicates if the user elements in the response should include hiddenVersions false
hiddenVersions
attributes or not. If the attribute is not present, or if its value is something other than true or false, the default
Not available in
API v18+.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 327/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
users element
seqNo
user element
Description Represents a single user being returned in the response to an exportUsers API call.
guid Y A globally-unique identifier for the user. This identifier will never change B9ADBCB81AA2F9BAE040307F02092C2E
for this user, even if their login or name changes in the future.
email Y The email address for this user. May be blank if the user has not [email protected]
configured a valid email address.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 328/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
permissionSetId Y The internal system ID of the permission set assigned to this user. See
also exportPermissionSets.
Available in API
v25+
Y The internal system ID of the role assigned to this user. See also 3
roleId
exportRoles.
Available in API
v25 and older
Not Available in
API v25+
Y This attribute is only included if the user included in the request's 5,10,13
ownedLevels
credentials has Level Admin permission to the entire Organization tree
Not available in and the request has indicated that ownedLevels should be included. If
API v18 included, this attribute's value is a comma-separated list of internal
system IDs for organization levels to which this user has been granted
direct access. The user will also have access to any child levels of the
levels listed here
N (see This attribute is only included if the user included in the request's 121
hiddenVersions
description) credentials has Version Admin permission and the request has indicated
Not available in that hiddenVersions should be included. If included, this attribute's value
API v18 is a comma-separated list of internal system IDs for versions or version
folders which are hidden from this user (but whose parent is either
nonexistent or not hidden). The user will also not be able to see any child
versions of the versions listed here.
subscriptions element
nosubscriptions Y Setting to signal user has opted out of all subscriptions. 1 means user has opted out of all 0
subscriptions.
systemAlertsAndUpdates Y Setting for system alerts and updates subscription opted by the user. 1 means user has 1
opted in and 0 means he has opted out.
customerNewsLetter Y Setting for the customer news letter subscription opted by the user. 1 means user has opted 1
in and 0 means he has opted out.
localEvents Y Setting for the local events subscription opted by the user. 1 means user has opted in and 0 1
means he has opted out.
educationTraining Y Setting for the education and training events subscription opted by the user. 1 means user 1
has opted in and 0 means he has opted out.
customerWebinars Y Setting for the customer webinar events subscription opted by the user. 1 means user has 1
opted in and 0 means he has opted out.
newProductsAndEnhancements Y Setting for new product and enhancements notification opted by the user. 1 means user has 1
opted in and 0 means he has opted out.
partnerNewsLetter Y Setting for the partner newsletters subscription opted by the user. 1 means user has opted in 1
and 0 means he has opted out.
partnerWebinars Y Setting for the partner webinar events subscription opted by the user. 1 means user has 1
opted in and 0 means he has opted out.
userGroups Y Setting for user groups events notification opted by the user. 1 means user has opted in and 1
0 means he has opted out.
surveys Y Setting for receiving surveys opted by the user. 1 means user has opted in and 0 means he 0
has opted out.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 329/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
none
1.4.3.30 | exportVersions
Important: This API only supports user access rules in API v22 and above.
Description Once verified, the method returns an XML document describing the set of all versions defined in the instance which are not
hidden from the requesting user.
This method's request contains only a credentials tag to identify and authorize the calling user. Once verified, the method returns an XML document describing the
set of all versions defined in the instance which are not hidden from the requesting user.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
include element
Description Represents a set of flags indicating what aspects of the version' information should be included or excluded from
the response. This element is optional: if not present, the API will return all version information.
Indicates whether the root actuals version should be included when actuals are hidden from the false
rootActuals N
version selector.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 330/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is deprecated. While it continues to function at this time, it may cease
functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
versions element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 331/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
seqNo
version element
Description Represents a single version being returned in the response to an exportVersions API call.
id Y The internal system ID number for the version or folder. All IDs are unique among all versions, sub- 2
versions, and folders.
name Y The name of the version or folder, as it appears in Version Administration. Budget 2015
shortName N A short name for the version, if any, as entered in Version Administration B2015
type Y ACTUALS
One of the following values:
description Y The description of the version or folder, as it appears in Version Administration. This is the
budget for
2015 with a
five-year
span.
isDefaultVersion Y Tells if the version is the default version. True if the version is the default version otherwise false. true
isLocked N Indicates if the version has been "globally locked" (has its Locked Version checkbox checked). If true
not present, the version is not considered to be locked. Will always be 'false' for actuals versions or
for folders.
isImportable N Indicates if the user requesting this API is allowed to import data into the version. 0 means the 1
version cannot accept imports, and 1 means it can. A version is importable if at least one timeslot
in the specified version is importable for this user.
startVer N The code of the root time period in which the version starts. Equivalent to start of version in the 2015
version administration page. This attribute is shown only for the root actuals version. This attribute
is required for the root actuals version.
endVer N The code of the root time period in which the version ends. Equivalent to end of version in the 2015
version administration page. This attribute is shown only for the root actuals version. This attribute
is required for the root actuals version.
startScroll N The code of the leaf time period where planning begins. Equivalent to starting scroll location on the 01/2015
version administration page. This attribute is shown only for the root actuals version. This attribute
is required for the root actuals version.
completedValuesThru N The code of the latest leaf time period the root actuals has data filled in for. In a standard calendar, 03/2015
this would be a month. Equivalent to completed values through on the version administration page.
This attribute is shown only for the root actuals version. This attribute is optional for the root actuals
version.
leftScroll N The code of the root time period in which the version starts. Equivalent to left scroll limit in the 2015
version administration page. This attribute is shown only for planning versions. This attribute is
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 332/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
startPlan N The code of the leaf time period where planning begins. Equivalent to start of plan on the version 02/2015
administration page. This attribute is shown only for planning versions and is required for planning
versions.
endPlan N The code of the root time period in which the version ends. Equivalent to end of plan in the version 2015
administration page. This attribute is shown only for planning versions. This attribute is required for
planning versions.
lockLeading N The code of the leaf time period up to which version values are locked. Equivalent to lock leading 05/2015
months through on the version administration page. This attribute is shown only for the root actuals
version and planning versions. This attribute is optional for the root actuals version and planning
versions.
One nested version element for each direct child version of this version.
1.4.3.31 | importDimensionMapping
Description The importDimensionMapping API can be used to import derived dimension values.
The importDimensionMapping API can be used to import the mapping conditions that determine the mapping dimension values to automatically populate on
modeled sheet rows. It can be used to create, update, and delete mapping conditions. Derived dimension values on modeled sheet rows don't support virtual
versions.
Request Format
<?xml version='1.0' encoding='UTF-8'?>
<call method="importDimensionMapping" callerName="a string that identifies your client application">
<credentials login="[email protected]" password="my_password"/>
<version name="Budget 2017" id="7"/>
<dimensions>
<dimension id="345" name="Area">
<mappingCriteria>
<mappingCriterion id="121">
<mapTo dimensionValueId="877" dimensionValue="East"/>
<dimension name="Level" valueId="1" value="HQ"/>
<dimension name="State" valueId="15" value="MA"/>
</mappingCriterion>
<mappingCriterion id="122">
<mapTo dimensionValueId="876" dimensionValue="West"/>
<dimension name="Level" valueId="1" value="HQ"/>
<dimension name="State" id="5">
<dimensionValue id="900" code="CA"/>
<dimensionValue id="901" code="CO"/>
</dimension>
</mappingCriterion>
</mappingCriteria>
</dimension>
</dimensions>
</call>
credentials Element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 333/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API method.
(none)
version Element
Name Required when id is not specified. The name of the version. Budget 2017
dimensions Element
(none)
dimension elements
dimension Element
name Required when id is not specified. The name of the dimension to import mappings Area
id Required when name is not specified. The id of the dimension to import mappings. 15
A mappingCriteria element.
mappingCriteria Element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 334/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
id N If a id is provided, an existing mapping criterion with this id will be updated. If no id is provided, a new mapping 12
criterion is added to the dimension.
mappingCriterion elements for each dimension value for the derived dimension.
mappingCriterion Element
DescriptionDescription Describes the individual dimensions and dimension values that govern if a dimension value is being mapped to. Must be
followed by a group of mapTo, dimension and dimensionValue tags.
id N If a id is provided, an existing mapping criterion with this id will be updated. If no id is provided, a new mapping 12
criterion is added to the dimension.
delete N Enter "yes" to delete all mapping conditions in the mappingCriterion. An empty value or any value other than "yes" yes
is ignored and mapping conditions are not deleted.
mapTo Element
Description Specifies the dimension value that is derived based on the mapping criteria.
dimensionValue Required when dimensionValueId is not specified. The name of the dimension value this mapping criterion maps to. Area
dimensionValueId Required when dimensionValue is not specified. The name of the dimension value id this mapping criterion maps to. 12
(none)
dimension Element
Description Describes one of the dimensions being used to derive the mapTo dimension value. At minimum, one dimension element
for the 'Level' dimension is required as well as one dimension element for a custom dimension.
value N The name of the dimension value. Required unless there are dimensionValue Retail
valueId N The id of the dimension value. Either this or value is required unless there are dimensionValue elements
dimensionValue elements
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 335/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
dimensionValue Element
Description (Optional) If more than one dimension value needs to be listed for a dimension tag, a series of
dimensionValue tags can be used instead of the value attribute.
(none)
Examples:
Mapping criterion to map the dimension values HQ in the level dimension and MA in the state dimension to the East dimension value in the Area dimension. Rows
where both values match will be augmented with East.
<dimension name="Area">
<mappingCriteria>
<mappingCriterion>
<mapTo dimensionValue="East"/>
<dimension name="Level" value="HQ"/>
<dimension name="State" value="MA"/>
</mappingCriterion>
</mappingCriteria>
</dimension>
Mapping criterion to map the dimension values HQ in the level dimension and MA in the state dimension to the East dimension value in the Area dimension. Rows
where both values match will be augmented with East. Since the id attribute is specified, this mapping criterion will replace an existing mapping criterion with this id.
<dimension name="Area">
<mappingCriteria>
<mappingCriterion id="123">
<mapTo dimensionValue="East"/>
<dimension name="Level" value="HQ"/>
<dimension name="State" value="MA"/>
</mappingCriterion>
</mappingCriteria>
</dimension>
Mapping criterion to map the dimension values HQ in the level dimension and CA or CO in the state dimension to the East dimension value in the Area dimension.
Rows where both values match will be augmented with East.
<dimension name="Area">
<mappingCriteria>
<mappingCriterion>
<mapTo dimensionValue="East"/>
<dimension name="Level" value="HQ"/>
<dimension name="State">
<dimensionValue code="CA"/>
<dimensionValue code="CO"/>
</dimension>
</mappingCriterion>
</mappingCriteria>
</dimension>
Response Format
Success Response
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 336/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Failure Response
response Element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
A single optional messages element, and exactly one required output element.
messages Element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
1.4.3.32 | importModeledSheet
Parameters Required On Request Credentials, and a specification of which sheet is being requested.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 337/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<ConfigurableModel allow-actuals="false"
allow-allocation="true" allow-edits-in-rollup-mode="false"
breakback-pattern="0" code="Open Positions Clone" description="Open positions Clone to be filled"
frozen-column-count="0" has-salary-detail="true" id="15" isglobal="1"
prefix="OpeningsClone" revision="0"
selected-plan-ids="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"
state="A" strata-code="month">
<Columns>
<AssignablePlan abbr="" code="Plan" id="0"
is-splitable="false" name="Plan" read-only="false"
show-total-at-bottom="false" tool-tip="" />
<Driver abbr="" code="PositionCode" decimal-precision="0"
driver-type="0" id="22" is-split-key="false" is-splitable="false"
name="Position Code" read-only="false" show-total-at-bottom="false"
tool-tip="" />
<Dimension abbr="" code="Department" codeHasBeenUpdated="false"
hasOverriddenTitle="false" id="6" is-splitable="true"
isEditDimension="false" isHiddenOnSheet="false" isTextSelector="false"
name="Department" read-only="false" show-total-at-bottom="false"
tagType="0" tool-tip="" requiredColumn="true">
<DimensionValue abbr="" id="7" in-use="1" name="Engr"
sort-order="0" />
<DimensionValue abbr="" id="40" in-use="0" name="QA"
sort-order="1" />
<DimensionValue abbr="" id="8" in-use="0" name="PS"
sort-order="3" />
<DimensionValue abbr="" id="41" in-use="0" name="Dev"
sort-order="2" />
<DimensionValue abbr="" id="9" in-use="1" name="G & A"
sort-order="4" />
<DimensionValue abbr="" id="10" in-use="1" name="Sales"
sort-order="5" />
<LookupTables />
</Dimension>
<Dimension abbr="" code="Title" codeHasBeenUpdated="false"
hasOverriddenTitle="false" id="16" is-splitable="true"
isEditDimension="false" isHiddenOnSheet="false" isTextSelector="false"
name="Title" read-only="false" show-total-at-bottom="false"
tagType="0" tool-tip="" requiredColumn="false">
<DimensionValue abbr="" id="64" in-use="1" name="Sales Rep"
sort-order="8" />
<DimensionValue abbr="" id="65" in-use="0" name="Engr Mgr"
sort-order="10" />
<DimensionValue abbr="" id="66" in-use="1" name="Sr Engr"
sort-order="11" />
<DimensionValue abbr="" id="67" in-use="0" name="Engr"
sort-order="12" />
<DimensionValue abbr="" id="68" in-use="0" name="GUI Engr"
sort-order="13" />
<DimensionValue abbr="" id="47" in-use="0" name="CFO"
sort-order="1" />
<DimensionValue abbr="" id="48" in-use="0" name="VP Mkt"
sort-order="3" />
<DimensionValue abbr="" id="49" in-use="0" name="Doc Mgr"
sort-order="5" />
<DimensionValue abbr="" id="18" in-use="0" name="CEO"
sort-order="0" />
<DimensionValue abbr="" id="50" in-use="0" name="VP Sales"
sort-order="7" />
<DimensionValue abbr="" id="51" in-use="0" name="VP Engr"
sort-order="9" />
<DimensionValue abbr="" id="61" in-use="0" name="Controller"
sort-order="2" />
<DimensionValue abbr="" id="62" in-use="1" name="Mkt Assoc"
sort-order="4" />
<DimensionValue abbr="" id="63" in-use="0" name="Doc Writer"
sort-order="6" />
<LookupTables />
</Dimension>
<Dimension abbr="" code="Base Pay" codeHasBeenUpdated="false"
hasOverriddenTitle="false" id="1" is-splitable="true"
isEditDimension="false" isHiddenOnSheet="false" isTextSelector="false"
name="Base Pay" read-only="false" show-total-at-bottom="false"
tagType="0" tool-tip="" requiredColumn="false">
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 338/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The call element contains a credentials element, as well a single ConfigureableModel element.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 339/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
ConfigurableModel element
code Y The name of the sheet. This can be used to identify sheets in other API calls, such as Open Positions
importModeledSheet. The sheet will be imported if a sheet of this name does not already exist in the Clone
instance.
prefix Y The prefix of the sheet used to prefix the sheet's accounts. This must be unique. OpeningsClone
Response Format
<response success="true">
<messages>
<message type="INFO">Dimension Created: Base Pay New</message>
<message type="INFO">Dimension Created: ABC</message>
</messages>
</response>
The response will have the success attribute set to true if the import is successful. In addition, optionally, one or more informational messages will indicate if any
new dimensions have been created.
If the creation fails due to a system error, the response will be as follows:
<response success="false">
<messages>
<message key="exception-caught">Caught Exception: Failed to create modeled
sheet.
</message>
</messages>
</response>
The key benefit of metadata bulk update APIs is that they allow synchronizing levels, dimensions, and GL accounts within Adaptive Planning with counterparts in an
external system on a regular, scheduled basis. Instead of calling out individual elements one by one, these APIs let you submit a raw XML file or compressed
(zipped) XML to update, reorder, and create elements.
With metadata bulk APIs, the new version of the tree of existing elements imports into Adaptive Planning.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 340/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Never delete. Elements missing from the uploaded version remain untouched.
Create any new elements found in the upload, if they can.
Update the properties of any elements being uploaded, including their parentage properties.
Update the attribute assignments being uploaded.
They specifically allow partial tree upload (since deletion is never performed, partial uploads are non-destructive).
They allow identifying the existing elements in a tree either by their internal ID number or their "original" (pre-update) unique identifier field.
Halt on catastrophic errors and roll back. Catastrophic errors include:
Attempts to create a cycle in a hierarchy
Attempts to create a new element whose identifying field collides with one already in the system (e.g. creating a new account with a code that is in
use)
Attempts to update an element's identifying field such that it collides with one already in the system.
Proceed on ignorable errors that do not halt the import, and report in the result response as warnings. Ignorable errors include those unlikely to produce any
cascading effect, such as:
Attempts to change an attribute assignment to a value that does not exist.
Attempts to set a level name to something that is too long for the field.
requestUpdateDimVal.xml content
updateDimVal.zip/content.xml
You can still make API requests in the body of an API call without using attachments.
1.4.3.34 | publishChanges
Permissions Required To Must be valid credentials for the instance and "Publish Admin Changes" permission. Instance must have admin
Invoke publishing enabled.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 341/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method's request contains a credentials tag to identify and authorize the calling user. Once verified, this method will publish any batched changes. Optionally,
the request may contain an action tag.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
If the request is received with no batched changes, then the response is the 'Publish Success' response with 'publishedCount' = 0.
Success is where given n unpublished changes, all n are successfully published.
In a successful publish, output contains a publishResponse element that has a publishedCount attribute stating the number of changes that were published.
In an unsuccessful publish, output contains a publishResponse element that has the same publishedCount attribute and a notPublishedCount attribute
listing the number of changes that were not published.
Success Example
Error Example
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 342/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
publishResponse element
Description The response to a publish changes request. Contains information on either the status of unpublished changes, or the
result of doing a publish.
notPublishedCount N The number of changes that were NOT published. Included with an unsuccessful 'publish' response. 2
(none)
1.4.3.35 | unpublishedChangesStatus
Description Retrieve the number of unpublished changes, and determine if admin publishing is disabled for the instance.
Permissions Must be valid credentials for the instance. If admin publishing is disabled, no additional permissions are required. If admin publishing
Required To Invoke is enabled, the user must have the Publish Admin Changes permission.
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. Once verified, this method will publish any batched changes. Optionally,
the request may contain an action tag.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 343/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
Response Format
These are examples of responses for admin publishing enabled and disabled.
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indicates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated . While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single required unpublishedStatus element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 344/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
unpublishedStatus element
Description The response to an unpublishedChangesStatus request. Contains information on whether admin publishing is
enabled, and if so, how many unpublished changes there are.
adminPublishingEnabled Y Whether or not admin publishing is enabled for this instance (0=not enabled, 1=enabled). 1
numberToPublish N How many unpublished changes there are. Appears only if admin publishing is enabled. If there are 2
no unpublished changes, value is 0.
(none)
1.4.3.36 | updateAccessRules
Description Update or replace a set of existing access rules from an access rules spreadsheet file.
The method allows user to upload a spreadsheet file to update access rules. The content-type of the method request is multipart/form-data.
Request Format
1. Key is request, value is xml content, which contains a credentials tag to identify and authorize the calling user and an importOption tag to specify the
operation. The user must have "Admin" permission to update access rules.
2. Key is content, Spreadsheet file to be imported. Spreadsheet files with extension .xls and .xlsx are supported. The file is the same with the files used in the
UI access rules import.
Example
request text/xml
<?xml version='1.0' encoding='UTF-8'?>
<call method="updateAccessRules" callerName="a string that identifies your client application">
<credentials login="[email protected]" password="my_pwd" locale="en_US"/>
<importOption operation="update"/>
</call>
content access_rules_template.xlsx
POST https://api.adaptiveinsights.com/api/v24
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="request"
Content-Type: text/xml
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 345/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
< access_rules_template.xlsx
--WebAppBoundary--
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have a role containing [email protected]
the permissions required for the method being invoked.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
importOption element
operation Y update
"update" or "replaceAll"
"update":
Replaces the access rules of the users or groups who are mentioned in the request. For example, say you
add one rule in the template for the Accountants group. Update replaces all the existing rules for the
Accountant group with the one new rule. If you intend to add an additional rule to this group, export the
existing rules and then add one more rule. The import then includes the existing rules as well as the new
rule.
Adds rules for new users or groups. For example, say the template only has rules for new users or groups
that before had no rules. Update adds the news rules and leaves all existing rules as-is.
"replaceAll": Deletes all existing rules and adds the rules that are in the request.
(none)
CURL Example
Response Format
There are two possible content-type for the response:
1. When the request succeeds or there are errors not related to the content of the uploaded spreadsheet, the content-type is text/xml.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 346/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2. When the uploaded spreadsheet contains errors, the content-type is multi-part/mixed. The response body contains two parts:
a. The first part is the xml data and represents the request status.
b. The second part is the base64 encoded error report spreadsheet file.
Example
Response Without Spreadsheet Errors
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
HTTP/1.1 200 OK
Content-Type: multipart/mixed; boundary=----AdaptivePlanningAPIBoundary173bb6faa3d
------AdaptivePlanningAPIBoundary173bb6faa3d
Content-type: text/xml; charset=UTF-8
------AdaptivePlanningAPIBoundary173bb6faa3d
Content-Disposition: attachment; filename="Error Report.xlsx"
Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Transfer-Encoding: base64
UEsDBBQACAgIAKx1BFEAAAAAAAAAAAAAAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbM2V307CMBTGX2XprdkKmBhjGFyIXiqJ+AB1PWMN/Ze2wHh7Tzd2Ac5EhSXerF2/0+/39WzZpvNayWQHzgujczLORiQBXRgu9D
------AdaptivePlanningAPIBoundary173bb6faa3d--
Steps to convert the data in the response to an error report spreadsheet with text editor:
Error Missing import operation attribute. The operation attribute is not specified.
Error Invalid operation attribute. The operation specified in the request is not valid. Valid value is "update" or
"replaceAll".
Error Invalid request format. The request part is not valid XML data.
Error Dimension Access Control is not enabled in this The target instance doesn't have DAC enabled.
instance.
Error Invalid spreadsheet file The uploaded file is not a valid spreadsheet file, make sure that is a .xls or .xlsx file.
Error Error occurred, refer to the error sheet for detailed error. There are some data errors in the uploaded spreadsheet file.
1.4.3.37 | updateAccount
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 347/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Update an existing account in the system. This API returns an error message when validation or update fails, or it returns metadata for the
updated account upon success. This API supports only the following account types: Assumption, GL Account, and Custom Account. It does
not support system or linked accounts.
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model or Assumptions permission to perform the account
creation. The XML request is validated for each field and against certain business logic. Error messages are returned as part of the response when the creation
fails. The operation may be halted and a warning message provided when a risky operation is detected. The request needs to be resubmitted with the attribute
"ignoreWarnings" set to 1 in order to complete the account update.
Request Format
The request schema is provided in the Relax NG Compact format.
Example
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 348/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
account element
id Y The internal system ID number for the account.This can be used to identify accounts in other API 16
calls, such as exportDimensionFamilies.
name Y The name of the account, as it appears on reports and sheets. Current
Assets
code N The code of the account, alphanumeric characters and underscores only. Should not supply a code Cur_Assets
attribute for account groups.
exchangeRateType N Only present for instances with multicurrency enabled and for accounts with E
displayAs="CURRENCY". Possible values: any of the exchange rate type codes present in the
instance, as configured in Manage Currencies. "A"=Monthly Average, "E"=End of Month.
hasSalaryDetail N Viewing splits of account requires salary detail permission. 0 for no, 1 for yes. 1
dataPrivacy N Choose whether the value of account is private (PRIVATE), public at top level only (PUBLIC_TOP) PRIVATE
or public at all levels (PUBLIC_ALL). This defaults to PRIVATE.
isBreakbackEligible N Available in breakback. 0 for no, 1 for yes. Applicable only for assumptions. 0
proceedWithWarnings N Indicates whether the user wants to ignore warnâ ing messages and go ahead with the update 1
operation: 0 for no, 1 for yes. If there are warnings and proceedWithWarnings=0, then account will
not be updated. Set proceedWithWarnings=1 to update the account when there are warnings.
One optional attributes element if you want to edit one or more account attributes associated with the account.
attributes element
(none)
attribute element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 349/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
attributeID Y The ID of the account attribute that was generated by the system. 20
valueID Y The unique ID of the account attribute value that was generated by the system. If this value is 0, then this 170
attribute will be removed from the account.
none
Response Format
These are examples of responses for successful and unsuccessful updating of an account.
Success Example
Error Example
response element
success Y Either true or false, indicating whether the API call was suc- cessful or not. Even successful calls may contain true
warning mes- sages in their response.
output element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 350/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
type Y Type is a way to identify the type of message. The different types are INFO, WARNING and ERROR. Type WARNING
ERROR means that this request was not processed.
key Y A key is a way to identify a particular message or type of message, useful for purposes of automated error logging warning-
and recovery in client pro- grams. Keys do not change under different locales of requests, even when the invalid-
language of the message changes. Keys also are unlikely to change in the future due to wording adjustments or timespan-
terminology changes. start
values N When given, the values represent variables used in the message text. 199,12
parentId N When available, the ID of the new account's parent that was supplied in the request. 50
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is sup- ported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value that caused an error.
accounts element
(none)
account element
Description Represents a single account being returned in the response to an exportAccounts API call. If this element is directly
within the enclosing accounts element of the response (that is, it is not enclosed within another account element),
this account element represents a root account, an account which has no parent.
Assets
code N The code of the account, alphanumeric characters and underscores only. Should not Cur_Assets
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 351/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
id Y The internal system ID number for the account.This can be used to identify accounts in 16
other API calls, such as exportDimensionFamilies.
A Asset GL
B Current Asset GL
EN YTD Earnings/Loss GL
F Fixed Asset GL
I Income GL
J Non-Operating GL
Income
K Cumulative System
Translation
Adjustment
L Liability GL
M Current Liability GL
MI Consolidation Predefined
Percentages
MT Metric Metric
N Net Income GL
O Other Asset GL
Q Equity GL
S Assumption Assumption
W Modeled Modeled
X Expense GL
Y Non-Operating GL
Expenses
Z Custom Custom
current assets
shortName N The short name for the account, if any, as entered in the Account Administration. CA
timeStratum N The time stratum of the account, as the code of the time stratum. For Cube accounts, Month
Modeled accounts, and cube-entered GL accounts, the time stratum is determined by
Supported in API
the time stratum of their owning sheet. All other accounts use the default time stratum
v16+
set within the Time Admin UI.
displayAs The account's output display setting: NUMBER, CURRENCY, or PERCENT. Only NUMBER
provided for accounts that have a Display As property in Account Administration.
isAssumption N Either "0" or "1", indicating whether the account is an assumption. This is set to “1” for 1
assumptions and exchange rate accounts.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 352/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
suppressZeroes N Flag indicating whether the account allows users to sup- press zeroes on sheets or not. 1
0 is disallowed, 1 is allowed. Only provided for accounts that have a Sup- press Zeroes
property in Account Administration.
isDefaultRoot N Either "0" or "1", indicating whether the account or account group is a default root. 1
decimalPrecision N Number of decimal places to display for numbers in this account. Default is 0. The 0
special value of 99 is used to indicate a Linked Account that inherits the decimal
precision of its target. A value of -1 means the account is a currency account and uses
the precision of whichever currency it is displaying.
planBy N For Cumulative accounts, indicates whether the account is plan by balance (BALANCE) BALANCE
or plan by delta (DELTA).
exchangeRateType N Only present for instances with multicurrency enabled and for accounts with E
displayAs="CURRENCY". Possible values: any of the exchange rate type codes
present in the instance, as configured in Manage Currencies. "A"=Monthly Average,
"E"=End of Month.
isImportable N Indicates whether the account is able to accept imported data. 0 means the account is 1
not importable and 1 is importable. Only present if versionName or versionId is
specified in the request.
Note: isImportable only indicates that an account is available for import in the specified
version, not that the user making the API call has the permission to import into the
version or account. Use exportVersions to see which versions are available to the user
for import.
hasSalaryDetail N Viewing splits of account requires salary detail permission. 0 for no, 1 for yes. 1
balanceType N Indicates the balance type of an account, DEBIT or CREDIT. This attribute is empty if DEBIT
the account does not have an associated balance type. Only GL accounts have a
balance type.
dataEntryType N Indicates the data entry type of an account. Either STANDARD or CUBE. A blank value CUBE
indicates that data entry type is not applicable to an account. For example, a linked
account or a modeled account will have a blank data entry type.
timeRollUp N Indicates how the account behaves when rolled up over a time period. Can be SUM, SUM
WEIGHTED_AVERAGE, LAST, or AVERAGE. This will be empty for account groups
and metric accounts.
timeWeightAcctId N If this account has a timeRollup of WEIGHTED_AVERAGE, this will be the internal 133
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account does not have a timeRollup of
WEIGHTED_AVERAGE.
hasSalaryDetail N Either 0 or 1 to indicate whether this account has splits that require the Access Salary 1
Detail permission to be viewed. This will be empty if not applicable to this account.
dataPrivacy N Indicates which levels the account's values are public on and able to be referenced in PRIVATE
other levels when writing formulas. Can be PRIVATE so that the account's values are
private, PUBLIC_TOP so that the account's values are public at only the top level, or
PUBLIC_ALL so that the account's values are public at all levels. Assumptions do not
have a dataPrivacy setting since they are always public.
subType N Indicates whether the account is PERIODIC or CUMULATIVE. If an account is periodic, PERIODIC
its value in a given month equals the net activity for the month. Examples include
revenue and expense accounts. If an account is cumulative, its value equals the ending
balance for a given month. This is the prior month’s value plus or minus any activity in
the given month. Balance sheet accounts are cumulative. This will be empty for account
groups and metric accounts.
startExpanded N This indicates whether an account and its children start out in an expanded state when 1
first loading a sheet. This applies only for parent accounts. This will be empty for leaf
accounts.
isBreakbackEligible N Either 0 or 1 to indicate whether this account can be used in a breakback. This applies 0
only to standard assumptions. This will be empty for other types of accounts.
levelDimRollup N Indicates how the account behaves when rolled up along a level or dimension. Can be NONBLANK_AVERAGE
SUM, WEIGHTED_AVER- AGE, TEXT, or NONBLANK_AVERAGE. This will be empty
for account groups and metric accounts.
levelDimWeightAcctId N If this account has a levelDimRollup of WEIGHTED_AVERAGE, this will be the internal 118
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account's levelDimRollup is not
WEIGHTED_AVERAGE.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 353/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
rollupText N If this account has a levelDimRollup of TEXT, then this is the text string that will show None
up in the cell indicating the rolled up value of the account.
enableActuals N 0 to show only plan data for the account. 1 to import actuals into the account. For linked 1
accounts, 0 will show actuals only if the linked account has them, and 1 will enable
actuals for the linked account. This will be empty for account groups and metric
accounts.
owningSheetId N For accounts that can be on modeled and cube sheets, the internal system id number 17
of the sheet that this account is on. This will be empty if it is not such an account, or if it
is such an account but is not currently assigned to a sheet.
One nested account element for each direct child account of this account.
One attributes element if account has one or more attributes associated with it.
attributes element
(none)
attribute element
Description Represents a single non-blank account attribute mapping to which an account is associated.
value Y The name of the account attribute associated with the account. Yes
valueId Y The internal system ID number of the account attribute value. 108
None.
1.4.3.38 | updateAccounts
Description Update a set of existing GL accounts or create new GL accounts. Multiple accounts with multiple values can be updated in one call. If
successful, the API returns details for the accounts that were updated/created. If the API fails, a comprehensive list of errors and their
causes returns.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 354/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Required To
Invoke
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. User must have the "Model" permission and the permission required to
administer the accounts being updated.
Tip: Best Practice: Invoke exportAccounts to retrieve the Adaptive Planning account IDs needed for your updateAccounts request. Do your best to minimize the
time between exportAccounts calls and updateAccount requests.
HTTP Description
Method Post
Content-Type text/xml
Curl Example
updateAccounts.xml contents
Request Format
For large payloads, you can post compressed XML files (zipped). Find out how, here.
Re-parenting Accounts
updateAccounts errors out if the attribute value for a child is not compatible with the new parent attribute. Example: reparentedAccount1 attribute has SEC
Reporting value=No and is not compatible because newParentAccount2 SEC Reporting value=Yes.
updateAccounts fixes non-compatible attribute values to match their new parent during re-parenting when proceedWithWarnings=1.
Re-parenting accounts cannot form a cyclic relationship.
Re-parenting is not allowed for system-generated root accounts: Assets, Liabilities and Equities, Net Income, PL Income, Non-Operating
Income, PL COGS, PL Expense, Non-Operating Expenses.
Depending on the API version, updateAccounts allows creating a new parent account between an existing parent and its child accounts:
Source Account Moved Under API v30 and below API v31 +
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 355/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Source Account Moved Under API v30 and below API v31 +
This method does not change anything about account id 1441. It creates a new child named new Local Assets for id 1441. All unmentioned children of
LocalAssets move to the end of the child list. This is the equivalent of "setting the parent" for the new account.
For each of the examples to succeed, the full swap of IDs must take place with the unique values.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 356/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
accounts element
Description Only 1 accounts element request is allowed per payload. It contains one or more account elements.
proceedWithWarnings N 1
proceedWithWarnings="1" indicates updateAccounts API should adjust account's attribute and
properties based on re-parentage changes.
proceedWithWarnings="0" indicates updateAccounts API should not adjust account's attribute and
properties based on re-parentage changes. UpdateAccounts errors out with a message conveying the
failure reason. For example, the attribute mapping will become invalid after re-parentage.
Defaults to 0 if missing.
N 1
retainExistingOrder retainExistingOrder="1" indicates updateAccounts API should ignore the order of elements in the XML
payload and the existing defined order will be retained.
Available in API v26 +
retainExistingOrder="0" indicates updateAccounts API should update the order of elements based on
the tag position relative to other siblings in the XML payload.
The default value for retainExistingOrder is "0" for v26. For API versions v27 and later, the default
value for retainExistingOrder is "1".
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 357/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
account element
code N The code of the account, alphanumeric characters and underscores only. Should not supply a Cur_Assets
code attribute for account groups.
name Y The name of the account, as it appears on reports and sheets. Current
Assets
description N The textual description of the account. Max character length is 2048. Total
current
assets
subType N Cumulative
Indicates whether the account is PERIODIC or CUMULATIVE. If an account is periodic, its value
in a given month equals the net activity for the month. Examples include revenue and expense
accounts. If an account is cumulative, its value equals the ending balance for a given month.
This is the prior month's value plus or minus any activity in the given month. Balance sheet
accounts are cumulative. This will be empty for account groups and metric accounts.
planBy N DELTA
For Cumulative accounts, indicates whether the account is plan by balance (BALANCE) or plan
by delta (DELTA).
Defaults to DELTA.
Change of planBy to DELTA is NOT allowed when account has splits in non-actual versions.
Only applicable for leaf accounts. updateAccounts errors out when the user attempts to set
planBy for a non-leaf account.
actualsBy N BALANCE
For Cumulative accounts, indicates whether the account is actuals by balance (BALANCE) or
actuals by delta (DELTA).
Defaults to BALANCE.
Only applicable for leaf accounts. updateAccounts errors out when the user attempts to set
actualsBy for a non-leaf account.
enableActuals N 1
0 to show only plan data for the account. 1 to import actuals into the account. For linked
accounts, 0 will show actuals only if the linked account has them, and 1 will enable actuals for
the linked account. This will be empty for account groups and metric accounts. Planning GL
admin UI uses term "actuals overlay".
Defaults to 0 when the current account is a group. Defaults to1 when the current account is a
leaf
balanceType N CREDIT
Indicates the balance type of an account: DEBIT or CREDIT. balanceType is empty if the
account does not have an associated balance type.
timeStratum N month
The code of the time stratum of the account. For modeled and cube accounts, this is inherited
from the account's owning sheet.
See Set Up Calendars for more on time structure and time period codes.
displayAs N NUMBER
The account's output display setting: NUMBER, CURRENCY, or PERCENT. Only provided for
accounts which have a Display As property in Account Administration.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 358/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
decimalPrecision N 0
The number of decimal places to display for numbers in this account.
The special value of 99 indicates a Linked Account which inherits the decimal precision of its
target. The value -1 indicates the account is a currency account and uses the precision of the
currency it displays.
Default is 0.
exchangeRateType N E
Only present for instances with multicurrency enabled and for accounts with
displayAs="CURRENCY". Possible values: any of the exchange rate type codes present in the
instance, as configured in Manage Currencies. "A"=Monthly Average, "E"=End of Month.
suppressZeroes N 1
Indicates whether the account allows users to suppress zeros on sheets. If 0 users cannot
suppress zeros. If 1 users can suppress zeros. Only provided for accounts with the "Suppress
on sheets" property turned on in the Accounts admin.
If missing, defaults to 1.
startExpanded N 1
Indicates whether an account and its children start out in an expanded state when the sheet first
loads. Applies only to parent accounts.
If missing, defaults to 1.
N STANDARD
dataEntryType Indicates the data entry type for a leaf account. Either STANDARD or CUBE.
updated in API v29 If the parent dataEntryType is CUBE, then a new account will default to dataEntryType CUBE.
Otherwise, new accounts default to dataEntryType STANDARD.
dataEntryType changes to non-leaf accounts are ignored. The system automatically calculates
new dataEntryType for all non-leaf accounts.
API v29 and newer support adding new accounts with dataEntryType=CUBE.
hasSalaryDetail N 1
Indicates whether this account has splits that require the Access Salary Detail permission for
viewing. Empty if not applicable to this account.
To make hasSalaryDetail=1:
dataPrivacy N PRIVATE
Indicates the levels the account's values are public on and refrencable in other levels when
writing formulas. PRIVATE indicates the account's values are private. PUBLIC_TOP indicates
the account's values are public at only the top level, or PUBLIC_ALL so that the account's
values are public at all levels. Assumptions are always public and do not have a dataPrivacy
setting.
isIntercompany N 0
Indicates if the account is an intercompany account or not.
propagateToDescendants N 1
Indicates the propagation of attribute mapping changes to descendants.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 359/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
subType
planBy
displayAs
actualsBy
decimalPrecision
exchangeRateType
accountTypeCode
One optional attributes element if you want to edit one or more account attributes associated with the account.
attribute element
Description Specifies an attribute to update. Tags the account with the attribute if the model has account attributes.
name Y Location
The name of the attribute.
Errors out if the name does not already exist in the system.
Errors out if the name exists but the attribute is not an account attribute.
value Y 170
The attribute value for this attribute.
Allows either an empty value to remove the current value, or any of the defined account attribute values.
The attribute value must be compatible with the account's assigned attribute.
(none)
Consider the tree structure below where the parent "Product Line" has 2 children accounts "A" and "B-Ste". The accounts "A" and "B-Ste" are siblings.
Product Line
|__A __A
|__B-Ste __B-Ste
|__B1 __Product B-1
|__B2 __Product B-2
|__B3 __Product B-3
<accounts>
<account id="60" code="70140" name="Other Accounts">
<attribute name="Product Line" value="A" />
<account id="91" code="70150" name="Swiss Bank">
<attribute name="Product Line" value="A" />
</account>
</account>
</accounts>
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 360/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<accounts>
<account id="60" code="70140" name="Other Accounts">
<account id="91" code="70150" name="Swiss Bank">
<attribute name="Product Line" value="B-1" />
</account>
<attribute name="Product Line" value="B-Ste" /> <!-- Account Attribute change ignored due to placement order-->
</account>
</accounts>
<accounts>
<account id="60" code="70140" name="Other Accounts">
<attribute name="Product Line" value="B-Ste" /> <!-- Account Attribute change processed due to correct placement order-->
<account id="91" code="70150" name="Swiss Bank">
<attribute name="Product Line" value="B-1" />
</account>
</account>
</accounts>
Response Format
output element
(none)
A single required accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
accounts element
account element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 361/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Represents a single account being returned in the response to an updateAccounts API call. If this element is directly
within the enclosing accounts element of the response (that is, it is not enclosed within another account element),
this account element represents a root account (an account that has no parent).
id Y The internal system ID number for the account. This can be used to identify accounts in 16
other API calls, such as exportDimensionFamilies.
code Y The code of the account, as it appears when referenced in formulas. Cur_Assets
name Y The name of the account, as it appears on reports and sheets. Current Assets
accountTypeCode N The letter code corresponding to the data type of this account
A Asset GL
B Current Asset GL
EN YTD Earnings/Loss GL
F Fixed Asset GL
I Income GL
J Non-Operating Income GL
L Liability GL
M Current Liability GL
MT Metric Metric
N Net Income GL
O Other Asset GL
Q Equity GL
S Assumption Assumption
W Modeled Modeled
X Expense GL
Y Non-Operating Expenses GL
Z Custom Custom
description N The textual description of the account, if any, as entered in Account Administration Total current assets
shortName N The short name for the account, if any, as entered in Account Administration CA
timeStratum N The code of the time stratum of the account. For modeled and cube accounts, this is Month
inherited from the account's owning sheet.
displayAs N The account's output display setting: NUMBER, CURRENCY, or PERCENT. Only NUMBER
provided for accounts that have a Display As property in Account Administration.
isAssumption N Either "0" or "1", indicating whether the account is an assumption. This is set to 1 for 1
assumptions and exchange rate accounts.
suppressZeroes N Indicates whether the account allows users to suppress zeros on sheets. If 0 users 1
cannot suppress zeros. If 1 users can suppress zeros. Only provided for accounts with
the "Suppress on sheets" property turned on in the Accounts admin.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 362/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
isDefaultRoot N Either "0" or "1", indicating whether the account or account group is a default root. 1
decimalPrecision N 0
Number of decimal places to display for numbers in this account.
The special value of 99 indicates a Linked Account which inherits the decimal precision
of its target. The value -1 indicates the account is a currency account and uses the
precision of the currency it displays.
Default is 0.
planBy N For Cumulative accounts, indicates whether the account is plan by balance (BALANCE) BALANCE
or plan by delta (DELTA).
exchangeRateType N Only present for accounts with displayAs="CURERENCY". Possible values: any of the E
exchange rate type codes present in the instance, as configured in Manage Currencies.
"A"=Monthly Average, "E"=End of Month.
balanceType N Indicates the balance type of an account, DEBIT or CREDIT. This attribute is empty if DEBIT
the account does not have an associated balance type. Only GL accounts have a
balance type.
N STANDARD
dataEntryType Indicates the data entry type for the account. Either STANDARD or CUBE. An empty
value indicates data entry type is not applicable for the account.
updated in API v29
The system automatically calculates new dataEntryType for all non-leaf accounts.
timeRollUp N Indicates how the account behaves when rolled up over a time period. Can be SUM, SUM
WEIGHTED_AVERAGE, LAST, or AVERAGE. This will be empty for account groups
and metric accounts.
timeWeightAcctId N If this account has a timeRollup of WEIGHTED_AVERAGE, this will be the internal 133
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account does not have a timeRollup of
WEIGHTED_AVERAGE.
hasSalaryDetail N Indicates whether this account has splits that require the Access Salary Detail 1
permission for viewing. Empty if not applicable to this account.
dataPrivacy N Indicates the levels the account's values are public on and refrencable in other levels PRIVATE
when writing formulas. PRIVATE indicates the account's values are private.
PUBLIC_TOP indicates the account's values are public at only the top level, or
PUBLIC_ALL so that the account's values are public at all levels. Assumptions are
always public and do not have a dataPrivacy setting.
subType N Indicates whether the account is PERIODIC or CUMULATIVE. If an account is periodic, PERIODIC
its value in a given time period equals the net activity for the time period. Examples
include revenue and expense accounts. If an account is cumulative, its value equals the
ending balance for a given time period. This is the prior time period's value plus or
minus any activity in the given time period. Balance sheet accounts are cumulative.
This will be empty for account groups and metric accounts.
startExpanded N This indicates whether an account and its children start out in an expanded state when 1
first loading a sheet. This applies only for parent accounts. This will be empty for leaf
accounts.
isBreakbackEligible N Either 0 or 1 to indicate whether this account can be used in a breakback. This applies 0
only to standard assumptions. This will be empty for other types of accounts.
levelDimRollup N Indicates how the account behaves when rolled up along a level or dimension. Can be NONBLANK_AVERAGE
SUM, WEIGHTED_AVERAGE, TEXT, or NONBLANK_AVERAGE. This will be empty
for account groups and metric accounts.
levelDimWeightAcctId N If this account has a levelDimRollup of WEIGHTED_AVERAGE, this will be the internal 118
system id number of the account from where the weights are determined. This will be
empty if no weight account exists or the account's levelDimRollup is not
WEIGHTED_AVERAGE.
rollupText N If this account has a levelDimRollup of TEXT, then this is the text string that will show None
up in the cell indicating the rolled up value of the account.
enableActuals N 0 to show only plan data for the account. 1 to import actuals into the account. For linked 1
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 363/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
accounts, 0 will show actuals only if the linked account has them, and 1 will enable
actuals for the linked account. This will be empty for account groups and metric
accounts.
status Y Updated
The status of the account following update. For warning and error, the message
element contains the message contents. The status of updated does not return any
message contents.
message N The error message for the account input. The account
ModAccount33 is either
duplicated in the
payload or already
exists in the system with
ID 8
One nested account element for each direct child account of this account. One attributes element if account has one or more attributes associated with it.
attribute element
status Y updated
The status of the attribute following update. For warning and error, the message element contains the message
contents. The status of updated does not return any message contents.
(none)
1.4.3.39 | updateAssociations
Description Update the ownership / association for entities (e.g. Level). Multiple associations with multiple values can be updated in one call. If
successful, the API returns a success message. If the API fails, a comprehensive list of errors and their causes are returned.
Permissions Model Management : Model Model Management : Organization Structure : All Levels Admin Access : Users
Required To
Invoke
Parameters Credentials
Required On
Request
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 364/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Each association has a type, an optional operation, and a set of dim value ids (entity ids).
To create a new association, specify the entity id (e.g. level id) to which we want to give ownership and the list of user identifiers (id, WID or username).
For an association, if the same entity id is mentioned multiple times, the last one is used.
User(s) specified in the request but not present in the system will be ignored. The remaining valid users in the request will be processed and have their
association details updated.
For custom dimension associations, code, name, and dimId are required fields.
The request can contain zero or only one association for level ownership. Any other level associations require the additional fields of code, name, and dimId.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 365/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</dimValueIds>
</association>
</associations>
</call>
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
associations element
Description Only 1 associations element request is allowed per payload. It contains one or more association elements.
association element
type y The type of the entity for which the association is to be created / updated. It can take only these values - (level level
and customdimension)
operation N update
The operation mode for this association. It can take only these values - (update or replaceAll)
If operation="replaceAll", all existing ownership entries for that association type will be deleted and only
the ownership details mentioned in the request will be saved.
If operation="update", only the entity ids (eg. level ids) mentioned in the request will be updated.
If operation is not mentioned it will default to "update" behavior.
code Conditionally The code of the the association being be created / updated. The only case when it is not required is in the TL1
case of level ownership. Required for all other cases.
name Conditionally The name of the the association being be created / updated. The only case when it is not required is in the TestLevels1
case of level ownership. Required for all other cases.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 366/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
dimId Conditionally The id for whose dimValueIds will have the ownership details updated. Required in case of custom dimension. 12
dimValueIds element
dimValueId element
Description Specifies
Contains at most one users element. If the users element is not mentioned, all of the existing ownership for the dmiValueId will be removed.
users element
Description Specifies the user identifiers in the id, WID, or username elements.
Contains the list of user identifiers which are comma separated. Users not present in the system will be ignored / skipped. If none of the user identifiers are
mentioned, all of the existing ownership for the entity (dimValueId) will be removed. If the same identifier tag is provided multiple times in a particular users tag,
the call will return an error condition.
<id> 1, 2, 3 </id> : This specifies that the ownership is to be given for users with ids 1, 2 and 3.
<username>[email protected]</username> : This specifies that the ownership is to be given for user with username [email protected] .
<WID> ABC, CSD </WID> : This specifies that the ownership is to be given for users with Workday ID ABC and CSD.
Response Format
Response element
Description Specifies
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 367/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either "true" or "false", indicating whether the API call was successful or not. true
Messages element
Message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages with requests do
not succeed, and for confirmation messages on success.
type N Specifies the type for the message. INFO ERROR WARNING
Error error: element "Y" incomplete; missing required element "Y" The request is missing the required element - e.g. association,
dimValueId
Error value of attribute "type" is invalid; must be equal to "level" Association has an incorrect type attached to it.
Error DimValueId can have at most one users element. The dimValueId can have at most one users element.
Warning User Id -5 not present in system. WID -98A not present in system. The user identifier values are incorrect. They have been skipped and
Username Id stevec@comp not present in system. remaining valid users have been processed.
Error DimValue Id -123 not present in system. The dim value id is incorrect.
1.4.3.40 | updateAttributes
Description
This method's request contains a credentials tag to identify and authorize the calling user. User must have the "Model" Update a set of existing attributes and their
attribute values, and their properties. Multiple attributes with multiple attribute values can be updated in one call. If successful, the API returns details for the
attributes that were updated/created. If the API fails, a comprehensive list of errors and their causes returns.permission and the permission required to administer
the attributes being updated.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 368/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Tip: Best Practice: Invoke exportAttributes to retrieve the Adaptive Planning attribute IDs needed for your updateAttributes request. Do your best to minimize the
time between exportAttributes calls and updateAttributes calls.
HTTP Description
Method Post
Content-Type text/xml
Curl Example
updateAttributes.xml contents
Request Format
Update a set of existing attributes and their attribute values, and their
<?xml version='1.0' encoding='UTF-8'?>
<call method="updateAttributes" callerName="a string that identifies your client application">
<credentials login="[email protected]" password="my_pwd"/>
<attributes proceedWithWarnings="0">
<attribute id="13" name="AP Eligible" type="account" keepSorted="1">
<attributeValue id="118" name="No" />
<attributeValue id="117" name="Yes">
<attributeValue id="136" name="Full" />
<attributeValue id="135" name="Partial" />
</attributeValue>
</attribute>
<attribute id="11" name="Product Line" type="account">
<attributeValue id="34" name="A" />
<attributeValue id="35" name="B" />
</attribute>
<attribute id="9">
<attributeValue id="56" name="Available" />
<attributeValue id="54" name="Not Applicable" />
</attribute>
</attributes>
</call>
For large payloads, you can post compressed XML files (zipped). Find out how, here.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 369/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method does not change anything about attribute id 13. It creates a new attribute value future for attribute id 13 and makes its parent the attribute value
no. All unmentioned attribute values of no move to the end of the value list. This is the equivalent of "setting the parent" for the new attribute value.
For each of the examples to succeed, the full swap of IDs must take place with the unique values.
To create a new attribute value, include its parent by its ID. For example, to add a new
ID Unique Value New Unique Value
1 AA BB
2 BB AA
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 370/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
attributes element
Description Only 1 attributes element request is allowed per payload. It contains one or more attribute elements.
proceedWithWarnings N 1
Only applies when re-parenting attribute values.
If there are warnings, and proceedWithWarnings=0, then attributeValue will not be updated. Set
proceedWithWarnings=1 to update the attributeValue when there are warnings.
N 1
retainExistingOrder retainExistingOrder="1" indicates updateAttributes API should ignore the order of elements in the
XML payload and existing defined order will be retained.
Available in API v27+
retainExistingOrder="0" indicates updateAttributes API should update the order of elements based
on the tag position relative to other siblings in the XML payload.
The retainExistingOrder flag is ignored when attribute has keepSorted flag enabled.
DisplayNameEnabled N 1
displayNameEnabled=1 indicates updateAttribues should respect display name properties of code,
Only available in API displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances that
displayNameEnabled=0 indicates the updateAttributes API should continue following the pre-v30
enable display name.
API contract even when Enable Display Name is ON for the instance. The updateAttributes API
ignores the display name properties code, displayNameType and description.
attribute element
name Y The name of the attribute, as it appears on reports and sheets. Current Assets
displayNameType N Controls the display of attribute values. The possible values are NAME, CODE, "CODE_NAME"
NAME_CODE or CODE_NAME.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 371/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Only available in API Defaults to NAME when left blank or not provided.
v30+ for instances that
This property is only available when Enable Display Name is ON for the instance.
enable display name.
importAutoCreateValues N "1" means attribute values for this attribute can be created via import, "0" (or not specified) 1
means they can't.
type N account
Indicates whether the attribute is a level, account, or dimension attribute.
Required for creating new attributes that don't already exist in the system.
listDimensionName N color
Indicates if the dimension is a flat list dimension.
keepSorted N 1
"1" indicates values for this attribute are always sorted alphabetically.
"0" (or not specified) means attribute values sort based on their position in the request
payload.
If the XML contains both the parent and at least one sibling of an unlisted hierarchical
attribute value, the unlisted value is moved to the end of the listed siblings during the update
(in reordering the children of the parent, all listed siblings come first, in the order they are
specified in the XML. All unlisted siblings come last, in the order they already have in the
system).
Note: Any changes to the components of a display name could alter the sort order of
elements, when Keep Sorted is enabled.
description N The description of the attribute. Max character length is 2048. Assets
attributeValue element
id N 24
Identifies the attribute value.
If left blank, indicates a new attribute value being created by the request.
name Y yes
The name of the attribute value, as it appears in sheets and reports. When Enable Display Name is
udpated in API v30 ON for an instance with API v30 or higher, name allows duplicate values. When Enable Display
Name is OFF for an instance, code is not available and name must be unique.
Illegal attribute value names: this names ending with (+) or (-)
description N
The textual description of the attribute value.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 372/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Response Format
output element
(none)
A single required attributes element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
attributes element
Description Container for zero or more attribute elements. Tags are placed in order based on the input request.
retainExistingOrder N 1
updateAttributes=0 updates sort order based on the XML payload content.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 373/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
displayNameEnabled N displayNameEnabled=1 indicates updateAttributes should respect display name properties of code, 1
displayNameType, and description when Enable Display Name is ON for the instance.
Only available in API
v30+ for instances that displayNameEnabled=0 indicates the updateAttribues API should continue following the pre-
enable display name. 2021.42 API contract even when Enable Display Name is ON for the instance. The updateAttribues
API ignores the display name properties code, displayNameType and description.
attribute element
Description Represents a single attribute being returned in the response to an updateAttributes API call.
name Y The name of the attribute, as it appears on reports and sheets. Current Assets
shortName The short name for the attribute. Max character length is 2048. Assets
displayNameType N Controls the display of attribute values. The possible values are NAME, CODE, CODE_NAME
NAME_CODE or CODE_NAME.
Only available in API
v30+ for instances that Defaults to NAME when left blank or not provided.
enable display name.
This property is only available when Enable Display Name is ON for the instance.
importAutoCreateValues N "1" means attribute values for this attribute can be created via import, "0" (or not 1
specified) means they can't.
type Y The type of the attribute. This will be 'account' if the attribute is for an account, 'level' if account
the attribute is for a level, or 'dimension' if the attribute is for a dimension.
listDimensionName N The name of the list dimension if the attribute is of type 'dimension'. Education
description N The textual description of the attribute, if any, as entered in Attribute Administration Total current assets
keepSorted Y 1
"1" indicates values for this attribute are always sorted alphabetically.
"0" (or not specified) means attribute values sort based on their position in the request
payload.
If the XML contains both the parent and at least one sibling of an unlisted hierarchical
attribute value, the unlisted value is moved to the end of the listed siblings during the
update (in reordering the children of the parent, all listed siblings come first, in the order
they are specified in the XML. All unlisted siblings come last, in the order they already
have in the system).
status Y Updated
The status of the attribute value following update. For warning and error, the message
element contains the message contents. The status of updated does not return any
message contents.
message N The error message for the attribute input. The attribute
Industry is either
duplicated in the
payload or already
exists in the system
with ID 8
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 374/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Zero or more optional attributeValue elements. Each enclosed attributeValue element represents a "root attribute value" in the attribute, a value which has no
parent value.
attributeValue element
Description Represents a single member value of an attribute being returned in the response to an updateAttributes
API call.
id Y The internal system ID number for this member value of the attribute. 34
name Y The label for the member value of the attribute as displayed on the attribute administration Available
page.
description N
The description of the attribute value.
propogateToDescendants N Indicates if changes propagate to the children of this level. 0 for no, 1 for yes. 0
status Y updated
The status of the attribute following update. For warning and error, the message element
contains the message contents. The status of updated does not return any message
contents.
Zero or more optional attributeValue elements. Each enclosed attributeValue element represents a "child attribute value" of this attribute value, whose
members implicitly roll up to this value.
1.4.3.41 | updateDimension
Description Update a dimension. If successful, the API returns details for the dimension that has just been updated.
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model permission to create the dimension.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 375/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
dimension element
name N The name of the dimension. The name must be unique. NewDimensionName
listDimension N "1" means this is a list dimension, "0" (or not specified) means it isn't. 0
useOnLevels N "1" means this dimension can be used on levels, "0" (or not specified) means it can't. 0
autoCreate N "1" means values for this dimension can be created via the import, "0" (or not specified) 0
means they can't.
keepSorted N "1" means values for this dimension are always sorted alphabetically, "0" (or not specified) 0
means they can be manually ordered.
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 376/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</output>
</response>
dimensions element
(none)
dimension element
Description Represents a single custom dimension being returned in the response to an exportDimensions API call.
id Y The internal system ID number for the dimension. This can be used to identify dimensions in other API calls, 16
such as exportDimensionFamilies.
name Y The name of the dimension, as it appears on reports and sheets. Customer
shortName N The short name for the dimension, if any, as entered in Dimension Administration cust.
autoCreate Y 1 if the selected dimension has the "Data import automatically creates dimension values" field set; 0 otherwise. 0
Zero or more dimensionValue elements. Each enclosed dimensionValue element represents a "root dimension value" in the dimension, a value which has no
parent value.
dimensionValue element
Description Represents a single member value of a custom dimension being returned in the response to an exportDimensions API call.
id Y The internal system ID number for this member value of the dimension. 34
name Y The label for the member value of the dimension, as displayed on reports and used in formulas. A Corp
shortName N The short name for the dimension value, if any, as entered in Dimension Administration A
description N The description of the dimension value, if any, as entered in Dimension Administration A Corporation
Zero or more optional dimensionValue elements. Each enclosed dimensionValue element represents a "child dimension value" of this dimension value, whose
members implicitly roll up to this value.
attributes element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 377/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
attribute element
valueID Y The unique id of the dimension attribute value generated by system. 170
(none)
1.4.3.42 | updateDimensions
Important: For a single request call of updateDimensions requests are limited to updating a maximum of 10000 dimension values in a hierarchical dimension, or
40000 dimension values in a flat dimension. These limits do not apply to creation of new dimension values within a request.
Description Update a set of existing dimensions and their dimension values. Multiple dimensions and multiple values can be updated in one call.
If successful, the API returns details for the dimensions that have just been updated.
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. User must have the "Model" permission and the permission required to
administer the dimensions being updated.
Tip: Best Practice: Invoke exportDimensions to retrieve the Planning dimension IDs needed for your updateDimensions request. No changes should be made to the
planning dimensions via the Planning UI or APIs by others before you submit your updateDimensions request.
HTTP Description
Method Post
Content-Type text/xml
Curl Example
updateDimVal.xml contents
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 378/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
requestCreateNewDimVal.xml content
createNewDimVal.xml
For large payloads, you can post compressed XML files (zipped). Find out how here.
Request Format
Dimensions and dimension values are both identified for update via their internal ID number.
Currency, a system dimension, cannot be updated via API.
To create new dimensions and dimension values, give them a blank or missing ID property.
Within an existing dimension, you can shift an existing (non-new) dimensionValue under a new dimensionValue. Doing so creates the new
dimensionValue and moves the existing dimensionValue under it as a child.
All dimension values created for flat dimensions are visible in all versions by default. To specify visibility you must explicitly mention it using either:
The allVersions attribute in the dimensionValue tag
Or by providing child version tags under dimensionValue to provide custom visibility
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 379/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This method does not change anything about value id 7. It creates a new child named Docs for id 7. All unmentioned children move to the end of the child list.
This is the equivalent of "setting the parent" for the new value, but it is accomplished by including that parent as an element.
For each of the examples to succeed, the full swap of IDs must take place with the unique values.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 380/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
dimensions element
N 1
retainExistingOrder retainExistingOrder="1" indicates updateDimensions API should ignore the order of elements in the
XML payload and the existing defined order will be retained.
Available in API v27+
retainExistingOrder="0" indicates updateDimensions API should update the order of elements
based on the tag position relative to other siblings in the XML payload.
The retainExistingOrder flag is ignored when Dimension has the keepSorted flag enabled.
displayNameEnabled N
displayNameEnabled=1 indicates updateDimensions should respect display name properties of
Only available in API code, displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances that
displayNameEnabled=0 indicates the updateDimensions API should continue following the pre-v30
enable display name.
API contract even when Enable Display Name is ON for the instance. The updateDimensions API
ignores the display name properties code, displayNameType and description.
dimension element
name N The name of the dimension. The name must be unique. NewDimensionName
listDimension N "1" means this is a list dimension, "0" (or not specified) means it isn't. 0
useOnLevels N "1" means this dimension can be used on levels, "0" (or not 0
specified) means it can't.
autoCreate N "1" means values for this dimension can be created via the import, 0
"0" (or not specified) means they can't.
keepSorted N "1" means values for this dimension are always sorted alphabetically, 0
"0" (or not specified) means they can be manually ordered.
Note: Any changes to the components of a display name alter the
sort order of elements, even with Keep Sorted enabled.
displayNameType N Controls the display of dimenision values. The possible values are "CODE_NAME"
NAME, CODE, NAME_CODE or CODE_NAME.
Only available in API v30+ for
instances that enable display name. Defaults to NAME when left blank or not provided.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 381/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Only available in API v30+ for This property is only available when Enable Display Name is ON for
instances that enable display name. the instance.
property1, property2, ... N The properties of the dimension, if any, as entered in the Dimension "Latitude"
Administration. Each dimension can have up to 5 properties.
dimensionValue element
name Y NewDimensionValue
The name of the dimension value. When Enable Display Name is ON for an
instance with API v30 or higher, name allows duplicate values. When Enable
Display Name is OFF for an instance, code is not available and name must be
unique.
Newline characters ( ) found between words get replaced with a single
space during payload processing.
Newline characters found at the beginning or end of the name also get
replaced with single spaces. These spaces do not appear in the user interface
because of whitespace trimming during payload processing.
allVersions N 0
"1" means the dimension value is available in all versions, "0" means it is not.
If allVersions is missing, the default value is 1.
In the example above, if allVersions="1", then the child version elements below
it are ignored.
attribute element
Description Container for one dimension attribute element. Requires a preexisting attribute name and value.
Y Tech1
value The value of the dimension attribute.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 382/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
updated If "Dimension import automatically creates attribute values" is enabled in the dimension attribute administrator UI,
in API any attribute value that does not already exist becomes a new attribute value at the root level.
v18
(none)
version element
Description Specifies the version availability of a dimension value. Requires a preexisting version.
name Y The name of the version or folder, as it appears in Version Administration. Budget 2015
properties element
(none)
property element
Description Specifies a custom property to update. The property element values can only contain numeric characters.
value Y The value of the property. An empty value will erase the property value for the dimension value. 33.6015
(none)
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 383/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
dimensions element
(none)
retainExistingOrder N 1
If 0, updateDimensions API should update sort order based on the XML payload content.
displayNameEnabled 1
displayNameEnabled=1 indicates updateDimensions should respect display name properties of code,
Only available in API displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances
displayNameEnabled=0 indicates the updateDimensions API should continue following the pre-
that enable display
2021.42 API contract even when Enable Display Name is ON for the instance. The updateDimensions
name.
API ignores the display name properties code, displayNameType and description.
Support for displayNameEnabled begain in 2021.42. The default value for displayNameEnabled is "0".
dimension element
name Y The name of the dimension, as it appears on reports and sheets. Customer
shortName N The short name for the dimension, if any, as entered in Dimension cust.
Administration
autoCreate Y 1 if the selected dimension has the "Data import automatically creates 0
dimension values" field set; 0 otherwise.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 384/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
displayNameType N Controls the display of dimension values. The possible values are NAME, CODE_NAME
CODE, NAME_CODE or CODE_NAME.
Only available in API v30+ for instances that
enable display name. Defaults to NAME when left blank or not provided.
This property is only available when Enable Display Name is ON for the
instance.
Zero or more dimensionValue elements. Each enclosed dimensionValue element represents a "root dimension value" in the dimension, a value which has no
parent value.
dimensionValue element
Description Represents a single member value of a custom dimension being returned in the response to an
exportDimensions API call.
name Y The label for the member value of the dimension, as displayed on A Corp
reports and used in formulas.
shortName N The short name for the dimension value, if any, as entered in Dimension A
Administration
description N The description of the dimension value, if any, as entered in Dimension A Corporation
Administration
status Y updated
The status of the dimension value following update. For warning and
error, the message element contains the message contents. The status
of updated does not return any message contents.
message N The error message for an invalid dimensionValue input. The dimension name
ProductsFirst01234567890123456...
cannot be more than 64 characters
long
Zero or more optional dimensionValue elements. Each enclosed dimensionValue element represents a "child dimension value" of this dimension value, whose
members implicitly roll up to this value.
attribute element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 385/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
status Y updated
The status of the dimension value following update. For warning and error, the message element contains the
message contents. The status of updated does not return any message contents.
(none)
version element
name Y The name of the version or folder, as it appears in Version Administration. Budget
2015
status Y updated
The status of the dimension value following update. For warning and error, the message element contains the
message contents. The status of updated does not return any message contents.
properties element
(none)
property element
value The value of the property. An empty value will erase the property value for the dimension value. 33.6015
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 386/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Status The status of the property following update. For error, the message element contains the error message contents.
The status of updated does not return any message contents.
Message The error message for an invalid property input. Property tag requires a
name attribute.
1.4.3.43 | updateDimensionValue
Description Update a dimension value. If successful, the API returns details for the dimension and all dimension values including the one
that has just been updated.
This method's request contains a credentials tag to identify and authorize the calling user. User must have Model permission to create the dimension.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or his- tory of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 387/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
dimensionValue element
(none)
attributes element
(none)
attribute element
valueID Y The unique id of the dimension attribute value generated by system. If this value is 0 then this attribute is 170
removed from the account.
(none)
Response Format
These are examples of responses for successful and unsuccessful updating of a dimension value.
Success Example
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 388/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<attributes>
<attribute attributeId="21" name="Education Type" valueId="197" value="Tech1" />
</attributes>
</dimensionValue>
<dimensionValue id="33" name="Masters" description="Masters degree" shortName="">
<attributes>
<attribute attributeId="21" name="Education Type" valueId="196" value="Management" />
</attributes>
</dimensionValue>
<dimensionValue id="34" name="Phd" description="Phd" shortName="" />
</dimension>
</dimensions>
</output>
</response>
Error Example
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
obsolete N If present on the response tag and set to true, this attribute indi-cates that the version of the method or API which is false
being invoked has become obsolete and is officially deprecated. While it continues to function at this time, it may
cease functioning in a short while. Typically, this attribute is not present.
A single optional messages element, and exactly one required output element.
output element
(none)
A single accounts element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
dimensions element
(none)
dimension element
Description Represents a single custom dimension being returned in the response to an exportDimensions API call.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 389/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
id Y The internal system ID number for the dimension. This can be used to identify dimensions in other API calls, 16
such as exportDimensionFami- lies.
name Y The name of the dimension, as it appears on reports and sheets. Customer
shortName N The short name for the dimension, if any, as entered in Dimension Administration cust.
autoCreate Y 1 if the selected dimension has the "Data import automatically creates dimension values" field set; 0 otherwise. 0
Zero or more dimensionValue elements. Each enclosed dimensionValue element represents a "root dimension value" in the dimension, a value which has no
parent value.
dimensionValue element
Description Represents a single member value of a custom dimension being returned in the response to an exportDimensions API call.
id Y The internal system ID number for this member value of the dimension. 34
name Y The label for the member value of the dimension, as displayed on reports and used in formulas. A Corp
shortName N The short name for the dimension value, if any, as entered in Dimension Administration A
description N The description of the dimension value, if any, as entered in Dimen- Administration A Corporation
Zero or more optional dimensionValue elements. Each enclosed dimensionValue element represents a "child dimension value" of this dimension value, whose
members implicitly roll up to this value.
attributes element
(none)
attribute element
valueID Y The unique ID of the dimension attribute value generated by system. 170
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 390/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
1.4.3.44 | updateLevel
Description Update a level. If successful, the API returns details for the level that has just been updated.
This method's request contains a credentials tag to identify and authorize the calling user. User must have Organization Structure permission to create the level.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
level element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 391/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
name Y The name of the level. The name must be unique. New Level
Name
proceedWithWarnings N Indicates whether the user wants to ignore warning messages and go ahead with the create 1
operation. 0 for no, 1 for yes. If there are warnings and proceedWithWarnings=0, then the level will
not be created. Set proceedWithWarnings=1 to create the level when there are warnings.
One optional attributes element if you want to set one or more level attributes associated with the level.
attributes element
(none)
attribute element
valueID Y The unique id of the level attribute value generated by system. If this value is 0 then this attribute is removed 170
from the account.
(none)
Response Format
output element
(none)
A single required level element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 392/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
levels element
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
level element
Description Represents a single organization level being returned in the response to an exportLevels API call.
name Y The name of the level, as it appears on reports and sheets. Development
currency Y The currency code for the currency assigned to this level of the organization. The currency will be one of INR
the configured currencies for the instance, found in the exportActiveCurrencies call.
shortName N The abbreviation for the level, if any, as entered in Organization Administration. Dev
availableStart N The start date for the availability of the level for actuals verion, applicable only when the Actuals version is 01/2012
specified in the request. he value can be either a time period code, such as "01/2012" or the special value
"START" indicating the start of the version.
availableEnd N The end date for the availability of the level for actuals verion, applicable only when the Actuals version is 12/2013
specified in the request. The value can be either a time period code, such as "12/2013", or the special
value "END" indicating the end of the version.
isImportable N 1
Indicates if the associated level is importable in the specified version. '0' means it is not importable and '1'
means it is importable. A level is importable if at least one timeslot in the specified version is importable.
isImportable attribute is only emitted if versionName or versionID is specified in the request.
Note: isImportable only indicates that a level is available for import in the specified version, not that the
user making the API call has the permission to import into the version or level. Use exportVersions to see
which versions are available to the user for import.
workflowStatus N Emits the workflow status for the associated level. I for "In Progress", S for "Submitted", R for "Rejected", I
A for "Approved" and L for "Locked". Only included in the response if workflow is enabled for this
company, and a planning versionName or versionID is specified in the request. Workflow is not available
on actuals versions.
isLinked Y Indicates whether the level is a linked level. 0 for no, 1 for yes. 1
isElimination Y Indicates whether the level is an elimination level. 0 for no, 1 for yes. 0
One nested level element for each direct child level of this level.
One attributes element if this level has one or more attributes associated with it.
attributes element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 393/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
attribute element
Description Represents a single non-blank level attribute mapping to which a level is associated.
value Y The value of the level attribute associated with the level. Yes
valueID Y The internal system id number of the level attribute value. 188
(none)
1.4.3.45 | updateLevels
Description Update a set of existing levels or create new levels and their properties. Multiple levels with multiple values can be updated in one call. If
successful, the API returns details for the levels that were updated/created. If the API fails, a comprehensive list of errors and their causes
returns.
Parameters Credentials
Required On
Request
This method's request contains a credentials tag to identify and authorize the calling user. User must have the "Model" permission and the permission required to
administer the levels being updated.
Tip: Best Practice: Invoke exportLevels to retrieve the Adaptive Planning level IDs needed for your updateLevels request. No changes should be made to the
planning levels via the Adaptive Planning UI or APIs by others before you submit your updateLevels request.
HTTP Description
Method Post
Content-Type text/xml
Curl Example
updateLevels.xml contents
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 394/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
For large payloads, you can post compressed XML files (zipped). Find out how here.
This method does not change anything about level id 7. It creates a new child named Documnentation for id 7. All unmentioned children of Engr move to the
end of the child list. This is the equivalent of "setting the parent" for the new level.
For each of the examples to succeed, the full swap of IDs must take place with the unique values.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 395/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
levels element
Description Only 1 levels element request is allowed per payload. It contains one or more level elements.
N 1
retainExisitingOrder retainExistingOrder="1" indicates updateLevels API should ignore the order of elements in the XML
payload and the existing defined order will be retained.
Available in API v26+
retainExistingOrder="0" indicates updateLevels API should update the order of elements based on
the tag position relative to other siblings in the XML payload.
The default value for retainExistingOrder is "0" for v26. For API version v27 and later, the default
value for retainExistingOrder is "1".
displayNameEnabled N 1
displayNameEnabled=1 indicates updateLevels should respect display name properties of code,
Only available in API displayNameType, and description when Enable Display Name is ON for the instance.
v30+ for instances that
displayNameEnabled=0 indicates the updateLevels API should continue following the pre-v30 API
enable display name.
contract even when Enable Display Name is ON for the instance. The updateLevels API ignores
the display name properties code, displayNameType and description.
level element
Only available in API This property is only available when Enable Display Name is ON for the instance.
v30+ for instances that
enable display name.
name N The name of the level. When Enable Display Name is ON for an instance with API v30 NewLevelName
or higher, name allows duplicate values. When Enable Display Name is OFF for an
updated in API v30
instance, code is not available and name must be unique.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 396/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
currency N The currency code for the currency assigned to this level of the organization. The USD
currency will be one of the configured currencies for the instance, found in the
exportActiveCurrencies call.
N CAD
publishCurrency PublishCurrency sets the Workday Company currency when publishing a Financial
Plan. The Publish Currency loads through the Planning Level Loader in Workday
Available in API v24+
Adaptive Planning integration as an additional currency attribute for a level.
PublishCurrency indicates one of the configured currencies for the instance, found in
the exportActiveCurrencies call and the Levels Admin UI.
Only available when you set up Adaptive Planning for Workday. See the Publish Plans
section of Using Adaptive Planning with Workday.
eliminationLevel N Indicates if this level is an elimination level for use in intercompany eliminations. A level 1
can be an elimination level or a elimination trading partner, but not both.
eliminationTradingPartner N Indicates if this level is an elimination trading partner. A level can be an elimination 0
trading partner or an elimination level, but not both.
actualsStart N Indicates the start of the actuals for this level. Must be an existing time code from Time May-2013
Administration at the default time stratum.
actualsEnd N Indicates the end of actuals for this level. Must be an existing time code from Time Dec-2018
Administration at the default time stratum.
One or more attribute elements if you want to set one or more level attributes associated with the level.
version element
name Y The name of the version or folder, as it appears in Version Administration. Budget 2015
attribute element
(none)
dimension element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 397/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
Consider the tree structure below where the parent "California" has 2 child levels "Palo Alto" and "Pleasanton". The level attributes "Palo Alto" and "Pleasanton" are
siblings.
Location
|__USA
|__California
|__Palo Alto
|__Pleasanton
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 398/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Version availability of a level works the same way. Set the version availability of a level before altering the child levels to avoid compatibility errors.
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 399/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</level>
</level>
<level id="3" name="Professional Services" currency="USD" shortName="Prof.Srv" eliminationLevel="1" eliminationTradingPartner="0" inWorkflow="0" status="up
<attribute name="Corporate Discount" value="Available" status="" />
<attribute name="Transfers Restricted" value="Yes" status="" />
<dimension name="Region" value="C-US" status="" />
</level>
</level>
</levels>
</output>
</response>
output element
(none)
A single required level element. This output wrapper is standard on all API responses and encloses the valid output of any successful API call.
levels element
retainExisting Order N 1
0 updateLevels API should update sort order based on the XML payload content.
displayNameEnabled N 1
displayNameEnabled=1 indicates updateLevels should respect display name properties of
Only available in API v30+ for code, displayNameType, and description when Enable Display Name is ON for the
instances that enable display instance.
name.
One or more level elements. If the request includes inaccessible levels, there will be only one level element, which represents the top level of the organization.
level element
Description Represents a single organization level being returned in the response to an updateLevels API call.
Only available in API This property is only available when Enable Display Name is ON for the instance.
v30+ for instances that
enable display name.
name Y The name of the level, as it appears on reports and sheets. Development
currency Y The currency code for the currency assigned to this level of the organization. The INR
currency will be one of the configured currencies for the instance, found in the
exportActiveCurrencies call.
N CAD
publishCurrency PublishCurrency sets the Workday Company currency when publishing a Financial Plan.
The Publish Currency loads through the Planning Level Loader in Workday Adaptive
Available in API v24+
Planning integration as an additional currency attribute for a level. The Publish Currency
indicates one of the configured currencies for the instance, found in the
exportActiveCurrencies call and indicated in the Level Admin UI.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 400/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
shortName N The abbreviation for the level, if any, as entered in Level Administration. Dev
eliminationLevel N Indicates whether the level is an elimination level. 0 for no, 1 for yes. 1
eliminationTradingPartner N *description* 1
inWorkflow N Indicates whether the level is in a workflow. 0 for no, 1 for yes. 1
propogateToDescendants N 1
Indicates if changes propagate to the children of this level. 0 for no, 1 for yes.
actualsStart N The time code as defined in Time Administration for the start of the actuals version for 05/2013
this level.
actualsEnd N The time code as defined in Time Administration for the end of the actuals version for this 12/2018
level.
status Y Updated
The status of the level following update. For warning and error, the message element
contains the message contents. The status of updated does not return any message
contents.
message N The error message for invalid level input The level
UKregion2 is
either duplicated in
the payload or
already exists in
the system with ID
6.
One nested level element for each direct child level of this level. One attributes element if this level has one or more attributes associated with it.
attribute element
status Y updated
The status of the attribute following update. For warning and error, the message
element contains the message contents. The status of updated does not return
any message contents.
message N The error message for an invalid attribute input. The level UKregion2 is either duplicated
in the payload or already exists in the
system with ID 6.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 401/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
version element
name Y The name of the version or folder, as it appears in Version Administration. Budget
2015
status Y updated
The status of the version following update. For warning and error, the message element contains the message
contents. The status of updated does not return any message contents.
dimension element
Description Represents a single custom dimension being returned in the response to an updateLevels API call.
name Y The name of the dimension, as it appears on reports and sheets. Region
status N Updated
The status of the version following update. For warning and error, the message element contains the message
contents. The status of updated does not return any message contents.
(none)
Error A system error occurred contact support for more information. System error
Error Provided input does not contain any level tags. Payload is missing level tag.
Error {0} is not recognized as a defined {1}. Used when version name or value is unknown.
Error Version availability cannot be changed for actuals. When the user attempts to modify version visibility for the
actuals version.
Error Version availability cannot be changed for the root level {0}. When the user attempts to modify version visibility for the root
level.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 402/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Error The visibility of version {0} on the level {1} is not compatible with parent of {1}. When the provided version visibility of the level is not
compatible with the parent level.
Error You do not have access to update one or more of the levels or versions When the user attempts to update non-accessible level
specified in the request. information.
Error {0} is not recognized as a defined {1}. Used when dimension name or value is unknown.
Error List Dimension cannot be used in Level. User attempts to map a flat dimension value for a level.
Error The dimension {0} is disabled for the level. The dimension is disabled for this level.
Error The dimension value {0} is not compatible with the parent's dimension value. When the provided dimension mapping of level is not
compatible with the parent level.
Error {0} is not recognized as a defined {1}. Used when attribute name or value is unknown.
Error The attribute value {0} is not compatible with the parent's attribute value. When the provided level attribute value of the level is not
compatible with the parent level.
Error Exception occurred when processing updateLevels API request. System error
Error Id {0} does not exist. Nonexistent level id provided in the request payload.
Error A {0} cannot have the same id as its parent. Child and parent level have the same ID.
Error {0} cannot be the child of {1}. A specific level can't be the child of another specific level.
Error Root level id is missing. The ID for the root level was not provided.
Error The root level Id {0} with level name {1} cannot become a child level. The root level can't become a child level.
Error The root level currency cannot be changed. Currency can not be changed for the root level.
Error The currency {0} is not valid. Unknown currency name provided in the level tag.
Error The level {0} is duplicated for IDs {1}. Duplicate level name provided.
Error The level {0} is duplicated in the payload {1} {2}. Multiple new levels contain the same name.
Error The root level workflow cannot be changed. InWorkflow status can not be changed for the root level.
Error The attribute assignment of level {0} is not compatible with the parent's The provided level attribute value of the level is not compatible
attribute value. with the parent level.
Error The level with ID {0} does not exist. No level with the provided ID exists in Planning.
Error You do not have access to update one or more of the levels or versions User permission missing for a level mentioned in payload.
specified in the request.
Error The version visibility of the level {0} is not compatible with {0} parent {1}. Provided version visibility of the level is not compatible with the
parent level.
Error The level {0} has an actuals availability containing more time periods than its The current level actuals range has been changed. The
parent {1}. modified actuals range makes it smaller than one of its
descendant's actuals range.
Error You cannot disable workflow for the level ({0}) if deleteWorkflowSilently, 0. If When delete workflow silently is off, you cannnot disable
you set deleteWorkFlowSilently, 1, all of your workflow tasks associated with workflow. If delete workflow silently is turned on, all workflow
this level will be deleted. tasks for the level get deleted.
Error Could not update the Actuals Start and End date for {0} since the date range is User attempts to shrink actuals range without
smaller than the start and end dates defined for the Actuals version, and deleteActualsSilently flag set.
deleteActualsSilently is set to false preventing actuals from being deleted for
{1}.
Error Workflow cannot be enabled for the level {0} as its parent has workflow Workflow cannot be enabled for the level because its parent
disabled. has workflow disabled.
Error TradingPartner or eliminationLevel cannot be enabled for the level {0} as its When trading partner is already enabled for a parent, its
parent has tradingPartner enabled. children cannot have trading partner or elimination level
enabled.
Error A parent with id {0} does not exist. A nonexistent ID was provided for a parent level.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 403/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Error Parent node {0} is becoming child of its current direct/indirect child node {1}. A cyclic relationship between a parent and children is being
created.
Error A level cannot be its own parent. A level cannot become its own parent in a payload.
Error A level with id {0} does not exist. The provided entity does not exist in Planning.
Error Elimination and TradingPartner cannot be true at the same time. A level can be an elimination level, or a trading partner, but not
both at the same time.
Error You can only modify Elimination on this level while its parent has Modifying elimination for a level can only happen when that
TradingPartner disabled. level's parent has trading partner disabled.
Error A sub-level beneath this level is an elimination level, so this level cannot be The current level cannot be marked as a trading partner
marked as a trading partner. because a level underneath it is an elimination level.
Error You cannot enable workflow on this level while its parent has workflow The parent of the level has workflow disabled.
disabled.
Error {0} can only be enabled together for a node and its descendants. To make See more about propogateToDescendants behavior here.
changes to them , set propagateToDescendants=1.
Error Cannot make level ''{0}'' an elimination level since it has data in one or more A level can't become an elimination level if it contains data in
intercompany accounts. intercompany accounts.
Error actualsStart or actualsEnd cannot be changed for root level {0}. The user attempts to change actuals range for root level.
Error You cannot add children to a linked level. The user attempts to add a child level for a linked level.
Error A timecode {0} does not exist. The provided time code does not exist.
Error The actuals start date {0} cannot be greater than the actuals end date {1}. The provided actuals start time is after the end time. The
actuals start time needs to be before the end time.
Error Invalid time code "{0}". Time codes set for actualsStart and actualsEnd must Provided time code is not at lowest strata level.
match the lowest strata available in Time Administration.
Error Invalid time code "{0}". The actualsStart {0} is before parents actualsStart {1}. The actualsStart time provided is before parent level's actuals
start time.
Error Invalid time code "{0}". The actualsEnd {0} is after parents actualsEnd {1}. The actualsEnd time provided is going beyond parent level's
actuals end time.
Error The actualsStart of {0} is before the Actuals version start of {1}. The The actualsStart time provided is before Actuals version start
actualsStart should come after {1}. time.
Error The actualsEnd of {0} is after the Actuals version end of {1}. The actualsEnd The actualsEnd time provided is going beyond Actuals version
should come before {1}. end time.
Error Invalid "{0}" value "{1}". The value must be "1" or "0". The user provided something other than "0" or "1" as a value
for a boolean property.
Error {0} is NOT allowed as name. Reserved word "this", word ending with "(+)" or "(-)" has been
provided as level name.
Error Id "{0}" does not exist. Provided entity does not exist in Planning.
Warning The level {0} cannot be moved to another parent while User attempts to move level without proceedWithWarning="1".
proceedWithWarnings=0. proceedWithWarning="1" means version visibility, attribute
mapping and data will be adjusted to match with new parent
level.
Warning The actuals availability range was reduced for level {0}. The actuals data Actuals availability range was reduced. Data outside of the
excluded from the range has been deleted. range gets deleted.
Warning deleteWorkflowSilently is a global flag. It should be in the levels tag. Delete workflow silently is a global flag. It belongs in the levels
tag, not in another tag.
Warning deleteActualsSilently is a global flag. It should be in the levels tag. Delete actuals silently is a global flag. It belongs in the levels
tag, not in another tag.
Warning Levels can not be modified because there are unpublished changes. Planning has pending changes for admin publishing.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 404/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The updateLevels API contains a boolean propagateToDescendants attribute for workflow, Level Dimension, Level Attribute, Level Version, and Level Actuals.
PropagateToDescendants handles how changes flow from a parent to its children. During an updateLevels request enabling or disabling
propagateToDescendants has different affects depending on where it is used. The ProceedWithWarnings attribute also generates different results depending on
what changes as part of an updateLevels request.
Workflow
inWorkflow=0 =1 The current level and all its children are disabled
Level Dimension
A level has a =1 The parent dimension and its child dimensions will change. First, propagateToDescendants is performed,
dimension. then specific dimension changes are executed in the children.
A level has a =0 updateLevels updates dimensions for the current level only.
dimension.
Level Attribute
Child attributes are compatible. =1 Only the current attributes will change.
Child attributes are not compatible. =1 The current level along with all its child attributes will change
Child attributes are compatible. =0 Only the current attributes will change.
Level Version
Version is unavailable for a parent. =1 The version will be unavailable for the current level and all its children.
Version is available for a parent. =1 The version will be available for the current level and all its children.
Version is available for a parent. =0 The version will be available for the current level only.
Level Actuals
Parent actuals shrinks (the number of days reduces). =1 Actuals for the current level and all its children will shrink.
Parent actuals shrinks (the number of days reduces). =0 updateLevels will error out.
Parent actuals expands (the number of days increases). =1 Actuals for the current level expands. Children are not impacted.
Parent actuals expands (the number of days increases). =0 Actuals for the current level expands. Children are not impacted.
proceedWithWarnings
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 405/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1.4.3.47 | updateUser
Description Update a user(s). If successful, the API will return a message for the user that has just been updated.
This method's request contains a credentials tag to identify and authorize the calling user. User must have "User Permission" permission to update the user(s).
This method does not control or update a user's access rules (dimension access control).
Important: This method does not function following user synchronization from Workday. It only allows assigning permission sets and level access before user
synchronization occurs.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
user element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 406/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
guid Y A globally-unique identifier for the user. This identifier will never change B9ADBCB81AA2F9BAE040307F02092C2E
for this user, even if their login or name changes in the future. (The guid is
also covered in the exportUsers API)
email N [email protected]
The email address for this user. Uniqueness is required. The only allowed
characters are a-z, A-Z, 0-9, - and .
password N The password of this user. If you are updating a user who is in a multi- newpassword
instance environment you can only specify password changes in their
default instance.
N The alternate email address for this user. We automatically select this [email protected]
alternateEmail
option and populate with the email ID of the user in the User Details
v27
Available in API
v27
Available in API
v25+
N The internal system ID of the role assigned to this user. (The roleId 3
roleId
attribute is also covered in the exportRoles API.)
Available in API
v25 and earlier
Not available in
API v25+
ownedLevels N The internal system ID for the levels separated by comma. (The 5,10,13
ownedLevels attribute is also covered in the exportLevels API.)
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 407/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A single result element with created_user or updated_user status elements depending on whether a createUser or updateUser call was made, respectively.
result element
(none)
One or more created_user or updated_user status elements depending on whether a createUser or updateUser call was made, respectively.
updated_users element
Description Represents a message sent from the system back to the caller.
user success Y The status returned by the call. Can be true or false. true
1.4.4.1 | importConfigurableModelData
This method's request contains the parameters that will be used to determine which sheet and which version will receive the supplied rows of data.
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
importDataOptions
version
sheet
rowData
Note: A mismatch between the number of pipe characters ( | ) in the header and the data will cause an error for API v30 or higher.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 408/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
importDataOptions element
planOrActuals Y Set to one of Plan or Actuals to specify the type of data being imported. If this setting is in conflict with Plan
the version specified in the Version tag, the Version tag's value takes precedence and this setting is
ignored.
moveBPtr N Used only when the data being imported has a set of timespan numbers of each row. If moveBPtr is set false
to true, the import will move the actuals availability pointer in the actuals version to be the latest time
period found in the imported data. If set to false, the import will not affect which time periods show
actuals on any version. This attribute must be set to false if planOrActuals is set to Plan.
allowParallel Y If set to true, then an import will proceed even if there is already another actuals or transactions import false
in process for this instance. If set to false, then an attempt to import will fail if there is already an actuals
or transactions import being processed for this instance.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 409/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
useMappings N Specifies whether to use import mappings for accounts, plans and dimension values inside the row false
elements. Considered true by default. If false then the internal identifiers should be used: accounts are
identified by code, levels and dimension values by name.
replaceExisting N true
Set to "1" or "true" to replace all existing rows on all levels with the new rows being imported(i.e. erase
all previously existing rows on all levels). Only users with the Import to All Locations permission can
use this option.
Set to "0" or "false" to append the imported rows to the existing rows, even if the new rows are
duplicates.
Set to "2" to replace the existing rows in the modeled sheet with the new rows being imported, but only
for levels which are being imported. Levels which do not have any unsplit rows in the uploaded
spreadsheet will not have their existing rows removed, unless the row was a split of a row that is being
replaced by the upload.
replaceExisting examines the used dimensions, and if data exists in the same level, account, time
period, and version. If a row key exists, we match to the row key column or columns, as well.
If data exists in the system at the same location, the import replaces it. This replacement occurs row by
row. The import does not replace everything at once. Unmatched import rows append to the sheet.
For example, you perform two imports. Your first import file loads data that your second import file does
not contain. That existing data will remain after the second import.
If you want to delete all of the data in a particular column, include the column but leave its column
values blank. Column values for unmentioned columns remain unaltered.
Set to "3" to update existing rows in the modeled sheet to reflect the new rows being imported. A
warning will be returned if any row does not match an existing row. This mode requires an importKey.
Sheets with Allow splits selected do not support updates.
Set to "4" to update existing rows in the modeled sheet to reflect the new rows being imported, and
insert new rows for any which do not match an existing row. This mode requires an importKey. Only
required columns are Import Key, Level, and any text selectors, even when not adding new rows.
Sheets with Allow splits selected do not support updates.
importKey N Level
The modeled sheet column name to use as the import key when updating modeled sheet rows.
Adaptive Planning uses the import key column to match each row in the import to rows in the modeled
sheet. The import key value of every row must be unique.
a level column
a dimension column
includeContext N Specifies whether messages may include the context block. Values are false (never show context) or false
true (show context if appropriate). If not specified, true is assumed.
displayNameEnabled N false
displayNameEnabled=true indicates API should expect Account Code, Level Code, Dimension Code
Only available in API and Dimension Name column in the payload when the Enable Display Name setting is ON for the
v31+ for instances instance.
that enable display
displayNameEnabled=false indicates API should continue following pre- v30 API contract even when
name.
the Enable Display Name setting is ON for the instance.
(none)
version element
Description Indicates which version should be used to receive the requested data. A version must be provided for each call.
name N The name of the version to be used to receive the data. Only one version can be accessed within a single API call. Budget
If a name is not provided, the isDefault flag must be set to true on this element. 2014
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 410/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
isDefault N If the caller wishes to access the current default version of the instance regardless of its name, this attribute can be false
set to true, in which case the name attribute of the tag (if present) is ignored. Otherwise, if this value is false or if
this attribute is not present, a version with the supplied name must exist and be accessible to the user in order for
this call to succeed.
(none)
sheet element
Description Indicates which sheet should receive the imported data. Each API call can target only one sheet's data.
name Y The name of the sheet to which the data will be imported. Personnel
isUserAssigned N Indicates the sheet is a user-assigned sheet. If not specified, defaults to false, which indicates it's a level- false
assigned sheet.
(none)
rowData element
(none)
header element
Description Specifies the names and order of the columns of the data in the corresponding rows element.
(none)
A line of text with vertical-bar-separated column names. These column names must correspond to the names of the dimensions or fields on the sheet, or to the
codes of the time periods that can contain data. They are identical to the column names found in the Import Template for the sheet to which the data is being
imported, with each column header separated from the next by a vertical bar or pipe symbol | .
rows element
(none)
row element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 411/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
Data for the fields in a single row being imported, each field's value separated by a vertical bar or pipe symbol. The data fields must be in the same order as
the line in the header element. If numbers in the values use thousands separators, they are assumed to be the comma separators used in the locale specified
in the credentials of the request.
Response Format
These are examples of responses for successful and unsuccessful importing of data.
Success Example
</context>
Invalid Level Choice: Development1 on row 1 column A
</message>
</messages>
</response>
</messages>
</response>
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 412/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
1. The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also
contain variable information such as the number of rows which were processed, or the particular column or value that caused an error.
2. An optional context element.
context element
none
col element
Description Represents the context for the message. Gives a header/value pair so the row generating the message can be identified.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 413/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
1.4.4.2 | importCubeData
Description Inserts or replaces data in a cube sheet. This method can also be used to delete data from a cube sheet by importing zeroes to
locations in the cube. Importing a zero into a cube sheet will erase the data at the location of the zero.
Permissions Import
Required To
Invoke
This method's request contains the parameters that will be used to determine which sheet and which version will receive the supplied rows of data. This method can
also be used to delete data from a cube sheet by importing zeroes to locations in the cube. Importing a zero into a cube sheet will erase the data at the location of
the zero.
Request Format
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
importDataOptions
version
sheet
rowData
Note: A mismatch between the number of pipe characters ( | ) in the header and the data will cause an error for API v30 or higher.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 414/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
importDataOptions element
planOrActuals Y Set to one of "Plan" or "Actuals" to specify the type of data being imported. If this setting is in conflict Plan
with the version specified in the Version tag, the Version tag's value takes precedence and this setting
is ignored.
moveBPtr N Used only when the planOrActuals attribute is set to Actuals. If moveBPtr is set to true, the import will false
move the actuals availability pointer in the actuals version to be the latest time period found in the
imported data. If set to false, the import will not affect which time periods show actuals on any version.
This attribute must be set to false if planOrActuals is set to Plan.
allowParallel Y Used only when the planOrActuals attribute is set to Actuals. If set to true, then an import will proceed false
even if there is already another actuals or transactions import in process for this instance. If set to false,
then an attempt to import will fail if there is already an actuals or transactions import being processed
for this instance.
useMappings N Specifies whether to use import mappings for accounts, plans and dimension values inside the row false
elements. Considered true by default. If false then the internal identifiers should be used: accounts are
identified by code, levels and dimension values by name.
includeContext N Specifies whether messages may include the context block. Values are false (never show context) or false
true (show context if appropriate). If not specified, true is assumed.
displayNameEnabled N false
displayNameEnabled=true indicates importCubeData should expect Account Code, Level Code,
Only available in API Dimension Code, and Dimension Name Column in the payload when Enable Display Name is ON for
v30+ for instances the instance.
that enable display
displayNameEnabled=false indicates the importCubeData API should continue following the pre-v30
name.
API contract even when Enable Display Name is ON for the instance. The importCubeData API ignores
the display name properties Account Code, Level Code, Dimension Code, and Dimension Name
Column.
(none)
version element
Description Indicates which version should be used to receive the requested data. A version must be provided for each call.
name N The name of the version to be used to receive the data. Only one version can be accessed within a single API call. Budget
If a name is not provided, the isDefault flag must be set to true on this element. 2012
isDefault N If the caller wishes to access the current default version of the instance regardless of its name, this attribute can be false
set to true, in which case the name attribute of the tag (if present) is ignored. Otherwise, if this value is false or if
this attribute is not present, a version with the supplied name must exist and be accessible to the user in order for
this call to succeed.
(none)
sheet element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 415/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Indicates which sheet should receive the imported data. Each API call can target only one sheet's data.
name Y The name of the sheet to which the data will be imported. Personnel
isUserAssigned N Indicates the sheet is a user-assigned sheet. If not specified, defaults to false, which indicates it's a level- false
assigned sheet.
(none)
rowData element
(none)
header element
Description Specifies the names and order of the columns of the data in the corresponding rows element.
(none)
A line of text with vertical-bar-separated column names. These column names must correspond to the names of the dimensions or fields on the sheet, or to
time period codes that can contain data. They are identical to the column names found in the Import Template for the sheet to which the data is being imported,
with each column header separated from the next by a vertical bar or pipe symbol.
rows element
(none)
row element
(none)
Data for the fields in a single row being imported, each field's value separated by a vertical bar or pipe symbol. The data fields must be in the same order as
the line in the header element. If numbers in the values use thousands separators, they are assumed to be the comma separators used in the locale specified
in the credentials of the request.
Response Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 416/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
These are examples of responses for successful and unsuccessful importing of cube data.
Success Example
</context>
Row 1 is missing a value.
</message>
<message key="err-no-rows">You must import at least one row of data.</message>
</messages>
</response>
</messages>
</response>
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
messages element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 417/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also
contain variable information such as the number of rows which were processed, or the particular column or value that caused an error.
An optional context element.
context element
none
col element
Description Represents the context for the message. Gives a header/value pair so the row generating the message can be identified.
(none)
1.4.4.3 | importStandardData
This method's request contains the parameters that will be used to determine which version will receive the supplied rows of data. Data can be imported into any
standard account (GL Account, Custom Account, Assumption, or Exchange Rate) regardless of whether the account has been placed onto a sheet.
Important: importStandardData can't import to accounts that use Data Entry for Override Formula Setting.
Request Format
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 418/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
importDataOptions
version
rowData
header
rows
Note: A mismatch between the number of pipe characters ( | ) in the header and the data will cause an error for API v30 or higher.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
importDataOptions element
planOrActuals Y Set to one of "Plan" or "Actuals" to specify the type of data being imported. If this setting is in conflict Plan
with the version specified in the Version tag, the Version tag's value takes precedence and this setting
is ignored.
moveBPtr N Used only when the planOrActuals attribute is set to Actuals. If moveBPtr is set to true, the import will false
move the actuals availability pointer in the actuals version to be the latest time period found in the
imported data. If set to false, the import will not affect which time periods show actuals on any version.
This attribute must be set to false if planOrActuals is set to Plan.
allowParallel Y Used only when the planOrActuals attribute is set to Actuals. If set to true, then an import will proceed false
even if there is already another actuals or transactions import in process for this instance. If set to false,
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 419/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
then an attempt to import will fail if there is already an actuals or transactions import being processed
for this instance.
useMappings N Specifies whether to use import mappings for accounts, plans and dimension values inside the row false
elements. Considered true by default. If false then the internal identifiers should be used: accounts are
identified by code, levels and dimension values by name.
includeContext N Specifies whether messages may include the context block. Values are false (never show context) or false
true (show context if appropriate). If not specified, true is assumed.
displayNameEnabled N false
displayNameEnabled=true indicates importStandardData should expect Account Code, Level Code,
Only available in API Dimension Code, and Dimension Name Column in the payload when Enable Display Name is ON for
v30+ for instances the instance.
that enable display
displayNameEnabled=false indicates the importStandardData API should continue following the pre-
name.
v30 API contract even when Enable Display Name is ON for the instance. The importStandardData API
ignores the display name properties Account Code, Level Code, Dimension Code, and Dimension
Name Column.
(none)
version element
Description Indicates which version should be used to receive the requested data. A version must be provided for each call.
name N The name of the version to be used to receive the data. Only one version can be accessed within a single API call. Budget
If a name is not provided, the isDefault flag must be set to true on this element. 2014
isDefault N If the caller wishes to access the current default version of the instance regardless of its name, this attribute can be false
set to true, in which case the name attribute of the tag (if present) is ignored. Otherwise, if this value is false or if
this attribute is not present, a version with the supplied name must exist and be accessible to the user in order for
this call to succeed.
(none)
rowData element
(none)
header element
Description Specifies the names and order of the columns of the data in the corresponding rows element.
(none)
A line of text with vertical-bar-separated column names. These column names must correspond to the names of the dimensions or fields on the sheet, or to
time period codes that can contain data. They are identical to the column names found in the Import Template for the sheet to which the data is being imported,
with each column header separated from the next by a vertical bar or pipe symbol.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 420/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
rows element
(none)
row element
(none)
Data for the fields in a single row being imported, each field's value separated by a vertical bar or pipe symbol. The data fields must be in the same order as
the line in the header element. If numbers in the values use thousands separators, they are assumed to be the comma separators used in the locale specified
in the credentials of the request.
Response Format
These are examples of responses for successful and unsuccessful importing of standard account data.
Success Example
</context>
Account cannot be empty on row 1.
</message>
</messages>
</response>
</messages>
</response>
response element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 421/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
1. The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also
contain variable information such as the number of rows which were processed, or the particular column or value that caused an error.
2. An optional context element.
context element
none
col element
Description Represents the context for the message. Gives a header/value pair so the row generating the message can be identified.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 422/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
1.4.4.4 | importTransactions
Note: You can only delete transactions during import. If you want to remove all transactions during import, consider importing one blank row and deleting the
remaining data.
This method can be used to delete existing transaction rows which match certain criteria, to insert new transaction rows into the system, or to do both actions in one
invocation (i.e. replace a set of transaction rows with another set of rows).
Request Format
Each invocation of this API call must contain exactly one element of each of the listed types:
credentials
importTransactionsOptions
rowData
Note: A mismatch between the number of pipe characters ( | ) in the header and the data will cause an error for API v30 or higher.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, month names, and date
formatting). The locale is also used to specify the language in which any system messages
in the response should appear. If not specified, en_US (American English) is used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
importTransactionsOptions element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 423/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Description Specifies the options to be used when performing the import. If at least one of deleteStartDate, deleteEndDate, or
transactionTypes are specified, then this method call will attempt to delete any existing transactions which match
those specified criteria.
deleteStartDate N If this method call is intended to delete some existing transactions, this attribute specifies the 11/01/2012
start date of the set of transactions to be deleted (inclusive). If not specified, all transactions
which have a date on or before the deleteEndDate (and which matches one of the optional
specified TransactionTypes) will be deleted.
deleteEndDate N If this method call is intended to delete some existing transactions, this attribute specifies the 12/31/2012
end date of the set of transactions to be deleted (inclusive). If not specified, all transactions
which have a date on or after the deleteStartDate (and which match one of the optional
specified TransactionTypes) will be deleted.
transactionTypes N A set of transaction types which will be deleted, separated by the pipe symbol. If not specified, Invoice|Purchase
all transactions given between deleteStartDate and deleteEndDate will be deleted. If no Order
deleteStartDate or deleteEndDate is specified, all transactions of the specified types will be
deleted regardless of their dates.
allowParallel Y If set to true, then an import will proceed even if there is already another actuals or transactions false
import in process for this instance. If set to false, then an attempt to import will fail if there is
already an actuals or transactions import being processed for this instance.
useMappings N Specifies whether to use import mappings for accounts, plans and dimension values inside the false
row elements. Considered true by default. If false then the internal identifiers should be used:
accounts are identified by code, levels and dimension values by name.
includeContext N Specifies whether messages may include the context block. Values are false (never show false
context) or true (show context if appropriate). If not specified, true is assumed.
displayNameEnabled N false
displayNameEnabled=true indicates API should expect Account Code, Level Code, Dimension
Only available in API Code and Dimension Name column in the payload when the Enable Display Name setting is
v31+ for instances ON for the instance.
that enable display
displayNameEnabled=false indicates API should continue following pre- v30 API contract even
name.
when the Enable Display Name setting is ON for the instance.
(none)
rowData element
(none)
header element
Description Specifies the names and order of the columns of the data in the corresponding rows element.
(none)
A line of text with vertical-bar-separated column names. These column names must correspond to the names of the dimensions or fields on the sheet, or to
months that can contain data. They are identical to the column names found in the Import Template for the sheet to which the data is being imported, with each
column header separated from the next by a vertical bar or pipe symbol.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 424/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
rows element
(none)
row element
(none)
Data for the fields in a single row being imported, each field's value separated by a vertical bar or pipe symbol. The data fields must be in the same order as
the line in the header element. If numbers in the values use thousands separators, they are assumed to be the comma separators used in the locale specified
in the credentials of the request.
Response Format
These are examples of responses for successful and unsuccessful importing of transaction data.
Success Example
</context>
Invalid Dimension Choice: Invoice12 on row 1 column B
</message>
</messages>
</response>
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 425/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
</messages>
</response>
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
1. The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also
contain variable information such as the number of rows which were processed, or the particular column or value that caused an error.
2. An optional context element.
context element
none
col element
Description Represents the context for the message. Gives a header/value pair so the row generating the message can be identified.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 426/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
(none)
1.4.4.5 | eraseActuals
Description Erases numeric data in the specified time periods and accounts of an actuals version.
This method will erase numeric values from an actuals version for all levels of the specified set of accounts for a given time frame. It will not erase any formulas
(such as shared formulas, cell formulas, account formulas). It will delete those account splits that become empty as a result of the erase actuals process. An empty
split is one which contains no data, formulas, or cell notes. If erasing actuals results in the deletion of the last data from a split, that split will be deleted. This API will
leave splits untouched if they were empty prior to calling the API.
Request Format
To erase numeric values and newly-empty splits for the time periods between the start and the end from all general ledger accounts for all levels of the default
actuals version:
To erase numeric values and cell notes from a single cube sheet for all levels of a specific actuals version between the specified start and end:
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 427/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
eraseOptions element
actualsVersionName N Required when there is more than one actuals version. If this instance contains the planning product Actuals
only, then EraseActuals will erase data from the one and only actuals version.
accountType Y Specifies if account type is general ledger ("GL"), custom ("CUSTOM") or cube sheet ("CUBE"). GL
cubeSheetName N Required if accountType="CUBE". Specifies the name of the cube sheet. Sales
Cube
start Y 01/2013
Specifies the code of the start time period of the actuals time range. The code must refer to a time
period at the time stratum of the account.
If you specify a cube sheet, the code must refer to a time period at the time stratum of the cube sheet.
If you specify a GL or custom account type, the code must refer to the default time stratum.
Note: For API v15+ the time period specified must align with the time stratum of the account. For
example, if the account has a time stratum of Quarters starting in January, then you cannot select
February as a start.
end Y 03/2013
Specifies the code of the end time period of the actuals time range. The code must refer to a time period
at the time stratum of the account.
If you specify a cube sheet, the code must refer to a time period at the time stratum of the cube sheet.
If you specify a GL or custom account type, the code must refer to the default time stratum.
Note: For API v15+ the time period specified must align with the time stratum of the account. For
example, if the account has a time stratum of Quarters starting in January, then you cannot select
February as an end.
includeCellNotes Y If set to "true", then EraseActuals will erase all cell notes in the selected version, account type and time true
range, regardless of whether it is also erasing the data from the cell. If "false", no cell notes will be
deleted.
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 428/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of automated warning-
error logging and recovery in client programs. Keys do not change under different locales of requests, even when invalid-
the language of the message changes. Keys also are unlikely to change in the future due to wording adjustments timespan-
or terminology changes. start
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
1.4.4.6 | eraseData
Description Erases plan or actuals data in the specified time periods for an account with optional filters for levels and accounts.
Erases numeric values from a plan or actuals version for the specified set of accounts for a given time frame. It will not erase any formulas (such as shared
formulas, cell formulas, account formulas). It deletes those account splits that become empty as a result of the erase process. An empty split is a split that contains
no data, formulas, or cell notes. If erasing results in the deletion of the last data from a split, that split will be deleted. This API leaves splits untouched if they were
empty prior to calling the API.
Note: The eraseData method provides the same capabilities as eraseActuals but also includes the ability to erase plan data, with additional control over specific
account-plan combinations that are targets. Cell notes matching the criteria will also be deleted.
Note: Import Capabilities > Erase Data is a superuser permission that enables erasing actuals or plan data across Adaptive Planning, including in locked levels.
Erase Data overrides Access Rules and level ownership restrictions. You can only delete data from calculated accounts with data entry override.
Note: This API validates time stratum on the accounts chosen.
Erasing Levels
If you pass a parent level in your request, the eraseData API only erases the data at the parent level and not child levels. You must include each level individually in
the API request.
Request Format
Requests reject unrecognized tags. Tags allow case insensitive matching. Example: <accounts>, <Accounts>, and <ACCOUNTS> are acceptable for the Accounts
element.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 429/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
To erase numeric values and cell notes from a single cube sheet for all levels of a specific actuals version between the specified start and end:
Erase Plan Data with a Filter to Delete from Specific Custom Accounts
For this example, the plan data in the plan version clone2013Budget for custom accounts SUM_TEXT and LAST_NB will be deleted.
Erase Plan Data with Filters to Delete from Specific Custom Accounts on Specific Levels
For this example, the plan data in the plan version clone2013Budget for custom accounts WA_SUM and SUM_SUM on the levels Development and Hosting will be
deleted.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 430/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
<Level name="Development"/>
<Level name="Hosting"/>
</Levels>
</filters>
</eraseOptions>
</call>
Erase Plan Data with Filters to Delete from a Specific Cube Account on a Specific Level
For this example, the plan data in the plan version 10YearBudget for cube account ExpenseCube.Units in the level WorldWide Sales will be deleted.
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
eraseOptions element
Description Specifies the options used when erasing actuals or plan data.
actualsVersionName N ActualsSubVersion2013
Required for erasing Actuals data. Specifies the name of the actuals version to erase
data from.
Does not erase any formulas (such as shared formulas, cell formulas, account
formulas).
planVersionName N clone2013Budget
Required for erasing Plan data. Specifies the name of the plan version to erase data
from.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 431/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Does not erase any formulas (such as shared formulas, cell formulas, account
formulas).
accountType Y Specifies if account type is general ledger ("GL"), custom ("CUSTOM") or cube sheet GL
("CUBE").
cubeSheetName N Required if accountType="CUBE". Specifies the name of the cube sheet. Sales Cube
start Y 01/2013
Specifies the code of the start time period of the time range. The code must refer to a
time period at the time stratum of the account.
If you specify a cube sheet, the code must refer to a time period at the time stratum of
the cube sheet.
If you specify a GL or custom account type, the code must refer to the default time
stratum.
Note: The time period specified must align with the time stratum of the account. For
example, if the account has a time stratum of Quarters starting in January, then you
cannot select February as a start.
end Y 03/2013
Specifies the code of the end time period of the time range. The code must refer to a
time period at the time stratum of the account.
If you specify a cube sheet, the code must refer to a time period at the time stratum of
the cube sheet.
If you specify a GL or custom account type, the code must refer to the default time
stratum.
Note: The time period specified must align with the time stratum of the account. For
example, if the account has a time stratum of Quarters starting in January, then you
cannot select February as an end.
includeCellNotes Y If set to "true", then eraseData erases all cell notes in the selected version, account true
type, and time range (and account-level combinations matching the filters, if they are
specified), regardless of whether it also erases the data from the cell. If "false", no cell
notes will be deleted
displayNameEnabled N True
displayNameEnabled=true indicates eraseData should respect display name
Only available in API properties of code when Enable Display Name is ON for the instance.
v30+ for instances that
displayNameEnabled=false indicates the eraseData API should continue following the
enable display name.
pre-v30 API contract even when Enable Display Name is ON for the instance. The
eraseData API ignores the display name properties code.
(none)
filters element
Description Specifies the account and level filters to use when erasing data.
One Accounts element, one Levels element, or both an Accounts element and a Levels element.
Accounts element
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 432/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Levels element
Account element
Description The account that data will be erased from, specified by account code.
code Y Specifies the account code for the account of the data being erased. WA_SUM
(none)
Level element
Description The level for the account data being erased, specified by Level name.
name Y Specifies the level name for the account data being World Wide
erased. Sales
(none)
Response Format
response element
success Y Either true or false, indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 433/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of automated warning-
error logging and recovery in client programs. Keys do not change under different locales of requests, even when invalid-
the language of the message changes. Keys also are unlikely to change in the future due to wording adjustments timespan-
or terminology changes. start
The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also contain
variable information such as the number of rows which were processed, or the particular column or value which caused an error.
1.4.4.7 | recalculateSheet
This method's request contains a credentials tag to identify and authorize the calling user. User must have "Sheet Edit Permission" permission to recalculate.
Request Format
credentials element
Description All API calls must contain a single credentials element to identify the user invoking the API. The API call is then performed as
this user (any audit trail or history of actions in the system will show that this user performed the action), and therefore the
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 434/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
user must have the required permissions to perform the action in order for the API call to succeed.
login Y The login name of the user invoking the API method. This user must have the required [email protected]
permissions to invoke the method.
password Y The password of the user invoking the API method. my_password
locale N Specify the locale to be used to interpret incoming numbers and dates, and to format fr_FR
outgoing numbers and dates (using the proper thousands separator, time period names, and
date formatting). The locale is also used to specify the language in which any system
messages in the response should appear. If not specified, en_US (American English) is
used.
instanceCode N If the user specified in the credentials has access to more than one instance of Adaptive MYINSTANCE1
Planning, this attribute can be used to specify that the user is intending to access an
instance other than their default instance. If not specified, the user's default instance will be
used. To determine the available instance codes, use the exportInstances API.
(none)
version element
Description Indicates which version should be used to receive the requested data. A version must be provided for each call.
(none)
sheet element
(none)
level element
(none)
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 435/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Response Format
response element
success Y Either "true" or "false", indicating whether the API call was successful or not. Even successful calls may contain true
warning messages in their response.
messages element
(none)
message element
Description Represents a message being sent from the system back to the caller. Messages are used for error messages when requests do
not succeed, for warning messages when requests do succeed, and for confirmation messages upon success.
key N When given, a key is a way to identify a particular message or type of message, useful for purposes of invalid-
automated error logging and recovery in client programs. Keys do not change under different locales of attributevalueid
requests, even when the language of the message changes. Keys also are unlikely to change in the future
due to wording adjustments or terminology changes.
1. The text of the message. This text is in the language of the locale specified on the request (assuming that locale is supported). The text may also
contain variable information such as the number of rows which were processed, or the particular column or value that caused an error.
2. An optional context element.
The following sample java program that calls the "exportAccounts" API method. The results of the API method call are printed to the screen. In a real application,
the XML data is parsed and the underlying account data is processed.
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Make an "exportAccounts" method call.
*/
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 436/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
// Set the content type, the HTTP method, and tell the connection we expect output
conn.setRequestProperty("content-type", "text/xml;charset=UTF-8");
conn.setRequestMethod("POST");
conn.setDoOutput(true);
// Print it out
System.out.println(response);
}
/**
* Write the request to the given URLConnection
*/
private static void writeRequest(HttpURLConnection conn, String request) throws Exception {
conn.getOutputStream().write(request.getBytes("UTF-8"));
}
/**
* Read the response from the given URL Connection
*/
private static String readResponse(HttpURLConnection conn) throws Exception {
byte[] buffer = new byte[4096];
StringBuilder sb = new StringBuilder();
int amt;
while ((amt = conn.getInputStream().read(buffer)) != -1) {
String s = new String(buffer, 0, amt, "UTF-8");
sb.append(s);
}
return sb.toString();
}
}
1. Log in to the machine where the Adaptive Data Agent Service Manager program is installed.
2. Go to the Start menu > search Notepad > right-click on Notepad > select Run As Administrator.
3. In Notepad, open the following file: C:\Program Files\Adaptive Data Agent\AgentService64.ini
4. Locate the line that starts with Virtual Machine Parameters, make sure there is a space at the end of the line, and then add the following to the end of the
line:
-Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
5. The resulting line should like this:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 437/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2.2 | How can I Schedule a Task to Run More Frequently than Hourly?
Question
How can I schedule a task to run more frequently than once every hour?
Answer
If you have not yet setup a scheduled task you can do so following the steps in our "Create a Task" documentation.
Adaptive Integration import tasks can be scheduled to run on an hourly, daily, weekly, or monthly basis. The way to make the import more frequent would depend on
the frequency that you would like it to run.
If you would like for the task to run every hour, you would just need to have one hourly schedule.
If you would like the task to run multiple times a day, but not every hour, then you would instead add multiple daily schedules to the task, and set each daily
schedule to run at a different time through the steps above. Likewise, if you would like a task to run multiple times per hour you could create multiple Hourly tasks.
For instance, if you want a task to run every 15 minutes you can simply create 4 of the same Hourly tasks and have them each start 15 minutes apart from each
other.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I am receiving an error that states "An error occurred on the Previous request: Duplicate Column Name for field(s): 5, 5, 5" when importing a file to a modeled sheet.
These are not the names of the columns on my sheet. Why am I receiving this error?
Answer
When importing to modeled sheets, the import template places the column names on the fourth row (see attached file for example). Sometimes users receive this
error when the first three rows have been deleted. Adaptive Planning will recognize whichever values are entered on the fourth row in each column as being the
column names in the sheet. Use a fresh import template, or add three rows above the current first row to avoid the error.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I am importing Actuals and am a receiving a message that says I cannot import into a locked version. I have not changed anything, why can I no longer import
Actuals?
Answer
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 438/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
A user must explicitly be granted access to a version to be able to import data to that version. So, one thing you might check is the Access Settings for the Actuals
version from Modeling > Versions and the role the user who is importing Actuals is assigned. For example, if the Actuals version is only open to import for users in
the Actuals access group, and the Import user does not have the Privileged Actuals Access role permission, then the user will not be able to import the Actuals. See
Version Access Control.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I was just wondering what ports need to be open from a server to allow for it to be able to call the adaptive planning web services? We're in the process of setting
up a new machine and would like these ports specified so we can make allowances for the ports so that we can call adaptive planning services from these ports.
Answer
Adaptive Planning web services are available at this URL:
https://api/adaptiveinsights.com:443
Port 443 is a standard https port and usually does not require any special allowance.
You can test access to web services by entering this URL in a web browser: https://api.adaptiveinsights.com/api/v15. You should get an error message:
"Illegal Input. Input data must be an XML document.". This indicates that you have successfully reached the Adaptive Server (but since you did not include a valid
API request you get the error message). You can also "ping" api.adaptiveinsights.com and you should get a reply.
We recommend that you allow-list the domains listed below instead of allow-listing specific IP addresses because IP addresses can be added or changed
dynamically with AWS. Also, Adaptive Planning reserves the right to move your instance to a different server without notice for load balancing or other operations
management purposes.
1. *.adaptiveinsights.com
2. *.adaptiveplanning.com
If specific IP addresses need to be allow-listed, please contact Support ([email protected]) for additional assistance.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question:
How should I modify a Standard import template to match my standard sheet format?
Answer:
Modeled and cube templates will already match to your sheet and will not need any modification. Standard import templates can be adjusted as needed using the
steps below:
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 439/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
4. Once you have edited the dimension and timespan columns to reflect the data that you will import, you can add the appropriate data to the columns and
then import the completed file.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Why is my Data Agent not provisioning after a recent migration, clone, or refresh?
Answer
Data Agents that were previously provisioned in a sandbox might not exist after a sandbox refresh because the refreshed sandbox is a copy of another instance
and the integration configuration may be different from what was previously configured in the sandbox.
The on-premise Data Agent software does not automatically remove local configuration files related to the old sandbox agents; however, it may still allow a user to
try to provision the new sandbox agents which may have the same name and internal identifier as the old sandbox agents. This can cause the Data Agent on the
server to enter a "provisioning" state indefinitely, meaning that it will never complete successfully or terminate with an error.
To provision a new agent for a new instance (or recently refreshed instance):
1. Log in to the Data Agent machine and open the Adaptive Data Agent Service Manager (ADASM) program.
2. Go to the Backup/Unprovision tab.
3. In the Select Active Agent dropdown menu, select each agent that starts with the sandbox instance code and click Unprovision Agent. You can find the
instance code by logging in to the sandbox and going to Administration > General Setup.
4. After all agents with the sandbox instance code have been unprovisioned, close the ADASM.
5. Open the Services program, right-click on Adaptive Data Agent, and click Restart.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 440/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
6. After the service has restarted, open the ADASM again and provision the agent. See Create a Data Agent .
The key is to follow the above steps before attempting to provision any agents after the sandbox is refreshed. If the old agents are unprovisioned locally and the
service is restarted beforehand, provisioning should work without issue.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I exclude rollup levels and accounts when I export data?
Answer
Manually selecting accounts and levels so that you can exclude rollups when exporting data can be a tedious process.
If you select NONE on the export screen for levels and accounts, the system will automatically only export data for the child level and account combinations that
contain data.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 441/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I export my data to NetSuite?
Answer
If the NetSuite Integration feature is enabled and the current user has the Export Budgets to NetSuite permission, then NetSuite Budget Export will be available on
the Export screen. The choices for Export are NetSuite and CSV file. When you select one of these options, the other sections shown on the screen update
according to your selection. If the Output Target is a CSV File, all the current Export tab sections appear below the Output Target section (see the Export tab help
page for more information). If the Output Target is set to NetSuite, then none of the current Export tab sections appear, and instead the following sections appear:
Budget Category - In this selector, the list of all budget categories available in NetSuite is shown.
Fiscal Years - This section contains a series of checkboxes, one for each fiscal year where the start month and year in NetSuite and Adaptive Insights are
equal. The labels shown for the checkboxes are the labels of the NetSuite fiscal years. The checkboxes are initially unchecked and a user must check at
least one of the boxes in order to continue.
You must have the Multiple Budget Categories feature enabled in NetSuite before exporting data into NetSuite Budgets.
The data is exported from the current working version only; this is the version currently selected on the screen.
Data is exported only from GL accounts. Custom accounts, Assumptions, Modeled Accounts, and Cube Accounts are not exportable - NetSuite does not
support budgets for anything other than GL accounts.
All old budget entries in NetSuite for the selected Budget Category for the selected fiscal year(s) are deleted, then the data from Adaptive Insights is
exported into NetSuite, completely replacing any data in the NetSuite budget.
Data associated with AP Dimension Values whose Export Mappings are marked as "Ignore During Export" or remain unmapped will not be exported.
Custom level (formerly plan) dimensions are not considered when exporting GL data. Only dimension values which are assigned by the account having
splits will be considered.
Clicking the Export button on the Export Main Page when NetSuite is the selected output target will send the user to the NetSuite Export Category Mappings
page if the system finds that there is data which would be exported which is currently unmapped in the Export Mappings screen. If all of the data which
would be exported is mapped in the Export Mappings screen, then the user is not sent to the Export Mappings screen and the export proceeds immediately.
After the export to NetSuite, the user is taken to a results page where they are informed of the success or failure of the export.
If no Adaptive Insights dimension maps to Subsidiary, then all data will be exported to the "root" subsidiary in NetSuite.
The values which are exported are converted to currencies according to the following rules:
If Adaptive Insights levels are not configured as a dimension mapping, all values to be exported are from the level rollup at the organization structure
(formerly plan tree) in AP, so all values are converted to the top level currency prior to any export.
If Adaptive Insights levels are mapped, and the target Budget Category is not a Global Category, then values to be exported will be exported in the currency
of the level where the values reside. They will be exported in that currency to the subsidiary or other dimension associated with that level in NetSuite. The
user must ensure that Adaptive Insights levels map to subsidiaries of equivalent currency in NetSuite.
If Adaptive Insights levels are mapped, and the target Budget Category is a Global Category, values to be exported will be converted into the Corporate
Currency at each level, then exported in the corporate currency and in the level where the values reside.
Note: Exchange Rates will not be exported from Adaptive Insights to NetSuite; there must be equivalent exchange rates in the two systems (in particular, in the
Budget Exchange Rates area for NetSuite) so that the converted numbers roll up and tie.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Apart from taking printable views of your sheets and running reports to Excel, you may also export data via the Integration > Export Data screen.
Steps
1. Make sure the appropriate version is selected in the top right corner.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 442/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
c. Dimensions highlight a dimension and use the >> button (if desired)
2.3.10 | Export standard account data from one fiscal year and import into a different fiscal year
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How to export standard account data from one fiscal year and import into a different fiscal year?
Answer
Export Data
There are two ways you can export the standard account data and exclude level rollups from the exports:
1. To create a Matrix report to export data, you would select accounts, levels, time periods, and version for the report
2. Expand all related hierarchies
3. In Report Properties, you would default the report to Excel and check two settings: (1) Repeat row labels in Excel and (2) Suppress rollups.
Import Data
Because the format in exported data will not be in the same time periods you will need to do the following:
1. Download a template by going to Integration > Import data > Download template
2. Update and/or add columns for the time periods that you want to import data
3. Copy the data from the export file and paste the data into the desired time periods in the import template file
4. Save the updated import file
5. Go back to the Integration > Import data > select the version (Import Type) and file (Select File) for your import
6. Click Import
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 443/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Wen importing to a modeled sheet, I am receiving the following error: Fail to execute structure
changes. What does the error mean and how can I correct my import file?
Answer
This error message is returned when there are invalid values in the import file for modeled sheet imports. To correct the invalid values, you can search the Excel file
for invalid cells and correct them with the proper values.
If you have completed these steps and still cannot import the file, please feel free to open a Support ticket and attach the file in question.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I am able to import data to a Modeled Sheet in the Budget Version, but this Modeled Sheet is not an option when importing to the Actuals Version. How can I import
Actuals to a Modeled Sheet?
Answer
You may notice, for example, that your Personnel or Capital sheets are not showing up when trying to import to the Actuals Version. Before you can import data into
the Actuals Version on a Modeled Sheet, the Modeled Sheet first needs to be made available in the Actuals Version. To do this, you can take the following steps:
1. Open the Modeling>Model Management screen and select Sheets (either Level Assigned or User Assigned, depending on where the sheet is)
2. Click Edit next to the Modeled Sheet (Or click on the Modeled Sheet - both links will take you to the Sheet Builder)
3. Click on the "Columns and Levels" option, and select "Sheet Properties" at the top
4. Open the Settings tab
5. Check the "Available in Actuals Version" box
6. Save the sheet.
Once the sheet has been made available in the Actuals Version, you will be able to select the Modeled Sheet in the "Import into Sheet" section when the Actuals is
selected as the "Import Type" on the Import Data screen.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I add and edit account mappings?
Answer
Adding a new Account Mapping
If you are only adding 1 or 2 new mappings, you may manually create them.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 444/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
4. Then search for the account you would like to map to in the box below. The account you choose will be the Mapped Account (i.e. the name of your accounts
in Adaptive).
5. Click Accept' and Save'.
If you are adding many new account mappings, the import option will be quickest.
1. Navigate to Integration > Import Account Mappings.
2. Click on the Import Account Mapping link in the top right.
3. Click on the Account Mappings' link next to Download Template.
4. Open the Excel file.
5. Fill out the second tab.
Import Account = account name from your source system.
Mapped Account = account name found in Adaptive.
6. Save the file and go back to the Adaptive screen.
7. Next to Import File, click Browse.
Choose your previously saved file and upload the template.
If you receive any errors while uploading, click on the View now' link. This will generate an Excel file with an error tab that may be reviewed for
corrections.
8. Be sure to Save.
Note: When updating an account mapping, this will not affect your historical data. Rather, all imports moving forward will route data into the newly selected account.
Note: Be very mindful when clicking on the delete boxes, for you cannot uncheck a box. Rather you will have to navigate away from the page and come back to
start over. This is particularly important if you are deleting many many mappings. If you have a lot of mappings to delete, you might consider deleting them in
batches.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question:
How do I use an excel template to import data into Adaptive Planning?
Answer:
You can import data into standard, modeled, and cube sheets using the steps below:
1. Go to the navigation menu > Integration > Import Data (Note: You will need the "Import Capabilities" role permission enabled for your user in order to
access this page.)
2. Fill out the appropriate fields, such as whether you are importing into the Actuals version or a specific plan version.
If you are importing into any standard sheet, simply click the "Standard" option.
If you are importing into a modeled or cube sheet, select the option below "Standard" and choose the desired sheet from the drop-down menu.
3. Click "Download Template" to download an excel file that is customized for the particular sheet based on your selections from step #2.
4. Insert data into the template.
If you are importing into a modeled or cube sheet, your template will not need to be modified before adding your data, so you can post your data in
the required fields and then skip to step 5.
If you are importing into a standard sheet, you may need to modify your template to match the values that you are interested in, as in the steps
mentioned in this article
5. Click Import. The first step will attempt to match the accounts in your file to the accounts that are set up in adaptive.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 445/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If you have existing account mappings in the system, you can choose the option that best fits those mappings. If you do not have account mappings in the
system, you can choose any of the options and select "Continue".
6. The resulting page will show a table where you can add and/or modify account mappings. To add mappings to the system, follow the steps below:
7. Levels and any dimension values you may have will have a mappings page that will follow the same process as accounts. Once those mappings have been
verified, Click the Import button to complete the process.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I import the exchange rate values found in Enter Currency Exchange Rates?
Answer
Exchange Rates can be imported in a similar manner as standard accounts.
From Integration > Import Data, you can select the version you wish to import data to
Then select Download Template at the bottom
In the second tab in the Excel template file, you will populate the Account columns with the exchange rate pair names (whatever format you would like, as
you will be making a mapping to the exchange rates with the name you chose)
The level column will be the TOP LEVEL/CORPORATE LEVEL in your organization
You can remove the default "Region" column
"Split label" can be left blank
You can then enter the desired months of data
From the Import Data screen, you will import this template file
From Account Mappings, you can match the Account names in your import file to the Exchange rates in Adaptive
Make sure you are import to the correct type (such as EOM vs Avg)
You can then verify the import from Admin > Enter Currency Exchange Rates
The version you imported to can be changed in the upper-right if needed.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Why can't I see my Plan imports in my Import History?
Answer
The Import history will only save the Actuals imports, not the Plan data imports. You can click on the link to view all Actuals imports history. Keep in mind that users
with the import right can also remove the history. You should not have to remove older imports in order for new Actuals imports to show.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I add and edit level mappings?
Answer
Adding a new Level Mapping
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 446/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
If you are only adding 1 or 2 new mappings, you may manually create them.
If you are adding many new level mappings, the import option will be quickest.
1. Navigate to Integration > Import Level Mappings.
2. Click on the Import Level Mapping link in the top right.
3. Click on the Level Mappings' link next to Download Template.
4. Open the Excel file.
5. Fill out the second tab.
Import Level = level name from your source system.
Mapped Level = level name found in Adaptive.
6. Save the file and go back to the Adaptive screen.
7. Next to Import File, click Browse.
Choose your previously saved file and upload the template.
If you receive any errors while uploading, click on the View now link. This will generate an Excel file with an error tab that may be reviewed for
corrections.
8. Be sure to Save.
Note: When updating a level mapping, this will not affect your historical data. Rather, all imports moving forward will route data into the newly selected level.
Note: Be very mindful when clicking on the delete boxes, for you cannot uncheck a box. Rather you will have to navigate away from the page and come back to
start over. This is particularly important if you are deleting many many mappings. If you have a lot of mappings to delete, you might consider deleting them in
batches
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What is the format I'm supposed to use to recreate the Personnel sheet for my new planning version? I copied the data from my old version, but it needs to be
updated. Is there any easier way to do this than to manually delete the existing rows and re add the new employees?
Answer
The quickest way to update the the Personnel sheet is to import the data. To create the basis of your Personnel import file, you can do one of the following:
Once you have your import template populated, you can then import the sheet to Adaptive Planning. When importing to a modeled sheet, under Import Mode you
can choose to add the imported rows to the sheet, which appends the imported data under the data already in the sheet, or to replace all the data in the sheet,
which erases everything already in the sheet and replaces it with the imported data.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 447/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
One other option you have would be to create a new version. When you create a new Version you have the option to not copy rows from modeled sheets into the
new version. When the Copy modeled rows option is not checked, the newly created version will not have a copy of all modeled rows from the source version.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I import to the Initial Balance column?
Answer
You should import to the previous month. For example, if you were importing 2012 data, you would import to December 2011. December 2011 represents the Initial
Balance month.
Question
How can I transfer scripts from one data agent to another?
Answer
Sometimes you may find yourself in a position where you have created a new data agent and you would like to transfer scripts that are associated with a previous
data agent to be associated with the newly created data agent. You can transfer those scripts by following the steps below:
Important: This is a fairly advanced process that should only be performed by an individual with working knowledge of the Adaptive Data Agent and the agent server
where the Adaptive Data Agent Service Manager is installed.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 448/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
4. Select the agent with the scripts you want to copy (Agent 1) from the Select Active Agent menu. This will download the scripts stored in this agent.
5. Select the agent that you want to copy the scripts to (Agent 2) from the Select Active Agent menu.
6. Go to C:\Users\<user you are logged in as>\Adaptive Agents\<instance code>\DataSources\CustomDataSources
In this location, there will be folders for every agent in the Adaptive instance that you accessed from the Adaptive Script Editor on that computer.
Every folder will have a name like AgentTemplate_XXXXX_, where XXXXX is an internal ID number for the agent. To find out which folder
corresponds to each agent, open the folder (e.g., AgentTemplate_XXXXX_ ) and then open the agent.config.xml file within. This XML file will have
a <displayName> node that shows the display name for this agent.
2.3.21 | NetSuite - Can Data From NetSuite Be Imported With Multiple Currencies?
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Can data from NetSuite be imported into Adaptive in US Dollars when importing consolidated reports with multiple currencies per subsidiary?
The customer plans using the following currencies: USD, GBP, Indian Rupee, Canadian Dollar, Euro and Australian Dollar but their base currencies are USA, GBP
and Indian Rupee. They categorize data by department and location.
Answer
There are two options:
1. Build in the currency structure at the subsidiary level and then the data can be brought in as any currency and rollup to the plan level in USD based on the
exchange rate.
2. Run a report from NetSuite in USD and then manually import it into Adaptive Insights.
Planning in Foreign Currency - If a client is planning in Multi-currency in NetSuite(NetSuite's OneWorld multi-currency subsidiary feature), we must build the plan
structure at the subsidiary level in Adaptive Planning. If we attempt to bring the data over at an aggregate level, the imported numbers do not make any sense. The
clients can see the data at an aggregate/converted level in NetSuite, but when it is imported, NetSuite gives the sum of the unconverted data.
There is no other workaround for this situation including the NetSuite API which is not designed to bring in the USD information at an aggregate level.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I setup my Netsuite Category Mappings so that I can import my data?
Answer
Before viewing your mappings, you will first want to check the NetSuite Category Configuration page to see which NetSuite items are connected to which Adaptive
elements.
The Category Configuration page will provide a clearer understanding for how NS and Adaptive are set up.
For example, Subsidiary and Department may both be connected to Levels in Adaptive. We will focus on this example for the remainder of the article.
Next there are two pieces that you will need to understand.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 449/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1ST Child NS
2nd Parent NS
b) NetSuite Subsidiary Department (1st): indicates that the formatting is set up to show Subsidiary followed by the Department
This formatting will apply to the child column (1st) and the parent column (2nd).
Import File
1. The FromNetSuite.xlsx file may be obtained from Integration>Import History.
2. When viewing the Level column, the formatting would be as follows:
Subsidiary Parent: Subsidiary Child Department Parent: Department Child
The import file differs from the mapping screen in the sense that the NS elements are grouped together rather than by child/child or parent/parent.
Once you understand the file and the mappings, you may then compare to see which levels the file is pointed toward in Adaptive.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What do I do if I receive an error in the Connector Processing window?
Answer
If you see an error when in the Connector Processing window, extract the log file. It is typically located here:
C:\adaptive_planning\log\adaptiveplanning_logs.log
At line 14 of module Create QuickBooks Connection: Property or method failed (QBXMLRP2.RequestProcessor.2: A QuickBooks company data file is already open
and it is different from the one requested or there are multiple company files open.)
Always open QB company files in Multi-User Mode (even if only 1 user license exists).
Hosted Multi-User Access needs to be active.
Disable the preference Keep Quickbooks running for quick startups.
If possible, associate a QB user with Admin rights to the Integrated Application Adaptive Connector
If all of the above is set and connection can still not be made (e.g. too many users logged in), open Quickbooks without a company file open. This will force our
connector to always be able to connect.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What does the message "required parameter is not configured" mean when importing data?
Answer
This message appears when one of the necessary parameters has not been setup in the Data Source. In most cases, this message is referring to a Period
Parameter. The Period Parameter identifies which time period the data should be imported to. You can add a parameter by navigating to the table the error is
coming from within Data Sources, and selecting "Table Settings." You should then see an "Edit Parameters" option where a time parameter, or any other necessary
parameter, can be created.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 450/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Are there any characters that cannot be used for account, level, and dimension names?
Answer
The pipe character (the vertical line symbol | ) should not be used in element names or memo/note fields because it is a reserved character in the Adaptive
Planning API that acts a delimiter to separate data. Pipe characters are not supported in the Integration for Planning tool, and their inclusion in element names or
source data can cause columns to be delimited incorrectly resulting in values being posted to the wrong columns.
Note: We recommend completely avoiding/removing the use of pipe characters from the fields in your source system that you will be importing into Adaptive
Planning.
You can also create a SQL column in your Data Source that removes pipe characters from the staging table. Please see an example SQL expression below:
2.3.26 | Reverse the sign of accounts when importing data with an on-premise connector
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I reverse the sign of Accounts when using an On-Premise Connector to import data?
Answer
Functionality can be built into the Connector to reverse signs for specific accounts or account ranges prior to importing the data. To see which accounts in your
source system have been set up to have the signs reversed, go to the following location.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 451/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
1. Go to Start> Computer
2. Open the C drive
3. Open AdaptivePlanning> CustomerParameters
4. Open the "ReverseAccounts" file
The "ReverseAccounts" file will display the accounts that currently have the sign reversed when importing. Add any additional accounts that should have the sign
permanently reversed during imports to that file and save.
16000,18999
16000
18000
18500
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Why are my tasks sometimes failing due to missing mappings and not importing data, while the data is imported when running directly through the loader?
Answer
Tasks can include multiple loaders. When a loader fails within a task, subsequent loaders in the same task will not process as we do not want to load any
incomplete or conflicting data. The earlier loader may have failed due to missing mappings. You can find more specifics on missing mappings below.
When you run a loader manually, and there are missing mappings for levels or accounts, the data that is mapped will be imported, and an error will be shown in the
logs stating the mappings that are missing. This is true for all standard account imports, as well as cube sheet imports. Modeled sheet imports will be successful
without account mappings, and fail without level mappings.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 452/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
When a task is run, it is either marked as a success, or a failure. A task may fail due to missing account or level mappings, but the mapped data will still be imported
for the loaders that were run within the task. If a task has multiple loaders, you can check the task logs to identify which loaders have been run, and confirm the
error. Similar to the loader, the task will be a success or failure depending on the type of import it is. Cube and Standard act the same, while Modeled imports do not
require accounts.
If a task or loader has missing dimension mappings, they will be classed as a success because dimension values are not necessary, and data can still be imported
to the account and level combination. This may be why a task is successful when showing missing mappings.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 453/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2.3.28 | Scheduled integration task fails with an error but completes successfully when ran manually
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I am receiving an error within my Integration Task when it is being automatically ran. The task can be ran manually without any error, but when it is ran automatically
through a schedule it fails. How do I resolve this error to have the task run overnight without any discrepancies?
Answer
Typically, this error occurs when the user who was originally set to automatically run the task no longer exists in the instance.
To resolve this error, update the user "automatically" running the task with the following steps.
1. Go to Integration > Design Integrations > Tasks > and choose the tasks you want to update.
2. Within the Schedule Settings, choose the drop-down below Next Scheduled Run and choose the settings.
3. In the Edit Schedule menu, uncheck Active and click Save for the schedule and task.
4. Navigate back to the schedule settings for the task and selectActive and Run as me.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 454/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2.3.29 | Setting Up Integration Between NetSuite And Adaptive Insights for NetSuite Bundle
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I setup Integration between NetSuite and Adaptive?
Answer
Follow these steps to establish the initial integration between your NetSuite and Adaptive Insights instances and enable single sign on between the two
applications. If you have already established the initial integration between NetSuite and Adaptive Insights, start at step A3.
Setup Integration between your NetSuite Instance and Adaptive Insights for NetSuite Bundle.
Note: Click here to access our NetSuite Integration Guide
The NetSuite Login Email field will be pre-populated with your AP Login email.
If you do not see the NetSuite Login Email field, your AP instance is not enabled for NetSuite Financial Planning. If this is the case, please contact your
NetSuite Account Manager.
Repeat this step for every NetSuite user that requires access to NetSuite Financial Planning
Upon completing these steps, the Financial Planning tab should appear and you should be able to navigate within Financial Planning seamlessly.
Important: Your web browser must allow cookies from the adaptiveplanning.com domain. Check any browser settings that might restrict cookie access.
2.3.30 | Source table must belong to a spreadsheet data source and can't be a custom table
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Why am I receiving the message "Source Table Must Belong to a Spreadsheet data source, and can't be a custom table" when trying to save my Loader?
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 455/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Answer
This message is shown when importing into a Modeled Sheet that contains splits. When it has splits, the Data Source should be a Spreadsheet data source. If you
do not need the splits in the modeled sheet, and would like to load the data with a custom table or none-spreadsheet data source, you can remove the splits by
navigating to the sheet from Modeling, choosing "Sheet Properties," and unchecking "Allow splits."
Another option would be to create a Spreadsheet data source to upload the data. This way, you can keep the splits in the modeled sheet.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do imports work when they contain splits? I keep receiving an error message when trying to import a file with splits. What might be causing the error?
Answer
1. If the account/level/version combination to which you are importing contains no data (account is blank in all time periods), any splits in the import
template are created automatically.
2. If the account/level/version combination to which you are importing contains data (in any time period in the versions), the following is true:
If you are importing one split to a particular account/level/version combination, you will get the Warning message and the data will be placed in the
unsplit account. If you want to create a new split/tag the data with the dimension, you need to go to that location in the sheet and manually add one
split. The reason that you have to do this is because you have to specify in which split the data in the main account is placed and how it is labeled.
If you are importing more than one split to a particular account/level/version combination, you will get an Error message and you have to create the
first split manually in the sheet.
A warning message means that the data still imported. If there is an error message, the data is NOT imported. The presence of a single Error will
cause the ENTIRE file upload to fail, not just the line(s) containing the Error.
3. An import that contains blank Split Labels will create new splits in the system for an account that already contains splits. The system does NOT match
and align all blank split labels associated with a particular level/account combination.
4. If you are importing an entry that is tagged with a dimension and an entry that does not have an associated dimension or a Split Label, the system will
NOT import the value that does not have an associated dimension or a Split Label. In this scenario we would recommend creating a dimension value called
_ and associate all blank entries on the import with the underscore.
5. Erase Actuals will erase splits if the process of erasing Actuals causes the split to become empty. An empty split is one where there is no value nor cell note.
Please note, splits that are already empty will remain untouched.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 456/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What are my options for integrating with Data Sources?
Answer
The following options are available:
1. You can use any of the available pre-configured adapters which are Intacct, Salesforce, Netsuite, and Great Plains.
2. For on-premise JDBC compliant systems, you can use our JDBC data source.
3. For cloud-based systems, you can use our Custom Cloud Data Source (CCDS) which requires building javascript code to integrate.
4. For any other systems, you can create a Scripted Data Source using Pentaho.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 457/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
Why am I receiving the error "The (Level X) Is Not Available For Month X" when importing my Actuals?
Answer
This is a result of the Actuals version not being available for the period. To check these please go to Modeling > Levels and select the (level X). On the right-hand
side once you have selected the level you can see the Version & Availability settings.
In the version selector dropdown select the Actuals version which will then show the Actuals start and end date dropdown.
As you can see in the attached screenshot this level has Actuals set to be available for the period April 2010 December 2015. This means the level is not available
for January 2016. Correcting this requires making January 2016 available. If you want the Actuals version to be available for the complete period of the Actuals
version you can set the dates to start and end of version. Please look screenshot below.
If you have too many levels to correct this manually, please contact support at [email protected].
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 458/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I have received several different error when importing. Is there a list of possible errors and how they can be resolved?
Answer
When importing data, there are two categories of errors that a user might encounter:
Errors displayed in the user interface this appears on the import screen as An error occurred on the previous request: or Error:
Import file is invalid or not specified this error typically occurs when the file is not in the correct format. Make sure that the file you are attempting to
import has either an .xlsx or .xls extension.
Error: Data in the spreadsheet for account 3500 plan 000 specifies more than one split, but that location in version Actuals contains no splits.
You must create at least one split at that location in order to import. If an unsplit account contains data in Adaptive Planning, you must first add one
split to that location in the sheet in order to import split data. By adding the first split, the user specifies how the existing data in the account is labeled. If the
account is empty, the splits are automatically created upon import.
Missing Required Field(s): Name ,Rolls Up To and An error occurred on the previous request: Row 2 is missing a value. Row 3 is missing a
value.... - these errors typically occurs when the first few rows of the Import Template have been deleted, i.e., the Required and Optional headers. To allow
the import to go through, you can either download a fresh import template and copy the data from the old template to the new template or add 3 rows to the
beginning of the file that you are using currently.
An error occurred on the previous request: Column "null" is required or Import Failed with the following error: java.lang.NullPointerException -
these errors typically occur when there are required columns in the import template that are not fully populated. Review the import file and populate any
blanks in the required columns.
Invalid Dimension Choice: or Row X was not imported because xxx is unmapped - these errors typically occur when the dimension value has not been
marked as available on the sheet. Go to the Modeled/Cube Sheet Builder and verify that the dimension value has been marked as available on the sheet.
An Exception Error- this appears as An error has occurred processing your request. When you encounter an exception error, you will see a blank
screen with the error message at the top. Here are a few things to check:
Check to see if there are any "#" characters in the spreadsheet. If there are, remove them.
Remove any formula driven cells form the import template.
If you are importing new structural elements, use Remove Duplicates in Excel to remove any duplicate values from the import file.
If the sheet is password protected, remove the password protection.
Check to see if there are frozen panes in the file. If so, unfreeze them.
Remove any filters.
Remove any conditional formatting.
Remove macros.
Delete columns and rows outside of the data area.
Copy all data and paste special as values into the file. If this does not work, try pasting it into a new template.
If you are importing to Custom or GL accounts and the data should not be tagged with Dimensions, be sure to delete any Dimension columns
and leave the Split Label column blank.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How do I upload Account Mappings?
Answer
If you go to Integration > Import Accounts Mappings, you should see a link in the upper right hand corner of your screen for "Import Account Mappings". This link
allows you to download the Import Account Mappings template. The template enables you to upload your account mappings, instead of adding them one at a time.
The import account mappings template requires that the Mapped Account (the account you are mapping your ERP GL account to in Adaptive) be listed as "Account
Code - Account Name". To retrieve the account code and name and format it accordingly, please follow the steps below. An example is attached as "Account
Formatter". The formulas referenced below are provided in the Mappings tab, Cells C4:D4.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 459/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Answer
2.3.37 | Warning: Data in the spreadsheet for account X level X has dimension values
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What does this message mean, and how can I correct it? "Warning: Data in the spreadsheet for account X level X has dimension values which imply a split, but that
location in version X contains no split. The data will be imported into the unsplit account and the dimension values will be ignored."
Answer
When importing data with dimensions into a standard account, splits need to be created. If no splits exist when a dimension is being imported, the dimension will be
ignored, and the data will be sent to the account without creating splits. You can have the data sent to splits by first creating a split at the location, and then running
the import. Please see the Split Behavior When Importing article for additional information.
2.3.38 | Warning: Exchange rates for X exchange rates are not available in the new actuals time periods. Levels in these
currencies may have invalid values.
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
What does the message "Warning: Exchange rates for X exchange rates are not available in the new actuals time periods. Levels in these currencies may have
invalid values" mean when importing data?
Answer
When importing data to levels that are in different currencies than the corporate currency, exchange rates will need to be populated to guarantee the data is correct.
This message is to notify you that some of the exchange rates have not been populated for the time periods you are importing to, and should be populated to
guarantee the data is correct.
You can adjust the exchange rates by navigating to Modeling > Model Management > Exchange Rates, and adding the exchange rates to the version you are
importing into.
Question
What does the "Make New Actuals Visible" option control when importing Actuals data?
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 460/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
Answer
When importing Actuals data, whether through a standard spreadsheet import, an automated task, or a manual loader run you may see the option to "Make New
Actuals Visible".
The "Make New Actuals Visible" option is available when Import Type is set to Actuals. If this box is checked, the Actuals version has its "Completed Values
Through" date set to the final month of data found in the import, making the imported data available for overlaying plan data in plan versions. The "Completed
Values Through" date is a field that can be changed in the Actuals version settings (Modeling>Versions). The date that is set in this field determines to what time
period Actuals data is displayed when overlaying a plan version.
The "Make New Actuals Visible" option does not affect the visibility of the data in the Actuals version. All data being imported will be visible in the Actuals version,
but if the "Make New Actuals Visible" option is not enabled during import, the "Completed Values Through" date will not update to include the new period of Actuals
and thus will not be included in the Actuals overlay on top of plan versions.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 461/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
When the "Make New Actuals Visible" option is disabled, any user with access to the Actuals version will have the ability to view the new Actuals data if they are
viewing the Actuals version. No user, regardless of version permissions, will be able to view the new Actuals data overlaid on top of any plan version until the
"Completed Values Through" field is updated to include the new time period of Actuals. The "Make New Actuals Visible" option is simply a feature that allows you to
update the "Completed Values Through" settings automatically during import. Users are still assigned access to data on a version by version basis from
Modeling>Versions.
2.3.40 | Why Can't my Connector Find the Reporting Period when Importing from Intacct
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I'm receiving an error that states "Period Month Ended Apr 30 2013 not found in Intacct reporting periods for [Company Name]". There is data in that periods in
Intacct, so I don't know why I'm receiving an error. Is something not enabled?
Answer
That message is usually generated due to one of the following two causes.
1. There is a login issue in with the connector. This could be due to invalid credentials.
2. There is a mismatch between the names of the reporting periods. When the customer runs the connector, a user enters the names of the reporting periods
in the connector parameter screen. Those names are compared to the reporting periods in Intacct.
Check to make sure the credentials are correct and that the reporting period names entered in the Period fields match the reporting period names in Intacct.
2.3.41 | Why Did My Modeled Sheet Import Not Import the Data in the Date Columns
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
The import file was fully populated but after the import was deemed successful, we found that the system had not imported the data in the date columns. Why is this
not working?
Answer
This type of behavior typically occurs when the date column is not formatted to text: mmm-yyyy. If the format in the import file is not mmm-yyyy, when the values are
imported data in the cells will not show up in the Adaptive Planning. So, you might check to see if the date format in the import template has been changed to
something else, for example date: dd-mm-yyyy.
2.3.42 | Why is my Great Plains Connector Importing YTD Values Instead of the Values in the Current Month?
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
When I load my actual data via the GP Connector, it is pulling in YTD data versus the current month data. It's only happening with specific accounts. I've checked
the import mapping, setups, etc and did not see anything unusual. I'm not receiving any error messages as a result of the import. Any ideas where to look or what
might be causing the issue?
Answer
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 462/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
The Connector determines whether an account is an income statement account or a balance sheet account by either looking at the account definition in Great
Plains or by reading a file called C:\Adaptive_Planning\greatPlainsAccountTypes.txt.
Check to see if the accounts are identified as Income Statement accounts in Great Plains. If they are, then look at
C:\Adaptive_Planning\greatPlainsAccountTypes.txt on your machine to see if the accounts are misidentified as a Balance Sheet account (a "B" in the second
column).
If the accounts are marked as Balance Sheet accounts in either location, correct the setting and try re-importing.
2.3.43 | Why is the box to select empty rows unavailable on the Export Data page?
Question
I am trying to export data including empty rows, but the box to select empty rows cannot be checked. What do I need to do to be able to export empty rows?
Answer
If there are any dimensions selected in the export, the option to Include Empty Rows' will not be available.
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 463/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
2.3.44 | Why is the Option to Include Account and Level Rollups not Available?
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
I'm exporting our budget to import into our accounting software and would like to exclude account and level rollups. However, it looks like if I select a set of accounts
or levels in the filter, that overrides the checkbox to not include rollups. How can I exclude the rollups?
Answer
The option to 'Include Account and Level Rollups' is only available if no filters are being applied to the export. If filters are being applied, this option is unavailable,
as rollups will be exported only if they are selected in the filter.
One thing you might find useful is that if you select NONE on the export screen for levels and accounts, the system will automatically only export data for the child
level and account combinations that contain data.
2.3.45 | Write a SQL filter to extract the month value from a time column in a data source
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
How can I write a SQL filter to extract the month value from a time column in my data source?
Answer
When extracting the month from a time column, it will take a single digit for January-September rather than a 2 digit month which would be used for October-
December. This means it will pull the value of "1" for January. Because the CAST(expr AS INTEGER) functionality for casting to a date format requires two digits,
January- September will not work without a 0 at the front the CAST(expr AS INTEGER). You can use conditional formatting to add the 0 at the beginning if the
length of month is 1 digit.
For example:
CASE WHEN LENGTH(CAST(EXTRACT(MONTH FROM "Adaptive Month") AS NVARCHAR)) = 1 THEN ('0' || CAST(EXTRACT(MONTH FROM "Adaptive Month")
AS NVARCHAR)) ELSE CAST(EXTRACT(MONTH FROM "Adaptive Month") AS NVARCHAR) END
Note: This may need to be done for any dates that equal 1 digit.
2.3.46 | Your Credentials Are Not Valid For Configuring NetSuite Integration. Please Contact Your Administrator
This article includes suggestions and workarounds. Content may not be accurate for all use cases or represent best practices for the latest release.
Question
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 464/465
11/5/21, 12:37 PM Workday® Workday Adaptive Planning
We logged in toAdaptive Planning, went to Integration > NetSuite Setup, entered by credentials in the NetSuite Account Details area and clicked Save. After I did
this, I received a message that says, "Your credentials are not valid for configuring NetSuite integration. Please contact your administrator." What is causing this and
how can I fix it?
Answer
This error typically means that the credentials entered do not have sufficient permissions in NetSuite to setup the Integration. The role in NetSuite must be a web-
services-only access role, with the following set of permissions:
If you are a NetSuite OneWorld customer with multiple subsidiaries, grant the role access to all subsidiaries and check the cross-subsidiary record viewing
permission box.
For instructions on how to set up the integration, review NetSuite topics here: Concept: Import Data
https://adaptiveplanning.doc.workday.com/internal/api/webapp/print/cf68a36e-acff-4c1b-a7f3-3518c2517b53 465/465