Pour donner encore plus de souplesse aux sources de données, vous pouvez implémenter des paramètres d'exécution dans la requête afin d'autoriser la source de données à 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 grille quand les utilisateurs de Smart View effectuent une exploration amont des données externes ou de fonctions définies par l'utilisateur écrites dans un système source externe.
Si vous avez l'intention d'utiliser des variables dans les sources de données Essbase, vous devez tout d'abord procéder comme suit :
Incluez une syntaxe de variable dans la requête de source de données. Par exemple, la requête de source de données doit inclure ?
dans sa syntaxe, ?
étant un espace réservé pour une variable à définir à l'exécution.
Pour ce faire, effectuez l'une des opérations suivantes :
Définissez une valeur de paramètre par défaut fixe dans la source de données. Essbase peut l'utiliser comme solution de secours si le contexte de la variable à l'exécution n'est pas valide.
Transmettez une fonction externe définie par l'utilisateur (ou une procédure stockée) en tant que paramètre.
Afin de définir des sources de données et d'implémenter des paramètres pour celles-ci, vous devez au moins disposer du rôle Gestionnaire d'applications.
L'utilisation des variables dans les sources de données Essbase vous permet de rationaliser les opérations en diminuant le nombre de sources de données à gérer. L'implémentation de variables pour les sources de données vous permet de spécifier un contexte de requête d'exécution appliqué chaque fois qu'un utilisateur accède à une source de données associée à un cube Essbase.
Prenons par exemple les cas d'emploi suivants.
Un gestionnaire de base de données supervise un job récurrent qui charge chaque mois des données vers le cube. Le gestionnaire de base de données peut désormais utiliser une variable de substitution afin de charger des données pour le mois en cours, plutôt que de gérer une règle de chargement pour chaque mois.
Un gestionnaire d'applications gère les définitions de rapport d'exploration amont de plusieurs cas d'emploi métier. Le gestionnaire d'applications implémente des variables dans la source de données sous-jacente à partir de laquelle les utilisateurs de Smart View extraient des éléments lors de leurs opérations d'exploration amont. Il a donc moins de définitions de rapport d'exploration amont à gérer et à déboguer.
Pour que des variables puissent être employées dans les requêtes générées par Essbase lorsqu'il utilise des données stockées en dehors du cube, définissez un paramètre par défaut dans la source de données.
Pour définir le paramètre par défaut, procédez comme suit :
Obtenez ou créez une connexion à la source de données externe (par exemple, créez une connexion à Oracle Database).
Le cas échéant, vous pouvez utiliser une connexion globale de la page Sources de l'interface Web Essbase, ou vous pouvez créer une connexion de niveau application.
Créez une source de données via la connexion que vous utiliserez pour accéder à Oracle Database.
Vous pouvez définir une source de données globalement, si elle doit être disponible pour toutes les applications, ou au niveau de l'application.
Pour créer une source de données globale, vous devez être administrateur de service. Cliquez sur Sources, puis sur l'onglet Sources de données sous votre nom d'utilisateur, et enfin sur Créer une source de données.
Pour créer une source de données de niveau application, vous devez sinon être un gestionnaire d'applications ou un super utilisateur, et disposer d'une autorisation de gestion de l'application indiquée. Dans l'onglet Applications, cliquez sur le nom d'une application. Cliquez ensuite sur Sources, puis sur l'onglet Sources de données sous votre nom d'utilisateur, et enfin sur Créer une source de données.
A l'étape Général, dans Connexion, sélectionnez la connexion Oracle Database créée.
Dans Nom, indiquez le nom de la source de données.
Dans Requête, indiquez une requête (cet exemple utilise du code SQL). Pour que cette dernière devienne une requête paramétrée, vous devez inclure une condition de filtre (clause WHERE) mappant une colonne relationnelle de la source avec un espace réservé. Utilisez un espace réservé (?) dans la syntaxe de requête pour indiquer la position de la variable. L'espace réservé correspond à un paramètre transmis à une étape ultérieure.
select * from SB_DT where DIMENSION_YEAR=?
Par exemple, supposons que la base de données relationnelle comporte la table suivante, nommée SB_DT. La table contient la colonne DIMENSION_YEAR dont les valeurs sont des mois :
Pour utiliser une variable en vue de la sélection de valeurs de mois à partir de la colonne DIMENSION_YEAR, appliquez la syntaxe de filtre suivante dans la requête : where DIMENSION_YEAR=?
Cliquez sur Suivant.
A l'étape Colonnes, appliquez le type de données approprié, qu'Essbase doit associer à chaque colonne des données source relationnelles.
Par exemple, définissez les colonnes numériques sur le type Double et laissez les colonnes alphanumériques sur le type Chaîne.
Cliquez sur Suivant.
A l'étape Paramètres, Param1 est créé. L'existence de ce paramètre est due à l'utilisation du "?" dans la requête à l'étape Général.
Laissez la case Utiliser des variables désélectionnée, cliquez deux fois sur le champ de texte sous Valeur et entrez la valeur par défaut du paramètre d'exécution. Cette valeur par défaut est destinée à être utilisée par Essbase comme solution de secours si le contexte du paramètre à l'exécution n'est pas valide. Cette étape est importante si vous comptez utiliser des paramètres d'exécution dans le cadre des définitions de rapport d'exploration amont.
Vous pouvez également renommer Param1 afin que son nom soit plus explicite pour le cas d'emploi. Par exemple, vous pouvez le renommer param_G_mois pour indiquer que le paramètre utilise une variable globale pour le mois en cours ou param_<nomApp>_mois pour indiquer qu'il utilise une variable de niveau application. La personnalisation des noms de paramètre peut être utile lors du débogage des paramètres à l'aide des fichiers journaux de serveur Essbase.
Si vous souhaitez personnaliser le paramètre afin de faire référence à une variable de substitution, vous n'avez pas besoin de fournir de valeur par défaut. Reportez-vous à Utilisation de variables de substitution dans une source de données au lieu de cette rubrique.
Cliquez sur Suivant.
Dans l'aperçu, le paramètre par défaut a été appliqué à la requête. Par conséquent, l'aperçu est uniquement rempli d'enregistrements de source externe affichant la valeur Jan dans la colonne DIMENSION_YEAR.
Bien que l'aperçu affiche uniquement les valeurs correspondant au paramètre par défaut appliqué, ultérieurement, lorsque vous implémenterez des paramètres d'exécution pour la définition de rapport d'exploration amont, vous aurez accès à plus de données externes que celles visibles dans l'aperçu.
Cliquez sur Créer pour créer la source de données basée sur cette requête de données source externes. La source de données prend en charge l'implémentation des paramètres d'exécution.
Le workflow suivant explique comment créer une source de données Essbase à partir d'une requête portant sur des données source externes, à l'aide d'une variable de substitution définie dans Essbase. La variable de substitution offre davantage de flexibilité lors de la conception de la requête effectuant l'extraction à partir des données source.
Dans cet exemple, vous allez utiliser une variable de substitution dans Essbase pour déclarer le mois en cours. Au lieu de mettre à jour les sources de données chaque mois afin d'extraire les données du mois en cours, vous pouvez ignorer les sources de données et ne mettre à jour que la variable de substitution définie.
Créez une variable de substitution de niveau application ou globale.
Obtenez ou créez une connexion à la source de données externe (par exemple, créez une connexion à Oracle Database).
Le cas échéant, vous pouvez utiliser une connexion globale de la page Sources de l'interface Web Essbase, ou vous pouvez créer une connexion de niveau application.
Créez une source de données via la connexion que vous utiliserez pour accéder à Oracle Database.
Vous pouvez définir une source de données globalement, si elle doit être disponible pour toutes les applications, ou au niveau de l'application.
A l'étape Général, dans Connexion, sélectionnez la connexion Oracle Database créée.
Dans Nom, indiquez le nom de la source de données.
Dans Requête, indiquez une requête (cet exemple utilise du code SQL). Pour que cette dernière devienne une requête paramétrée, vous devez inclure une condition de filtre (clause WHERE) mappant une colonne relationnelle de la source avec un espace réservé. Utilisez un espace réservé (?
) dans la syntaxe de requête pour indiquer la position de la variable. L'espace réservé correspond à un paramètre transmis à une étape ultérieure.
select * from SB_DT where DIMENSION_YEAR=?
Par exemple, supposons que la base de données relationnelle comporte la table suivante, nommée SB_DT. La table contient la colonne DIMENSION_YEAR dont les valeurs sont des mois :
Pour utiliser une variable en vue de la sélection de valeurs de mois à partir de la colonne DIMENSION_YEAR, appliquez la syntaxe de filtre suivante dans la requête : where DIMENSION_YEAR=?
Cliquez sur Suivant.
A l'étape Colonnes, appliquez le type de données approprié, qu'Essbase doit associer à chaque colonne des données source relationnelles.
Par exemple, définissez les colonnes numériques sur le type Double et laissez les colonnes alphanumériques sur le type Chaîne.
Cliquez sur Suivant.
A l'étape Paramètres, Param1 est créé. L'existence de ce paramètre est due à l'utilisation d'un ?
dans la requête à l'étape Général. Pour personnaliser Param1 afin de faire 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 au sein d'une application, des variables de substitution globales et de niveau application sont disponibles pour sélection. 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 pour sélection.
Vous pouvez renommer Param1 afin que son nom soit plus explicite pour le cas d'emploi. Par exemple, vous pouvez le renommer param_G_mois pour indiquer que le paramètre utilise une variable globale pour le mois en cours ou param_<nomApp>_mois pour indiquer qu'il utilise une variable de niveau application. La personnalisation des noms de paramètre peut être utile lors du débogage des paramètres à l'aide des fichiers journaux de serveur Essbase.
Cliquez sur Suivant.
Dans l'aperçu, la variable de substitution est appliquée à la requête. Par conséquent, l'aperçu est uniquement composé d'enregistrements de source externe affichant la valeur Aug dans la colonne DIMENSION_YEAR.
Cliquez sur Créer pour créer une source de données basée sur cette requête de données source externes.