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


Cette image illustre les numéros de référence de génération, comme décrit dans le texte précédant l'image.

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).

Fichier de règles pour la génération. Champ 1 : Produit, catégorie nommée Generation 2. Champ 2 : Produit de 3e génération nommé SKU de produit. Champ 3 : Produit, génération 4 nommée Promotions

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


Cette image présente les nouveaux membres créés lors de la 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.


Méthodes de construction de traitement NULL dans les propriétés de dimension pour une nouvelle règle

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 dimension Canal est génération 1. Une hiérarchie "Tous les canaux" est la génération 2. La génération 3 inclut les membres "Indirect" et "Direct". L'indirect a des ID canal comme enfants à la génération 4. Direct a des membres de localisation "Outlet", "Mall" et "Kiosk" à la génération 4, suivis des ID de canal à la génération 5. Les ID de canal indirect sont à la génération 4, tandis que les ID de canal direct sont à la génération 5, ce qui en fait une hiérarchie déséquilibrée / décalée.

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-31

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 Process generation null.

Pour créer une règle pour cet exemple,

  1. 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.

  2. Créez un fichier de données délimité par des virgules comme suit, nommez-le genchannel.txt et 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
    
  3. Sur la page Applications, ouvrez l'application puis la base de données (cube).

  4. Sélectionnez l'onglet Scripts, puis cliquez sur Règles.


    L'onglet Scripts est sélectionné et la mosaïque Rules est mise en surbrillance dans l'interface Web Essbase.

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


    Dans la boîte de dialogue Database Scripts, cliquez sur le bouton Create et sélectionnez l'option Dimension Build (Regular)

  6. Dans la boîte de dialogue Nouvelle règle,

    1. Entrez un nom de règle, par exemple, genchannel.

    2. 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.

    3. 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.

    4. Cliquez sur Continuer.

    5. 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.
      Image de l'éditeur de règles de construction de dimension pour la nouvelle règle "genchannel", avec les champs non définis 1 à 4 en tant que colonnes de métadonnées en attente de remplissage. Sous chaque champ figurent les valeurs de données importées à partir du fichier de données source.

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

    1. Cliquez sur Dimensions.
      Bouton Dimensions dans l'éditeur de règles

    2. Saisissez le nom de la nouvelle dimension Canal, puis cliquez sur Ajouter.
  8. 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.

  9. Remplacez la méthode de création par Génération de processus NULL.


    Image de la fenêtre Modifier les dimensions dans l'éditeur de règles de construction de dimension, avec la génération de processus NULL sélectionnée.

    Cliquez ensuite sur OK.

  10. Cliquez sur le sélecteur Dimension dans le champ 1, puis sélectionnez Canal.


    Image du champ 1 dans l'éditeur de règles de construction de dimension avec la dimension Canal sélectionnée.

  11. Remplacez le sélecteur Type du champ 1 par Génération.

  12. 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.

  13. 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.


    Cette image présente une règle créant une dimension de canal avec une hiérarchie irrégulière à l'aide de la méthode de création des valeurs NULL de génération de processus. Le champ 1 est défini comme Canal, Génération, 2 et contient Tous les canaux. Le champ 2 est défini comme Canal, Génération, 3 et contient Indirect pour trois enregistrements et Direct pour trois enregistrements. Le champ 3 est défini comme Canal, Génération, 4 et contient trois champs NULL et trois champs d'emplacement (Outlet, Mall et Kiosk). Le champ 4 est défini comme Canal, Génération, 5 et contient les ID de canal.

  14. 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.

  15. Exécutez le travail de construction de dimension.

  16. 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.


    Le champ 1 est Canal, génération 2 contenant Tous les canaux. Le champ 2 est Canal, génération 3 contenant Indirect. Le champ 3 est Canal, génération 4 contenant une valeur NULL. Le champ 4 est Canal, génération 5 contenant un ID canal.

  • 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.


    Le champ 1 est Canal, génération 2 contenant Tous les canaux. Le champ 2 est Canal, génération 3 contenant Indirect. Le champ 3 est Canal, génération 4 contenant une valeur NULL. Le champ 4 est Canal, Alias, contenant le catalogue. Le champ 5 est Canal, génération 5 contenant un ID canal.

  • 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.


    Le champ 1 est Canal, génération 2 contenant Tous les canaux. Le champ 2 est Canal, génération 3 contenant Direct. Le champ 3 est Canal, génération 4 contenant Sortie. Le champ 4 est Canal, Alias, contenant une valeur NULL. Le champ 5 est Canal, génération 5 contenant un ID canal.