Skip to main content
Adaptive Planning
Last Updated: 2023-06-23
exportConfigurableModelData

exportConfigurableModelData

Supported in API v19 +
Updated in API v35 (November 18, 2022).
Category
Data retrieval
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.
Parameters Required On Request
Credentials, Modeled-Sheet, Version, Job
You can stream data from exportConfigurableModelData for better performance and reduced restraints on the number of cells and rows you can export. To stream data you must:
  • Use API v32 or higher.
  • Set isGetAllRows=true.
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.
Best Practice: Invoke exportSheets to retrieve the modeled sheet name and ID needed for your exportConfigurableModelData request.

Request Format

Streaming call to retrieve all of the rows of a modeled sheet:
<?xml version='1.0' encoding='UTF-8'?> <call method="exportConfigurableModelData" callerName="me"> <credentials login="user@example.com" password="password"/> <version name="Budget 2017"/> <modeled-sheet name="Capital Model" isGlobal="false" includeAllColumns="false" isGetAllRows="true" useNumericIDs="false"/> <filters> <timeSpan start="Mar-2016" end="Dec-2017"/> <levels> <level name="Hosting" includeDescendants="true"/> </levels> </filters> </call>
Paginated, non-streaming call:
<?xml version='1.0' encoding='UTF-8'?> <call method="exportConfigurableModelData" callerName="me"> <credentials login="user@example.com" password="password"/> <version name="Budget 2017"/> <job jobNumber="0" pageNumber="1"/> <modeled-sheet name="Capital Model" isGlobal="false" includeAllColumns="false" useNumericIDs="false"/> <filters> <timeSpan start="Mar-2016" end="Dec-2017"/> <levels> <level name="Hosting" includeDescendants="true"/> </levels> </filters> </call>
credentials element
Tag Name
credentials
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.
Attributes of the Element
Attribute Name
Required?
Value
Example
login
Y
The login name of the user invoking the API method. This user must have the required permissions to invoke the method.
sampleuser@company.com
password
Y
The password of the user invoking the API method.
my_password
Contents of the Element
(none)
version element
Tag Name
version
Description
Specifies which version to retrieve the modeled rows from.
Attributes of the Element
Attribute Name
Required?
Value
Example
Name
Y
The name of the version.
Budget 2
Contents of the Element
Contains one or more level elements.
modeled-sheet element
Tag Name
modeled-sheet
Description
Specifies which modeled sheet to retrieve the modeled rows from. Uses the id or name of the model sheet as the identifier.
Attributes of the Element
Attribute Name
Required?
Value
Example
Name
Y
The name of the modeled sheet.
Working Budget
isGlobal
N
Specifies if the sheet is user assigned sheet or a level assigned sheet. If true the sheet is a user-assigned sheet. If false the sheet is a level assigned sheet.
false
isGetAllRows
Supported in API v32+
N
Specifies if the response retrieves all rows from the sheet. If true, all rows return without paginating and the <Levels> element becomes optional and <Job> element is not supported in the request. Must be true to support streaming data.
true
includeAllColumns
Supported in API v22+
N
Specifies whether to include all columns in the response. Any value other than true will result as false.
false
useNumericIDs
Supported in API v22+
N
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
.
Example split ID when
true
:
  • 271
Example split ID when
false
:
  • S271
