Définition du membre inconnu et des propriétés de traitement Null

Lorsque Analysis Services traite une dimension, toutes les valeurs distinctes des colonnes sous-jacentes dans les tables ou les vues de la vue de source de données remplissent les attributs de la dimension. Si Analysis Services rencontre une valeur Null au cours du traitement, par défaut, elle convertit celle-ci en zéro pour des colonnes numériques ou en une chaîne vide pour des colonnes de type chaîne. Vous pouvez modifier ces paramètres par défaut ou convertir les valeurs Null dans votre processus d'extraction, de transformation et de chargement (le cas échéant) de l'entrepôt de données relationnelles sous-jacent. En outre, vous pouvez faire en sorte que Analysis Services convertisse la valeur NULL en une valeur désignée en configurant trois propriétés : les propriétés UnknownMember et UnknownMemberName pour la dimension, et la propriété NullProcessing pour l'attribut de clé de la dimension.

L'Assistant Dimension et l'Assistant Cube activeront automatiquement ces propriétés si l'attribut de clé d'une dimension peut accepter une valeur Null ou si l'attribut racine d'une dimension en flocons est basée sur une colonne pouvant être Null. Dans ce cas, la propriété NullProcessing de l'attribut de clé a la valeur UnknownMember et la propriété UnknownMember a la valeur Visible.

Cependant, lorsque vous construisez des dimensions à flocons incrémentielles, comme c'est le cas avec la dimension Product dans ce didacticiel, ou si vous définissez des dimensions à l'aide du Concepteur de dimensions puis incorporez ces dimensions existantes dans un cube, il peut être nécessaire de définir manuellement les propriétés UnknownMember et NullProcessing.

Au cours des tâches de cette rubrique, vous allez ajouter les attributs de la catégorie de produit et de la sous-catégorie de produit à la dimension Product des tables en flocons que vous avez ajoutées à la vue de source de données de l'entrepôt de données Adventure Works. Vous allez ensuite activer la propriété UnknownMember pour la dimension Product, spécifier la valeur Assembly Components pour la propriété UnknownMemberName, lier les attributs Subcategory et Category à l'attribut du nom de produit, puis définir une gestion d'erreur personnalisée pour l'attribut de clé de membre qui lie les tables en flocons.

[!REMARQUE]

Si vous avez ajouté les attributs Subcategory et Category lors de la définition initiale du cube du didacticiel de Analysis Services à l'aide de l'Assistant Cube, ces étapes ont été effectuées automatiquement.

Vérification des propriétés de la gestion d'erreur et du membre inconnu dans la dimension Product

Pour vérifier les propriétés de la gestion d'erreur et du membre inconnu dans la dimension Product

  1. Affichez le Concepteur de dimensions pour la dimension Product, cliquez sur l'onglet Structure de dimension, puis sélectionnez Product dans le volet Attributs.

    Vous pouvez ainsi afficher et modifier les propriétés de la dimension elle-même.

  2. Dans la fenêtre des propriétés, vérifiez les propriétés UnknownMember et UnknownMemberName.

    Notez que la propriété UnknownMember n'est pas activée car la valeur qui lui est affectée est None et non Visible ou Hidden et parce qu'aucun nom n'est spécifié pour la propriété UnknownMemberName.

  3. Dans la fenêtre des propriétés, sélectionnez (Personnalisé) dans la cellule de la propriété ErrorConfiguration, puis développez la collection de propriétés ErrorConfiguration.

    Définir la propriété ErrorConfiguration sur (Personnalisé) vous permet d'afficher les paramètres de configuration d'erreur par défaut - cela ne modifie aucun paramètre.

  4. Vérifiez les propriétés de la clé et de la configuration de l'erreur de clé Null, mais n'apportez aucune modification.

    Notez que par défaut, lorsque les clés Null sont converties en membre inconnu, l'erreur de traitement associée à cette conversion est ignorée.

    L'illustration suivante montre les paramètres définis pour la collection de propriétés ErrorConfiguration.

    Collection de propriétés ErrorConfiguration

  5. Cliquez sur l'onglet Navigateur, vérifiez si Product Model Lines est sélectionné dans la liste Hiérarchie, puis développez le membre All Products.

    Notez la présence de cinq membres au niveau Product Line.

  6. Développez Components, puis le membre sans nom du niveau Model Name.

    Ce niveau contient les composants d'assembly utilisés pour la création d'autres composants et qu'il commence par le produit Adjustable Race, comme le montre l'illustration suivante.

    Composants d'assembly servant à créer d'autres composants

