Filtrage des noeuds récurrents

En spécifiant un prédicat XPath de filtrage à l'exécution, vous pouvez limiter les noeuds récurrents renvoyés par une activité de mappage.

Pourquoi et quand exécuter cette tâche

Le filtrage à l'aide d'un prédicat directement dans les panneaux de mappage des activités rendent les activités suivantes inutiles :
  • L'activité Pendant que ou Pour chaque qui établit une boucle dans les structures récurrentes
  • L'activité Si...Alors pour tester les valeurs.
L'élimination des activités Pendant que et Si...Alors améliore les performances de l'orchestration.
Par exemple, vous pouvez limiter les livres renvoyés par l'orchestration BatchOrderProcessingSample afin de renvoyer uniquement les titres de livre qui commencent par la lettre B, à l'aide de l'une des méthodes suivantes :
  • Après l'activité Lire fichier à plat qui convertit des données de fichier à plat en XML, vous pouvez ajouter une activité Pendant que contenant une activité Si..Alors qui recherche tous les titres de livre commençant par la lettre B. Lorsque l'activité Pendant que se termine, elle renvoie l'ensemble de noeuds BookOrder récurrents dont le titre commence par la lettre B.
  • Procédez au filtrage en indiquant un prédicat directement dans le panneau Vers l'orchestration de la tâche Mapper les sorties de l'activité Lire fichier à plat qui convertit des données de fichier à plat en XML. Cette méthode est préconisée car elle réduit le traitement à l'exécution, améliorant ainsi les performances de l'orchestration.Par exemple, vous pouvez spécifier le prédicat suivant sur le noeud BookOrder récurrent afin de limiter les noeuds Bookorder renvoyés pendant l'exécution aux seuls titres commençant par la lettre B :*:title/starts-with(.,'B')
Cet exemple de prédicat est expliqué dans le tableau suivant :
Caractères de prédicat Description
*: Spécifie que ce prédicat s'applique à tout espace de nom du noeud source.
title/ Spécifie d'appliquer ce prédicat au noeud de titre du noeud source en cours.
starts-with(.,'B') Spécifie que ce prédicat renvoie uniquement les noeuds dont le titre commence par la lettre B. La fonction starts-with est une fonction XPath intégrée.

Pour plus d'informations sur l'exemple BookOrder, voir le manuel Getting Started Guide. Si vous avez accepté les valeurs par défaut pendant l'installation de Studio, l'implémentation de référence de cet exemple se trouve dans le répertoire suivant :C:\Program Files\IBM\WebSphere Cast Iron Studio 3.X\Samples\BookOrder

Pour spécifier un prédicat sur un noeud récurrent :

Procédure

  1. Vous pouvez uniquement appliquer un filtre sur un noeud de destination récurrent mappé à un noeud source récurrent dans les panneaux de mappage des activités, comme illustré dans le panneau Mapper les sorties de l'activité Lire fichier à plat de l'orchestration BatchOrderProcessingSample :
  2. Cliquez avec le bouton droit de la souris sur le noeud d'occurrence de destination (dans cet exemple, BookOrder/occurrence) et sélectionnez Filtrer les noeuds récurrents dans le menu. La boîte de dialogue Filtrer les noeuds récurrents s'ouvre.
  3. Entrez le prédicat XPath. Pour cet exemple, entrez le prédicat illustré dans la figure suivante :
  4. Cliquez sur OK. Le prédicat est évalué pour déterminer s'il est valide :
    • Si le prédicat n'est pas valide, un message d'erreur est envoyé.
    • Si le prédicat est valide, l'icône de filtre (Icône Noeud récurrent) apparaît en regard du noeud d'occurrence de destination.