Cette leçon est pertinente pour les développeurs de présentations qui utilisent des requêtes d'un système SAP Business Warehouse (SAP BW) comme source de données pour leurs présentations.
Points à prendre en compte
Il existe deux éléments à prendre en compte lorsque vous décidez d'utiliser des variables d'une requête BEx à partir d'un système SAP BW dans vos scripts, car ces variables sont des objets assez coûteux du point de vue des performances.
- Toutes les valeurs que vous définissez comme valeurs de variables doivent être validées avant d'être utilisées.
La validation signifie qu'il existe une exigence pour une demande de backend supplémentaire.
Dans la boîte de dialogue Analyse des performances, ces demandes de validation seront affichées en tant que demandes de métadonnées de modèle de requête supplémentaires.

- La modification d'une seule variable peut entraîner un nouveau rendu de plusieurs widgets.
Selon le paramètre de gestion des variables (à l'échelle de la présentation ou spécifique au widget), la conception de la présentation elle-même et si la variable est utilisée dans plusieurs widgets, la modification d'une seule variable peut entraîner la génération de plusieurs widgets.
Recommandations
Une fois que vous avez réfléchi à l'impact de l'utilisation des variables sur les performances de votre présentation, il existe deux recommandations pour utiliser efficacement les variables. Il s'agit uniquement de recommandations générales, et non de règles strictes, car des différences peuvent survenir en fonction de la conception de la présentation spécifique.
- Utilisation de plusieurs valeurs de variables.
Si vous voulez définir plusieurs valeurs de variables dans un script, conservez les API setVariableValue() ensemble, idéalement une ligne après l'autre. Dans la mesure du possible, elles sont automatiquement fusionnées en une seule demande. Cela réduit le nombre d'allers-retours dans le backend et augmente les performances. Par exemple :
Code Snippet12Table_1.getDataSource().setVariableValue("U00_VAR_MON_001","201507"); Table_1.getDataSource().setVariableValue("U00_VAR_MON_002","201508");
Si, pour une raison quelconque, vous ne pouvez pas les écrire ensemble, notez que certaines API (par exemple, celles qui font référence à la source de données, trient les valeurs, etc.) empêchent le système de fusionner les demandes. Par exemple :
Code Snippet123Table_1.getDataSource().setVariableValue("U00_VAR_MON_001","201507"); Table_1.sortByMember("0D_NW_PRID__0D_NW_PRCAT",SortOrder.Descending); Table_1.getDataSource().setVariableValue("U00_VAR_MON_002","201508");
- Utilisation d'un filtre au lieu d'une variable.
Si la variable dans la requête est utilisée uniquement pour permettre à l'utilisateur de sélectionner un filtre pour une dimension, envisagez d'utiliser un filtre à la place.
La définition d'une valeur de filtre avec l'API setDimensionFilter(), en général, ne nécessite pas l'aller-retour de validation supplémentaire.