Create a Semantic Model
- 1 1. Compose Semantic Model using the GUI
- 1.1 1.1 Preview Data
- 1.2 1.2 Create new Cube with Facts Table
- 1.3 1.3 Add a Dimension
- 1.4 1.4 Add a Degenerate Dimension
- 1.5 1.5 Adding Measures
- 1.6 1.6 Create a Shared Dimension
- 1.7 1.7 Use a Shared Dimension in a Cube
- 1.8 1.8 Edit existing elements
- 1.8.1 1.8.1 Rename the Cube
- 1.8.2 1.8.2 Edit Cube Attributes
- 1.9 1.9 Delete existing elements
- 1.10 1.10 Layout options
- 1.10.1 1.10.1 Cube Star/Free Layout modes
- 1.10.2 1.10.2 Cube Toolbar
- 1.10.3 1.10.3 Canvas Toolbar
- 2 2. Compose Semantic Model using Advanced XML mode
- 2.1 2.1 Auto Format
- 2.2 2.2 Find/Replace
- 2.3 2.3 Auto Complete
- 3 3 Manage Semantic Model global information
- 4 4 Save the Semantic Model
Disclaimer: the images used in this doc to present and help understand each feature, were captured at the end of the implementation of each individual feature. As the application keeps evolving and the UI keeps being improved and enriched, it is possible that currently they do not entirely correspond to the latest version of the plugin.
1. Compose Semantic Model using the GUI
When the user creates a new model or opens an existing one, the default view that is presented is the application Canvas:
The name of the model, presented in the title bar on top, can be edited by clicking on it, and directly changing it - this change as all others in the UI remain local to the browser session until the model is saved. Only when the user uses the Save action the changes made in the UI are effectively persisted.
On the left side of the Canvas exists a panel with the detailed structured of the Data Source chosen when the model was created. When the data source is a database connection, depending on the type of the database, the user will see a tree including the schemas when they exist, down to the tables and views inside of each one, which are available to be used in the model. The width of the left panel can be adjusted to the user convenience as suitable to fully see the names of tables/views, just position the mousse in the border and drag horizontally:
1.1 Preview Data
By having the possibility of previewing the data and quickly check the type and length of each column, the user can better decide which columns can be connected in the model relationships. For each Table or View listed as a leaf in the available Data Source tree, exists the Preview functionality, which allows to preview a small set of the Table or View data:
The maximum number of rows retrieved from the database for each Table or View is configured by an administrator when SME plugin was installed, if not changed the default value is 100.
The eye icon works as a toggle, one click shows the preview data panel for the table/view, a following click in the same table/view closes the panel, while clicking in the preview action of a different table/view will replace the table/view in the preview data panel. Only one table/view can be previewed at a time.
Hovering each column, in the header of the table inside the preview data panel, will present metadata information about that column.
The columns in the preview table also allow the user to sort their content ascending or descending, just by clicking alternately in the correspondent column’s header.
1.2 Create new Cube with Facts Table
To create new elements in the canvas the user can use the tables or views available in the Data Source, and drag them into the canvas. When a table or view is dragged into the canvas, the possible actions are presented, so the user can drop the table or view in the wanted option.
To create a new cube, drag the table or view that is wanted as the cube Facts Table, and drop it in the Use as Fact Table drop-off zone inside the Create a Cube zone:
As a result a new cube is created in the model, having the dragged table or view as its Facts Table:
Each new cube created will be automatically named Cube n
, where n
is an integer starting in 1 and incremented at each new cube creation. The name of the cube can be changed by the user, by clicking on it and introducing the new name.
Take into consideration that the cube name must be unique within the model. When repeated cube names are introduced in the same model, a number suffix will be added to their names sequentially as (1)
, (2)
, …
1.2.1 Facts Table using SQL Statements
Despite for now Canvas only supporting to create a Facts table using physical Tables or Views that exist within the Data Source, the user can still use SQL statements to create a Facts Table using the XML Advanced mode. For that the user just needs to switch into the Advanced tab, find the wanted <Cube>
element or create a new one in the XML and type the correspondent SQL Statement inside the <View>
element for that Cube to define its Facts table. When the user switches back into Canvas, the Facts table will still be recognized as such, and the user can proceed creating private dimensions and measures in the Cube, editing the Alias or previewing its data just as equally as if the Facts Table had been created in Canvas with a physical one.
When the Facts table has been defined using a SQL statement in the Advanced mode, the user wont be able to create Degenerate dimensions through canvas, those will also have to be created using the Advanced mode.
1.3 Add a Dimension
By dragging an available table or view in the Data Source into the canvas, the system will present the possible ways in which that table can be used, depending on the zone the user targets to drop the table. If the drop target zone is an existing Cube, the options of how that table can be used in that cube are presented:
If the cube already has a Facts Table, the only option available is to create a new Dimension inside the cube
If the cube does not have a Facts Table yet, the user will have to choose if he/she wants to use the table being dragged to create the Cube’s Facts Table or a new Dimension within the Cube
If the drop target zone in canvas is currently empty, the option to create a New Cube is presented, and the user can decide if the table being dragged will be used as the new Cube’s Facts Table or will support a Dimension inside the new Cube.
To create a new Dimension in an existing cube, drag the table or view that is wanted to support the new Dimension into the Cube, and drop it in the Use as Dimension drop-off zone presented on top of that respective Cube:
When the table is dropped to be used to support a new Dimension, the Dimension Editor dialog is opened to allow the user to configure the information of the new Dimension, including all of its attributes and its complete structure of hierarchies and respective levels.
The Dimension Editor is composed by the tree structure of the Dimension on the left, and the right panel presents all the attributes detail of the element currently selected in the tree structure. The Dimension tree structure is composed by Hierarchies and Levels. The Dimension can have any number of Hierarchies, and one Hierarchy can be composed of any number of Levels. By default when the Dimension Editor opens for configuring a new Dimension, the structure of the new Dimension is initialized with one Hierarchy and one Level inside that Hierarchy. The user can add as many Hierarchies and Levels as wanted. To add new child elements to the tree structure use the Add option in the tree contextual menu of the parent element in the tree, or as an alternative use the Add New Element action available in the top right of the Dimension Editor dialog, which adapts its available options according to the current element selected in the tree.
The names are considered as identifiers of the semantic elements, and for that reason the system will not allow for duplicated names for the same element type in the same scope. For instance, inside the same cube, all Dimensions need to have a different name. In a specific Dimension all Hierarchies will need to have a unique name, and note that an empty name also is considered as “a name” and therefore only one Hierarchy will be allowed to not have a name, despite being an optional attribute. And inside one Hierarchy all Levels need to have different names.
When all mandatory information is filled in for the entire structure of the Dimension, the Apply action at the bottom right of the dialog will become enabled, and the user can finish the creation of the Dimension.
When the Dimension is created, a new node is placed inside the cube on canvas, representing that Dimension:
1.4 Add a Degenerate Dimension
A Degenerate Dimension is a simplification of the normal Dimension inside a cube, because it uses only the information that exists in the Cube’s Facts Table, while the normal Dimensions support themselves in other tables.
A consequence of a Degenerate Dimension using only the Facts table, is that there is no need to specify any additional keys to stablish a relation to any other tables, as it happens with a normal Dimension. In exchange of this simplification the only columns available to create Levels in a Degenerate Dimension are the existing columns of the Facts table.
We can add a new Degenerate Dimension to a Cube by using the correspondent button in the Cube’s toolbar, which is presented when hovering that cube (this option is only available if the cube already has its Facts Table set):
When the Add a Degenerate Dimension action is used, the Degenerate Dimension Editor is presented, and it is similar to the normal Dimension Editor with the following simplifications:
there is no need to specify keys to connect the degenerate dimension to the facts table, as the degenerate dimension is supported directly on the facts table itself
it is not possible to change the source table used in hierarchies to a different one than the facts table of the cube
only the columns available in the facts table can be used in the Levels
After entering all the wanted information to create the Degenerate Dimension structure, and using the available Apply action, the Degenerate Dimension is added to the canvas inside the respective Cube.
All created Degenerate Dimensions inside the same Cube are represented in canvas in one unique node: the Degenerate Dimensions node:
1.5 Adding Measures
Measures allows to quantify our facts and define an aggregation method for the data through the dimensions levels of analysis. There are three different type of measures supported:
Simple Measures: its value exists as a fact directly in a column of the Cube’s Fact Table
Calculated Measures: its value is determined by a MDX expression, which can take into consideration other Cube’s members
SQL Measures: its value is determined by a SQL expression, applied on the tables that support the Cube
To add any kind of Measure to a Cube, use the correspondent button in the Cube’s toolbar, which is presented when hovering that cube (this option is only available if the cube already has its Facts Table set):
The Add a Measure dialog with the different available types of Measures that the user can create in the cube is presented, and the user can choose the type of Measure wanted:
1.5.1 Add a Simple Measure
To add a Simple Measure to a Cube, in the Add a Measure dialog select the Add Simple Measure box and use the option Confirm. The Add Measure dialog is presented for the user to complete the correspondent Measure details:
For creating a Simple Measure, we need to define the name of the Measure, which needs to be unique inside each Cube (within all types of Measures already created), choose the column from the Facts Table that contains the values of the measure and the default aggregation to use for this measure in reports. Other optional information is available to be configured in the Optional and Describe sections.
Using the Create action at the end of the dialog will add the new Simple Measure to the Cube. In the Canvas view of the model the new Measure will be presented in the Measures node inside the correspondent Cube:
The Model Structure and the XML Advanced model will also include the newly created Measure inside the correspondent Cube.
1.5.2 Add Simple Measures in Bulk
In scenarios where the facts table of the Cube has many fact columns, and we need to create one or more simple measures for each, it’s possible to create those measures in bulk, using different criteria to select the columns and apply a given aggregation function to them, according to each particular use case.
The editor currently supports the following four criteria:
All Columns - consider all columns of the table
Column Key - select among the table’s key columns (primary keys, foreign keys, or all)
Column Type - match columns by its data type (the user can then select one from the list of existent types detected in the table)
Column Name - match column using their physical names (contains, starts with, ends with)
The resulting name of each measure can be customized to a certain degree. By default the correspondent Column Name* will be used to name each individual resulting simple measure, but we can add a prefix and/or a suffix to the Column Name to make it more suitable and ensure its uniqueness. Measure names need to be unique inside each Cube, for that reason, in case the result of the bulk creation operation results in repeated measure names, the system will append a sequential number, like (1)
, to the name of the measure making unique. When this situation is detected the user will see a warning in the UI, and has the chance to avoid that making usage of the prefix and suffix customization options.
* - When using the physical column name to name a measure, the plugin will transform it, by replacing underscores per spaces and capitalizing the first letter of each individual word, while using lower case for all the remaining letters. Example: a physical column named birth_date
will be transformed in the measure name Birth Date
. This transformation aims to make the measure name more close to the business user natural language.
After deciding on the name customization and selecting the criteria to identify the set of columns to be considered in the bulk creation operation, the user needs to select the aggregation to apply in that set of measures, and has the option to exclude individual columns from the set that matched the chosen criteria. Note that the Excluding Columns list will always be populated with the result of applying the chosen criteria to the Facts table. The columns that the user explicitly excludes, won’t be considered in the bulk creation operation.
The bulk operation can be repeated as many times as needed in order to create all the different sets of measures as needed. Each Create operation will add the correspondent set of new measures to the list of already existing ones inside the Cube.
1.5.3 Add a Calculated Measure
To add a Calculated Measure to a Cube, in the Add a Measure dialog select the Add Calculated Measure box and use the option Confirm. The Add Calculated Measure dialog is presented for the user to complete the correspondent Measure details:
For creating a Calculated Measure, we need to define the name of the Measure, which needs to be unique inside each cube (within all types of Measures already created), and we need to introduce the MDX formula through which the values of the Measure will be calculated. Other optional information is available to be configured in the Optional and Describe sections.
Using the Create Measure action at the end of the dialog will add the new Calculated Measure to the Cube. In the Canvas view of the model the new Measure will be presented in the Measures node inside the correspondent Cube:
The Model Structure and the XML Advanced model will also include the newly created Measure inside the correspondent Cube.
1.5.4 Add a SQL Measure
To add a SQL Measure to a Cube, in the Add a Measure dialog select the Add with SQL box and use the option Confirm. The Create with SQL dialog is presented for the user to complete the correspondent Measure details:
For creating a SQL Measure, we need to define the name of the Measure, which needs to be unique inside each cube (within all types of Measures already created), we need to set the default aggregation of the measure as well as the SQL statement to execute to obtain the values of the Measure. Other optional information is available to be configured in the Optional and Describe sections. When writing the SQL statement, the user can benefit from some assistance with auto-complete options for generic SQL functions and keywords, and with the tables columns that are known in the scope of the current cube (facts table and tables used to support the existent cube dimensions):
Using the Create Measure action at the end of the dialog will add the new Calculated Measure to the Cube. In the Canvas view of the model the new Measure will be presented in the Measures node inside the correspondent Cube, equals to what happens with the Simple and Calculated Measures, if needed scroll the content of that node to visualize the newly created measure.
The Model Structure and the XML Advanced model will also include the newly created Measure inside the correspondent Cube.
1.6 Create a Shared Dimension
When there is the need to use in different cubes, the same structure of a Dimension, a Shared Dimension can be created for that purpose. The Shared Dimension is created at the root schema scope inside the Semantic Model, and can then be used in the several Cubes that exist in the model.
To create a new Shared Dimension drag the wanted table that will support it, to an empty zone of the canvas area, outside any of the existent Cubes, and drop it in the Use as Shared Dimension drop-off zone:
When a table is dropped in the Use as Shared Dimension drop-off zone, the Shared Dimension Editor is presented for the user to fill in the remaining details of the complete Dimension structure, including its hierarchies and levels. The Shared Dimension Editor is similar to the Dimension Editor presented in the previous Add a Dimension section.
After introducing all the details for the Shared Dimension, the user needs to use the Apply action to add the Shared Dimension to the Semantic Model. A new node of type Shared Dimension, with the name given to the new Shared Dimension will appear in the canvas, out side the existent Cubes.
Changes performed in a Shared Dimension attributes and/or structure of Hierarchies and Levels will affect all usages of that Dimension in all the Cubes where it is used, even if the changes are made after creating the usage.
1.7 Use a Shared Dimension in a Cube
To use a previously created Shared Dimension in a given Cube of the same Semantic Model, the user just needs to drag the Shared Dimension node into the respective Cube, and a drop-off zone will be presented on top of that Cube, with the Use as Dimension drop-off zone. Dropping the Shared Dimension node in that drop-off zone will cause the Dimension Usage Editor to be presented, where the user needs to name the Shared Dimension inside the Cube (name by which the Shared Dimension will be known in the context of the Cube, which can be equal to the Shared Dimension outside the Cube as long as unique among all Cube existent Dimensions) and identity the Facts Table column to be used to connect the cube’s Facts table with this Shared Dimension.
After filling the mandatory fields and use the Apply action, the usage of the Shared Dimension inside the Cube will be represented in canvas by a new node being paced inside the Cube, connected to the Shared Dimension.
The node inside the Cube is just a Dimension Usage and reflects the exact same structure in terms of Hierarchies and Levels defined in the Shared Dimension structure. The Shared Dimension node out side the Cube, is the original and effective Dimension definition and can be used in other Cubes of the same Semantic Model, by repeating the process described in this section.
1.8 Edit existing elements
There are two ways of editing a Semantic Model element in canvas:
using the Edit action available from contextual menus in the canvas node representing each different element;
or by using the Edit action available from contextual menu in each element of the tree structure in the Model Structure tab
For each element displayed in canvas that supports edition, a correspondent contextual menu will be available next to it, with the option to Edit.
For each element in the Model Structure tree, when the user is in the canvas mode, a correspondent contextual menu will also be available next to it, with the option to Edit.
By using the Edit action for a given element, the correspondent Edition dialog will be presented allowing to change the current values of that element. The Edition dialogs are similar to the Creation dialogs previously presented in each element type section. The user has the possibility to Apply changes or to Cancel the edition operation. Even when applying the changes, note that those changes are local to the browser session, any change to the model is only effectively persisted when the model is persisted to the server. See https://hv-eng.atlassian.net/wiki/spaces/PA/pages/31440240738/Compose+a+Semantic+Model#3-Save-the-Model .
1.8.1 Rename the Cube
The name of the cube is automatically generated when the Cube is created, and frequently needs to be changed in order to have a more contextual designation. It needs to be unique inside each model, but as long as that criteria is respected it can be changed to whatever the user intends to. To quickly change the name of any cube in Canvas, just click on its name to make it editable, and write the new name:
Note that changing the name of an existing cube might impact existing reports previously created with the reporting tools, given the report is created on top of an existing cube, and the name of the cube is used as its identifier in the system.
1.8.2 Edit Cube Attributes
As any other element in the model the Cube also has a set of its own attributes, and to change their values in Canvas the user needs to open the contextual menu of the Cube and use the action Edit:
The Cube Editor will be presented to the user, with all the attributes the user can manage organized in several sections, including its name which can also be changed more quickly directly in canvas (see https://hv-eng.atlassian.net/wiki/spaces/PA/pages/31440240738/Compose+a+Semantic+Model#1.6-Rename-the-Cube ). The optional Default Measure attribute will allow the user to select one of the currently existent measures in the Cube.
1.9 Delete existing elements
There are two ways of deleting a Semantic Model element in canvas:
using the Delete action available from contextual menus in the canvas node representing each different element;
or by using the Delete action available from contextual menu in each element of the tree structure in the Model Structure tab
For each element displayed in canvas that supports being deleted, a correspondent contextual menu will be available next to it, with the option to Delete.
For each element in the Model Structure tree, when the user is in the canvas mode, a correspondent contextual menu will also be available next to it, with the option to Delete.
In some cases, the system will not allow for some elements to be deleted. That is the case for the only one hierarchy left within a dimension, as dimensions are required to have at least one hierarchy. The same applies to the last one level within a hierarchy, it won’t be allowed to be deleted. If the hierarchy and/or dimension is not needed delete it as a whole.
By using the Delete action for a given element, the system will request a confirmation of the action, making a note that other elements in the model might have references the one being deleted, and that needs to be checked manually.
Currently not all cross reference validations between elements are performed, it is the user responsibility to ensure the model references are valid.
For elements that are grouped together in canvas, like Measures and Degenerate Dimensions inside the same Cube, exists the option to Delete All elements in one action:
The user has the possibility to Confirm deletion or to Cancel the operation. Even when deleting, note that those changes are local to the browser session, any change to the model is only effectively persisted when the model is saved to the server. See https://hv-eng.atlassian.net/wiki/spaces/PA/pages/31440240738/Compose+a+Semantic+Model#3-Save-the-Model .
1.10 Layout options
The plugin supports a few layout configurations and actions to help the user adjust the visualization of the Semantic Model, specially when working with models with many elements.
1.10.1 Cube Star/Free Layout modes
By default when a Cube is created it has the Star Layout Mode enabled, this means that as new elements get added to the Cube, they are automatically positioned in a Star visual disposition, and the Cube is resized accordingly in case its elements demand for more space. When the Star Layout mode is enabled and the user hovers the Cube, the layout action in the Cube’s toolbar is locked, and an informative tooltip is presented as bellow:
When the Star Layout mode is enabled, and a new element is added to the Cube, it can cause all other elements to be moved around, to be automatically arranged in the Start shape, so the positions of each node are not guaranteed to be kept inside the Cube.
If the user manually moves any node inside the Cube, re-arranging its position, or resizes the Cube, the Cube layout automatically changes into the Free Layout Mode, this means that from that moment onward the current position of each node is preserved when new elements are added. Use the Free Layout Mode when the graphical disposition of the elements has meaning to you, and you want to keep certain nodes next to each other. When a Cube is in the Free Layout Mode, the Layout icon is always visible in the Cube’s toolbar, even when the user is not hovering that Cube.
The layout mode is individual to each Cube. In the following example the Cube “Store Sales” is in Free Layout mode, while the Cube “Warehouse Stocks“ is in the default Star Layout mode:
When a Cube is in the Free Layout mode can be changed back into the default Start Layout mode using the Layout action in the Cube’s toolbar:
1.10.2 Cube Toolbar
1.10.2.1 Behavior according to the Zoom Level
In the most common visualization conditions, when the user hovers on a Cube visual space in canvas, a toolbar is presented in its top right corner with the available actions that can be performed in that Cube. Depending on the width of the Cube and the level of zoom the user is currently viewing the model, might not exist enough space to present the Cube’s toolbar, in a way that it is readable/accessible. When the conditions are found no to be adequate for presenting the toolbar, the actions that would usually be presented in the Cube’s toolbar are moved into the Cube’s contextual menu, and can be access from there with same functionality.
In case the level of zoom applied to the model is under 25%, the Cubes will be presented without any actions available, nor toolbar nor contextual menu, the user will need to increase the level of zoom above 25% for any actions to be presented.
1.10.2.2 Collapse/Expand nodes inside the Cube
Sometimes it might be useful to reduce the visual load of the Cube’s view, and for that purpose exists the possibility to collapse/expand the nodes inside the Cube. It is possible to collapse/expand each one individually or to apply that effect to all nodes inside the Cube in one move.
To collapse/expand one node individually use the arrow present in the top right of each node and to collapse/expand all nodes inside the Cube use the Collapse/Expand All action available in the Cube’s toolbar.
1.10.3 Canvas Toolbar
Present in the bottom right corner of the view exists the canvas toolbar:
These actions allow the user to improve its visual experience, by having the possibility to control the following aspects:
Zoom In: allows to increase the detail of a given area of the model, for deeper analysis and focus on a particular part of the model
Zoom Out: allows to have a broader view of the model, progressively including more elements in its viewport
Fit View: this action will position the viewpoint of the user into the geometric center of the model graph, and reduce the zoom level into the minimum possible trying to make visible as many model elements as possible, ideally the whole model - in very large models, might not be possible to view the whole model at once
Interactive: allows to lock/unlock the possibility to interact with the model elements when clicking and drag. By default, click and drag will move elements from a place to another in canvas, changing its position in the graph. When we lock canvas, the action of clicking and drag moves the viewport not the elements. Use it when you want to “travel around” a big model, without moving the elements from a place to another. This action behaves as a toggle, click to lock, click again to unlock the interactive mode.
Arrange Layout: allows to re-arrange the top level elements of a model, like the existent Cubes and the Shared Dimensions. It’s useful in case those elements are currently placed with complete or partial overlaps, on top of each other. It won’t have any effect on the internal position of elements inside each Cube, it just affects the position of the root parent elements.
2. Compose Semantic Model using Advanced XML mode
Using the advanced mode to edit the model, is a feature directed to expert users with deep knowledge on the Mondrian xml syntax. When the user enters the advanced mode, the current xml representation of the model is presented, and the user has the ability to change it.
The xml content is continuously validated against the Mondrian XSD when its being changed, for that reason a red underline can appear at any moment, or because the user entered a XML syntax error or because the user is not respecting the structure required by Mondrian, in terms of required elements or attributes or even the order in which the elements are expected. When that happens just hover on that error to get more details on what is causing the error. It won’t be possible to save the model while there are unresolved errors in the XML.
2.1 Auto Format
At any given time the user can also use the Auto Format action to remove unnecessary spacing/tabs/empty lines and properly ident the xml.
2.2 Find/Replace
The XML editor also support Find/Replace functionality built-in, just use the keys CTRL+F
combination simultaneous, while positioned inside the editor to activate it. Using the Replace toggle will alternate between just Find or Find/Replace mode:
2.3 Auto Complete
The user can directly write inside the XML editor to create or change a model. While doing that, the autocomplete functionality will provide some help suggesting valid elements and attributes according to the place where the user is positioned in the model.
The Auto Complete algorithm is prepared to provide suggestions in the following situations:
When writing a new element (open
<
or partially writing its name):autocomplete only suggests possible child elements of the parent element the user is currently inside of
in case the name is partially written, only suggests the subset that matches with what is written
When starting to write attributes inside a known element:
autocomplete only suggests possible attributes of the element the user is on
autocomplete does not suggest attributes already in use in the current element, as we can not repeat attributes inside the same element
When writing the content of an attribute that is specified as an
enumeration
:autocomplete suggests the possible values of that enumeration
Auto Complete can be activated manually by using the keys CTRL+Space
combination simultaneous.
3 Manage Semantic Model global information
3.1 Rename the Semantic Model
The name of the model needs to be unique in the internal server’s catalog, but as long as that criteria is respected it can be changed. To rename the model in Canvas the user just needs to click on it in the title bar, and it becomes editable:
When the user is in the Advanced mode, the title bar is not editable, but the name of the model can still be changed, by changing the value of the name
attribute inside the Schema
element within the XML content.
Note that changing the name of the model might impact existing reports previously created with the reporting tools, given the name of the model is used as its identifier in the system.
3.2 Edit the Semantic Model Connection
When the model was created a connection has been defined as part of it, an already existent one in the server or one defined privately only in the scope of the semantic model. That connection is the source of the data for the model, and can be changed at any given moment using the Edit Connection action available in the global menu on the top right:
The Edit Connection dialog will then be presented and the user has the possibility to chose a different connection, which can again be an already existent one in the server or one defined privately only in the scope of the semantic model:
This dialog will allow for the same type of configurations, including managing additional parameters of the connection, as when the model was created.
3.3 Semantic Model Global Attributes
While working in the Model Canvas mode, to change any of the global attributes of the schema, use the Edit Attributes action available in the global menu on the top right (this action is not available if the user is on the Advanced mode):
Using the action will open the Edit Attributes dialog presented below:
4 Save the Semantic Model
When composing a semantic model through the GUI, either through Canvas or the Advanced mode, all the operations performed are made only locally to the user’s session, they won’t be persisted to the server until the Save action is used. Only after a successful save operation the model is effectively persisted on server and that version considered in the reporting tools.
While composing the semantic model, the user is free to switch between the two possible modes (Canvas and Advanced) to edit the model without the need to save intermediate changes in each switch. Note that when switching from the Advanced XML mode back to Canvas, the XML content needs to be parsed and correctly interpreted by the Canvas representation, in case this fails or is not possible due to invalid syntax in the current XML, the switch won’t be allowed until the user makes the XML readable again by the Canvas. This does not mean the XML needs to be fully valid and complete, for the user to be able to switch, as the application will allow partial editions as much as possible in both modes so that the user can use them complementarily in his best interest.
Beyond the XML structure, on Save, some logical validations on the schema content are performed, and in case an invalid situation is detected, the Save operation will fail and the error will be presented to the user.