User Defined Dimensions 1–8
Take full advantage of Extensible Dimensionality for inheriting and extending across business units and scenario types with user defined dimensions. There are eight user defined dimensions, but not all eight need to be used. When determining the order in which to use them, it is recommended to define the larger or more significant dimensions first using UD1 or UD2. Stacking hierarchies in one user defined dimension does not affect calculation time, because performance is primarily based on the number of stored data cells rather than the number of possible intersections.
Each user defined dimension has an EntityDefault member that is used to assign attributes to an entity. This is set on the specific entity in the Vary By Cube Type settings for each user defined dimension. With this feature, an entity can have a specific default, which reduces the need to map every entity to a common tag, such as region or division, for data import and form-based data entry. You can select the EntityDefault member without knowing the specific entity setting for each of these user defined dimensions. However, using this setting impacts consolidation time, because more intersections will be in the financial model.
A UD1 through UD8 default membership can be defined to a user defined dimension, such as a cost center.
Example: This entity falls in the Europe Services region and every import, form edit, and journal entry should classify this entity as being associated with the CC_110 - Sales cost center. The entity never has to explicitly map to the cost center. When data is loaded, it is directed to the EntityDefault member and the user defined setting will be applied automatically. This can have a negative impact on the consolidation if not used in a user defined dimension with a limited number of members.
UD2 through UD8 also have a UD1Default member. UD1Default can be used for constraints and in transformation rules.
In the following example, the EntityDefault member was used in UD4 mappings and the same could be used for UD1Default.
Member Properties Tab
To view the Member Properties tab, go to Application > Cube > Dimensions and select a user defined dimension member. Click the Members tab and then the Member Properties tab.
See the following category descriptions:
-
NOTE: These properties are standard across the entity, scenario, account, flow, and user defined dimensions.
-
NOTE: These properties are standard across the entity, scenario, account, flow, and user defined dimensions.
-
NOTE: The field Display Member Group is in the entity dimension.
-
NOTE: The fields Formula Type and Allow Input are in the account dimension. See Account Dimension.
Settings
Is Consolidated
-
Conditional (True if no Formula Type and no Attribute (default)): The data from the children of this entity is consolidated. This entity will equal the total of its children.
-
True (regardless of Formula Type and Attribute): The results of the dimension and the attribute are consolidated. Consolidate or aggregate user defined attributes when they reference entity, as the reference dimension to view results at the parent entity instead of having the parent entity use the same algorithm as the base entities.
-
False: The data will not be consolidated. Set to False when using the parent entity strictly for grouping purposes. Also, setting Is Consolidated to False helps with consolidation performance times, because the consolidation will not be performed at the parent entity.
Alternate Currency for Display: Use this setting to change the cube view grid currency. It does not recalculate the member based on the currency. This requires a formula on the member to recast the transaction from another member to the current currency.
Is Attribute Member: Set to True to enable the user defined member as an attribute. See User Defined Members as Attribute Members and Use Attributes in Business Rules.
Source Member For Data: If Is Attribute Member is set to True, this represents the member in the user defined dimension containing the current attribute that will be used to define the data returned. This member must be a base level member, such as the None member or a calculated base member. A hierarchy parent member cannot be used.
Expression Type: Used for one or two related dimensions and the conditional relationship to return results.
-
Comparison 1 Only: This is used for an attribute with a single related dimension.
-
Comparison 1 and Comparison 2: This is used for two related dimensions in which the results will be bound by meeting both related dimension conditions.
-
Comparison 1 Or Comparison 2: This is used for two related dimensions in which the results will need to meet one of the related dimension conditions.
Related Dimension Type: Identify the dimension to use as a source to be evaluated. To support on-the-fly aggregations, an attribute can reference any account, flow, or user defined dimension. Entity and scenario are stored members. Therefore, attributes will only be reflected as base members. They cannot reference the user defined dimension in which it is contained.
Source dimensions for attributes, which is the assigned Related Dimension Type, are evaluated only on the base member, not parent members. Therefore, the Property, Related Property, and Comparison Text are designed against collecting data at the base level member on the source dimension. When referencing the Text 1 through Text 8 fields, the Vary by Scenario Type and Time can be used. See Vary by Scenario Type and Time.
Related Property: The related dimension can be evaluated on its Name, Description, Name or Description, Name and Description, or Text 1 through Text 8 fields. The related property will be evaluated only on the base members of the related dimension type.
Comparison Text: The text condition being evaluated against the defined related property as the Name, Description, or Text fields. When referencing the Text field, the source Text field can vary by scenario and time. When referencing the Description field, only the default description can be referenced.
Comparison Operator: Sets the evaluation method to compare the related property to the comparison text. This can be done explicitly with = or <> as well as dynamically using the Starts With, Ends With, Contains, or Does Not Contain operators.
After the attribute members are defined and any required comparison text is applied to the source related dimension type, the data will render dynamically. Neither consolidation nor calculation is required to render the results. Any change applied to the source definition of the comparison text, such as a change to a Text property, will immediately be reflected in the results on the attribute members. Similarly, modifying the setting properties of the attribute member will immediately change the attribute results.
Vary By Cube Type
This section is only available for UD1 because you can set a default value for the members of UD2 through UD8. For example, if the UD1 dimension is Cost Centers, you can indicate which UD2 member (such as Department or Product) will be chosen based on the UD1 selection.
UD2 Constraint through UD8 Constraint: A constraint is a setting that allows only certain members to be used. If a member is outside the UD constraints applied on the account dimension, an intersection in a cube view will show as red, indicating an intersection that is not valid, and any numbers in that intersection will not aggregate. Constraints applied on the entity and UD1 dimensions will create a green, no input data intersection.
UD2 Default through UD8 Default: This is the standard default member that can be mapped for a setting rather than mapping to each member. If the setting is Default, the mapping will always go to that default.
Relationship Properties Tab
To view the Relationship Properties tab, go to Application > Cube > Dimensions and select a user defined dimension member. Click the Members tab and then the Relationship Properties tab.
See the following category descriptions:
-
NOTE: These properties are standard across the entity, scenario, account, flow, and user defined dimensions.
-
NOTE: These properties are standard across the entity, scenario, account, flow, and user defined dimensions.
User Defined Members as Attribute Members
A user defined member can be defined as an attribute member by enabling the Is Attribute Member property. When enabled as an attribute, the user defined member becomes a read only member based on the settings for the related reference properties. Data intersections are not loaded directly to an attribute. Its results are derived from references to properties of other members, such as Name, Description, or Text fields. These members act like other dimension members by deriving their values based on the references to other properties, which can then be used in reporting.
The account, flow, and user defined dimensions, as related dimension types, support the attribute members for calc-on-the-fly aggregations at parent members. The dynamically generated results within the attribute members will be automatically aggregated to the parent members. Being stored members, the entity and scenario, as related dimension types, do not support calc-on-the-fly. Attribute member results on entity or scenario will only be available on base members.
The use of user defined attribute members can impact application performance, particularly with respect to consolidation time. The impact is caused by the dynamic generation of user defined attribute member data intersections adding to the size of the final data unit. Therefore, the potential intersections derived from user defined attribute members should be included in application data unit analysis. As a guideline, typical application designs should consider the performance evaluation of user defined attribute members if the number of user defined attribute members approaches approximately 2000 items.
The user defined member as an attribute is unique:
-
The data will dynamically calculate across each dimension hierarchy.
-
The attribute members will not impact the size of the data unit in consolidation.
-
Values derived by attribute members can be referenced by business rules and by member formulas.
-
The members are treated as standard dimensions and records in that they will be processed within a cube view in the Allow Sparse Suppression routine supporting large sparse application model reporting.
-
The results can be modified by modifying the definition of the reference on the attribute member or from a change on the properties of source members even if those properties vary by scenario type or time.
The model design and use of attributes should consider if the feature is appropriate for the application model. Here are some considerations:
-
Attributes may not be appropriate in situations where reporting on the attribute member must be maintained with a high level of data integrity. This is due to the dynamic nature of the attribute where its results are based on properties of other members.
-
Attribute results cannot be locked for data integrity. Although the underlying data being referenced will be locked, modifying the definition of the attribute or a change on the properties of the referenced source member may impact the results.
-
Since attribute members do not store data, they can be deleted and are not subject to data integrity restrictions if in use. Therefore, dynamic designs of reports and use in rules should be considered.
-
Attributes cannot be input or contain formulas. However, they can reference other input members or calculated members as a source.
-
Attribute data cannot be extracted to a data file.
-
Drill-down based on the attribute member intersection cannot be used to drill back to the Stage Load Results. The Source Member for Data reference member defined on the attribute must be used.
Use Attributes in Business Rules
Attributes can only be called through a business rule using a DataBuffer. The function property includeUDAttributeMembersWhenUsingAll can be enabled to allow rules to reference the attribute results for use in formulas.
Dim objDataBuffer As DataBuffer = api.Data.GetDataBuffer(scriptMethodType, sourceDataBufferScript, changeIdsToCommonIfNotUsingAll, includeUDAttributeMembersWhenUsingAll, expressionDestinationInfo)