true
displayNameEnabled
Only available in API v31+ for instances that enable display name.
N
displayNameEnabled=true indicates exportConfigurableModelData should respect display name properties of
code
,
displayNameType
, and
description
when Enable Display Name is ON for the instance.
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
.
The default value for displayNameEnabled is "false".
false
includeCodes
Only available in API v31+ for instances that enable display name.
This option is meaningful only when the effective enable display name setting is ON.
Set to "true" to include the code column for level and each dimension in the API response.
Set to "false" to exclude the code column for level and each dimension in the API response.
Default value is false.
false
includeNames
Only available in API v31+ for instances that enable display name.
This option is meaningful only when the effective enable display name setting is ON.
Set to "true" to include the name column for level and each dimension in the API response.
Set to "false" to exclude the name column for level and each dimension in the API response.
Default value is false.
false
includeDisplayNames
Only available in API v31+ for instances that enable display name.
This option is meaningful only when the effective enable display name setting is ON.
Set to "true" to include the display name column for level and each dimension in the API response.
Set to "false" to exclude the display name column for level and each dimension in the API response.
Default value is false.
false
useAccountPrecision
Only available in API v33+
N
This option is meaningful only when isGetAllRows="true"
Set to "true" to output number columns at the account's precision.
Set to "false" to output number columns at the default precision when isGetAllRows="true", which is a precision of 9.
Default value is false.
false
useActualValue
Only available in API v35+
N
This option is meaningful only when isGetAllRows = "true".
  • Set to "true" to output number columns with the actual value.
    • For editable numeric columns, it will be the raw data.
    • For calculated numeric columns, it will be the calculated value up to a precision of 9.
  • Set to "false" to output number columns at the default precision when isGetAllRows="true", which is a precision of 9.
Default value is false.
true
Contents of the Element
(none)
job element
Tag Name
job
Description
Specifies the API handler serial number for the API call job. This element isn't supported when isGetAllRows is true.
Attributes of the Element
Attribute Name
Required?
Value
Example
jobNumber
Y
0 for the initial call. A job number returns in the response. Use this job number for every subsequent request.
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.
2
pageSize
N
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".
The pageSize is ignored and all the data is returned in the first page in the following cases:
  • If the pageSize given is larger than the number of rows in the sheet.
  • If the number of cells in the sheet is less than or equal to 20,000.
  • If the number of rows in the sheet is less than or equal to 500.
200
pageNumber
Y
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.
1
Contents of the Element
(none)
filters element
Tag Name
filters
Description
Container for the all the filters related elements.
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
The levels and columns elements.
levels element
Tag Name
levels
Description
Container for one level element Specifies the level to retrieve rows from. This element is optional when isGetAllRows is true.
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
One level elements.
level element
Tag Name
level
Description
Specifies a level by which to filter the request.
Attributes of the Element
Attribute Name
Required?
Value
Example
name
Y
The name of the level being requested.
Name is only supported for pre-v30 requests when the effective enable display name settings is OFF.
HQ
includeDescendants
N
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.
true
code
Only available in API v31+ for instances that enable display name.
N
The code of the level to be exported. This code is as specified in Level Administration. The code attribute has been added in API v31.
Use name attribute for pre-v30 API request and when the effective enable display name setting is OFF.
false
Contents of the Element
The level name
columns element
Tag Name
columns
Description
Container for two elements: model and system. The model and system tags in turn have child column elements that specify the name of the column.
Only available in API v33+
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
One model element
model element
Tag Name
model
Description
Specifies a set of modeled sheet columns. It contains child column elements.
Only available in API v33+
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
Contains child "column" elements. For model columns, when specifying the timespan element, we will use the "Timespan" name.
system element
Tag Name
system
Description
Specifies a set of system column names. The allowed options are "InternalID" , "ParentID" and "IsParent".
Only available in API v33+
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
Contains child "column" elements.
column element
Tag Name
column
Description
Specifies a modeled sheet column name. Special values include the system column names listed above and for the model columns it is the "Timespan" column name.
Only available in API v33+
Attributes of the Element
Attribute Name
Required?
Value
Example
Contents of the Element
One model element
Columns example
<columns> <model> <column>NumberCurrency</column> <column>Regional Code</column> <column>CountryRegion</column> <column>CalcAcctNum</column> <column>Level Currency</column> <column>Invalid Column Name</column> <column>InitialBalance</column> <column>Timespan</column> </model> <system> <column>InternalID</column> <column>Invalid System Column Name</column> <column>IsParent</column> <column>ParentID</column> </system> </columns
timeSpan element
Tag Name
timeSpan
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 Change Calendar Structure) 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.
Attributes of the Element
Attribute Name
Required?
Value
Example
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 period must be a leaf time period. If start is not indicated, the start of the version is used.
Jan-2016
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 leaf time period. If end is not indicated, the end of the version is used.
Nov-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 start="Jan-2016 end="04/2016"/>
Start of February 2016 and end at the version's end date. 02/2016 is a sheet time label.
<timeSpan start="02/2016"/>
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 start="" end="Nov-2016"/>

