- 46 Minutes to read
- Print
- DarkLight
- PDF
Dynamic Planning API Library Summary
- 46 Minutes to read
- Print
- DarkLight
- PDF
The following APIs (Application Programming Interfaces) facilitate data integration and user management with Dynamic Planning. These APIs provide the infrastructure to automate the process of loading data, defining user and group security, and managing metadata in Dynamic Planning using cloud integration services like Boomi.
Access Tokens are used for authentication to make connections to Dynamic Planning from cloud-based integration tools. An access token is a security object that does not expire. You can generate access tokens from Dynamic Planning. See Dynamic Planning: Token Management.
Base URL
An API endpoint consists of a Base URL, which is a common URL, and a relative URL, which is available with all the APIs. A Base URL differs from environment to environment. Make sure to use the correct base URL before invoking any API endpoint. The Base URLs for all Dynamic Planning environments are given below:
Environment | Base URL |
---|---|
Production US | https://modelapi.hostanalytics.com/api |
Production AU | https://modelauapi.hostanalytics.com/api |
Model Staging | https://modelstgapi.hostanalytics.com/api |
The relative URL is the path provided between POST and HTTP/1.1. For example, in the following code snippet, /modeling/model/data/clear is the relative URL:
POST /modeling/model/data/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
- Time on columns
- Time on rows
List of APIs
Master and Analytic Model APIs | Description |
Use this API to create or append attributes and attribute hierarchies, specify display labels for attributes, and create or modify attribute-to-dimension-member mappings in Master and Analytic models. | |
Use this API to add new members into an existing dimension in Master and Analytic models. The model should already be generated and the dimension should exist | |
This API is used to execute a Calculation defined in Dynamic Planning. | |
This API returns the current and last status of the running of a calculation. | |
This API clears existing data from Master and Analytic models based on the scope of the definition. | |
This API clears existing leaf data from Master and Analytic models based on the scope of the definition. | |
This API allows you to export the entire dimension hierarchy from a specified model in XML format. The following data is exported:
Note: DAP (Direct Access to PCR) models and the HACPM_Financial model are not supported with this API. Additionally, the root member (top most member of the hierarchy) will not have a <Member-Parent> tag. | |
This API allows you to export leaf-level data from a specified model in XML format. Optionally, you can specify one or more filters to export specific data. | |
This API loads data to Master and Analytic models. | |
External Source Model APIs | Description External Source Models APIs that support the new implementation of ESM as of November 2018 are marked with the icon . |
This API clears data from an external data source model. | |
This API clears existing dimension member data available in an external source model. | |
This API allows you to export leaf-level data from an external source model in XML format. Optionally, you can specify one or more filters to export specific data, and you can specify which fields to export. | |
This API loads data to an external source model. | |
This API loads dimension members to an external source model. | |
|
|
User Management APIs | Description |
These APIs add users and user group mappings, and delete users. | |
These APIs return the names of users or user groups for a tenant. |
Append Attributes (Master and Analytic Models)
Use this API to create or append attributes and attribute hierarchies, specify display labels for attributes, and create or modify attribute-to-dimension-member mappings in Master and Analytic models.
You can also optionally specify display labels for attributes.
To create or append attributes and attribute hierarchies, include the <attribute-members> section as shown below.
To map attribute leaves to dimension leaves, include the <attribute-mapping> section.
You can include both the <attribute-members> and <attribute-mapping> sections, or either section.
This API works if the model is generated or ungenerated, locked or unlocked.
Dynamic Planning supports no more than 5 attributes per dimension.
POST /modeling/model/attributes/append HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attribute-payload>
<model-name>$ModelName</model-name>
<dimension-name>$DimensionName</dimension-name>
<attribute-name>$AttributeName</attribute-name>
<delimiter>$Delimiter</delimiter>
<attribute-members>
<!-- member code @ member parent @ member display label [optional] -->
<!-- add as many rows as needed -->
<member>$AttributeMember@$AttributeMemberParent@$AttributeMemberDisplayLabel</member>
</attribute-members>
<!-- dimension leaf member code @ attribute leaf member code -->
<!-- add as many rows as needed -->
<attribute-mapping>
<member>$DimensionMember@$AttributeMember</member>
</attribute-mapping>
</attribute-payload>
Parameters
$ModelName: (type: string) Name of the model. If the model specified does not exist, the operation is canceled.
$DimensionName: (type: string) Name of the Dimension that is associated with the Attribute. If the dimension specified does not exist, the operation is canceled.
$AttributeName: (type: string) Name of the Attribute to create or append to. This is the root member of the Attribute hierarchy. The attribute name must be unique. If you attempt to append an attribute name that already exists, an error message appears and the operation is canceled.
$Delimiter: (type: string) Delimiter String
$AttributeMember, $AttributeMemberParent, and $AttributeMemberDisplayLabel: (type: string) Specifies the member code of the Attribute member to create or append to the Attribute. Use the Delimiter, then specify the parent member that this Attribute member rolls up to. Optionally use another Delimiter, then specify the display label for this Attribute member. If no Display Label is specified, the member code is used as the display label. When the model is generated, you can append attributes to an existing attribute hierarchy only if you are adding the attribute to an existing attribute parent. You can convert an attribute leaf member to a parent by appending leaves under it.
$DimensionMember and $AttributeMember: (type: string) Specifies the dimension leaf code that will be mapped to the Attribute member. Use the Delimiter, then specify the Attribute leaf member code to associate with this dimension member. If the dimension leaf code has an existing attribute mapped to it, it is overwritten with the specified attribute leaf member.
Sample Payload for Creating or Appending Attributes (Without Display Labels, Without Specifying the Member-Attribute Mapping)
This sample appends an attribute named Product_Type, defines the root member of the attribute as All_types. It creates three children of the root: Android, iOS, and Other. Under Other, members named Windows and Unknown are created.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attribute-payload>
<model-name>Sales</model-name>
<dimension-name>Products</dimension-name>
<attribute-name>Product_Type</attribute-name>
<delimiter>@</delimiter>
<attribute-members>
<!-- member code @ member parent @ member display label [optional] -->
<member>All_types@All_types</member>
<member>Android@All_types</member>
<member>iOS@All_types</member>
<member>Other@All_types</member>
<member>Windows@Other</member>
<member>Unknown@Other</member>
</attribute-members>
</attribute-payload>
Sample Payload for Creating or Appending Attributes With Display Labels (Without Specifying the Member-Attribute Mapping)
This sample appends an attribute named Product_Type and its hierarchy, and assigns Display Labels for each member of the attribute hierarchy.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attribute-payload>
<model-name>Sales</model-name>
<dimension-name>Products</dimension-name>
<attribute-name>Product_Type</attribute-name>
<delimiter>@</delimiter>
<attribute-members>
<!-- member code @ member parent @ member display label [optional] -->
<member>All_types@All_types@All Types</member>
<member>Android@All_types@Google Android</member>
<member>iOS@All_types@Apple iOS</member>
<member>Other@All_types@Other OS</member>
<member>Windows@Other@Microsoft Windows</member>
<member>Unknown@Other@Unknown Brand</member>
</attribute-members>
</attribute-payload>
Sample Payload for Creating or Appending Attributes and Specifying the Member-Attribute Mapping
This sample appends an attribute named Product_Type and its hierarchy, and maps four dimension leaf members to their respective Attribute leaf members.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attribute-payload>
<model-name>Sales</model-name>
<dimension-name>Products</dimension-name>
<attribute-name>Product_Type</attribute-name>
<delimiter>@</delimiter>
<attribute-members>
<!-- member code @ member parent @ member display label [optional] -->
<member>All_types@All_types</member>
<member>Android@All_types</member>
<member>iOS@All_types</member>
<member>Other@All_types</member>
<member>Windows@Other</member>
<member>Unknown@Other</member>
</attribute-members>
<!-- dimension leaf member code @ attribute leaf member code -->
<attribute-mapping>
<member>iPhoneX@iOS</member>
<member>S8@Android</member>
<member>DELL@Windows</member>
<member>HP@Windows</member>
</attribute-mapping>
</attribute-payload>
Sample Payload for Updating the Member-Attribute Mapping for Previously Saved Attributes
This sample updates the mappings for four dimension leaf members to the "Unknown" Attribute leaf member. If a mapping already exists for a dimension leaf member, it is overwritten by the new mapping.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attribute-payload>
<model-name>Sales</model-name>
<dimension-name>Products</dimension-name>
<attribute-name>Product_Type</attribute-name>
<delimiter>@</delimiter>
<!-- dimension leaf member code @ attribute leaf member code -->
<attribute-mapping>
<member>iPhoneX@Unknown</member>
<member>S8@Unknown</member>
<member>DELL@Unknown</member>
<member>HP@Unknown</member>
</attribute-mapping>
</attribute-payload>
Response
Success Response
HTTP/1.1 204 No Content / 200 OK
Error Responses
Service Not Available (Possibly due to maintenance)
HTTP/1.1 404 Not Found
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Model/Dimension not found
HTTP/1.1 412 Precondition Failed
Unauthorized Access (Access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (Bad Request)
HTTP/1.1 400 Bad Request
Append Dimension Members (Master and Analytic Models)
Use this API to append dimension members in Master and Analytic models. You can load Display Label as an optional parameter.
POST /modeling/model/member/append HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<append-member-payload>
<model-name>$ModelName</model-name>
<dimension-name>$DimensionName</dimension-name>
<delimiter>$Delimiter</delimiter>
<hierarchy>$ParentChildHierarchyPlusOperatorLabel</hierarchy>
<dimension-member>$DimensionMemberPlusOperatorLabel</dimension-member>
… add more dimension members if needed
</append-member-payload>
Parameters
@@ - Delimiter
$ModelName: (type: string) Name of the model. If the model specified does not exist, the operation is canceled.
$DimensionName: (type: string) Name of the Dimension that is associated with this model. If the dimension specified does not exist, the operation is canceled.
$Parent@@Child@@Operator@@label: Specify the location of the child member, parent member , rollup operator and label delimited by delimiter string(@@)
DimensionMemberPlusOperatorlabel: Specify the new dimension member, its parent , rollup operator land label delimited by delimiter string in the same order as specified in the hierarchy tag. Add multiple dimension members using different dimension-member tags.
Sample Payload
<?xml version="1.0" encoding="UTF-8"?>
<append-member-payload>
<model-name>Operating Expense</model-name>
<dimension-name>Account</dimension-name>
<delimiter>@@</delimiter>
<hierarchy>parent@@child@@operator@@label</hierarchy>
<dimension-member>Account@@Income Statement@@~@@Jan2010
Income</dimension-member>
<dimension-member>Income Statement@@Income Statement 100@@+@@Feb2019
Income</dimension-member>
</append-member-payload>
<?xml version="1.0" encoding="UTF-8"?>
Response
Success Response
HTTP/1.1 204 OK
Error Responses
Service Not Available (Possibly due to maintenance)
HTTP/1.1 404 Not Found
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Model/Dimension not found
HTTP/1.1 412 Precondition Failed
Unauthorized Access (Access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (Bad Request)
HTTP/1.1 400 Bad Request
Page dimensions
Page dimensions are optional. If the user chooses not to have page dimensions, they may skip this tag completely. Alternately an empty tag can be specified as well.
Page-dimensions tag comprises of all dimensions that have page level scope. In order to have page level scope, the single unique dimension member of this dimension should apply to all data-records.
Column dimensions
Column-dimensions tag comprises of all other dimensions that are not identified as page-dimensions. Each data-record provides a dimension member for every dimension identified in this tag. These dimension members can be unique or non-unique across all data records.
For example: Consider the following records for loading the data:
Table 1
Account | Scenario | Department | Amount | Time |
---|---|---|---|---|
1001 | Actual | Sales | 100 | Jan-13 |
1002 | Actual | Sales | 200 | Jan-13 |
1003 | Actual | Sales | 300 | Jan-13 |
1004 | Actual | Marketing | 400 | Jan-13 |
1005 | Actual | Marketing | 500 | Jan-13 |
These records are to be loaded into a model with four dimensions:
Account (with dimension members 1001, 1002, 1003, 1004, 1005)
Scenario (with dimension member ‘Actual’)
Department (with dimension members ‘Sales’ and ‘Marketing’)
Time (with dimension member ‘Jan-13’)
Here, Scenario: Actual and Time: Jan-13 qualifies to be extracted to page level scope. But, since page-dimensions are entirely optional, below four examples are valid.
Scenario As Page Dimension
<page-dimensions>
<entry>
<key>Scenario</key>
<value>Actual</key>
</entry>
</page-dimensions>
<column-dimensions>
<entry>
<key>1</key>
<value>Account</value>
</entry>
<entry>
<key>2</key>
<value>Department</value>
</entry>
<entry>
<key>3</key>
<value>Time</value>
</entry>
</column-dimensions>
Time As Page Dimension
<page-dimensions>
<entry>
<key>Time</key>
<value>Jan-13</key>
</entry>
</page-dimensions>
<column-dimensions>
<entry>
<key>1</key>
<value>Account</value>
</entry>
<entry>
<key>2</key>
<value>Scenario</value>
</entry>
<entry>
<key>3</key>
<value>Department</value>
</entry>
</column-dimensions>
Empty Page Dimensions
<pagedimensions/>
No Page Dimensions: Skip This Tag Completely
Additional Information with a Sample Payload
Consider a model that has four dimensions:
Account (includes dimension members 1001 and 1002)
Scenario (includes dimension member Actual)
Department (includes dimension members Sales and Marketing)
Time (includes dimension members Jan-13, Feb-13 and Mar-13)
To insert the following table of amounts into the model:
Table 2
Account | Scenario | Department | Amount | Time |
---|---|---|---|---|
1001 | Actual | Sales | 100 | Jan-13 |
1001 | Actual | Sales | 200 | Feb-13 |
1001 | Actual | Sales | 300 | Mar-13 |
1002 | Actual | Marketing | 400 | Jan-13 |
1002 | Actual | Marketing | 500 | Feb-13 |
1002 | Actual | Marketing | 600 | Mar-13 |
Design a payload first creating column-dimensions as follows:
<column-dimensions>
<entry>
<key>1</key>
<value>Account</value>
</entry>
<entry>
<key>2</key>
<value>Scenario</value>
</entry>
<entry>
<key>3</key>
<value>Department</value>
</entry>
<entry>
<key>4</key>
<value>Time</value>
</entry>
</column-dimensions>
The order of dimensions above specifies their order in the data-records section below. For each entry in column-dimensions, ‘value’ identifies the Dimension name, and ‘key’ indicates the position number dedicated to that dimension in every data-record.
For example:
Value: Account
Key: 1
Indicates that the first column in data-record is dedicated to an Account dimension member
Value: Time
Key: 4
Indicates that the fourth column in data-records is dedicated to a Time dimension member
Next, indicate the delimiter used in data-records to separate columns
<delimiter>@@</delimiter>
column-members tag contains information about dimension members that are shared by all data-records in the payload. This is a mandatory tag. It can contain one or more entries. The number of entries in this tag determine the number of columns dedicated to values in data-records. Two entries in column-members signifies two amount columns.
In this example below, entry with key=2 and value=’Actual’ indicates the second column of the data row is associated with member: Actual. This allows us to enter the amount in the second column for every data record.
<column-members>
<entry>
<key>2</key>
<value>Actual</value>
</entry>
</column-members>
Every row in table 2 has an entry in data-records tag. column-dimensions entry key determines the order of the dimension members in every data-record. As an example Department:Sales and Marketing are in column 3 as noted in column-dimensions tag Note that the amount in every Table 2 row is input in the second column of every record.
<data-records>
<data-record>1001@@100@@Sales@@Jan-13</data-record>
<data-record>1001@@200@@Sales@@Feb-13</data-record>
<data-record>1001@@300@@Sales@@Mar-13</data-record>
<data-record>1002@@400@@Marketing@@Jan-13</data-record>
<data-record>1002@@500@@Marketing@@Feb-13</data-record>
<data-record>1002@@600@@Marketing@@Mar-13</data-record>
</data-records>
Additional Information with Multiple Columns per Dimension
Often, there is a need to enter data for multiple members of a dimension. Consider the following example:
Table 3
Account | Scenario | Department | Jan-16 Amount | Feb-16 Amount | Mar-16 Amount |
---|---|---|---|---|---|
1001 | Actual | Sales | 100 | 200 | 300 |
1001 | Actual | Marketing | 400 | 500 | 600 |
The following payload can be used to enter data in this format:
<page-dimensions>
<entry>
<key>Scenario</key>
<value>Actual</key>
</entry>
</page-dimensions>
Extract Scenario: Actual to page since all records in Table 3 relate to Scenario: Actual
<column-dimensions>
<entry>
<key>1</key>
<value>Account</value>
</entry>
<entry>
<key>2</key>
<value>Department</value>
</entry>
<entry>
<key>3</key>
<value>Time</value>
</entry>
<entry>
<key>4</key>
<value>Time</value>
</entry>
<entry>
<key>5</key>
<value>Time</value>
</entry>
</column-dimensions>
This says that column 1 of every data-record contains an Account member, column 2 contains a Department member and Columns 3 to 5 contain Time dimension members.
<column-members>
<entry>
<key>3</key>
<value>Jan-16</value>
</entry>
<entry>
<key>4</key>
<value>Feb-16</value>
</entry>
<entry>
<key>5</key>
<value>Mar-16</value>
</entry>
</column-members>
The above xml snippet indicates that column 3 of every data-record contains amount related to Time: Jan-16, column 4 of data-record contains amount related to Time: Feb-16 and column 5 contains amount related to Time: Mar-16.
Specify delimiter as follows:
<delimiter>@@</delimiter>
The below xml snippet adds data per Table 3:
<data-records>
<data-record>1001@@Sales@@100@@200@@300</data-record>
<data-record>1002@@Marketing@@400@@500@@600</data-record>
</data-records>
Calculation Run (Master and Analytic Models)
Use this API to run a Calculation defined on a Master or Analytic model. Only one Calculation can be invoked per API invocation. Only those Calculations that are enabled to run in the background can be invoked with this API. Invoking any other type will result in an error.
You can also optionally pass variables and values for variables into the calculation.
POST /modeling/model/calcscript/run HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<run-calcscript-payload>
<model-name>$ModelName</model-name>
<calcscript-name>$CalcScriptName</calcscript-name>
<runtime-values>
<entry>
<key> @calcvariablename@ </key>
<value> VariableValue </value>
</entry>
<entry>
<key> @calcvariablename@ </key>
<value> VariableValue </value>
</entry>
</runtime-values>
</run-calcscript-payload>
Parameters
$ModelName: (type: string) Name of the model
$CalcScriptName: (type: string) Name of the Calculation
Sample Payload with Variables
<?xml version="1.0" encoding="UTF-8"?>
<run-calcscript-payload>
<model-name>My Model</model-name>
<calcscript-name>My Calcscript</calcscript-name>
<runtime-values>
<entry>
<key>@Scenario@</key>
<value>Budget 2018</value>
</entry>
<entry>
<key>@CurYear@</key>
<value>2018</value>
</entry>
</runtime-values>
</run-calcscript-payload>
Response
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (model/calculation not found)
HTTP/1.1 404 Not Found
Calculation Status (Master and Analytic Models)
Use this API to determine the current status, the last status of the running of a calculation, the last run time, as well as run in background and description details.
This API returns the following status:
For current status: the response is "submitted", "in progress" or "not running"
For last status: the response is "success" or "failed"
Please note that the request payload is the same as the run calculation payload.
POST modeling/model/calcscript/status HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
Request body:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<run-calcscript-payload>
<model-name>BOA_Model</model-name>
<calcscript-name>BOA_Model</calcscript-name>
</run-calcscript-payload>
Response body:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<calcscript-status>
<model-name>BOA_Model</model-name>
<calcscript-name>BOA_Model</calcscript-name>
<status>not running</status>
<last-status>success</last-status>
<description></description>
<run-in-background>Yes</run-in-background>
<last-run-time>2019-05-15T10:37:56.036Z</last-run-time>
</calcscript-status>
Clear Data (Master and Analytic Models)
This API clears existing data from Master and Analytic models based on the scope of the definition. Clear Data API results in success even if all data has been cleared in an earlier call.
You can opt to clear specific data versus the entire model.
To clear specific data, you use filters. For example, you might opt to clear data for a specific period, department, or company.
To clear all model data, you will use the API without filters.
You can receive a notification via email upon success or failure of the operation. The notifications for success and failure are separate and can be emailed to different email addresses, if desired. This notification is optional.
POST /modeling/model/data/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<clear-data-payload>
<model-name>$ModelName</model-name>
<filters>
<filter>
<dimension>$Dimension/dimension>
<filter-type>$FilterType</filter-type>
<filter-value>$FilterValue1</filter-value>
<filter-value>$FilterValue2</filter-value>
<filter-value>$FilterValue3</filter-value>
…
</filter>
…
</filters>
<notify-on-success>
<email>$EmailAddress</email>
</notify-on-success>
<notify-on-failure>
<email>$EmailAddress</email>
</notify-on-failure>
</clear-data-payload>
Parameters
$ModelName: (type: string) Name of the model in which data will be cleared
$Dimension: (type: string) Name of the dimension in which data will be cleared
$FilterType: (type: string) Dimension filter type
$FilterValue: (type: string) Value of the filter
$EmailAddress: (type: string) Valid email address to receive the notification
Response
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (source model not found)
HTTP/1.1 404 Not Found
Clear Leaf Data (Master and Analytic Models)
This API clears existing leaf data from Master and Analytic models based on the scope of the definition. Clear Leaf Data API results in a success even if all data has been cleared in an earlier call.
You can opt to clear specific leaf data versus the entire model.
To clear specific leaf data, you will use filters. For example, you might opt to clear leaf data for a specific period, department, or company.
To clear all model leaf data, you will use the API without filters.
You can receive a notification via email upon success or failure of the operation. The notifications for success and failure are separate and can be emailed to different email addresses, if desired. This notification is optional.
POST /modeling/model/data/leaf/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<clear-data-payload>
<model-name>$ModelName</model-name>
<filters>
<filter>
<dimension>$Dimension/dimension>
<filter-type>$FilterType</filter-type>
<filter-value>$FilterValue1</filter-value>
<filter-value>$FilterValue2</filter-value>
<filter-value>$FilterValue3</filter-value>
…
</filter>
…
</filters>
<notify-on-success>
<email>$EmailAddress</email>
</notify-on-success>
<notify-on-failure>
<email>$EmailAddress</email>
</notify-on-failure>
</clear-data-payload>
Parameters
$ModelName: (type: string) Name of the model in which leaf data will be cleared
$Dimension: (type: string) Name of the dimension in which leaf data will be cleared
$FilterType: (type: string) Dimension filter type
$FilterValue: (type: string) Value of the filter
$EmailAddress: (type: string) Valid email address to receive the notification
Payload Sample to Clear All Leaf Data
POST /modeling/model/data/leaf/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<clear-data-payload>
<model-name>ClearModelTest</model-name>
<filters>
<filter>
<dimension>Measures</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>MTD</filter-value>
<filter-value>YTD</filter-value>
</filter>
<filter>
<dimension>Scenario</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>Actual</filter-value>
<filter-value>Budget</filter-value>
</filter>
</filters>
<notify-on-success>
<email>john.doe@mycompany.com</email>
</notify-on-success>
<notify-on-failure>
<email>john.doe@mycompany.com</email>
</notify-on-failure>
</clear-data-payload>
Export Dimension / Attribute Hierarchy (Master and Analytic Models)
This API allows you to export the entire dimension/attribute hierarchy from a specified model in XML or JSON format. Example requests and responses in JSON and XML formats are provided below with dimension and attribute examples.
Hierarchy member code
Hierarchy member parent
Hierarchy member rollup operator
Hierarchy member display label
Mapped attributes
Mapped dimensions
POST /api/modeling/model/dimension/export HTTP/1/1
Content-Type: application/json or application/xml
Accept: application/json or application/xml
X-ACCESS-TOKEN: $ACCESS_TOKEN_GUID$
Request Payload Examples
Request Payload JSON
{
“model”: “$ModelName”,
“dimension”: “$DimensionName/$AttributeName”,
“includeAttributes”: true
“includeDimensions”: true
}
Request Payload XML
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>$ModelName</model>
<dimension>$DimensionName</dimension>
<include-attributes>$includeAttributes</include-attributes>
<include-dimensions>$includeDimensions</include-dimensions>
</payload>
Parameters
$ModelName: (type: string) Name of the model. If the model specified does not exist, the operation is canceled.
$DimensionName: (type: string) Name of the Dimension that is associated with this model. If the dimension specified does not exist, the operation is canceled.
$AttributeName: (type: string) Name of the Attribute that is associated with this model. If the Attribute specified does not exist, the operation is canceled.
$includeAttributes: (type: boolean) Include attribute mapping (if applicable).
$inclueDimensions: (type: boolean) include dimension mapping (if applicable).
Payload Samples and Requests
Payload Sample JSON: Dimension Example
{
“modelName”: “Financial Data”,
“dimensionName”: “Account”,
“includeAttributes”: true
}
Request
{
"members": [
{
"memberCode": "Expense",
"rollupOp": "-",
"memberDisplayLabel": "Expense"
},
{
"memberCode": "28 DYN Income",
"memberParent": "Expense",
"rollupOp": "+",
"memberDisplayLabel": "28 DYN Income",
"mapping": [
{
"attributeName": "colour",
"attributeCode": "green"
}
]
},
{
"memberCode": "28 HYP A/C",
"memberParent": "Expense",
"rollupOp": "+",
"memberDisplayLabel": "28 HYP A/C",
"mapping": [
{
"attributeName": "colour",
"attributeCode": "red"
}
]
},
{
"memberCode": "28 Expense",
"memberParent": "Expense",
"rollupOp": "+",
"memberDisplayLabel": "28 Expense",
"mapping": [
{
"attributeName": "colour",
"attributeCode": "orange"
}
]
},
{
"memberCode": "ExtraAccountMem21",
"memberParent": "Expense",
"rollupOp": "+",
"memberDisplayLabel": "ExtraAccountMem21"
},
{
"memberCode": "ExtraAccountMem22",
"memberParent": "Expense",
"rollupOp": "+",
"memberDisplayLabel": "ExtraAccountMem22",
"mapping": [
{
"attributeName": "colour",
"attributeCode": "blue"
}
]
}
]
}
Payload Sample JSON: Dimension leaf member disabled example
When the dimension leaf member is disabled, dimension members mapped to attribute members will not be exported.
{
"modelName": "Financial Data",
"dimensionName": "color",
"includeDimensions":true
}
Response
{
"members": [
{
"memberCode": "color",
"rollupOperator": "~",
"memberDisplayLabel": "color"
},
{
"memberCode": "blue",
"memberParent": "color",
"rollupOperator": "+",
"memberDisplayLabel": "blue",
"mapping": [
{
"dimension": "Account",
"dimensionCode": [
"Account22"
]
}
]
},
{
"memberCode": "orange",
"memberParent": "color",
"rollupOperator": "+",
"memberDisplayLabel": "orange",
"mapping": [
{
"dimension": "Account",
"dimensionCode": [
"28 Expense"
]
}
]
},
{
"memberCode": "red",
"memberParent": "color",
"rollupOperator": "+",
"memberDisplayLabel": "red",
"mapping": [
{
"dimension": "Account",
"dimensionCode": [
"28 HYP A/C"
]
}
]
},
{
"memberCode": "green",
"memberParent": "color",
"rollupOperator": "+",
"memberDisplayLabel": "green",
"mapping": [
{
"dimension": "Account",
"dimensionCode": [
"28 DYN Income"
]
}
]
},
{
"memberCode": "_Attribute_Default",
"memberParent": "color",
"rollupOperator": "+",
"memberDisplayLabel": "_Attribute_Default",
"mapping": [
{
"dimension": "Account",
"dimensionCode": [
"Account21"
]
}
]
}
]
}
Payload Sample JSON: Dimension leaf member enabled example
When the dimension leaf member is enabled, dimension members mapped to attribute members will be exported.
{
"modelName": "Financial Data",
"dimensionName": "Enterprise",
"includeDimensions":true
}
Response
{
"members": [
{
"memberCode": "908",
"memberParent": "_Attribute_Default",
"rollupOperator": "+",
"memberDisplayLabel": "908 - Elim - Hot - Nev Corp"
},
{
"memberCode": "909",
"memberParent": "_Attribute_Default",
"rollupOperator": "+",
"memberDisplayLabel": "909 - Elim - Hot - Nev Inc"
},
{
"memberCode": "2020 AFN",
"memberParent": "_Attribute_Default",
"rollupOperator": "+",
"memberDisplayLabel": "2020 AFN"
},
{
"memberCode": "Enterprise",
"rollupOperator": "~",
"memberDisplayLabel": "Enterprise"
},
{
"memberCode": "Sales",
"memberParent": "Enterprise",
"rollupOperator": "+",
"memberDisplayLabel": "Sales"
},
{
"memberCode": "Finance",
"memberParent": "Enterprise",
"rollupOperator": "+",
"memberDisplayLabel": "Finance"
},
{
"memberCode": "_Attribute_Default",
"memberParent": "Enterprise",
"rollupOperator": "+",
"memberDisplayLabel": "_Attribute_Default",
"mapping": [
{
"dimension": "Company",
"dimensionCode": [
"908",
"909",
"2020 AFN"
]
}
]
}
]
}
Payload Sample JSON: Attribute Example
{
"modelName": "Financial Data",
"dimensionName": "colour",
"includeAttributes": true
}
Response
{
"members": [
{
"memberCode": "Expense",
"rollupOperator": "-",
"memberDisplayLabel": "Expense"
},
{
"memberCode": "28 DYN Income",
"memberParent": "Expense",
"rollupOperator": "+",
"memberDisplayLabel": "28 DYN Income",
"mapping": [
{
"attribute": "color",
"attributeCode": "green"
}
]
},
{
"memberCode": "28 HYP A/C",
"memberParent": "Expense",
"rollupOperator": "+",
"memberDisplayLabel": "28 HYP A/C",
"mapping": [
{
"attribute": "color",
"attributeCode": "red"
}
]
},
{
"memberCode": "28 Expense",
"memberParent": "Expense",
"rollupOperator": "+",
"memberDisplayLabel": "28 Expense",
"mapping": [
{
"attribute": "color",
"attributeCode": "orange"
}
]
}
]
}
Payload Sample XML: Dimension Example
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>Financial Data</model>
<dimension>Account</dimension>
<include-attributes>true</include-attributes>
</payload>
Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Payload>
<Member>
<Member-Code>Expense</Member-Code>
<Rollup-Operator>-</Rollup-Operator>
<Member-Display-Label>Expense</Member-Display-Label>
</Member>
<Member>
<Member-Code>28 DYN Income</Member-Code>
<Member-Parent>Expense</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>28 DYN Income</Member-Display-Label>
<Mapping>
<Attribute>color</Attribute>
<Attribute-Code>green</Attribute-Code>
</Mapping>
</Member>
<Member>
<Member-Code>28 HYP A/C</Member-Code>
<Member-Parent>Expense</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>28 HYP A/C</Member-Display-Label>
<Mapping>
<Attribute>color</Attribute>
<Attribute-Code>red</Attribute-Code>
</Mapping>
</Member>
<Member>
<Member-Code>28 Expense</Member-Code>
<Member-Parent>Expense</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>28 Expense</Member-Display-Label>
<Mapping>
<Attribute>color</Attribute>
<Attribute-Code>orange</Attribute-Code>
</Mapping>
</Member>
</Payload>
Payload Sample XML: Attribute Example
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>Financial Data</model>
<dimension>colour</dimension>
<include-attributes>true</include-attributes>
</payload>
Response
Response:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Payload>
<Dimension-Member>
<Member-Code>colour</Member-Code>
<Rollup-Operator>~</Rollup-Operator>
<Display-Label>colour</Display-Label>
</Dimension-Member>
<Dimension-Member>
<Member-Code>blue</Member-Code>
<Member-Parent>colour</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Display-Label>blue</Display-Label>
</Dimension-Member>
<Dimension-Member>
<Member-Code>orange</Member-Code>
<Member-Parent>colour</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Display-Label>orange</Display-Label>
</Dimension-Member>
<Dimension-Member>
<Member-Code>red</Member-Code>
<Member-Parent>colour</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Display-Label>red</Display-Label>
</Dimension-Member>
<Dimension-Member>
<Member-Code>green</Member-Code>
<Member-Parent>colour</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Display-Label>green</Display-Label>
</Dimension-Member>
<Dimension-Member>
<Member-Code>_Attribute_Default</Member-Code>
<Member-Parent>colour</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Display-Label>_Attribute_Default</Display-Label>
</Dimension-Member>
</Payload>
Payload Sample XML: Attribute Example with dimension leaf member disabled
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>Financial Data</model>
<dimension>color</dimension>
<include-dimensions>true</include-dimensions>
</payload>
Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Payload>
<Member>
<Member-Code>color</Member-Code>
<Rollup-Operator>~</Rollup-Operator>
<Member-Display-Label>color</Member-Display-Label>
</Member>
<Member>
<Member-Code>blue</Member-Code>
<Member-Parent>color</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>blue</Member-Display-Label>
<Mapping>
<Dimension>Account</Dimension>
<Dimension-Code>Account22</Dimension-Code>
</Mapping>
</Member>
<Member>
<Member-Code>orange</Member-Code>
<Member-Parent>color</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>orange</Member-Display-Label>
<Mapping>
<Dimension>Account</Dimension>
<Dimension-Code>28 Expense</Dimension-Code>
</Mapping>
</Member>
<Member>
<Member-Code>red</Member-Code>
<Member-Parent>color</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>red</Member-Display-Label>
<Mapping>
<Dimension>Account</Dimension>
<Dimension-Code>28 HYP A/C</Dimension-Code>
</Mapping>
</Member>
<Member>
<Member-Code>green</Member-Code>
<Member-Parent>color</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>green</Member-Display-Label>
<Mapping>
<Dimension>Account</Dimension>
<Dimension-Code>28 DYN Income</Dimension-Code>
</Mapping>
</Member>
<Member>
<Member-Code>_Attribute_Default</Member-Code>
<Member-Parent>color</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>_Attribute_Default</Member-Display-Label>
<Mapping>
<Dimension>Account</Dimension>
<Dimension-Code>Account21</Dimension-Code>
</Mapping>
</Member>
</Payload>
Payload Sample XML: Attribute - with dimension leaf member enabled
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>Financial Data</model>
<dimension>color</dimension>
<include-dimensions>true</include-dimensions>
</payload>
Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Payload>
<Member>
<Member-Code>908</Member-Code>
<Member-Parent>_Attribute_Default</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>908 - Elim - Hot - Nev Corp</Member-Display-Label>
</Member>
<Member>
<Member-Code>909</Member-Code>
<Member-Parent>_Attribute_Default</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>909 - Elim - Hot - Nev Inc</Member-Display-Label>
</Member>
<Member>
<Member-Code>2020 AFN</Member-Code>
<Member-Parent>_Attribute_Default</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>2020 AFN</Member-Display-Label>
</Member>
<Member>
<Member-Code>Enterprise</Member-Code>
<Rollup-Operator>~</Rollup-Operator>
<Member-Display-Label>Enterprise</Member-Display-Label>
</Member>
<Member>
<Member-Code>Sales</Member-Code>
<Member-Parent>Enterprise</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>Sales</Member-Display-Label>
</Member>
<Member>
<Member-Code>Finance</Member-Code>
<Member-Parent>Enterprise</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>Finance</Member-Display-Label>
</Member>
<Member>
<Member-Code>_Attribute_Default</Member-Code>
<Member-Parent>Enterprise</Member-Parent>
<Rollup-Operator>+</Rollup-Operator>
<Member-Display-Label>_Attribute_Default</Member-Display-Label>
<Mapping>
<Dimension>Company</Dimension>
<Dimension-Code>908</Dimension-Code>
<Dimension-Code>909</Dimension-Code>
<Dimension-Code>2020 AFN</Dimension-Code>
</Mapping>
</Member>
</Payload>
Success Response
HTTP/1.1 200 OK
Error Responses
Service Not Available (Possibly due to maintenance)
HTTP/1.1 404 Not Found
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Could not find payload body <payload>…</payload>
Could not find model: xxx
Could not find dimension: xxx
Dimension cannot be null or empty.
HTTP/1.1 412 Precondition Failed
Unauthorized Access (Access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (Bad Request)
HTTP/1.1 400 Bad Request
Export Leaf-Level Data (Scoped) (Master and Analytic Models)
This API allows you to export the leaf level data from a specified model in XMLand JSON format. Additionally, you can specify one or more filters to export specific data, and you can use attributes as filters.
POST /modeling/model/data/export HTTP/1.1
Content-Type: application/json or application/xml
Accept: application/json or application/xml
X-ACCESS-TOKEN: $ACCESS_TOKEN_GUID$
Request Payload Examples
Request Payload JSON- - example with Attribute and Operation Type
{
"model": "$ModelName",
"filters": [
{
"dimension": "$Dimension"/”$Attribute”,,
"filterType": "$FilterType",
"filterValues": [
"$value1",
"$value2"
]
}
],
"memberDisplay": "$MemberDisplay",
"suppressZeroes": "$SupressZerosFlag"
“operationType”: “operationType”
}
Request Payload JSON - example with Attribute
{
"model": "$ModelName",
"filters": [
{
"dimension": "$Dimension"/"$Attribute",
"filterType": "$FilterType",
"filterValues": [
"$value1",
"$value2"
]
}
],
"memberDisplay": "$MemberDisplay",
"suppressZeroes": "$SupressZerosFlag"
}
Request Payload XML - example with Attribute and Operation Type
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>$ModelNamel</model>
<filters>
<filter>
<dimension>$Dimension/$Attribute</dimension>
<filter-type>$FilterType</filter-type>
<filter-value>$value1</filter-value>
<filter-value>$value2</filter-value>
</filter>
</filters>
<member-display>$MemberDisplay</member-display>
<suppress-zeroes>$SupressZerosFlag</suppress-zeroes>
<operation-type>AND</operation-type>
</payload>
Request Payload XML - Attribute Example
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>$ModelNamel</model>
<filters>
<filter>
<dimension>$Dimension/$Attribute</dimension>
<filter-type>$FilterType</filter-type>
<filter-value>$value1</filter-value>
<filter-value>$value2</filter-value>
</filter>
</filters>
<member-display>$MemberDisplay</member-display>
<suppress-zeroes>$SupressZerosFlag</suppress-zeroes>
</payload>
Parameters
$ModelName: (type: string) Name of the model
$Dimension: (type: string) Name of the dimension
$Attribute: (type: string) Name of the attribute
$FilterType: (type: string) Dimension filter type, can be FixedMember or MemberAndBelow
$FilterValue: (type: string) Value of the filter
$MemberDisplay (type: string) Optional, can be either Code or Display Label, but defaults to Code
$SupressZerosFlag (type: boolean) Optional, can be either True or False, but defaults to True
$OperationType: (type: string) Operation Type, can be OR or AND, but default is OR - applicable among attribute filter values.
Payload Samples
Payload Sample JSON - example with Operation Type and Region Attribute
{
"model": "Financial Data",
"filters": [
{
"dimension": "Account",
"filterType": "MemberAndBelow",
"filterValues": [
"Expense"
]
},
{
"dimension": "BusinessCenter",
"filterType": "FixedMember",
"filterValues": [
"000"
]
},
{
"dimension": "Company",
"filterType": "FixedMember",
"filterValues": [
"2020 Host Spain",
"2020 HOST CND"
]
},
{
"dimension": "CostCenter",
"filterType": "FixedMember",
"filterValues": [
"1000"
]
},
{
"dimension": "Department",
"filterType": "FixedMember",
"filterValues": [
"Sales"
]
},
{
"dimension": "Geography",
"filterType": "FixedMember",
"filterValues": [
"000-0000"
]
},
{
"dimension": "Region_Attribute",
"filterType": "FixedMember",
"filterValues": [
"North America"
]
},
{
"dimension": "Region_Attribute",
"filterType": "FixedMember",
"filterValues": [
"South America"
]
}
],
"memberDisplay": "DisplayLabel",
"suppressZeroes": true,
“operationType”: “AND”
}
Response JSON - example with Operation Type and Region Attribute
[
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Dec-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "32.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jun-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "23.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Nov-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "31.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Oct-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "45.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "May-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "22.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Feb-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "35.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Aug-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "26.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jan-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "33.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jul-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "24.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Feb-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "18.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jul-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "41.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jun-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "40.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Sep-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "44.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Apr-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "20.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Aug-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "43.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Mar-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "19.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Oct-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "28.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Apr-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "37.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Mar-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "36.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Sep-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "27.0"
}
]
Payload Sample JSON - With Region Attribute
{
"model": "Financial Data",
"filters": [
{
"dimension": "Account",
"filterType": "MemberAndBelow",
"filterValues": [
"Expense"
]
},
{
"dimension": "BusinessCenter",
"filterType": "FixedMember",
"filterValues": [
"000"
]
},
{
"dimension": "Company",
"filterType": "FixedMember",
"filterValues": [
"2020 Host Spain",
"2020 HOST CND"
]
},
{
"dimension": "CostCenter",
"filterType": "FixedMember",
"filterValues": [
"1000"
]
},
{
"dimension": "Department",
"filterType": "FixedMember",
"filterValues": [
"Sales"
]
},
{
"dimension": "Geography",
"filterType": "FixedMember",
"filterValues": [
"000-0000"
]
},
{
"dimension": "Region_Attribute",
"filterType": "FixedMember",
"filterValues": [
"North America"
]
}
],
"memberDisplay": "DisplayLabel",
"suppressZeroes": true
}
Payload Sample XML - example with Attribute and Operation Type
[
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Dec-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "32.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jun-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "23.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Nov-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "31.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Oct-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "45.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "May-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "22.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Feb-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "35.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Aug-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "26.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jan-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "33.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jul-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "24.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Feb-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "18.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jul-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "41.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Jun-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "40.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Sep-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "44.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Apr-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "20.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Aug-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "43.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Mar-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "19.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Oct-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "28.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Apr-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "37.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Mar-16",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "36.0"
},
{
"BusinessCenter": "000",
"Company": "2020 Host Spain",
"CostCenter": "1000",
"ICSegment": "Default",
"ProductLine": "00",
"Reporting": "G/L Data (LC)",
"Time": "Sep-15",
"Account": "28 Expense",
"Department": "Sales",
"Geography": "000-0000 - Balance Sheet",
"Scenario": "Budget 2013",
"Amount": "27.0"
}
]
Payload Sample XML - With Attribute
<?xml version="1.0" encoding="UTF-8"?>
<payload>
<model>Financial Data</model>
<filters>
<filter>
<dimension>Account</dimension>
<filter-type>MemberAndBelow</filter-type>
<filter-value>Expense</filter-value>
</filter>
<filter>
<dimension>BusinessCenter</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>000</filter-value>
</filter>
<filter>
<dimension>Company</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>2020 Host Spain</filter-value>
<filter-value>2020 HOST CND</filter-value>
</filter>
<filter>
<dimension>CostCenter</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>1000</filter-value>
</filter>
<filter>
<dimension>Department</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>Sales</filter-value>
</filter>
<filter>
<dimension>Geography</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>000-0000</filter-value>
</filter>
<filter>
<dimension>Region_Attribute</dimension>
<filter-type>FixedMember</filter-type>
<filter-value>North America</filter-value>
</filter>
</filters>
<member-display>DisplayLabel</member-display>
<suppress-zeroes>true</suppress-zeroes>
</payload>
XML Sample Response - example with Attribute and Operation Type
<?xml version="1.0" ?>
<records>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Dec-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>32.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Jun-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>23.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Nov-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>31.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Oct-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>45.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>May-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>22.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Feb-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>35.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Aug-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>26.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Jan-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>33.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Jul-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>24.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Feb-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>18.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Jul-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>41.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Jun-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>40.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Sep-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>44.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Apr-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>20.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Aug-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>43.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Mar-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>19.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Oct-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>28.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Apr-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>37.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Mar-16</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>36.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Sep-15</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>27.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Nov-14</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>14.0</Amount>
</record>
<record>
<BusinessCenter>000</BusinessCenter>
<Company>2020 Host Spain</Company>
<CostCenter>1000</CostCenter>
<ICSegment>Default</ICSegment>
<ProductLine>00</ProductLine>
<Reporting>G/L Data (LC)</Reporting>
<Time>Dec-14</Time>
<Account>28 Expense</Account>
<Department>Sales</Department>
<Geography>000-0000 - Balance Sheet</Geography>
<Scenario>Budget 2013</Scenario>
<Amount>15.0</Amount>
</record>
</records>
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid JSON/XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (source model not found)
HTTP/1.1 404 Not Found
Load Data (Master and Analytic Models)
Use this API to import data to a Master or an Analytic model. Incremental data loads are supported. Invoke Clear Data API to clear all data in the model before the data import if an incremental data load is not needed. Use additional parameters to have a success or failure notification emailed to you.
Additional options described below include:
Optionally allowing data to continue to load even when dimension members are missing
Optionally adding missing dimension members
Optionally receiving notification upon success and failure of the data load
POST /modeling/model/data/load HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<load-data-payload>
<model-name>$ModelName</model-name>
<delimiter>$Delimiter</delimiter>
<aggregate-flag>$AggregateFlag</aggregate-flag>
<continue-on-error>true</continue-on-error>
<add-missing-dimension-members>true</add-missing-dimension-members>
<missing-dimension-members>
<entry>
<key>dimensionname</key>
<value>rollupname</value>
</entry>
</missing-dimension-members>
<page-dimensions>
<entry>
<key>$PageDimension</key>
<value>$PageMember</value>
</entry>
...
</page-dimensions>
<column-dimensions>
<entry>
<key>$ColumnNumber</key>
<value>$ColumnDimension</value>
</entry>
...
</column-dimensions>
<column-members>
<entry>
<key>$ColumnNumber</key>
<value>$DimensionMember</value>
</entry>
...
</column-members>
<notify-on-success>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-success>
<notify-on-failure>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-failure>
<data-records>
<data-record>$Data</data-record>
...
</data-records>
</load-data-payload>
Parameters
$ModelName: Name of the model
$Delimiter: Data delimiter
$AggregateFlag: “True” will aggregate data whenever duplicates are found. “False” will replace data when duplicates are found
$PageDimension: Dimension on page
$PageMember : Dimension member on page
$ColumnNumber: Column number that represents dimension/member on the column
$ColumnDimension: Dimension on column
$DimensionMember: If a Dimension on a row is expanded, include all expanded members and corresponding column numbers
$Data: data separated by delimiter
Sample Payload
<?xml version="1.0" encoding="UTF-8"?>
<load-data-payload>
<model-name>LoadModelTest</model-name>
<delimiter>|_|</delimiter>
<aggregate-flag>true</aggregate-flag>
<continue-on-error>true</continue-on-error>
<add-missing-dimension-members>true</add-missing-dimension-members>
<missing-dimension-members>
<entry>
<key>Products</key>
<value>Laptops</value>
</entry>
</missing-dimension-members>
<page-dimensions>
<entry>
<key>Measures</key>
<value>MTD</value>
</entry>
<entry>
<key>Scenario</key>
<value>Budget</value>
</entry>
</page-dimensions>
<column-dimensions>
<entry>
<key>1</key>
<value>Products</value>
</entry>
<entry>
<key>2</key>
<value>Time</value>
</entry>
<entry>
<key>3</key>
<value>Time</value>
</entry>
<entry>
<key>4</key>
<value>Time</value>
</entry>
<entry>
<key>5</key>
<value>Time</value>
</entry>
<entry>
<key>6</key>
<value>Time</value>
</entry>
<entry>
<key>7</key>
<value>Time</value>
</entry>
<entry>
<key>8</key>
<value>Time</value>
</entry>
<entry>
<key>9</key>
<value>Time</value>
</entry>
<entry>
<key>10</key>
<value>Time</value>
</entry>
<entry>
<key>11</key>
<value>Time</value>
</entry>
<entry>
<key>12</key>
<value>Time</value>
</entry>
<entry>
<key>13</key>
<value>Time</value>
</entry>
</column-dimensions>
<column-members>
<entry>
<key>2</key>
<value>Jan</value>
</entry>
<entry>
<key>3</key>
<value>Feb</value>
</entry>
<entry>
<key>4</key>
<value>Mar</value>
</entry>
<entry>
<key>5</key>
<value>Apr</value>
</entry>
<entry>
<key>6</key>
<value>May</value>
</entry>
<entry>
<key>7</key>
<value>Jun</value>
</entry>
<entry>
<key>8</key>
<value>Jul</value>
</entry>
<entry>
<key>9</key>
<value>Aug</value>
</entry>
<entry>
<key>10</key>
<value>Sep</value>
</entry>
<entry>
<key>11</key>
<value>Oct</value>
</entry>
<entry>
<key>12</key>
<value>Nov</value>
</entry>
<entry>
<key>13</key>
<value>Dec</value>
</entry>
</column-members>
<notify-on-success>
<email>john.doe@mycompany</email>
</notify-on-success>
<notify-on-failure>
<email>john.doe@mycompany</email>
<email>jane.doe@mycompany</email>
</notify-on-failure>
<data-records>
<data-record>HP1|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10</data-record>
<data-record>Dell1|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10|_|10</data-record>
<data-record>Lenovo|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20</data-record>
<data-record>Pixel 2|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20|_|20</data-record>
<data-record>Nexus 6|_|30|_|30|_|30|_|30|_|30|_|30|_|30|_|30|_|30|_|30|_|30|_|30</data-record>
<data-record>iPhone 7|_|40|_|40|_|40|_|40|_|40|_|40|_|40|_|40|_|40|_|40|_|40|_|40</data-record>
</data-records>
</load-data-payload>
Additional Information on Data Load Notifications
You can optionally include two sections for success and failure email notifications.
Notify on Success
<notify-on-success>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-success>
Notify on Failure
<notify-on-failure>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-failure>
Additional Information on Missing Leaf Dimension Members and Continue on Error
This is an optional configuration to continue data loading even when there are missing leaf dimension members. If this option is configured, then the data load API will continue to load the valid data and will notify users with the list of missing leaf dimension members for which data has not been loaded.
This flag in the Data Load API continues to load data even when an Invalid member or Invalid number is encountered.
<continue-on-error>true</continue-on-error>
This optional flag in the Data Load API adds missing leaf dimension members, if any, to the corresponding dimension in the Master and Analytic Model Data Load API, and then loads the data.
<add-missing-dimension-members>true</add-missing-dimension-members>
Additionally, you can specify where the additional leaf dimension members should be added.
<missing-dimension-members>
<entry>
<key>dimensionname</key>
<value>rollupname</value>
</entry>
</missing-dimension-members>
Insert the <entry> ... </entry> section for each dimension that you want to specify where new members should be added.
Use Case 1:
This will continue the data load even if there are any missing leaf dimension members or invalid numbers found in the data load and will only load the data with the valid dimensions members.
<continue-on-error>true</continue-on-error>
Use Case 2 :
This will continue the data load even if there are any missing leaf dimension members or invalid numbers found in the data load. Then it adds missing leaf dimension members to the corresponding dimensions and loads the data.
<continue-on-error>true</continue-on-error>
<add-missing-dimension-members>true</add-missing-dimension-members>
Use Case 3:
This will continue the data load even if there are any missing leaf dimension members or invalid numbers found in the data load. Then it will add missing leaf dimensions members to Dimension1Name and Dimension2Name and will load the data.
This section is optional. If this item is not included, the missing leaf dimension members will be added to DLR_DimensionName, if it exists. Otherwise DLR_DimensionName is created and the additional leaf dimension members are placed there. This occurs in each corresponding dimension with new members.
Clear Data (External Source Models)
The Clear Data API clears existing data from an External Source Model based on the scope of the definition. When clearing data from an external source model, you can opt to clear specific data versus the entire model. To clear specific data, use filters. To clear all model data, use the API without filters. For example, you might opt to clear data for a specific period, a department, or a company.
This API works with both the legacy External Source Model functionality and the newest implementation of ESM.
The request is idempotent. Clear Data API will return success even if all data has been cleared in earlier call.
POST /modeling/sourcemodel/data/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<clear-data-payload>
<model-name>$SourceModelName</model-name>
</clear-data-payload>
The syntax below provides example syntax to clear data for two fields (each of which have 3 values) from an external source model.
<clear-data-payload>
<model-name>$SourceModelName</model-name>
<filters>
<filter>
<field></field>
<field-value></field-value>
<field-value></field-value>
<field-value></field-value>
</filter>
<filter>
<field></field>
<field-value></field-value>
<field-value></field-value>
<field-value></field-value>
</filter>
</filters>
</clear-data-payload>
Parameters
$SourceModelName: (type: string) Name of the model in which data will be cleared
Sample Payload 1
<?xml version="1.0" encoding="UTF-8"?>
<clear-data-payload>
<model-name>My Model</model-name>
</clear-data-payload>
Sample Payload 2
The sample payload syntax below provides an example to clear data for month 1, 2, and 3 (Periods 1, 2, and 3) for the Sales and Marketing departments.
<?xml version="1.0" encoding="UTF-8"?>
<clear-data-payload>
<model-name>My external model</model-name>
<filters>
<filter>
<field>Department</field>
<field-value>Sales</field-value>
<field-value>Marketing</field-value>
</filter>
<filter>
<field>Period</field>
<field-value>Period1</field-value>
<field-value>Period2</field-value>
<field-value>Period3</field-value>
</filter>
</filters>
<notify-on-failure>
<email>john.doe@mycompany.com</email>
</notify-on-failure>
</clear-data-payload>
Response
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (source model not found)
HTTP/1.1 404 Not Found
See also Clear Data (Master and Analytic Models).
Clear Dimension Members (Metadata) (External Source Models)
Use this API to clear metadata from an external Data Source model. This API can be invoked to clear specific dimensions or all dimensions of an external Data Source model. The ClearMetadata API results in a success even if all data has been cleared in earlier call.
POST /modeling/sourcemodel/metadata/clear HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<clear-metadata-payload>
<model-name>$ModelName</model-name>
<dimension-name>$DimensionName</dimension-name>
</clear-metadata-payload>
Parameters
$ModelName: (type: string) Name of the model
$DimensionName: (type: string) Name of the dimension
Sample Payload
<?xml version="1.0" encoding="UTF-8"?>
<clear-metadata-payload>
<model-name>My Model</model-name>
<dimension-name>Time</dimension-name>
</clear-metadata-payload>
Response
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (source model not found)
HTTP/1.1 404 Not Found
Export Leaf-Level Data (Scoped) (External Source Models)
This API allows you to export leaf-level data from a specified external source model in XML format. Optionally, you can specify one or more filters to export specific data and you can specify which fields to export.
This API works with both the legacy External Source Model functionality and the newest implementation of ESM.
POST /modeling/sourcemodel/data/export HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN: UUID
Request Payload
<?xml version="1.0" encoding="UTF-8"?>
<export-data-payload>
<model-name>$ModelName</model-name>
<delimiter>$Delimiter</delimiter>
<filters>
<filter>
<field>$FilterField</field>
<field-value>filter field value</field-value>
</filter>
</filters>
<fields>
<field>$FieldtoExport</field>
</fields>
</export-data-payload>
Parameters
$ModelName: (type: string) Name of the external source model. Mandatory.
$Delimiter: (type: string) Delimiter string. Mandatory.
$FilterField: (type: string) Name of the field to use in filtering which data is exported. Specify one or more rows of field values as the filters. Optional.
$FieldtoExport: (type: string) Name of the field to include in the exported XML file. Add additional rows for additional fields. If you do not include this section, then all the columns will be selected. Optional.
Sample Payload
The following example exports data from the external source model salestxn and uses a comma delimiter between fields in the exported XML file. Only records with the value "Kitchen" or "Apparel" in the "cat" (category) field are exported. The exported XML file contains four fields from the external source model.
<export-data-payload>
<model-name>salestxn</model-name>
<delimiter>,</delimiter>
<filters>
<filter>
<field>cat</field>
<field-value>Kitchen</field-value>
<field-value>Apparel</field-value>
</filter>
</filters>
<fields>
<field>txndate</field>
<field>item</field>
<field>price</field>
<field>total</field>
</fields>
</export-data-payload>
Response
<?xml version="1.0" encoding="UTF-8"?>
<export-data-payload>
<model-name>salestxn</model-name>
<delimiter>,</delimiter>
<filters>
<filter>
<field>cat</field>
<field-value>Kitchen</field-value>
<field-value>Apparel</field-value>
</filter>
</filters>
<fields>
<field>txndate</field>
<field>item</field>
<field>price</field>
<field>total</field>
</fields>
<records>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,K0001,10.0,10.0</record>
<record>2018/11/01,A0001,10.0,20.0</record>
<record>2018/11/01,A0001,10.0,20.0</record>
<record>2018/11/01,A0001,10.0,20.0</record>
<record>2018/11/01,A0001,10.0,20.0</record>
<record>2018/11/01,A0001,10.0,20.0</record>
<record>2018/11/01,A0001,15.0,15.0</record>
<record>2018/11/01,A0001,15.0,15.0</record>
<record>2018/11/01,A0001,15.0,15.0</record>
<record>2018/11/01,A0001,15.0,15.0</record>
<record>2018/11/01,A0001,15.0,15.0</record>
</records>
</export-data-payload>
Success Response
HTTP/1.1 200 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Model not found or invalid field.
HTTP/1.1 401 Unauthorized
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Load Data (External Source Models)
Use this API to import data into an external Data Source model.
This API works with both the legacy External Source Model functionality and the newest implementation of ESM.
Incremental data loads are supported. Invoke the Clear Data API to clear all data in the model before the data import if incremental data load is not wanted. Use additional parameters to have a success and / or failure notification emailed to you.
POST /modeling/sourcemodel/data/load HTTP/1.1
Content-Type: application/xml
Accept: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<load-data-payload>
<model-name>$ModelName</model-name>
<delimiter>$Delimiter</delimiter>
<column-headers>
<entry>
<key>$ColumnNumber</key>
<value>$ColumnHeader</value>
</entry>
...
</column-headers>
<notify-on-success>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-success>
<notify-on-failure>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-failure>
<data-records>
<data-record>$Data</data>
</data-records>
</load-data-payload>
Parameters
$ModelName: Name of the model
$Delimiter: Data delimiter
$ColumnNumber: Column number that represents dimension/member on column
$ColumnHeader: Data source column header
$Data: data separated by delimiter
Sample Payload
<?xml version="1.0" encoding="UTF-8"?>
<load-data-payload>
<model-name>My Model</model-name>
<delimiter>@@</delimiter>
<column-headers>
<entry>
<key>1</key>
<value>LogLevel</value>
</entry>
<entry>
<key>2</key>
<value>Component</value>
</entry>
<entry>
<key>3</key>
<value>Hours</value>
</entry>
<entry>
<key>4</key>
<value>Minutes</value>
</entry>
<entry>
<key>5</key>
<value>Seconds</value>
</entry>
</column-headers>
<data-records>
<data-record>1@@CalcScripts@@02@@44@@31</data-record>
<data-record>2@@OLAP@@05@@29@@47</data-record>
</data-records>
</load-data-payload>
Additional Information about Data Load Notifications
You can optionally include two more sections for success and failure email notifications.
Notify on Success
<notify-on-success>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-success>
Notify on Failure
<notify-on-failure>
<email>email1@domain</email>
<email>email2@domain</email>
</notify-on-failure>
Sample Payload with Notification
<load-data-payload>
<model-name>MyModel</model-name>
<delimiter>|_|</delimiter>
<aggregate-flag>true</aggregate-flag>
<page-dimensions>
<entry>
<key>Products</key>
<value>Dell</value>
</entry>
<entry>
<key>Accounts</key>
<value>IS</value>
</entry>
<entry>
<key>Scenario</key>
<value>Actual</value>
</entry>
</page-dimensions>
<column-dimensions>
<entry>
<key>1</key>
<value>Time</value>
</entry>
<entry>
<key>2</key>
<value>Measures</value>
</entry>
<entry>
<key>3</key>
<value>Measures</value>
</entry>
</column-dimensions>
<column-members>
<entry>
<key>2</key>
<value>MTD</value>
</entry>
<entry>
<key>3</key>
<value>YTD</value>
</entry>
</column-members>
<notify-on-success>
<email>mhamed@planful.com</email>
<email>ryennam@planful.com</email>
</notify-on-success>
<notify-on-failure>
<email>mhamed@planful.com</email>
<email>ryennam@planful.com</email>
</notify-on-failure>
<data-records>
<data-record>Mar|_|a</data-record>
<data-record>Jan1||a||b</data-record>
<data-record>Feb1||200||100</data-record>
<data-record>Mar||a||100</data-record>
<data-record>Mar|_|a</data-record>
</data-records>
</load-data-payload>
Load Dimension Members (Metadata) (External Source Models)
Use this API to load metadata to an external Data Source model. This API supports the import of level-based source dimension metadata. Support for the import of parent-child based source dimension metadata will be added in the future. Only a single dimension’s metadata can be imported per request.
POST /modeling/sourcemodel/metadata/load HTTP/1.1
Content-Type: application/xml
Accept-Type: application/xml
X-ACCESS-TOKEN:
<?xml version="1.0" encoding="UTF-8"?>
<load-metadata-payload>
<model-name>$ModelName</model-name>
<dimension-name>$DimensionName</dimension-name>
<delimiter>$Delimiter</delimiter>
<levels>$Levels</levels>
<dimension-members>
<dimension-member>$DimensionMembers</dimension-member>
</dimension-members>
</load-metadata-payload>
Parameters
$ModelName: (type: string) Name of the model
$DimensionName: (type: string) Name of the dimension
$Delimiter: (type: string) Delimiter string used in levels and dimension member elements
$Levels: (type: string) Delimiter separated levels
$DimensionMembers: (type: string) Delimiter separated dimension members
$Level3Member: (type: string) Name of a member at Level3 (levels can be nested up to Level10)
Sample Payload
<?xml version="1.0" encoding="UTF-8"?>
<load-metadata-payload>
<model-name>My Model</model-name>
<dimension-name>Time</dimension-name>
<delimiter>@@</delimiter>
<levels>LEVEL1@@LEVEL3@@LEVEL2</levels>
<dimension-members>
<dimension-member>Q1 2013@@Q3 2013@@Q2 2013</dimension-member>
</dimension-members>
</load-metadata-payload>
Response
Success Response
HTTP/1.1 200/204 OK
Error Responses
Service Not Available (possibly due to maintenance)
HTTP/1.1 503 Service Unavailable
One or more HTTP headers were missing
HTTP/1.1 412 Precondition Failed
Unauthorized Access (access key lookup failed)
HTTP/1.1 401 Unauthorized
Invalid XML (bad request)
HTTP/1.1 400 Bad Request
Not Found (source model not found)
HTTP/1.1 404 Not Found
Resource Exists (metadata dimension exists)
HTTP/1.1 409 Conflict
Create Users and Groups (User Management)
These APIs are provided in JSON format. They add users and user group mappings, and delete users.
This API creates users and groups. Returns nothing or error message.
POST /api/ui/user/saveUsersRaw
Content-Type: application/json
Accept: application/json
X-ACCESS-TOKEN: <Token>
Groups sent must be the final mapping because the previous mapping will be erased. If no groups are sent, the user will not be able to login to the tenant.
Unmapped groups will not be deleted.
Inactive users should be deleted before adding new users to avoid license limitations.
Required Fields (email, name, groups, role, password, userType):
Email: Must be a valid email format. Cannot be empty.
Name: Can be empty.
Groups: List of Group Objects {“name”:”group”}. Can be an empty list.
Role: "Admin" or "Power User", "Designer" or "Contributor User", or "Reviewer" or "Reviewer User". Cannot be empty.
Password: Must contain at least 1 uppercase, 1 lowercase, 1 number, and 1 special character. Minimum length 8 characters. Cannot be empty. Passwords will be set only for new users on the environment (users are global). If the user is already present on environment but not on the tenant, the password will not be reset/overridden.
userType: "External", "Business". Cannot be empty. User Types will define which users are internal to your business and which are external.
The Business user type is for all users within your organization that use Dynamic Planning, and have access only to your organization's tenant or tenant group.
The External user type is for users outside of your organization who need to access your application for diagnostics, development, or debugging work, such as Planful Support or Partner Consultants. External users have access to yours and other organizations' tenants.
Sample Payload
[
{
"email": "testuser1@test.com",
"name": "",
"status": "Unverified",
"groups": [
{
"name": "Group1"
}
],
"role": "Admin" or "Power User",
"password":"Test1234!"
"userType":"External"
},
{
"email": "testuser2@test.com",
"name": "",
"groups": [
{
"name": "Group1"
},
{
"name": "Group2"
}
],
"role": "Reviewer" or "Reviewer User",
"password":"Test1234!"
"userType": "Business"
}
]
Deletes users. Returns nothing or error message if user does not exist in the application (tenant).
POST /api/ui/user/deleteRaw
Content-Type: application/json
Accept: application/json
X-ACCESS-TOKEN: <Token>
Sample Payload
[
"testuser1@test.com",
"testuser2@test.com"
]
List Users and Groups (User Management)
These APIs are provided in JSON format. They return the names of users or user groups for an applcation (tenant).
Returns a list of User Objects for that application (tenant).
GET /api/ui/user/getRaw
Content-Type: application/json
Accept: application/json
X-ACCESS-TOKEN: <Token>
Sample Response in JSON
[
{
"email": "testuser1@test.com",
"name": "",
"status": "Unverified",
"groups": [
{
"name": "Group1"
}
],
"role": "Admin",
"invalidPasswordAttempts": 0,
"lockedStatus": "UnLocked",
"emailSubscription": "Subscribe",
"userType": "External",
"supportRole": "Administrator"
},
{
"email": "testuser2@test.com",
"name": "",
"status": "Unverified",
"groups": [
{
"name": "Group1"
},
{
"name": "Group2"
}
],
"role": "Reviewer",
"invalidPasswordAttempts": 0,
"lockedStatus": "UnLocked",
"emailSubscription": "Subscribe",
"userType": "Business",
"supportRole": "Administrator"
}
]
Returns a List <String> of group names.
GET /api/ui/group/getRaw
Content-Type: application/json
Accept: application/json
X-ACCESS-TOKEN: <Token>
Sample Response in JSON
[
"Group1",
"Group2"
]
Dynamic Planning: Group Access API
The Group Access API can be used to update Group Access permission when the number of groups exceeds the UI limit of 20 groups.
POST: /api/modeling/model//groupAccess/update HTTP/1/1
Content-Type: application/json or application/xml
Accept: application/json or application/xml
X-ACCESS-TOKEN: $ACCESS_TOKEN_GUID$
Request Payload
Request payload can include only a subset of the current permissions. Permissions included into request payload will be updated; those not included will keep their current values.
Request Payload JSON
{
"permissions”: [
{"groupName": "Alpha",
"artifactType": "Model",
"artifactName": "Test Model",
"modelName": "", "access": "Yes"},
{"groupName": "Beta",
"artifactType": "View",
"artifactName": "Test View",
"modelName": "Test Model",
"access": "Yes"},
{"groupName": "Gamma",
"artifactType": "Report",
"artifactName": "Test Report",
"modelName": "", "access": "No"}
]
}
Request Payload XML Sample
<payload>
<permissions>
<permission>
<group-name>Alpha</group-name>
<artifact-type>Model</artifact-type>
<artifact-name>Test Model</artifact-name>
<model-name></model-name>
<access>Yes</access>
</permission>
<permission>
<group-name>Beta</group-name>
<artifact-type>View</artifact-type>
<artifact-name>Test View</artifact-name>
<model-name>Test Model</model-name>
<access>Yes</access>
</permission>
<permission>
<group-name>Gamma</group-name>
<artifact-type>Report</artifact-type>
<artifact-name>Test Report</artifact-name>
<model-name></model-name>
<access>No</access>
</permission>
</permissions>
</payload>
Parameters
$groupName (group-name) -Name of the group. Group name should be a valid name and case insensitive.
$artifactType (artifact-type) –Artifact type should be one of the following:
Model
Calculation
View
Report
$artifactName (artifact-name) - Name of the artifact.
$modelName (model-name) -Model name must be a valid name for Calculation and View. It will be ignored for all other artifacts.
Access - Access should be one of the following:
Yes
No
Response Payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payload>
<permissions>
<permission>
<group-name>Alpha</group-name>
<artifact-type>Model</artifact-type>
<artifact-name>Revenue</artifact-name>
<model-name></model-name>
<access>Yes</access>
</permission>
<permission>
<group-name>Beta</group-name>
<artifact-type>Report</artifact-type>
<artifact-name>Sample Model Report</artifact-name>
<model-name>Sample_Model</model-name>
<access>Yes</access>
</permission>
<permission>
<group-name>Gamma</group-name>
<artifact-type>View</artifact-type>
<artifact-name>template</artifact-name>
<model-name>Revenue</model-name>
<access>Yes</access>
</permission>
</permissions>
</payload>