Mettre en œuvre des paramètres pour les sources de données

Pour rendre les sources de données plus flexibles, vous pouvez mettre en œuvre des paramètres d'exécution dans l'interrogation afin de permettre à chaque source d'utiliser des variables.

Il peut s'agir de variables de substitution définies dans Essbase, de paramètres d'exécution définis par le contexte de la grille lorsque les utilisateurs de Smart View forent des données externes, ou de fonctions définies par l'utilisateur écrites dans un système source externe.

Si vous envisagez d'utiliser des variables dans les sources de données Essbase, vous devez au préalable :

  1. Inclure la syntaxe des variables dans l'interrogation de source de données. Par exemple, l'interrogation de source de données doit inclure ? dans sa syntaxe, où ? est un paramètre fictif désignant une variable à définir au moment de l'exécution.

  2. Effectuez l'une des actions suivantes :

    • Définir dans la source de données une valeur fixe de paramètre par défaut qu'Essbase utilisera comme valeur de substitution si le contexte de la variable n'est pas valide lors de l'exécution, OU

    • Définir une variable de substitution qui sera utilisée par la source de données
    • Transmettre une fonction externe définie par l'utilisateur (ou une procédure stockée) en guise de paramètre

Pour définir des sources de données et mettre en œuvre leurs paramètres, vous devez être au minimum gestionnaire d'application.

Autoriser l'utilisation de variables dans les sources de données Essbase vous permet d'optimiser les opérations en limitant le nombre de sources de données à gérer. Mettre en œuvre des variables pour les sources de données vous permet de spécifier un contexte d'interrogation d'exécution qui est appliqué dès qu'un utilisateur accède à une source de données associée à un cube Essbase.

Par exemple, supposons les cas d'utilisation suivants.

  • Un gestionnaire de base de données supervise une tâche récurrente qui consiste à charger des données dans le cube tous les mois. Ce gestionnaire peut désormais utiliser une variable de substitution pour charger les données du mois courant au lieu de gérer une règle de chargement pour chaque mois.

  • Un gestionnaire d'application gère des définitions de rapport de forage pour différents cas d'utilisation. Il met en œuvre des variables dans la source de données sous-jacente de laquelle les utilisateurs de Smart View extraient des données lors de leurs opérations de forage. En conséquence, le gestionnaire a moins de définitions de rapport de forage à gérer et à déboguer.

Définir un paramètre par défaut dans une source de données

Définissez un paramètre par défaut dans une source de données si vous souhaitez autoriser l'utilisation de variables dans les interrogations qu'Essbase génère pour manipuler les données stockées en dehors du cube.

