Altova MapForce 2025 Enterprise Edition

Utiliser FlexText en tant que composant de cible

Accueil Préc Haut Suivant

L’utilisation principale des composants FlexText est de réduire ou de partager des sections de fichiers de texte et mapper des items pertinents du composant FlexText vers d’autres composants de cible. FlexText peut, néanmoins, également être utilisé en tant que composant de cible pour assembler ou reconstituer des fichiers séparément dans un seul fichier, bien que ceci puisse nécessiter un certain nombre de tentatives pour obtenir les résultats désirés.

 

L’utilisation d’un composant FlexText en tant que cible renverse les opérations qui ont été précédemment définies. Au lieu de partager un fichier dans plusieurs sous-sections, vous assemblez/reconstituez un fichier.

 

En général, l’inverse de chaque opération définie dans le modèle FlexText est effectué (de manière inversée) lorsque vous l’utilisez en tant que cible :

 

"Split" devient "merge", par ex. mapper dans un partage répété délimité par "," devient un item de fusion séparé par ",".

"Store" devient "load".

"Switch" devient "choose the first match".

 

Veuillez noter la chose suivante lorsque vous utilisez FlexText en tant que composants :

 

Dès qu’une connexion est effectuée entre un composant de source de données et un des items d’entrée d’un composant FlexText, la source de données de composant FlexText est ignorée. Les données fournies par le composant de source récemment mappé deviennent maintenant dominantes.

Si le texte est mappé sur un conteneur "Store as..." (Stocker en tant que CSV et FLF), alors le séparateur est retenu. Néanmoins le texte peut être coupé si un partage de longueur fixe se produit dans un nœud situé au-dessus du nœud"Store as...".

Fixed Width Splits coupe la section gauche/haut si Split Base=Head, ou la section droite/bas si Split Base=tail, dans la longueur prédéfinie. La section coupée est donc aussi longue que la longueur définie en caractères. Si le texte est trop court, les caractères d’espace sont insérés pour remplir la section.

FlexText insérerait normalement des séparateurs (ou un espace blanc pour les partages fixes) entre les items d’une opération partagée, mais cela n’est pas le cas pour les partages 'délimité (basé en ligne)'. L’opération 'délimité (basé en ligne)' n’est pas une opération parfaitement réversible. Le texte "Délimité" peut se produire à tout endroit dans la première ligne et est inclus dans le texte, c’est pourquoi un processus automatique ne peut pas l’ajouter de manière fiable.

oDélimité (basé en ligne), n’ajoutera pas un séparateur dans la première ligne si celui-ci manquait.

oDélimité (flottant), ajoutera un séparateur entre deux sections.

L’opération switch ne peut pas être inversée de manière pertinente, sauf pour les cas simples. Le switch scanne ses branches pour la première branche qui contient des données et utilise/insère ces données. Seule la première connexion d’une opération switch est mappée. Pour transférer des données dans les conteneurs switch restants, des filtres doivent être définis pour les connecteurs restants et la duplication de l’item de parent switch est nécessaire, afin que chaque item de switch retourne un seul item qui est ensuite fourni à un item de partage répété pour les fusionner tous.

Le mappage vers un enfant d’un conteneur de partage unique élimine tous les résultats de mappage sauf pour le dernier item. Seul un résultat unique est retenu, même si plusieurs résultats ont été générés.

 

L’analogie suivant au modèle de contenu du Schéma XML donne une idée du comportement de FlexText lorsqu’il est utilisé en tant que cible :

 

Un partage répété est un élément renouvelable.

Un partage unique forme une partie d’un groupe de modèle de contenu 'sequence'.

Un switch forme un groupe de modèle de contenu 'choice', chaque cas étant un élément enfant possible.

Un store crée un élément de type simple.

© 2018-2024 Altova GmbH