SSAS Data Pump Datasets

MDX Queries

The details of Dataset Definition is accurate for the use of DBI datasets with SQL statements. For SSAS Data Pump datasets using MDX requests over SOAP, there are some key differences.

The top level attributes are very similar.

Attribute Notes
dbname Specify which database connection should be used for fetching and storing this dataset. By default, the database named default (of type sdp) is used for executing the set.

Note: The type of dataset (dbi or sdp) is not configurable on a per-dataset basis. It is determined by the <dataset_dir> element defining the directory containing the dataset. All datasets in the same directory must execute against databases of the same type.
read Identical to DBI datasets. Access control identifiers are also identical.
write Identical to DBI datasets. Access control identifiers are also identical.
debug Identical to DBI datasets.
dump Identical to DBI datasets.

The elements within the <dataset> definition for SSAS Data Pump datasets are as follows:

Element Notes
transform Identical to DBI datasets.
hook Identical to DBI datasets.
mdx MDX to execute when dataset is invoked with the http GET request method.

Here is an example SDP dataset which includes a parameter:

<dataset read="**" write="">
    <mdx row_label="GL Code">
        SELECT
          [Dw Target Planning].[Category].Children ON ROWS,
          [Time Target Planning].[Month].Members ON COLUMNS
        FROM [Cube Name]
        WHERE ([Time Target Planning].[Year].[Calendar {$year}])
    </mdx>
</dataset>

Parameter Processing

Refer to Parameter Expansion for the sources that will be searched for expanding an MDX query parameter value. This includes:

However, since the SOAP mechanism does not support binding, the are some key differences in the parameter handling:

Flag Notes
!bracket The !bracket flag is intended for use when the MDX parameter is to be expanded within the context of MDX brackets. If the !bracket flag is specified, then the following rules apply:
• Any client-supplied ] character is replaced with ]].
!string The !string flag is intended for use when the MDX parameter is to be expanded within the context of double quotes:
• Any client-supplied \ character is replaced with \\.
• Any client-supplied double-quote is replaced with backslash double-quote.
!raw The !raw flag is permitted only for safe variables, i.e. those whose names begin with underscore, underscore. Variables with these names can never be provided by the client. They are only permitted from Jarvis itself, including hooks and plugins. The !raw flag means that the variable is expanded verbatim with no quotes or modification.

If no flag is specified, then the value is unquoted. However, all characters except the following are deleted: 0-9, a-z, A-Z, space, underscore, hyphen, comma.