Fusionner/Répartir les éléments de données
Les segments EDI permettent souvent d'utiliser plusieurs occurrences consécutives du même élément de données. Par exemple, cela s'applique au segment N2 de (Information de Nom supplémentaire) de la transaction 850 Purchase Order du standard X12. Conformément à la spécification, le segment N2 permet deux champs consécutifs alphanumériques Name, dont un champ est obligatoire, l’autre optionnel (voir la capture d’écran ci-dessous) :
Les segments qui permettent plusieurs instances répétitives d’un élément de données particulier auront l’ensemble d’attribut mergedEntries pour l’élément Données dans le fichier .Segment (en surbrillance jaune dans la liste de code ci-dessous). Le fichier .Segment est stocké à l’origine dans le dossier apForceEDI\<EDI_Standard> de votre dossier d’application.
<Segment name="TI" info="Transport Information">
<Data ref="F140" minOccurs="0" mergedEntries pour la="0" />
<...>
</Segment>
Quand vous créez ou modifiez une configuration EDI, vous pouvez utiliser un seul nœud pour toutes les occurrences d’un élément de données (entrées fusionnées) ou répartir cet élément de données en nœuds séparés (voir ci-dessous).
Approche 1 : Utiliser un nœud pour toutes les occurrences de l'élément de données
Dans cette approche, nous utilisons un nœud pour toutes les occurrences de l'élément de données. Par défaut, l’élément de données F93 du segment N2 est représenté dans un seul nœud dans le mappage (voir la capture d’écran ci-dessous). Quand vous connectez le nœud F93 au nœud cible, MapForce créera autant d’items dans la cible qu’il n’y a d’instances répétées de F93 dans la source. Ceci suit la règle de base des connexions MapForce : Pour chaque item dans la source, créez un item dans la cible.
Pour s’assurer que l’élément de données F93 est représenté comme un seul nœud, ouvrez le fichier X12.Segment et vérifiez si l’attribut mergedEntries est défini dans l’élément de données F93 du segment N2. Dans la liste de code ci-dessous, l'attribut mergedEntries de l'élément de données F93 est réglé sur 2. Ceci signifie que l’élément de données peut avoir deux occurrences consécutives dans le fichier d’instance EDI, mais l’élément de données apparaîtra comme un seul nœud dans le mappage.
<Segment name="N2" info="Additional Name Information">
<Data ref="F93" mergedEntries="2"/>
</Segment>
Le fait de mapper des données depuis un élément de données qui contient des enregistrements fusionnés créera plusieurs éléments dupliqués du côté cible pour chaque occurrences de cet élément. Dans notre exemple, le segment N2 contient deux occurrences consécutives de F93 (Michelle Butler et Mrs):
N2+Michelle Butler+Mrs'
Le fait de mapper des données provenant d'un tel fichier EDI créera la sortie suivante (veuillez noter les occurrences dupliquées de <ContactName>) :
<Customer>
<Number>123</Number>
<ContactName>Michelle Butler</ContactName>
<ContactName>Mrs</ContactName>
<CompanyName>Nanonull, Inc.</CompanyName>
</Customer>
L'utilisation de cette approche est applicable lorsque chaque occurrence de l'élément de données n’est pas pertinente en soi et donc, vous ne souhaitez pas de nœud séparé pour chaque occurrence. Par exemple, un élément de données avec de multiples occurrences peut stocker de nombreuses entrées de lignes qui constituent une adresse. Dans de tels cas, l’approche « entrées fusionnées » peut être plus utile que d’avoir des nœuds individuels pour chaque ligne d’adresse.
Approche 2 : Répartir un élément de données en de multiples nœuds
Dans cette approche, nous créons plusieurs occurrences de l'élément a données dans le fichier .Segment. Dans ce cas, des nœuds séparés apparaîtront sur le mappage pour chaque occurrence de l'élément de données. Nous avons modifié le fichier X12.Segment de telle manière que le segment N2 a désormais deux instances de l’élément de données F93 dénommé F93_1 et F93_2 (voir la liste de code ci-dessous).
<Segment name="N2" info="Additional Name Information">
<Data ref="F93" nodeName="F93_1"/>
<Data ref="F93" nodeName="F93_2" minOccurs="0"/>
</Segment>
La configuration crée deux nœuds F93 séparés dans le composant 850 :
L'utilisation de cette approche est applicable lorsque chaque occurrence de l'élément de données est pertinente en soi et donc, vous voulez séparer des nœuds séparés dans le mappage.