Références de niveau dans les builds de dimension
Les niveaux sont définis à partir d'une hiérarchie ascendante, où les membres feuille sont de niveau 0, et chaque étape plus proche du nom de dimension incrémente le niveau de 1. Lorsque vous créez des dimensions Essbase à partir d'une source ascendante, utilisez la méthode de construction Niveau. Si les données source contiennent des valeurs NULL, utilisez la méthode de construction Niveau de processus, valeurs NULL.
Dans une source de données ascendante, chaque enregistrement définit un seul membre d'une dimension. La définition commence par les informations les plus spécifiques sur le membre et fournit progressivement des informations plus générales. Un enregistrement type indique le nom du nouveau membre, le nom de son parent, le parent de son parent, etc.
Par exemple, dans l'outline illustrée ci-dessous, les membres de niveau inférieur se trouvent au bas des branches de la dimension Product.
Figure 14-3 Numéros de génération et de niveau

Pour créer l'outline à l'aide d'un travail de construction de dimension, vous pouvez entrer la source de données ascendante suivante :
100-10-12 100-10 100
100-20-12 100-20 100En général, vous exécutez une construction de dimension à l'aide de la méthode de construction Niveau lorsque les membres de niveau inférieur sont séquencés de gauche à droite. Les membres de niveau 0 (niveau feuille) se trouvent dans le premier champ, les membres de niveau 1 dans le deuxième champ, etc. Cette organisation est le contraire de la façon dont les données sont présentées pour les références de génération (de haut en bas).
Supposons que vous disposiez d'un cube avec une dimension Product et que vous souhaitiez utiliser le fichier de données ci-dessous, délimité par des tabulations, pour créer d'autres membres de produit dans la dimension Product.
600-10-11 600-10 600
600-20-10 600-20 600
600-20-18 600-20 600La source de données est "ascendante" en ce sens que la première colonne de la source de données contient de nouveaux membres de niveau feuille (600-10-11, 600-20-10 et 600-20-18). La deuxième colonne contient les parents des nouveaux membres (600-10 et 600-20), et la troisième colonne contient les parents des nouveaux membres (600).
La règle de chargement de construction de dimension utilise la méthode de construction de référence de niveau pour ajouter les membres à la dimension Product. La règle spécifie le numéro de niveau et le type de champ pour chaque champ de la source de données. Vous devez également sélectionner la méthode de construction Niveau dans les propriétés de dimension de la règle, sauf si vos données source contiennent des valeurs NULL (pour ce cas d'emploi, reportez-vous à la rubrique Gestion des champs vides ci-dessous).

Essbase crée la hiérarchie suivante à partir de la source des données et de la règle :
Figure 14-4 Niveaux

Gérer les champs vides
Lorsque vous créez des dimensions à partir de références de génération ou de niveau dans les données source, vous pouvez choisir de traiter des valeurs NULL. Le traitement NULL indique les actions qu'Essbase doit effectuer lorsqu'il rencontre des champs vides dans la source de données.
Remarques :
Les options de traitement NULL ne sont disponibles que pour les règles de construction de dimension standard (non basées sur un index).Si le traitement NULL n'est pas activé, Essbase rejette tous les enregistrements avec des valeurs NULL et écrit une erreur dans le journal des erreurs.
Pour activer le traitement NULL, sélectionnez l'une des méthodes de construction de traitement NULL dans les propriétés de dimension lorsque vous créez la nouvelle règle de construction de dimension.

Si vous utilisez la méthode de construction Niveau de traitement NULL, elle indique à Essbase d'attendre des valeurs NULL lors du traitement des références de niveau dans les données source, ce qui permet d'éviter les erreurs.
Exemple
Pour cet exemple de construction de dimension, supposons que vous souhaitiez ajouter une hiérarchie chiffrée/asymétrique telle que la suivante dans une nouvelle dimension Canal sur Sample Basic.

La source de données est ascendante, ce qui signifie que les niveaux les plus bas apparaissent en premier dans chaque enregistrement. Par conséquent, il est logique d'utiliser une méthode de construction de références de niveau. Cependant, des instructions de traitement NULL seront requises. Les trois premiers enregistrements de données source contiennent des champs NULL, car il n'existe aucune donnée d'emplacement pour les canaux indirects.
Channel-04,,Indirect,"All Channels"
Channel-07,,Indirect,"All Channels"
Channel-24,,Indirect,"All Channels"
Channel-21,Outlet,Direct,"All Channels"
Channel-29,Mall,Direct,"All Channels"
Channel-31,Kiosk,Direct,"All Channels"Vous pouvez créer une règle pour créer les dimensions et éviter les erreurs liées aux valeurs NULL à l'aide de la méthode de construction Niveau de processus NULL.
Pour créer une règle pour cet exemple,
-
Importez/créez le cube Sample Basic à l'aide du classeur d'application disponible dans la galerie du catalogue de fichiers sur le serveur Essbase.
-
Créez un fichier de données délimité par des virgules comme suit, nommez-le
levchannel.txtet téléchargez-le vers le répertoire de cube Sample Basic.Channel-04,,Indirect,"All Channels" Channel-07,,Indirect,"All Channels" Channel-24,,Indirect,"All Channels" Channel-21,Outlet,Direct,"All Channels" Channel-29,Mall,Direct,"All Channels" Channel-31,Kiosk,Direct,"All Channels" -
Sur la page d'accueil, ouvrez l'application, puis la base de données (cube).
-
Sélectionnez l'onglet Scripts, puis cliquez sur Règles.

-
Cliquez sur Créer et choisissez Construction de dimension (standard).

-
Dans la boîte de dialogue Nouvelle règle,
-
Entrez un nom de règle, par exemple, levchannel.
-
Pour Type de source, sélectionnez Fichier, cliquez sur Catalogue et accédez à
levchannel.txt.Lorsque vous cliquez sur Catalogue, le fichier doit se trouver dans le répertoire du cube sur le serveur Essbase par défaut. Vous devez donc l'avoir déjà téléchargé à l'aide de la section Fichiers de l'interface Web Essbase. Si le fichier se trouve sur votre ordinateur client, cliquez sur Navigateur de fichiers pour le localiser.
-
Conservez les champs Numéro d'enregistrement d'en-tête et Numéro d'enregistrement de construction de dimension sur 0. Les enregistrements d'en-tête ne sont pas utiles pour les builds de dimension.
-
Cliquez sur Continuer.
-
La règle de construction de dimension s'ouvre avec des champs non définis et affiche un aperçu des données (du fichier texte) qui alimentent la grille sous les champs.

-
-
Comme il s'agit d'une nouvelle règle, aucune dimension n'est encore associée.
- Cliquez sur Dimensions.

- Saisissez le nom de la nouvelle dimension Canal, puis cliquez sur Ajouter.
- Cliquez sur Dimensions.
-
Vous devez maintenant définir la méthode de construction et vérifier les autres instructions opérationnelles de construction de dimension. Cliquez sur le lien Canal pour modifier les propriétés de dimension.
-
Remplacez la méthode de création par Niveau de processus NULL.

Cliquez ensuite sur OK.
-
Cliquez sur le sélecteur Dimension dans le champ 1, puis sélectionnez Canal.

-
Remplacez le sélecteur Type du champ 1 par Niveau.
-
Incrémentez le niveau sur 0, car les ID de canal sont au niveau 0.
-
Dans les champs 2 à 4, la dimension Canal doit maintenant être sélectionnée. Remplacez les sélecteurs de type par niveau et marquez les numéros de niveau comme 1 pour le champ 2, 2 pour le champ 3 et 3 pour le champ 4.

-
Vérifiez la règle, puis enregistrez-la et fermez-la. En cas d'erreur, reportez-vous à Conditions requises pour les fichiers de règles de construction de dimension valides.
-
Exécutez le travail de construction de dimension.
-
Affichez l'outline pour vérifier que la dimension Channel et la hiérarchie de membres attendue ont été ajoutées.
Flux de traitement NULL pour les builds de dimension basés sur le niveau
Si le traitement des valeurs NULL est activé, Essbase traite les valeurs NULL de plusieurs manières :
-
Champ de niveau NULL : si une valeur NULL se produit lorsque Essbase attend un champ de niveau, Essbase promeut le champ de niveau suivant pour remplacer le champ manquant.
Exemple
La construction de dimension place Indirect au niveau 1 au lieu du niveau 2, car le champ 2 du niveau 1 contient une valeur NULL.

-
Champ NULL avant un champ secondaire : si une valeur NULL se produit directement avant un champ secondaire, Essbase ignore le champ secondaire. (Les options de champ secondaire sont Alias, Propriété, Formule, Niveau en double, Alias de niveau en double, Nom de devise, Catégorie de devise, Parent d'attribut, Attribut défini par l'utilisateur et Nom d'une dimension d'attribut.)
Exemple
La construction de dimension ignorera l'alias dans le champ 3, car le champ 2 contient une valeur NULL. Essbase placera Indirect au niveau 1 et Tous les canaux au niveau 2.

-
Champ secondaire NULL : si une valeur NULL se produit lorsque Essbase attend un champ secondaire, Essbase ignore le champ NULL secondaire et poursuit le chargement (il s'agit du même comportement que pour la méthode de construction Niveau).
Exemple
La construction de dimension ignorera le premier alias dans le champ 3, car ce champ contient une valeur NULL. Le membre Outlet sera ajouté à l'outline sans alias.
