Conditions dans les transformations : quand une règle s’exécute

Fonctionnement des conditions de règle : n’importe lequel, égal, supérieur à, contient une sous-chaîne, vide, expression régulière et vérification d’autres noeuds ou colonnes.

Une condition dans une transformation répond à une question : cette règle doit-elle s’exécuter maintenant, ou Eofferix doit-il la passer et continuer avec la règle suivante ? Par exemple : si le prix est supérieur à 100, ajouter une marge ; si le SKU n’est pas vide, ajouter un préfixe ; si la valeur contient USD, supprimer cette sous-chaîne.

Les mêmes vérifications peuvent apparaître dans les transformations et dans les conditions d’export, mais le résultat est différent. Une transformation modifie la valeur d’un champ. Une condition d’export décide si un champ, une ligne, un produit ou un élément XML/JSON apparaît dans le fichier final.

Où La Condition Est Utilisée

Dans une ligne de transformation, la condition se trouve entre la source de la valeur et l’action. Eofferix prend d’abord la valeur depuis la source choisie, vérifie la condition, puis exécute l’action.

  • Source - la valeur actuelle ou un autre noeud, attribut, colonne ou valeur système.
  • Condition - la vérification : n’importe lequel, égal, supérieur à, contient une sous-chaîne, vide, expression régulière et autres options.
  • Valeur de condition - la valeur utilisée pour la comparaison. Les conditions comme "n’importe lequel", "vide" et "non vide" n’en ont pas besoin.
  • Action - ce qu’il faut faire si la condition est vraie : remplacer, supprimer les espaces, augmenter en pourcentage, ne pas charger le champ, etc.

La condition n’est pas obligée d’utiliser le champ actuel. Par exemple, une valeur Disponibilité peut être modifiée selon le noeud voisin stock, et un prix peut être modifié selon la devise ou un indicateur d’activité.

Avant Ou Après Les Transformations

Dans une chaîne de transformations, les règles s’exécutent de haut en bas. Chaque ligne reçoit le résultat de la ligne précédente. Si vous devez d’abord nettoyer un prix des espaces et de la devise, puis le vérifier comme nombre, placez les règles de nettoyage au-dessus de la condition numérique.

Référence Des Conditions

La référence garde seulement les colonnes utiles : nom de la condition, moment d’utilisation et comportement. Une colonne Exemple séparée n’est pas nécessaire ici, car les scénarios pratiques sont présentés plus bas.

ConditionQuand l’utiliserComportement
n’importe lequelLa règle doit toujours s’exécuter.Correspond à n’importe quelle valeur, même vide.
égalUne correspondance exacte est nécessaire.Compare toute la valeur. La casse compte seulement si la sensibilité à la casse est activée.
différent deIl faut traiter toutes les valeurs sauf une.Correspond quand la valeur est différente de la valeur indiquée.
supérieur àIl faut vérifier un nombre : prix, poids, stock, quantité.Les deux côtés de la comparaison sont lus comme des nombres.
inférieur àIl faut trouver les valeurs sous un seuil.Fonctionne comme une vérification numérique.
supérieur ou égal àLe seuil lui-même doit aussi correspondre.Correspond à une valeur égale ou supérieure au seuil.
inférieur ou égal àLe seuil lui-même doit aussi correspondre.Correspond à une valeur égale ou inférieure au seuil.
contient la sous-chaîneIl faut trouver un fragment dans un texte.Correspond si le texte indiqué est trouvé quelque part dans la valeur.
ne contient pas la sous-chaîneIl faut exclure des valeurs contenant un mot, code ou fragment précis.Correspond si le texte indiqué n’est pas présent dans la valeur.
commence parLa première partie de la valeur est importante.Correspond si la valeur commence par le texte indiqué.
se termine parLa dernière partie de la valeur est importante.Correspond si la valeur se termine par le texte indiqué.
videIl faut traiter les champs sans valeur.Une chaîne composée uniquement d’espaces est considérée comme vide.
non videL’action est nécessaire uniquement pour les valeurs remplies.Correspond s’il reste quelque chose après suppression des espaces autour de la valeur.
expression régulièreIl faut vérifier la valeur avec un modèle.Correspond si l’expression régulière trouve une correspondance.
pas une expression régulièreIl faut traiter les valeurs qui ne correspondent pas à un modèle.Correspond si l’expression régulière ne trouve pas de correspondance.

Exemple Pratique

Voici un fragment XML source et deux variantes de configuration. La première prépare un prix ; la seconde crée une valeur de disponibilité à partir du noeud voisin stock.

<catalog>
  <product>
    <name>Bureau Nordic</name>
    <sku>SKU-110</sku>
    <price>12 490 USD</price>
    <stock>8</stock>
  </product>
</catalog>
Snapshot XML avec les valeurs source du produit, du prix et du stock
Le snapshot montre une version courte du XML source et les valeurs utilisables dans les transformations.

Variante 1 : Préparer Le Prix

Le prix arrive comme texte : 12 490 USD. Pour obtenir un nombre, les règles s’exécutent en séquence : elles nettoient d’abord la valeur, puis vérifient le nombre préparé.

  1. Condition n’importe lequel : supprimer les espaces de la valeur actuelle.
  2. Condition contient la sous-chaîne avec la valeur USD : remplacer la sous-chaîne par une valeur vide.
  3. Condition supérieur à avec la valeur 100 : augmenter le prix de 10 %.
Fenêtre de transformation du prix avec les conditions n’importe lequel, contient la sous-chaîne et supérieur à
Chaque ligne reçoit le résultat de la ligne précédente, donc la condition numérique s’applique après le nettoyage du prix.
AvantRègles ExécutéesAprès
12 490 USDsupprimer les espaces, retirer USD, augmenter de 10 %13739

Variante 2 : Créer La Disponibilité Depuis Le Stock

La disponibilité peut être remplie non pas depuis sa valeur actuelle, mais depuis le noeud voisin stock. C’est utile quand le fichier final doit contenir un statut textuel alors que la source contient seulement une quantité.

  1. D’abord, une règle avec la condition n’importe lequel définit la valeur de base in_stock.
  2. La règle suivante vérifie {/catalog/product/stock}. Si le stock est inférieur ou égal à 0, la valeur est remplacée par out_of_stock.
Fenêtre de transformation de la disponibilité avec une condition basée sur le noeud voisin stock
La source de la condition peut être différente du champ transformé.
Stock SourceRésultat De Disponibilité
8in_stock
0out_of_stock

À Retenir

  • Pour les conditions numériques, supprimez d’abord devise, espaces, unités et autre texte.
  • Pour "contient la sous-chaîne", "commence par" et "se termine par", la valeur recherchée ne doit pas être vide.
  • Si vous devez supprimer tout le produit, toute la ligne ou tout l’élément XML/JSON, utilisez les conditions d’export plutôt qu’une transformation d’un seul champ.
  • Si une règle ne s’est pas exécutée, vérifiez l’ordre des lignes : le nettoyage nécessaire doit peut-être se faire plus tôt.