lundi 14 novembre 2011

Bug de traduction dans AS lors de la modification des types des attributs

Nous venons juste de découvrir un bug marrant dans les traductions de SSAS. Enfin, marrant parce que de prime abord on ne voit pas d’où ça vient, mais qui fait tout de même perdre quelques heures de recherche.

Nous ne comprenions pas pourquoi, lors du procesing de notre dimension temps nous avions ce message d'erreur :

Errors in the back-end database access module. The size specified for a binding was too small, resulting in one or more column values being truncated. Errors in the OLAP storage engine: An error occurred while the 'Fiscal Quarter' attribute of the 'Time' dimension from the MyCube' database.

Généralement, ce message survient lorsque le dimensionnement des types de nos attributs ne correspond pas à celui des colonnes de la base de données source. Après avoir vérifié plusieurs fois et sur tous les attributs de notre dimension, il en résulte que tout est bien fait. Donc après avoir injustement accusé un de mes collègues, l'attribut en question est supprimé, puis recrée. Oh miracle, le problème de processing disparaît. Bref, impossible de savoir d'où cela vient.

A mes yeux, il n'y a plus qu'une solution pour trouver la source du problème : faire un différentiel du XML entre les deux versions des dimensions. En faisant cela, on se rend compte que la traduction associé à l'attribut Fiscal Quarter possède le bon DataType, mais pas le bon DataSize.

Conclusion : cela vient du fait que le type de l'attribut a été modifié après la mise en place de la traduction. Ce procédé n'entraîne donc pas une mise à jour automatique des objets associés (tels que ceux de la traduction). La seule possibilité pour contourner le problème est de supprimer puis recréer la traduction pour l'attribut. Pas cool, sauf si vous connaissez une solution plus simple.