Pour définir le paramètre par défaut,

  1. Obtenez ou créez une connexion à la source de données externe (par exemple, créez une connexion à Oracle Database).

    Vous pouvez utiliser une connexion globale, s'il en existe déjà une dans la page Sources de l'interface Web d'Essbase, ou vous pouvez créer une connexion de niveau application.

  2. Créez une source de données sur la connexion que vous utiliserez pour accéder à Oracle Database.

    Vous pouvez définir une source de données au niveau global si elle doit être accessible à toutes les applications, ou vous pouvez la définir au niveau de l'application.

    1. Pour créer une source de données globale, vous devez être un administrateur de service. Cliquez sur Sources, cliquez sur l'onglet Sources de données sous votre nom d'utilisateur, puis cliquez sur Créer une source de données.

      Ou, pour créer une source de données au niveau de l'application, vous devez être un gestionnaire d'application ou un utilisateur expérimenté et disposer d'une autorisation de gestion sur l'application spécifiée. Dans l'onglet Applications, cliquez sur le nom d'une application. Puis, cliquez sur Sources, cliquez sur l'onglet Sources de données sous votre nom d'utilisateur, et cliquez sur Créer une source de données.

    2. À l'étape Général, sous Connexion, sélectionnez la connexion Oracle Database que vous avez créée.

    3. Sous Name, donnez un nom à la source de données.

    4. Sous Interrogation, fournissez une interrogation (dans cet exemple, il s'agit de code SQL). Pour en faire une interrogation paramétrée, vous devez inclure une condition de filtre (clause WHERE) qui mappe une colonne relationnelle de votre source à un paramètre fictif. Vous indiquez la position de la variable en utilisant un paramètre fictif, ?, dans la syntaxe de l'interrogation. Ce paramètre fictif sera remplacé à une étape ultérieure par un paramètre que vous transmettrez.

      select * from SB_DT where DIMENSION_YEAR=?

      Par exemple, supposons que votre base de données relationnelle comporte la table suivante, nommée SB_DT. La table contient une colonne DIMENSION_YEAR dont les valeurs sont des mois :
      Illustration d'une table de base de données relationnelle avec la colonne DIMENSION_YEAR sélectionnée. Toutes ses valeurs sont des mois : Jul, Aug, Aug, Sep, Sep, Oct, etc.

      Pour utiliser une variable permettant de sélectionner des valeurs de mois dans la colonne DIMENSION_YEAR, appliquez la syntaxe de filtre suivante dans l'interrogation : where DIMENSION_YEAR=?
      Illustration de l'onglet Général dans l'Assistant Créer une source de données. Connection : SAMPLE.oracledb_conn, Name : oracledb_ds, Description : Datasource for Oracle DB, Query : select * from SB_DT where dimension_year=?

    5. Cliquez sur Suivant.

    6. À l'étape Colonnes, appliquez le type de données approprié qu'Essbase doit associer à chaque colonne de vos données sources relationnelles.

      Par exemple, réglez les colonnes numériques au type Double et laissez les colonnes alphanumériques au type String.


      Illustration de l'onglet Colonnes dans l'Assistant Créer une source de données, avec les sélections Type, Double et String.

    7. Cliquez sur Suivant.

    8. À l'étape Paramètres, Param1 est créé; ce paramètre existe car vous avez utilisé un symbole ? dans l'interrogation à l'étape Général.

      Ne cochez pas Utiliser des variables, cliquez deux fois sur le champ de texte sous Valeur et entrez une valeur par défaut pour le paramètre d'exécution. Cette valeur par défaut sera utilisée par Essbase comme valeur de substitution si le contexte du paramètre n'est pas valide lors de l'exécution. Cette étape est importante si vous prévoyez d'utiliser des paramètres d'exécution dans des définitions de rapport de forage.

      Vous pouvez également renommer Param1 pour lui donner un nom pertinent dans votre cas d'utilisation. Par exemple, vous pouvez le renommer param_G_mois pour indiquer que le paramètre utilise une variable globale pour le mois courant, ou param_<nomApp>_mois pour indiquer qu'il utilise une variable de niveau application pour le mois courant. Il peut être utile de personnaliser les noms de paramètres pour faciliter leur débogage à l'aide des fichiers journaux du serveur Essbase.


      Illustration de l'onglet Paramètres dans l'Assistant Créer une source de données. Use Variables n'est pas coché, et Value est Jan.

      Si vous souhaitez personnaliser le paramètre pour référencer une variable de substitution, vous n'avez pas besoin de fournir une valeur par défaut. Voir Utiliser des variables de substitution dans une source de données à la place de cette rubrique.

    9. Cliquez sur Suivant.

    10. À l'étape Prévisualiser, vous remarquerez que le paramètre par défaut a été appliqué à votre interrogation. En conséquence, la prévisualisation contient uniquement des enregistrements sources externes dans lesquels la valeur de la colonne DIMENSION_YEAR est Jan.


      Illustration de l'onglet Prévisualiser dans l'Assistant Créer une source de données, affichant uniquement les enregistrements où DIMENSION_YEAR = Jan.

      La prévisualisation n'affichait que des valeurs obtenues en appliquant le paramètre par défaut, mais par la suite, lorsque vous mettrez en œuvre des paramètres d'exécution pour une définition de rapport de forage, vous aurez accès à davantage de données externes que la prévisualisation n'en comportait.

    11. Cliquez sur Créer pour créer la source de données basée sur cette interrogation de vos données sources externes. La source de données est activée pour la mise en œuvre de paramètres d'exécution.

Utiliser des variables de substitution dans une source de données

Le flux de travail suivant montre comment créer une source de données Essbase à partir d'une interrogation portant sur des données sources externes, à l'aide d'une variable de substitution définie dans Essbase. La variable de substitution offre plus de flexibilité dans la conception de l'interrogation qui extrait des données de vos données sources.

Dans cet exemple, vous utiliserez une variable de substitution dans Essbase pour déclarer le mois courant. Au lieu de mettre à jour les sources de données tous les mois afin d'extraire les données du mois courant, vous pouvez ne pas toucher aux sources de données et mettre uniquement à jour la variable de substitution que vous avez définie.

  1. Créez une variable de substitution globale ou de niveau application.


    Illustration d'une variable de substitution créée au niveau de l'application. Nom : CurrMonth, Valeur : Aug

  2. Obtenez ou créez une connexion à la source de données externe (par exemple, créez une connexion à Oracle Database).

    Vous pouvez utiliser une connexion globale, s'il en existe déjà une dans la page Sources de l'interface Web d'Essbase, ou vous pouvez créer une connexion de niveau application.

  3. Créez une source de données sur la connexion que vous utiliserez pour accéder à Oracle Database.

    Vous pouvez définir une source de données au niveau global si elle doit être accessible à toutes les applications, ou vous pouvez la définir au niveau de l'application.

    1. À l'étape Général, sous Connexion, sélectionnez la connexion Oracle Database que vous avez créée.

    2. Sous Name, donnez un nom à la source de données.

    3. Sous Interrogation, fournissez une interrogation (dans cet exemple, il s'agit de code SQL). Pour en faire une interrogation paramétrée, vous devez inclure une condition de filtre (clause WHERE) qui mappe une colonne relationnelle de votre source à un paramètre fictif. Vous indiquez la position de la variable en utilisant un paramètre fictif, ?, dans la syntaxe de l'interrogation. Ce paramètre fictif sera remplacé à une étape ultérieure par un paramètre que vous transmettrez.

      select * from SB_DT where DIMENSION_YEAR=?

      Par exemple, supposons que votre base de données relationnelle comporte la table suivante, nommée SB_DT. La table contient une colonne DIMENSION_YEAR dont les valeurs sont des mois :
      Illustration d'une table de base de données relationnelle avec la colonne DIMENSION_YEAR sélectionnée. Toutes ses valeurs sont des mois : Jul, Aug, Aug, Sep, Sep, Oct, etc.

      Pour utiliser une variable permettant de sélectionner des valeurs de mois dans la colonne DIMENSION_YEAR, appliquez la syntaxe de filtre suivante dans l'interrogation : where DIMENSION_YEAR=?
      Illustration de l'onglet Général dans l'Assistant Créer une source de données. Connection : SAMPLE.oracledb_conn, Name : oracledb_ds, Description : Datasource for Oracle DB, Query : select * from SB_DT where dimension_year=?

    4. Cliquez sur Suivant.

    5. À l'étape Colonnes, appliquez le type de données approprié qu'Essbase doit associer à chaque colonne de vos données sources relationnelles.

      Par exemple, réglez les colonnes numériques au type Double et laissez les colonnes alphanumériques au type String.


      Illustration de l'onglet Colonnes dans l'Assistant Créer une source de données, avec les sélections Type, Double et String.

    6. Cliquez sur Suivant.

    7. À l'étape Paramètres, Param1 est créé; ce paramètre existe car vous avez utilisé un symbole ? dans l'interrogation à l'étape Général. Pour personnaliser Param1 afin qu'il référence une variable de substitution, cliquez sur Utiliser des variables, et sélectionnez une variable de substitution dans la liste déroulante Valeur.

      Si vous créez une source de données dans une application, des variables de substitution globales et de niveau application sont disponibles dans la liste. Les variables de niveau application ont comme préfixe le nom de l'application. Si vous créez une source de données globale, seules des variables de substitution globales sont disponibles.

      Vous pouvez renommer Param1 pour lui donner un nom pertinent dans votre cas d'utilisation. Par exemple, vous pouvez le renommer param_G_mois pour indiquer que le paramètre utilise une variable globale pour le mois courant, ou param_<nomApp>_mois pour indiquer qu'il utilise une variable de niveau application pour le mois courant. Il peut être utile de personnaliser les noms de paramètres pour faciliter leur débogage à l'aide des fichiers journaux du serveur Essbase.


      Illustration de l'onglet Paramètres dans l'Assistant Créer une source de données. L'option Utiliser des variables est cochée et la valeur Sample.CurrMonth.

    8. Cliquez sur Suivant.

    9. À l'étape Prévisualiser, vous remarquerez que la variable de substitution est appliquée à votre interrogation. En conséquence, la prévisualisation contient uniquement des enregistrements sources externes dans lesquels la valeur de la colonne DIMENSION_YEAR est Aug.


      Illustration de l'onglet Prévisualiser dans l'Assistant Créer une source de données, affichant uniquement les enregistrements où DIMENSION_YEAR = Aug.

    10. Cliquez sur Créer pour créer une source de données basée sur cette interrogation de vos données sources externes.