Altova MapForce 2025 Professional Edition

Cette rubrique décrit les différents scénarios dans lesquels les défauts et fonctions de nœud peuvent être utiles. Pour tester ces scénarios, vous aurez besoin du mappage d’échantillon suivant : <Documents>\Altova\MapForce2025\MapForceExamples\Tutorial\MissingFields.mfd. Notre point de départ est le mappage illustré ci-dessous.

mf_nodefunc_01

Certains des nœuds dans le fichier source sont vides. À cette étape, le fichier de sortie a l’aspect suivant :

 

T-Shirt                  25.3      20        Disponible en noir, bleu et rouge  

Chemise                  70.3      60                                          

Pantalons                                    Stock limité                      

Veste                    57.5      40                                              

 

Les scénarios décrits ci-dessous vous montreront comment définir un défaut pour tous les nœuds de type string, définir les défauts pour les différents types de données, bloquer les règles pour des nœuds spécifiques, écraser les règles héritées, et définir une fonction de nœud, et appliquer cette fonction de manière conditionnelle aux nœuds pertinents.

 

Scénario 1 : Définir un défaut pour tous les nœuds de string

Dans notre mappage, quelques uns des nœuds du type string sont vides. Notre objectif est de définir une valeur par défaut n/a à la place de strings vides. Suivez les étapes suivantes :

 

1.Cliquez avec la touche de droite sur l’élément Article et sélectionnez Fonctions de nœud et défauts | Fonctions de nœud de sortie et défauts depuis le menu contextuel.

2.Cliquez sur l’option mf_ic_add_default dans la fenêtre des Fonctions de nœuds et saisissez n/a dans le champ Valeur par défaut (voir la capture d’écran ci-dessous).

mf_nodefunc_02

Dans le composant ArticlesOfClothing, les éléments Nom et Description sont de type string, ce qui rend la valeur par défaut appropriée pour les deux. Pour cette raison, l’icône mf_ic_node_func_applied apparaît à côté de ces nœuds. Puisque les valeurs par défaut s’appliquent uniquement aux valeurs vides, seuls deux nœuds Field4 ont reçu les valeurs n/a dans la sortie (en surbrillance jaune ci-dessous).

 

T-Shirt              25.3      20        Disponible en noir, bleu et rouge  

Chemise              70.3      60       n/a                               

Pantalons                                Stock limité                      

Veste                57.5      40       n/a                           

 

Scénario 2 : Définir les défauts pour différents types de données

Outre la définition d’un défaut pour des nœuds d’un type spécifique, vous pouvez en plus définir un autre défaut pour un autre type de données. Par exemple, un des articles a des valeurs vides dans Prix et ItemsInStock, dont les deux sont de type numérique. Maintenant, notre objectif est de remplacer ces valeurs vides avec 0. Suivez les étapes ci-dessous :

 

1.Répétez les étapes depuis le Scénario 1. Ceci ajoutera une valeur par défaut pour tous les nœuds de type string qui ont des valeurs vides.

2.Ajoutez un autre défaut et sélectionnez numérique comme type de données.

3.Tapez 0 dans le champ Valeur par défaut (voir la capture d’écran ci-dessous).

mf_nodefunc_03

La sortie a maintenant l’air de ceci (notez les parties en surbrillance) :

 

T-Shirt              25.3      20                Disponible en noir, bleu et rouge  

Chemise              70.3      60               n/a                                

Pantalons           0         0                 Stock limité                      

Veste                57.5      40               n/a                        

 

Note :Conformément à la Spécification de schéma XML , integer est dérivé de décimal, et les deux appartiennent à un type de données numérique. Dans notre exemple, la règle s’appliquera aux deux éléments ItemsInStock et Prix si vous sélectionnez numeric comme type de données dans la fenêtre de fonctions de nœud. Si vous sélectionnez decimal comme type de données, la règle continuera à s’appliquer aux deux éléments. Toutefois, si vous sélectionnez integer comme type de données, la règle s’appliquera uniquement à l’élément ItemsInStock.

 

Scénario 3 : Bloquer la règle pour des nœuds spécifiques

Dans ce scénario, nous voulons appliquer les défauts pour tous les nœuds string et numeric, mais nous ne voulons pas définir un défaut dans l’élément Prix. Pour atteindre cet objectif, reproduisez les étapes du Scénario 2, cliquez sur l’élément Prix et désactivez la case à cocher Hériter des règles des ancêtres. Dans le mappage ci-dessus, l'item Prix n'hérite plus des règles depuis son parent, Article. Pour cette raison, l’icône mf_ic_node_function_blocked apparaît à côté de l’élément Prix (voir la capture d’écran ci-dessous).

mf_nodefunc_04

La sortie ci-dessous montre que la valeur vide de l’élément Prix, pour laquelle la règle a été bloquée, a été mappée vers le Champ2 (notez les parties en surbrillance).

 

T-Shirt                  25.3      20        Disponible en noir, bleu et rouge  

Chemise                  70.3      60       n/a                                

Pantalons                         0         Stock limité                      

Veste                    57.5      40         n/a                                            

 

Scénario 4 : Écraser les règles héritées

