Exemple de règles avancées XML : Sélectionner le nœud X sur la base du nœud Y (ou de l'attribut a)

Ce type de règle peut s'avérer nécessaire si le XPath vers le nœud prévu n'est pas unique dans le XML pour les factures (c'est-à-dire qu'il y a plusieurs nœuds ayant le même XPath dans le fichier XML).

Cet exemple utilise une facture Svefaktura. Nous voulons trouver la valeur correcte pour le champ Kofax ReadSoft Entrance PaymentReferenceNumber. Le chemin prévu de ce champ dans la norme de facture XML Svefaktura est /Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:PaymentInstructionID. Dans nos exemples de facture, il existe plusieurs instances de ce XPath dans le fichier. Celui avec l'attribut GGSISESS est le bon. Cliquez sur la vignette pour voir un exemple :

Pour créer une règle avancée qui recherche un nœud différent pour trouver la valeur correcte

  1. Sélectionnez le champ PaymentReferenceNumber dans la catégorie Champs de l'onglet Champs du Mappeur XML (sur la partie droite de la fenêtre).
  2. Cliquez sur le bouton à la droite de la valeur :

    si aucune règle n'a été définie ou

    s'il existe déjà une règle pour le champ.

  3. Dans la section de sélection de nœud XML des Règles avancées vers le haut de l'onglet Règles de mappage de champ qui s'affiche à gauche de la fenêtre, développez le nœud Invoice.
  4. Naviguez et sélectionnez le nœud le plus proche du nœud PaymentinstructionID mais commun à toutes les instances. (Dans ce cas, le nœud commun le plus proche est Invoice/cac:PaymentMeans dans l'exemple.)


  5. Cliquez sur Sélectionner.
  6. Dans la case Le nœud XML sélectionné pour travailler, développez cac:PaymentMeans, puis recherchez et sélectionnez le sous-nœud qui contient l'élément qui différencie les différentes sections PaymentMeans. Dans ce cas, il s'agit de :

    cac:PaymentMeans/cac:PayeeFinancialAccount(cac:FinancialInstitutionBranch/cac:Financialnstitution/cac:ID

  7. Dans la section Paramètres de la nouvelle condition de la boîte de dialogue, sélectionnez Basé sur la valeur.
  8. Sélectionnez l'attribut approprié dans la liste déroulante sous Valeur à comparer avec (GGSISSESS dans ce cas).
  9. Cliquez sur Ajouter. La nouvelle condition est ajoutée à la case Conditions à utiliser pour travailler :

    Value(Node[PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/FinancialInstitution/ID])=="GGSISESS"

  10. Cliquez sur Extraire et examinez l'image pour vérifier les résultats. Si vous avez besoin de modifier une condition, il suffit de cliquer dessus dans les Règles appliquées pour mapper ce champ, puis de cliquer sur Suppr. pour la supprimer, de faire les modifications nécessaires pour corriger la règle, et de recliquer sur Ajouter pour ajouter la nouvelle règle. Si vous devez modifier une condition, le processus est identique (et si une règle est basée sur celle-ci, la règle est également supprimée si vous supprimez la condition).
  11. Déterminez si les modifications doivent s'appliquer à tous les documents ou uniquement à ceux de la définition de facture XML actuelle. Cliquez sur Enregistrer la définition XML pour n'enregistrer les modifications que pour la Définition de facture XML actuelle (c'est-à-dire le fournisseur actuel). Cliquez sur Enregistrer le profil XML si vous souhaitez que la règle s'applique à toutes les factures XML qui correspondent au profil de facture XML quelle que soit la définition de facture XML.