Response Format

<?xml version="1.0" encoding="UTF-8"?> <response success="true"> <output> <data jobNumber="3"> <![CDATA["InternalID","Plan","CapitalAssetClass","Label","Price","Currency","Mar-2016","Q1-FY16","Apr-2016","May-2016","Jun-2016","Q2-FY16","Jul-2016","Aug-2016","Sep-2016","Q3-FY16","Oct-2016","Nov-2016","Dec-2016","Q4-FY16","FY2016","Jan-2017","Feb-2017","Mar-2017","Q1-FY17","Apr-2017","May-2017","Jun-2017","Q2-FY17","Jul-2017","Aug-2017","Sep-2017","Q3-FY17","Oct-2017","Nov-2017","Dec-2017","Q4-FY17","FY2017" "S1325","Development","Furniture","Chairs","90","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S1326","Development","Furniture","Desks","200","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S1327","Development","Computers","EngineerWS","2500","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S1328","Development","Computers","ManagerWS","1000","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S1323","G & A","Facility","Garage","","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S1324","G & A","OtherEquipment","CD_Maker","","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]]> </data> </output> </response>
response element
Tag Name
response
Attributes of the Element
Attribute Name
Required?
Value
Example
success
Y
Either true or false, indicating whether the API call was successful or not. Even successful calls may contain warning messages in their response.
true
Contents of the Element
A single optional messages element, and exactly one required output element.
messages element
Tag Name
messages
Description
Container for one or more message elements.
Attributes of the Element
(none)
Contents of the Element
One or more message elements.
message element
Tag Name
message
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.
Attributes of the Element
Attribute Name
Required?
Value
Example
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.
invalid-attributevalueid
Contents of the Element
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.
For the streaming version of the API (isGetAllRows="true"): When the API fails while streaming rows, we close the xml tags and add a message:
Exporting configurable model data failed. Retry the export. Contact Support if the export continues to fail.
job element
Tag Name
job
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.
Attributes of the Element
Attribute Name
Required?
Value
Example
jobNumber
N
The dedicated API handler serial number assigned by the server for the API call job. Used in all subsequent requests.
2
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
Contents of the 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.
output element
Tag Name
output
Description
The output tag has 1 child element, the data tag.
Attributes of the Element
Attribute Name
Required?
Value
Example
Level
N
The name of the level where this row or split/row resides. This appears regardless of whether the level being requested is a rollup level or not.
Engineering
Contents of the Element
A single data element.
Tag Name
data
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.
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.
Attributes of the Element
Attribute Name
Required?
Value
Example
totalRowCount
Available in API v35+ when isGetAllRows=true.
N
This attribute is added to the data element for the streaming version of the API. Indicates the total number of rows the modeled sheet expects to export.
"10"
Contents of the Element
A CDATA block containing:
  • Rows formatted as valid CSV.
    • Strings are enclosed in double quotes.
    • Numbers are emitted in
      canonical form
      (not locale-sensitive format). Commas are removed
    • Dimensions and text selectors emit the selected value they have. If they have no value, they emit an empty string.
  • When emitting parent rows, any splittable columns are shown as
    blank
    in the CSV (they do not attempt to show any rollup or 'various' values).
  • When emitting child/split rows, any
    non-splittable
    columns will be shown as containing the value from their parent row. This is identical to how sheet behaves in the Adaptive Planning web UI.
A status element.
Tag Name
status
Description
Only available in API v35+ when streaming data (isGetAllRows="true").
The status tag is added after the output tag for both the success and failure cases of the streaming version of the API.
Attributes of the Element
Attribute Name
Required?
Value
Example
success
Y
If all the data was streamed, it will return success= "true" and if there was an error (either due to validations or failure before all the rows were streamed) it returns success ="false".
true
rowCountSent
N
The number or rows that were sent. If it is a failed response, this number will not match the totalRowCount value set on the data element.
1
Contents of the Element
(none)

Removing the "S" from parentId when useNumericIds = "true" for the streaming version of the API(isGetAllRows=true)

From version 35 of the API, the parentId will not contain the "S" prefix in its value.

Escaping the " in values for the streaming version of the API (isGetAllRows=true)

From version 35 of the API, any column value that has a " will be escaped in the CSV style format (so " will be represented by "").

Handling Failure Scenario While Streaming

When the API fails while the streaming of the rows is in progress, we close the xml tags and send an error message.
Exporting configurable model data failed. Retry the export. Contact Support if the export continues to fail.
Sample Response
:
<?xml version="1.0" encoding="UTF-8"?> <response success="true"> <output> <data> <![CDATA["InternalID","Level","Plan","CapitalAssetClass","Label","Price","Currency","Jan-2010","Feb-2010","Mar-2010","Q1-FY10","Apr-2010","May-2010","Jun-2010","Q2-FY10","Jul-2010","Aug-2010","Sep-2010","Q3-FY10","Oct-2010","Nov-2010","Dec-2010","Q4-FY10","FY2010","Jan-2011","Feb-2011","Mar-2011","Q1-FY11","Apr-2011","May-2011","Jun-2011","Q2-FY11","Jul-2011","Aug-2011","Sep-2011","Q3-FY11","Oct-2011","Nov-2011","Dec-2011","Q4-FY11","FY2011","Jan-2012","Feb-2012","Mar-2012","Q1-FY12","Apr-2012","May-2012","Jun-2012","Q2-FY12","Jul-2012","Aug-2012","Sep-2012","Q3-FY12","Oct-2012","Nov-2012","Dec-2012","Q4-FY12","FY2012","Jan-2013","Feb-2013","Mar-2013","Q1-FY13","Apr-2013","May-2013","Jun-2013","Q2-FY13","Jul-2013","Aug-2013","Sep-2013","Q3-FY13","Oct-2013","Nov-2013","Dec-2013","Q4-FY13","FY2013","Jan-2014","Feb-2014","Mar-2014","Q1-FY14","Apr-2014","May-2014","Jun-2014","Q2-FY14","Jul-2014","Aug-2014","Sep-2014","Q3-FY14","Oct-2014","Nov-2014","Dec-2014","Q4-FY14","FY2014" "S289","HQ","Development","Furniture","Chairs","90","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S290","HQ","Development","Furniture","Desks","200","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S291","HQ","Development","Computers","EngineerWS","2500","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S292","HQ","Development","Computers","ManagerWS","1000","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S287","HQ","G & A","Facility","Garage","","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" "S288","HQ","G & A","OtherEquipment","CD_Maker","","USD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]]> </data> </output> <messages> <message>Exporting configurable model data failed. Retry the export. Contact Support if the export continues to fail.</message> </messages> </response>

Sample Response with Status API v35 with streaming (isGetAllRows="true")

<?xml version="1.0" encoding="UTF-8"?> <response> <output> <data totalRowCount="6"> <![CDATA["InternalID","CapitalAssetClass","Price" "S289","Furniture","90" "S290","Furniture","200" "S291","Computers","2500" "S292","Computers","1000" "S287","Facility","" "S288","OtherEquipment",""]]> </data> </output> <status success="true" rowCountSent="6"></status> <messages> <message>System Column names [Invalid System Column Name] specified in the request weren't found and will be ignored.</message> <message>Model Column names [timespan,invalid column name] specified in the request weren't found and will be ignored.</message> </messages> </response>

Warning Message for Invalid Column Names

When an invalid column name is specified in the request, we send messages.
Sample Response
:
<?xml version="1.0" encoding="UTF-8"?> <response success="true"> <output> <data> <![CDATA["InternalID","CapitalAssetClass","Price" "S289","Furniture","90" "S290","Furniture","200" "S291","Computers","2500" "S292","Computers","1000" "S287","Facility","" "S288","OtherEquipment",""]]> </data> </output> <messages> <message>System Column names [Invalid System Column Name] specified in the request weren't found and will be ignored.</message> <message>Model Column names [timespan,invalid column name] specified in the request weren't found and will be ignored.</message> </messages> </response>