Dans ce scénario, nous voulons définir les défauts pour tous les nœuds string et numériques ; toutefois, pour l’élément Prix exclusivement, nous voulons définir 100 comme valeur par défaut. Pour atteindre cet objectif, répétez les étapes décrites dans le Scénario 2, cliquez sur Prix dans le composant ArticlesOfClothing et ajoutez un nouveau défaut, tel qu’affiché dans la capture d’écran ci-dessous. Les règles héritées ont un fond jaune.

mf_nodefunc_05

La règle définie directement dans un nœud a la priorité sur les règles créées au niveau parent. Pour cette raison, la sortie a maintenant l’aspect suivant (notez les parties surlignées) :

 

T-Shirt                       25.3      20    Disponible en noir, bleu et rouge  

Chemise                       70.3      60    n/a                                

Pantalons                     100       0     Stock limité                      

Veste                         57.5      40    n/a                                    

 

Si vous avez défini plus d’une règle pour le même nœud, la règle au niveau supérieur de la grille s’applique au nœud actuel. Vous pouvez permuter l’ordre de ces règles en glissant manuellement les règles dans la grille.

 

Scénario 5 : Créer une fonction de nœud et l’appliquer aux conditions

Ce scénario expliquera comment créer une fonction de nœud et l’appliquer aux conditions. Nous utiliserons la fonction concat pour ajouter du texte aux nœuds du type string. Suivez les instructions ci-dessous :

 

1.Cliquez avec la touche de droite sur l’élément Article et sélectionnez Fonctions de nœud et défauts | Fonctions de nœud de sortie et défauts depuis le menu contextuel.

2.Ajoutez une fonction de nœud en cliquant sur l’icône mf_ic_add_nodefunc et créez la fonction affichée ci-dessous.

mf_nodefunc_06

À cette étape, nous n’avons pas filtré les nœuds et la sortie a l’aspect suivant (notez les parties en surbrillance) :

 

T-Shirt   (XXS, L-XXL)       25.3      20    Disponible en noir, bleu et rouge (XXS, L-XXL)    

Chemise   (XXS, L-XXL)       70.3      60                                                      

Pantalons (XXS, L-XXL)                       Stock limité (XXS, L-XXL)                        

Veste     (XXS, L-XXL)       57.5      40                                                      

 

La sortie affiche que notre règle a été appliquée aux deux éléments de type string : Nom et Description. Maintenant, nous voulons que la règle s’applique uniquement à l’élément Nom. À cette fin, allez à la fenêtre des fonctions de nœud et cliquez sur la touche mf_ic_ellipsis dans la colonne Type et filtre de données. Ceci ouvre la boîte de dialogue Filtrer Fonctions de nœud et Défauts, dans laquelle vous pouvez changer les types de données et spécifier les options de filtrage. Définissez le filtre tel qu’affiché dans la capture d’écran ci-dessous.

mf_nodefunc_08

La sortie a désormais l’aspect suivant :

 

T-Shirt   (XXS, L-XXL)        25.3      20    Disponible en noir, bleu et rouge  

Chemise   (XXS, L-XXL)        70.3      60                                                      

Pantalons (XXS, L-XXL)                        Stock limité                      

Veste     (XXS, L-XXL)        57.5      40                                                      

 

Filtrer par type de nœud

Cette option vous permet de réduire le type de données que vous avez sélectionné dans le dialogue Filtrer Fonctions de nœud et Défauts. Par exemple, vous avez choisi d’appliquer votre fonction de nœud aux nœuds numériques. Ensuite, vous pouvez spécifier un sous-type (par ex., Filtrer par/nom de nœud : xs:decimal).

 

Filtrer avec des expressions régulières

Pour plus d’options de filtrage avancées, vous pouvez utiliser des expressions régulières (par ex., pour faire correspondre des noms de nœud multiples). Pour plus d'informations, voir Expressions régulières. Veuillez prendre note des points suivants :

 

Les ancres ^ et $ sont implicites et ne doivent pas être saisies dans la case Correspond à.

Le respect de la casse peut être spécifié dans la case á cocher Correspond à . Pour cette raison, l’indicateur i n’est pas pris en charge.

La correspondance sur plusieurs lignes n'est pas pertinente pour le filtrage de nœud. Pour cette raison, l’indicateur m n’est pas pris en charge.

 

Scénario 6 : Créer des défauts pour des nœuds non connectés

MapForce vous permet d’appliquer les défauts aux nœuds non connectés, mais uniquement si le nœud parent et/ou un frère sont connectés. Considérez l’exemple suivant :

mf_nodefunc_07

Dans le mappage ci-dessus, nous avons défini une valeur par défaut pour le nœud Champ4 dans le composant ArticlesInfo. À cette étape, Champ4 n’a pas de connexion d’entrée. Les nœuds parent et frère sont connectés. Si le Champ4 reste non connecté, la valeur par défaut écrasera toutes les valeurs de Description dans la sortie (voir ci-dessous). Si vous connectez Description et Champ4, la valeur par défaut sera appliquée aux séquences vides.

 

T-Shirt                                  25.5      20   n/a                            

Chemise                                  70.3      60   n/a                            

Pantalons                                               n/a                            

Veste                                    57.5      40   n/a          

 

Note :les défauts ne sont pas appliqués aux nœuds non connectés dans des composants JSON.

 

© 2018-2024 Altova GmbH