Déployer vers SSAS 2008 R2 / 2008 / 2005 une solution développée sous SSDT 2012

Depuis Sql Server Data Tools (SSDT), par défaut, les développements sont évidemment réalisés pour SSAS 2012, néanmoins, il est possible de cibler des versions antérieures de SSAS (2005, 2008 et 2008R2 à première vue).
Bien entendu, seuls des cubes en mode multi-dimensionnel sont concernés par cette compatibilité ascendante.
Pour définir cette compatibilité, il existe au niveau du projet une propriété intitulée « Deployment Server Version ».
Deployment Server Version property
Cette propriété permet de déployer depuis SSDT vers des versions antérieures de SSAS.

Cependant, même en utilisant cette configuration, le fichier .asdatabase résultat de la compilation du projet ne peut être déployé en utilisant le tooling SQL Server 2008 R2.
Si naïvement, je copie les 4 fichiers résultats de cette compilation et que je lance le deployment wizard depuis ce server (donc avec la version 2008 R2 du tool), j’obtiens l’erreur suivante :

Error loading MySSas2012Project.asdatabase: Deserialization failed: The 'AttributeHierarchyProcessingState' element in the 'http://schemas.microsoft.com/analysisservices/2011/engine/300' namespace is unexpected.

En effet, le fichier d’installation permet le déploiement vers une instance 2008 R2 mais à condition d’utiliser le tooling 2012. Il faut donc disposer du deployment wizard en version 2012 sur une machine capable d’atteindre le serveur SSAS pour procéder au déploiement.

Attention néanmoins, certains éléments introduits en version 2012 ne seront pas supprimés du XMLA que le deployment wizard cherchera à déployer et engendreront une erreur.
C’est le cas par exemple du FormatString d’attribut de dimension codé par exemple en xmla :
<ddl300_300:FormatString>dd/MM/yyyy</ddl300_300:FormatString>
Qui, exécuté au sein d’un script xmla sur un SSAS 2008 R2 produira l’erreur suivante :


Executing the query ...
The ddl300_300:FormatString element at line 897, column 41 (namespace http://schemas.microsoft.com/analysisservices/2011/engine/300/300) cannot appear under Envelope/Body/Execute/Command/Batch/Alter/ObjectDefinition/Database/Dimensions/Dimension/Attributes/Attribute.
Execution complete

Dans ce cas, pas d’autre solution que d’éditer le xmla généré par le deployment wizard pour supprimer les formatstring d’attribut de dimension.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s