Définition des attributs à partir des tables en flocons et d'une hiérarchie définie par l'utilisateur Product Category

Pour définir des attributs à partir des tables en flocons et d'une hiérarchie définie par l'utilisateur Product Category

  1. Ouvrez le Concepteur de vues de source de données pour la vue de source de données de l'entrepôt de données Adventure Works, sélectionnez Reseller Sales dans le volet Bibliothèque de diagrammes, puis cliquez sur Ajouter/Supprimer des tables dans le menu Vues des sources de données de Business Intelligence Development Studio.

    La boîte de dialogue Ajouter/supprimer des tables s'affiche.

  2. Dans la liste Objets inclus, sélectionnez dbo.DimProduct, puis cliquez sur Ajouter des tables associées.

    La table dbo.DimProductSubcategory est ajoutée à la liste Objets inclus.

  3. Une fois la table dbo.DimProductSubcategory sélectionnée par défaut et désignée comme la table ajoutée le plus récemment, cliquez à nouveau sur Ajouter des tables associées.

    La table dbo.DimProductCategory est ajoutée à la liste Objets inclus.

  4. Cliquez sur OK.

  5. Dans le menu Format de BI Development Studio, pointez sur Disposition automatique, puis cliquez sur Diagramme.

    Notez que la table dbo.DimProductSubcategory et la table dbo.DimProductCategory sont liées l'une à l'autre, ainsi qu'à la table ResellerSales, par le biais de la table Product.

  6. Affichez le Concepteur de dimensions pour la dimension Product, puis cliquez sur l'onglet Structure de dimension.

  7. Cliquez avec le bouton droit dans le volet Vue de source de données, puis choisissez Afficher toutes les tables.

  8. Dans le volet Vue de source de données, recherchez la table DimProductCategory, cliquez avec le bouton droit sur ProductCategoryKey dans cette table et choisissez Nouvel attribut de colonne.

  9. Dans le volet Attributs, affectez à ce nouvel attribut le nom Category.

  10. Dans la fenêtre Propriétés, cliquez dans le champ de propriété NameColumn puis cliquez sur le bouton Parcourir (.) pour ouvrir la boîte de dialogue Colonne de nom.

  11. Sélectionnez EnglishProductCategoryName dans la liste Colonne source, puis cliquez sur OK.

  12. Dans le volet Vue de source de données, recherchez la table DimProductSubcategory, cliquez avec le bouton droit sur ProductSubcategoryKey dans cette table et choisissez Nouvel attribut de colonne.

  13. Dans le volet Attributs, affectez à ce nouvel attribut le nom Subcategory.

  14. Dans la fenêtre Propriétés, cliquez dans le champ de propriété NameColumn puis cliquez sur le bouton Parcourir (.) pour ouvrir la boîte de dialogue Colonne de nom.

  15. Sélectionnez EnglishProductSubcategoryName dans la liste Colonne source, puis cliquez sur OK.

  16. Créez une nouvelle hiérarchie définie par l'utilisateur appelée Product Categories avec les niveaux suivants en commençant par le haut : Category, Subcategory et Product Name.

  17. Spécifiez All Products comme valeur pour la propriété AllMemberName de la hiérarchie définie par l'utilisateur Product Categories.

Exploration des hiérarchies définies par l'utilisateur dans la dimension Product

Pour explorer les hiérarchies définies par l'utilisateur dans la dimension Product

  1. Dans la barre d'outils de l'onglet Structure de dimension du Concepteur de dimensions pour la dimension Product, cliquez sur Traiter.

  2. Cliquez sur Oui pour créer et déployer le projet, puis sur Exécuter pour traiter la dimension Product.

  3. Une fois le traitement terminé, développez Traitement de Dimension « Nom du produit » terminé dans la boîte de dialogue État d'avancement du traitement, développez Traitement de l'attribut de Dimension « Nom du produit » terminé, puis développez Requêtes SQL 1.

  4. Sélectionnez la requête SELECT DISTINCT et cliquez sur Afficher les détails.

    Notez qu'une clause WHERE a été ajoutée à la clause SELECT DISTINCT qui supprime les produits pour lesquels il n'existe aucune valeur dans la colonne ProductSubcategoryKey, comme le montre l'illustration suivante.

    Clause SELECT DISTINCT affichant la clause WHERE

  5. Cliquez trois fois sur Fermer pour fermer toutes les boîtes de dialogue de traitement.

  6. Cliquez sur l'onglet Navigateur dans le Concepteur de dimensions pour la dimension Product, puis cliquez sur Reconnexion.

  7. Vérifiez que Product Model Lines apparaît dans la liste Hiérarchie, développez All Products, puis Components.

    Notez l'absence des composants d'assembly qui est due à l'utilisation de la clause WHERE dans l'instruction SELECT DISTINCT, comme le montre l'illustration suivante.

    Liste hiérarchique affichant les composants manquants

  8. Sélectionnez Product Categories dans la liste Hiérarchie, développez All Products, puis Components.

    Notez qu'aucun composant d'assembly n'apparaît.

