Travailler avec Relations
Remarque : Remarque : les termes « maître/esclave » sont obsolètes et sont remplacés par « entrant/sortant ».
La notation par points peut être utilisée avec Relations pour accéder aux champs suivants :
| Nom de zone | Description |
|---|---|
| « Entrant » | L'entité principale dans la relation |
| « Sortant » | L'entité secondaire dans la relation |
| 'RelationType' | Type de relation (« Lien », « Bloqueur », « Relation » ou « Duplicata ») |
Type de relation
RelationType Le champ peut être coché pour filtrer uniquement le type de relations nécessaires :
Exemple : renvoyer l'ID de l'histoire utilisateur + uniquement OutboundRelations lorsque le type est « Relation »
/api/v2/userstories?select={ID, OutboundRelations.where(RelationType.Name = 'Relation')}
Utilisation de.Count et.Where
MasterRelations + InboundRelations sont des collections, vous pouvez donc utiliser «.count() » et «.where() » pour vérifier les valeurs de la collection. Exemple : renvoyer (Nom, ID) de toutes les fonctionnalités qui ont une ou plusieurs relations maître/entrante./api/v2/features?where=(InboundRelations.count > 0)&select={ID, Name}Exemple : Renvoyer (Nom, ID) de toutes les entités qui n'ont pas de relations sortantes./api/v2/features?where=(OutboundRelations.count = 0)&select={ID, Name}Exemple : pour les relations User Story de type « Relation », sélectionnez le nom de l'entité de la fonctionnalité entranteRemarque : Remarque : L'entité entrante doit être une fonctionnalité pour pouvoir utiliser la MasterFeature terminologie.
/api/v2/userstories?select={InboundRelations.Where(RelationType.Name='Relation').Select(MasterFeature.Name)}
Utilisation des termes « entrant » et « sortant »
Vous pouvez utiliser Outbound.ID + Inbound.ID pour vérifier les valeurs d'ID spécifiques de chaque relation individuelle. Exemple : renvoyer uniquement l'ID de OutboundRelations bug + lorsque l'ID de relation sortante est « 12345 »/api/v2/bugs?select={ID, OutboundRelations.where(Outbound.Id = 12345)}Exemple : Renvoyer l'ID de l'histoire utilisateur + uniquement InboundRelations lorsque la relation entrante se trouve dans le projet « Actus 2.0 »/api/v2/userstories?select={Id, InboundRelations.Where(Inbound.Project.Name = 'Actus 2.0')}
Utilisation du point de terminaison /relations
Vous pouvez utiliser le point de terminaison relations pour accéder directement aux champs Inbound, Outbound ou ID.Remarque : Remarque : le champ ID correspond à l'ID réel de la relation, et non à l'ID de l'entité correspondante. Pour ces valeurs, vous utiliserez Inbound. Identifiant et/ou Outbound.ID
Exemple : renvoie la relation dans laquelle l'entité entrante a l'ID 191261./api/v2/relations?where=(inbound.id = 191261)&select={inbound:{inbound.id, inbound.name}, outbound:{outbound.id, outbound.name}, RelationType.name}
Accès aux champs à partir de la collection Relations entrantes/sortantes
Vous pouvez accéder directement aux champs ID, Outbound RelationType, Inbound et dans la collection Relations. Exemple : pour le point de terminaison User Stories, sélectionnez l'ID de fonctionnalité pour les relations entrantes où le type de relation est « Relation »/api/v2/userstories?select={InboundRelations.Where(RelationType.Name = 'Relation').Select(MasterFeature.ID)}
Accès aux champs à partir de la collection des éléments assignables entrants/sortants
Exemple : renvoyer toutes les User Stories qui ont au moins une relation entrante et dont TOUTES les relations entrantes sont dans l'état « En cours »./api/v2/userstories?where=((InboundAssignables.Count(EntityState.Name = 'In Progress') = InboundAssignables.Count())
and InboundAssignables.Count() > 0)Exemple : renvoyer toutes les fonctionnalités pour lesquelles il existe au moins 1 élément assignable entrant, au moins 1 élément assignable sortant, TOUS les éléments assignables entrants sont dans l'état « Terminé » et tous les éléments assignables sortants sont dans l'état « Ouvert »./api/v2/features?where=((InboundAssignables.Count(EntityState.Name = 'Done') = InboundAssignables.Count())
and (OutboundAssignables.Count(EntityState.Name = 'Open') = OutboundAssignables.Count())
and InboundAssignables.Count() > 0
and OutboundAssignables.Count() > 0)
Remarque : Exemple expliqué : Toutes les tâches assignables entrantes dans l'état Terminé - ( InboundAssignables.Count( EntityState.Name = 'Terminé') = InboundAssignables.Count()) Toutes les tâches assignables sortantes dans l'état Ouvert - ( OutboundAssignables.Count( EntityState.Name = 'Ouvert') = OutboundAssignables.Count()) Au moins 1 tâche assignable sortante - OutboundAssignables.Count() > 0) Au moins 1 tâche assignable entrante - InboundAssignables.Count() > 0
Accès aux champs spécifiques à une entité
Vous pouvez utiliser la notation suivante pour accéder aux champs imbriqués des relationsRemarque : Remarque : La relation 'EntityType' doit exister pour pouvoir utiliser cette notation
Pour MasterRelations la collecte : Maître {EntityType} : Exemple : MasterUserStory.Fonctionnalité Pour SlaveRelations la collecte : Esclave {EntityType} : Exemple : SlaveFeature.Lancement Exemple : Pour l'entité n° 190977, sélectionnez toutes les relations entrantes de type « Relation » + sélectionnez le champ Fonctionnalité de l'histoire utilisateur « Maître »/api/v2/userstories?where=(id=190977)&select={MasterRelations.Where(RelationType.Name='Relation').Select(MasterUserStory.Feature)}Exemple : pour l'entité n° 190977, sélectionnez toutes les relations sortantes de type « Relation » + sélectionnez le champ Epic de la fonctionnalité « Slave »/api/v2/userstories?where=(id=190977)&select={SlaveRelations.Where(RelationType.Name='Relation').Select(SlaveFeature.Epic)}