Références de génération dans les builds de dimension
Les membres de dimension Essbase qui occupent une branche commune sont de la même génération. La génération 1 est le nom de la dimension et chaque niveau inférieur incrémente le numéro de génération. Lorsque vous créez des dimensions à partir d'une source descendante, utilisez la méthode de construction Génération. Si les données source contiennent des valeurs NULL, utilisez la méthode de construction Traiter la génération de valeurs NULL.
Les sources de données de haut en bas sont organisées de gauche à droite du plus haut niveau au plus bas. Chaque enregistrement commence par les informations les plus générales et passe aux informations les plus spécifiques. Le nom du nouveau membre se trouve à la fin de l'enregistrement. Lorsque vous utilisez une source de données descendante, utilisez la méthode de construction des références de génération. Dans le fichier de règles, indiquez le numéro de génération et le type de champ de chaque champ de la source de données.
Essbase numérote les membres d'une dimension en fonction de la position hiérarchique du membre dans la dimension. Les nombres sont appelés références de génération. Une dimension est toujours la génération 1. Tous les membres d'une même branche d'une dimension sont appelés génération. Les générations sont numérotées de haut en bas en fonction de leur position par rapport à la dimension, c'est-à-dire par rapport à la dimension 1.
Par exemple, comme illustré ci-dessous, la dimension Product est la génération 1. Le produit a un membre 100, qui est la génération 2. 100 a des membres, tels que 100-10, qui sont la génération 3. Pour utiliser la méthode de création des références de génération, indiquez le numéro de référence de génération dans le fichier de règles.
Figure 14-1 Générations

Supposons que vous disposez d'un cube avec une dimension Product. Les dimensions sont la génération 1, le produit est donc la génération 1. Supposons que vous souhaitiez utiliser le fichier de données descendant délimité par des tabulations suivant pour créer la dimension Product :
500 500-10 500-10-10
500 500-10 500-10-20
500 500-20 500-20-12
500 500-20 500-20-15
500 500-20 500-20-20
En général, vous exécutez une construction de dimension à l'aide de la méthode de construction Génération lorsque les membres de niveau inférieur sont séquencés de droite à gauche comme indiqué ci-dessus.
Vous pouvez utiliser la règle suivante pour créer les dimensions à l'aide de références de génération. La règle indique le numéro de génération de chaque champ de la source de données. Vous devez également sélectionner la méthode de construction Génération 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-2 Références de génération

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 : Génération de processus NULL ou Niveau de processus NULL.

Si vous utilisez la méthode de construction Process generation null, elle indique à Essbase d'attendre des valeurs NULL lors du traitement des références de génération 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 de haut en bas, ce qui signifie que les niveaux supérieurs (près du membre de dimension supérieure) apparaissent en premier dans chaque enregistrement. Par conséquent, il est logique d'utiliser une méthode de création de références de génération. 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.
"All Channels",Indirect,,Channel-04
"All Channels",Indirect,,Channel-07
"All Channels",Indirect,,Channel-24
"All Channels",Direct,Outlet,Channel-21
"All Channels",Direct,Mall,Channel-29
"All Channels",Direct,Kiosk,Channel-31Vous 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 Process generation 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
genchannel.txtet téléchargez-le vers le répertoire de cube Sample Basic."All Channels",Indirect,,Channel-04 "All Channels",Indirect,,Channel-07 "All Channels",Indirect,,Channel-24 "All Channels",Direct,Outlet,Channel-21 "All Channels",Direct,Mall,Channel-29 "All Channels",Direct,Kiosk,Channel-31 -
Sur la page Applications, 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, genchannel.
-
Pour Type de source, sélectionnez Fichier, cliquez sur Catalogue et accédez à
genchannel.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 des données d'aperçu (à partir du fichier texte) alimentant 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 Génération 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 Génération.
-
Incrémentez la génération sur 2, car le membre de la hiérarchie Tous les canaux se trouve au niveau 2. Le membre de génération 1 est toujours le nom de la dimension. Dans ce cas, Channel.
-
Dans les champs 2 à 4, la dimension Canal doit maintenant être sélectionnée. Remplacez les sélecteurs de type par Génération et marquez les numéros de génération comme 3 pour le champ 2, 4 pour le champ 3 et 5 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 la génération
Si le traitement NULL est activé, Essbase traite la génération des valeurs NULL de l'une des manières suivantes :
-
Champ de génération NULL : si la valeur NULL se produit lorsque Essbase attend un champ de génération, Essbase promeut le champ de génération suivante pour remplacer le champ manquant.
Exemple
La construction de dimension promeut l'ID canal vers la génération 4 au lieu de la génération 5, car la génération 4 contient une valeur NULL.

-
Champ NULL avant champ secondaire : si une valeur NULL se produit directement avant un champ secondaire, Essbase ignore le champ secondaire. (Les types de champ secondaire sont alias, propriété, formule, génération de doublons, alias de génération de doublons, 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 ignore l'alias dans le champ 4, car la génération 4 contient une valeur NULL et promeut l'ID de canal vers la génération 4 au lieu de la génération 5.

-
Champ secondaire NULL : si la 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 Génération).
Exemple
La construction de dimension ignore l'alias dans le champ 4, car ce champ contient une valeur NULL. Le membre Outlet est ajouté à l'outline sans alias.
