Permet d'imbriquer des requêtes et de les affecter à des éléments enfant.
Procédure
- Dans Document Studio, ouvrez la vue Schéma de source de données.
- Faites glisser un élément de la vue Schéma de source de données dans un élément de canevas. Lorsqu'une requête est déplacée dans un élément qui possède un élément parent, le système vérifie si la requête déplacée peut être
exécutée dans le contexte d'une requête d'élément parent. Toutes les requêtes
qui peuvent servir de contexte sont affichées dans une fenêtre Sélection du contexte.
La liste affiche l'ID et sa représentation textuelle.
- Sélectionnez le contexte de la requête dans la liste. Si vous sélectionnez Aucun comme contexte, deux requêtes imbriquées non associées sont générées.
- Cliquez sur OK.
Exemple
L'exemple suivant montre une requête imbriquée affectée à un élément de canevas Rational
DOORS.
Paragraph DOORS 1 $1 Module/Object
Text
Module/Object/Object/Heading
Paragraph DOORS 1 $2 Module/Object/Attribute
Text
Module/Object/Attribute/Name
Dans cet exemple, une requête
Module/Object sert
de contexte pour
Module/Object/Attribute.
Dans cet
exemple, si le contexte de la deuxième requête a pour valeur $1, la sortie
suivante est générée :
- Un ensemble de paragraphes contenant l'en-tête de chaque objet dans le module.
- Une liste des paragraphes avec les noms d'attribut de l'objet actuel dans la requête $1.
Si le contexte de la deuxième requête a pour valeur aucun, la sortie
suivante est générée :
- Un ensemble de paragraphes contenant l'en-tête de chaque objet dans le module.
- Une liste des paragraphes avec les noms d'attribut de tous les objets.
L'exemple suivant montre la requête imbriquée affectée à un élément de canevas IBM® Rational Tau.
La première requête, model/root(Package),
est effectuée dans le contexte du modèle Rational Tau.
La deuxième requête, model/root(Package)/ownedMember,
est effectuée sur chaque package renvoyé par la première requête.
Si la liste de
toutes les classes des packages de niveau supérieur du modèle est requise, la requête est
model/root(Package)/ownedMember(Class).
Sous cette forme, le document de sortie ne contient plus le nom de chaque
package. Une liste de classes est générée de la même manière que dans le premier cas. La
requête est fractionnée en fonction de ses requêtes de composant et chaque requête
est exécutée dans le contexte défini par les requêtes précédentes :
Tableau 1. Sous-requêtesSous-requête |
Contexte |
Résultat |
model |
Non applicable |
modèle |
model/root(Package) |
modèle |
liste de packages |
ownedMember(Class) |
liste de packages |
liste de classes |
Chaque sous-requête est effectuée une fois par élément
et les résultats de chaque exécution sont concaténés. Ces résultats deviennent le
contexte de la sous-requête suivante, ou la liste des résultats, si la sous-requête est la
dernière.