Tags an aggregate storage dimension as Compression.
Syntax
ESS_FUNC_M EssOtlSetASOCompressionDimension (hOutline, hDim);
Parameter | Data Type | Description |
---|---|---|
hOutline | ESS_HOUTLINE_T | Outline context handle (input). |
hDim | ESS_HMEMBER_T | Dimension handle (input). |
Notes
By default, the compression dimension in aggregate storage databases is the Accounts dimension.To get the current compression dimension, use EssOtlGetASOCompressionDimension. Changing the compression dimension triggers a full restructure of the database.
Only one dimension can be the compressed dimension at any time. The API will automatically unset any previous dimension when a new one is set. Attribute dimensions cannot be compression dimensions.
It is legal for an outline to not have any dimension selected as the compressed dimension. Calling this function with hDim set to NULL will unset the current compression dimension.
Essbase requires the compression dimension to be a single, dynamic hierarchy. If the dimension has a different hierarchy setting, such as multiple hierarchies, it will be set to single dynamic hierarchy automatically. The original hierarchy setting is lost (setting a different dimension as compression does not return the original hierarchy setting).
The choice of compression dimension can significantly affect performance. Large dimensions are never good choices for compression dimensions.
Return Value
Returns 0 if successful.
Example
ESS_STS_T sts = ESS_STS_NOERR; ESS_HOUTLINE_T hOutline = ESS_NULL; ESS_HMEMBER_T hMember = ESS_NULL; /* code to assign hOutline variable omitted */ /* code to assign hMember variable omitted */ if (hOutline) { sts = EssOtlSetASOCompressionDimension(hOutline, hMember); if (sts) printf("Error (%ld) setting compression dimension\n", sts); else if (hMember) printf("Compression dimension set\n"); else printf("Compression dimension cleared\n"); } else { printf("Outline not provided\n"); }
See Also