Pour modifier les résultats mentionnés à la tâche précédente, activez la propriété UnknownMember de la dimension Products, affectez une valeur à la propriété UnknownMemberName, affectez à la propriété NullProcessing des attributs Subcategory et Model Name la valeur UnknownMember, définissez l'attribut Category en tant qu'attribut associé de l'attribut Subcategory, puis définissez l'attribut Product Line en tant qu'attribut associé de l'attribut Model Name. Ces étapes permettront à Analysis Services d'utiliser la valeur du nom du membre inconnu pour les produits pour lesquels il n'existe pas de valeur pour la colonne SubcategoryKey, comme vous allez le constater dans la tâche suivante.

Activation du membre inconnu, définition des relations d'attribut et définition des propriétés de traitement personnalisé pour les valeurs Null

Pour activer le membre inconnu, définir des relations d'attribut et définir des propriétés de traitement personnalisé pour les valeurs Null

  1. Dans le Concepteur de dimensions pour la dimension Product, cliquez sur l'onglet Structure de dimension, puis sélectionnez Product dans le volet Attributs.

  2. Dans la fenêtre Propriétés, affectez à la propriété UnknownMember la valeur Visible et affectez à la propriété UnknownMemberName de cette dimension la valeur Assembly Components.

    L'attribution de la valeur Visible ou Hidden à la propriété UnknownMember active la propriété UnknownMember de la dimension.

  3. Cliquez sur l'onglet Relations d'attributs.

  4. Dans le diagramme, cliquez avec le bouton droit sur l'attribut Sous-catégorie puis sélectionnez Nouvelle relation d'attribut.

  5. Dans la boîte de dialogue Créer une relation d'attribut, l'Attribut source est Sous-catégorie. Définissez l' Attribut associé sur Catégorie. Laissez le type de relation défini sur Flexible.

  6. Cliquez sur OK.

  7. Dans le volet Attributs, sélectionnez Sous-catégorie.

  8. Dans la fenêtre Propriétés, développez la propriété KeyColumns, puis développez la propriété DimProductSubcategory.ProductSubcategoryKey (Integer).

  9. Modifiez la propriété NullProcessing en UnknownMember.

  10. Dans le volet Attributs, sélectionnez Nom du modèle.

  11. Dans la fenêtre Propriétés, développez la propriété KeyColumns, puis développez la propriété Product.ModelName (WChar).

  12. Modifiez la propriété NullProcessing en UnknownMember.

    Une fois cette modification apportée, lorsque Analysis Services rencontre une valeur Null pour l'attribut Sous-catégorie ou Nom du modèle au cours du traitement, la valeur du membre inconnu est utilisée comme valeur clé et les hiérarchies définies par l'utilisateur sont créées correctement.

Nouvelle exploration de la dimension Product

Pour explorer la dimension Product

  1. Dans le menu Générer, cliquez sur Déployer Analysis Services Tutorial.

  2. Une fois le déploiement terminé, cliquez sur l'onglet Navigateur dans le Concepteur de dimensions pour la dimension Product, puis cliquez sur Reconnexion.

  3. Vérifiez si Product Categories est sélectionné dans la liste Hiérarchie, puis développez All Products.

    Notez que Assembly Components apparaît en tant que nouveau membre du niveau Category.

  4. Développez le membre Assembly Components du niveau Category puis développez le membre Assembly Components du niveau Subcategory.

    Notez que tous les composants d'assembly apparaissent maintenant au niveau Product Name, comme le montre l'illustration suivante.

    Niveau Nom de produit affichant des composants d'assembly

  5. Sélectionnez Product Model Lines dans la liste Hiérarchie, développez All Products, développez le membre Assembly Components du niveau Product line, puis le membre Assembly Components du niveau Model name.

    Notez que tous les composants d'assembly apparaissent maintenant au niveau Product Name.