|
|
(22 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | =Overview=
| |
− | The Analysis Services OLAP engine in Tabular mode has some missing features compared to the Multidimensional mode. The Tabular engine is used in Analysis Services on-premises, Analysis Services Azure and Power BI (desktop + cloud)
| |
| | | |
− | Among the features that Tbaular mode does not replicate are
| |
− | * Member translations
| |
− | ** This allows multilingual display of a report based on the user.
| |
− | ** e.g. An English speaker would see "Bikes" and a French speaker wouuld see "Vélo".
| |
− | * Member Keys, separate from the member Caption
| |
− | ** This allows reports to be built with member selections maintained when a Caption changes.
| |
− | ** If you update a Caption in tabular mode and have a report filter containing that member, then the selection will no longer work.
| |
− | *** In Power BI the old caption will be used, and the report will contain no data.
| |
− | *** In an Excel PivotTable the selection will be lost when the data is refreshed, and the default (All) member will be displayed instead.
| |
− |
| |
− | The Tabular Translations feature in XLCubed aims to address both of these issues allowing you to build a single multi-ligual report that will work correctly when member captions are updated.
| |
− |
| |
− | =Translations=
| |
− |
| |
− | We will start with a simple data model conatining just the Product, Date and Sales tables from Adevnture works (I have combined the Product tables in a database view so we have a star schema)
| |
− |
| |
− | [[Image:InitialModel.png|350px|centre]]
| |
− |
| |
− | As you can see the dimension tables have the names in several languages. Currently each language is a separate hierarchy. Our aim is to present the user with a single hierarchy which will display the correct translation in XLCubed automatically.
| |
− |
| |
− | To do this XLCubed uses a naming convention to chose the best translation to show the user. For example we have the Product Category Name which should be translated in reports.
| |
− |
| |
− | We will rename "EnglishProductCategoryName" to "Product Category Name", and this will be the default translation if no better one can be found.
| |
− | Next we rename "SpanishProductCategoryName" -> "Product Category Name_es" and "FrenchProductCategoryName" -> "Product Category Name_fr". The extra two letters are the language code, these are standardised by ISO so it is simple to find the correct code for any langauge you need. [https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes]
| |
− |
| |
− | We do the same for the Product Subcategory Name and Product Name, and with this done our model now looks like this:
| |
− |
| |
− | [[Image:ColumnTranslatedModel.png|350px|centre]]
| |