Cross Model Mapping
You may want to create interactions between content items (data discoveries, slicers, dynamic content, or custom formulations) that are querying different data models. For such interactions to work, the hierarchies and member elements being used as a filter must also exist in the data model of the target visualization. Otherwise, when the visual is used as a filter in runtime, you will receive an error message.
If the corresponding hierarchies and member elements are identically labeled in both data models, then you can create an interaction as usual. However, if the corresponding hierarchies and/ or member elements are not identically labeled in each data model, then it's necessary to create a model mapping.
In such a scenario, the Model Mapping wizard is used to map the corresponding hierarchies and/ or member elements from the two data models, enabling the user to create interactions between them.
For instance, Model 1 may contain a date hierarchy called Date, while Model 2's date hierarchy is called dateKey. Say that a data discovery displaying Product Sales from Model 1 is added to the presentation, along with a dateKey slicer from Model 2. When launched in runtime, Pyramid will search for the given dateKey member in the target visualization; but because Model 1 doesn't contain a hierarchy called dateKey, the user will get an error.
To enable the interaction from the dataKey slicer to the Product Sales chart, the user must configure a new model mapping which tells Pyramid that the two differently labeled hierarchies are the same.
Model Mapping Wizard
- Open the Model Mapping wizard from the Presentation ribbon.
- Click the blue plus sign in the Mapping tab to create a new model mapping (green arrow below).
- The new mapping will be listed; from the Settings panel name the mapping, and select the two models to be mapped (the selection order is not important).
- The Map Hierarchies panel will open; from the drop down under each model, select the hierarchy to be mapped.
- To map multiple hierarchies from the same models, click the plus sign in the Map Hierarchies panel.
- From the Map Members panel, select the mapping type: either Simple or Advanced. Continue reading for details.
Copy Model Mappings
If you want to replicate the same model mapping across multiple presentations or publications, use the copy and paste functions to apply an existing model mapping to another report. This way, you avoid configuring the same model mapping multiple times.
Mapping Panel Buttons
- Copy All:(orange arrow above) copy all model mappings to clipboard, and then paste them into the Model Mapping panel of another presentation or publication.
- Paste: (blue arrow above) enabled if you have copied a mapping to clipboard.
Mapping Context Menu
Open the context menu of a specified model mapping listing (red arrow above) to:
- Copy: copy the selected mapping to clipboard, and then paste it into the Model Mapping panel of another presentation.
- Delete: delete the mapping.
Ignore Unmapped Hierarchies
The models being mapped may contain multiple hierarchies that are similar, yet not identical. For instance, they may both contain hierarchies listing States, where the naming convention differs between the models. In this case, if you have no need to map these hierarchies, you can simply select the 'Ignore Unmapped Hierarchies' option. This will stop you from receiving an error when applying interactions between visuals from the mapped models.
Member Types
Unique Name
The unique name describes the member element path within the data model. It is written [Dimension].[Hierarchy].[Member]. The unique name of the Bikes member element, for instance, is [Products].[Product Category].[Bikes].
Caption
Caption describes the member element's label. The caption for the Bikes member element is Bikes.
Mapping Types
There are 2 types of model mapping: simple and advanced. The type that you will need to configure will depend on what differences exist between the hierarchies being mapped.
Simple Mapping
If the hierarchies to be mapped are labeled differently, but each corresponding member element is identically labeled, choose Simple.
For instance, say the country hierarchy in Model 1 is called Country, while in Model 2 it's called Location. Within both hierarchies, the members are labeled identically. In this case, choose Simple and select the hierarchy name type (either Unique Name or Caption).
Model 1 |
Model 2 |
---|---|
Country |
Location |
Australia |
Australia |
United States |
United States |
Canada |
Canada |
France |
France |
Germany |
Germany |
![Closed](../../../../../../../Skins/Default/Stylesheets/Images/transparent.gif)
In this example, the slide contains 2 visuals: a Sales by Country grid (from Data Model 1), and a Net Profit by Product Categories chart (from Data Model 2). In Data Model 1, the hierarchy of countries is called "Country," while in Data Model 2 it's called "Location", as in the grid above. So, to add an interaction from the Country grid to the Products chart, it's necessary to configure a model mapping.
Step 1
From the Present ribbon click Model Mapping (red highlight).
Step 2
From the Mapping panel in the wizard, click the plus sign to create a new mapping. Under Settings, name the new mapping and then select the data models to be mapped.
Determine whether or not to ignore unmapped hierarchies.
Step 3
From Map Hierarchies, click the plus sign to choose the hierarchies that should be mapped. You can add multiple hierarchy mappings here. Each hierarchy mapping should contain the two corresponding hierarchies from each of the given models.
Step 4
Select the type of mapping; if the hierarchies have different names, but the members within them are the same, choose Simple. If the members within the hierarchies are labeled differently, choose Advanced. Click Apply.
Step 5
Add interactions between the required visuals. Launch the presentation in runtime to test the interactions.
Advanced Mapping
Advanced Mapping is required to map the member elements within two hierarchies, if the member elements are not identically labeled. In this case, the Advanced option must be selected in order to configure the dynamic functions required to map the differently labeled hierarchy members.
Click here to review the advanced mapping functions; for a detailed examples of advanced mapping for date hierarchies, review the MemberCaption function.
Model 1 |
Model 2 |
---|---|
Country |
Country |
Australia |
AUS |
United States |
USA |
Canada |
CAN |
United Kingdom |
UK |
France |
FRA |
Germany |
GER |
![Closed](../../../../../../../Skins/Default/Stylesheets/Images/transparent.gif)
This example is based on the grid above, mapping 2 country hierarchies. The country hierarchy in Model 1 lists countries according to their full name, while in Model 2 they are abbreviated. Because the unique names within the hierarchies are different, an advanced model mapping is required. This allows you to configure a formula to determine which unique name in Model 1 corresponds to which unique name in Model 2.
Step 1
Follow steps 1-3 of the simple model mapping example above.
Then, from the Map Members panel choose the member type; in this example, the unique member names need to be mapped, so 'Unique Name' is selected. Then select 'Advanced' from the drop-down (green highlight below).
Step 2
Now the Advanced model mapping tools are exposed; here you need to configure a formula to map the given hierarchies. There are 2 script windows here:
First Model > Second Model: configure the formula to allow interactions from the first model to the second model.
Second Model > First Model: write the formula that will enable interactions from the second model to the first model.
For each script window, you can click 'Designer' (green arrows) to open the Map Members designer, which features a full formula editor.
Step 3
Enter your formula in the relevant editor, using the functions and hierarchies trees (yellow highlight below) as required. At this stage, we are creating a mapping from the first model (which contains full country names) to the second model (which contains abbreviations).
Once the formula is entered, choose member from the drop-down below the script editor and click test (green highlight); a preview will appear in the preview window (blue highlight). Click OK to confirm your formula.
In this example, the formula below was added. Using the TargetMember and HierarchyUniqueName functions, a Case formula was built determining that if the MemberCaption of the given SourceMember is "United States", "USA" should be returned, while if the given MemberCaption is "United Kingdom", "UK" should be returned.
The Left function is used to determine that if any other MemberCaption is given, a substring of the first 3 characters in the string should be returned (eg. CAN, FRA, etc).
TargetMember().HierarchyUniqueName() + ".[" + Case(DataSet(SourceMember().MemberCaption()="United States", SourceMember().MemberCaption()="United Kingdom"), DataSet("USA", "UK"), Left(SourceMember().MemberCaption(), 3)) + "]"
Step 4
Next, a formula is created (if needed) to enable interactions from the second model to the first.
In this example, the formula below was added. Here, Case function was used to specify which caption should be returned for each of the given member captions. For instance, if "USA" is selected, "United States" should be returned.
TargetMember().HierarchyUniqueName() + ".[" + Case(DataSet(SourceMember().MemberCaption()="USA", SourceMember().MemberCaption()="UK", SourceMember().MemberCaption()="Aus", SourceMember().MemberCaption()="GER", SourceMember().MemberCaption()="CAN", SourceMember().MemberCaption()="FRA"), DataSet("United States", "United Kingdom", "Australia", "Germany", "Canada", "France"), "") + "]"
Step 5
Click Apply to confirm your model mapping.