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 :
Example split ID when false :
| 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".
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:
| 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:
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:
A status element. | |||
Tag Name | status | ||
Description | Only available in API v35+ when streaming data (isGetAllRows="true"). | ||
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>