Mapping Post-traitements
Anveo EDI Connect dispose d’un puissant système intégré de flux de travail EDI. Pour les cas standard, vous pouvez utiliser les transactions commerciales. Si vous ne pouvez pas modéliser votre flux de travail à l’aide de ceux-ci, il existe également le concept de nos « Post-Processings », qui sont directement appelés à partir du mapping et peuvent modéliser n’importe quel flux de travail mapping.
Comme décrit dans la section Modélisation des flux de travail Mapping, nous utilisons généralement plusieurs mappings pour traiter les données entrantes ou sortantes. Dans les sections suivantes, nous décrivons les différentes possibilités de lancer un autre mapping (ou une transaction commerciale) à partir de celui en cours.
Un post-traitement est défini sur une boucle de table dans un mapping. Selon le convertisseur, il peut aussi y avoir une option pour lancer un mapping en utilisant une commande, mais dans cette section nous supposerons que vous avez un mapping et que vous voulez post-traiter les données de la table.
Prenons un exemple typique : Vous recevez un fichier qui contient plusieurs documents. Le premier mapping analyse le fichier et crée plusieurs enregistrements dans notre EDI Document table tampon. La structure de la ligne est également écrite dans la EDI Document Line la table. Vous souhaitez généralement traiter chaque document individuellement, vous définissez donc le post-traitement dans la table d’en-tête du document : EDI Document. Le traitement mapping de la structure de l’en-tête permet d’obtenir les lignes, en appliquant un DataItemLink approprié.
L’action de post-traitement est exécutée pour chaque enregistrement qui est traité dans le mapping. Pour une table en mode écriture, cela signifie chaque enregistrement qui est écrit. Pour une table en mode lecture, il est exécuté pour chaque enregistrement lu. Sur les tables en mode mise à jour, lorsque vous regroupez des données, vous devez généralement éviter de définir un post-traitement, car l’action de post-traitement est exécutée pour chaque mise à jour et non pour chaque enregistrement unique. Nous avons décrit un moyen de gérer cela dans la section Conseils et astuces.
Définition d’une action post-processus
Dans le mapping, vous devez trouver la bonne boucle de table et aller dans les propriétés de la EDI Mapping Line. Il existe une propriété appelée Post-Processing. Veuillez utiliser le bouton AssisEdit, à droite de la valeur, pour ouvrir l’éditeur. Vous pouvez créer plus d’un post-traitement, que vous pouvez utiliser, par exemple, pour envoyer un message de confirmation et traiter également les données dans Anveo EDI Connect. Veuillez également utiliser dans l’éditeur de liste le bouton AssisEdit, pour définir les propriétés réelles du post-traitement.
Vous pouvez choisir le type général de post-traitement. Les options suivantes sont disponibles :
Le post-traitement doit exécuter un autre mapping avec les données de la table actuelle.
Si vous sélectionnez cette valeur, d’autres propriétés seront disponibles.
Marquer l’enregistrement courant pour qu’il soit traité par une action de lot de transaction commerciale. Vous pouvez l’utiliser, par exemple, dans un mapping qui prend un document système et crée le document tampon pour spécifier que le document tampon doit être transmis à l’action de lot. Vous ne pouvez marquer qu’un seul enregistrement dans une exécution mapping comme étant l’enregistrement de traitement par lot.
Ce type n’a pas de propriétés supplémentaires.
Démarre un nouveau sous-processus avec l’enregistrement en cours. Un sous-processus nécessite une transaction commerciale active et apparaît comme un enfant du processus en cours. Le sous-processus doit également utiliser les mêmes données de table que la boucle de table actuelle. Un sous-processus utilisera le partenaire actuel et définira uniquement le numéro de référence à partir des données actuelles.
Si vous sélectionnez cette valeur, une propriété sera disponible.
Démarre une nouvelle transaction commerciale avec l’enregistrement actuel. La transaction commerciale doit utiliser les mêmes données de table que la boucle de table actuelle. Le EDI Communication Partner est déterminé comme défini dans le type de transaction commerciale.
Si vous sélectionnez cette valeur, une propriété sera disponible.
Cette propriété n’est disponible que si la propriété Type est définie sur Start Sub-Process (BT) ou Start New Business Transaction Spécifie le EDI Business Transaction Type qui doit être utilisé.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Un code qui est stocké dans la EDI Processing Queue la table et qui peut être utilisé pour filtrer la table.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Un seul post-traitement est exécuté pour chaque enregistrement de cette ligne et de ce groupe. Ainsi, si vous définissez plusieurs post-traitements avec le même groupe, seul le premier qui réussit est exécuté.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Le sous-titre est disponible en plusieurs langues. Il est affiché dans la EDI Processing Queue et si l’utilisateur veut retraiter un document.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Dans cette propriété, vous pouvez spécifier le EDI Project du mapping.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Cette propriété spécifie le EDI Format du mapping.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Spécifie le code du mapping qui doit être utilisé.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping et que vous utilisez Anveo EDI Connect 4.00 ou une version plus récente. Indique si le post-traitement fait partie de la transaction commerciale en cours. Vous pouvez mettre cette valeur à False pour avoir des post-traitements, qui ne sont pas directement liés aux transactions commerciales.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Si vous attribuez à cette propriété la valeur True, l’action ne s’exécutera pas automatiquement et nécessitera une interaction de l’utilisateur. Ceci est utile pour les tests.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping.
Veuillez essayer d’éviter d’utiliser des post-traitements synchrones, ils peuvent causer des problèmes de verrouillage de table et sont plus difficiles à comprendre en cas d’erreurs.
Si vous donnez la valeur True à cette propriété, le post-traitement sera exécuté dans la même transaction de base de données que le mapping actuel. S’il y a une erreur dans le post-traitement, elle sera enregistrée dans le mapping actuel. La EDI Processing Queue la table sera également verrouillée pendant l’exécution du post-traitement.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Si vous donnez à cette propriété la valeur True, le post-traitement sera exécuté avec une priorité plus élevée que ceux qui n’ont pas cette option définie. Vous pouvez l’utiliser pour contrôler l’ordre d’exécution.
Cette propriété n’est disponible que si la propriété Type est définie sur la valeur Process Mapping. Vous pouvez spécifier un délai dans lequel vous attendez que le post-traitement soit exécuté avec succès.
Conseils et astuces
Si vous voulez exécuter un autre mapping et que vous ne disposez pas d’une boucle de table appropriée, vous pouvez ajouter la table système Integer en mode lecture et filtrer la colonne « Number » à un. Définissez le post-traitement sur ce tableau.
Le post-traitement mapping ne doit pas récupérer l’enregistrement de post-traitement et peut également travailler sur d’autres tables.
Si vous devez exécuter des actions de post-traitement sur des enregistrements en mode mise à jour, où vous regroupez des données, vous pouvez utiliser l’astuce suivante pour n’exécuter le post-traitement qu’une fois par enregistrement : Trouvez un champ inutilisé dans la table et attribuez-lui une valeur qui n’est pas utilisée par ailleurs. Vous pouvez alors, à la fin du mapping, lire la table avec un filtre sur ce champ et cette valeur et ainsi ne trouver que les enregistrements de l’exécution actuelle du mapping. Définissez le post-traitement sur cette table et changez directement la valeur en retour en mettant une autre ligne de mise à jour comme enfant de la ligne de lecture. Comme l’ensemble du mapping est exécuté dans une transaction de base de données, vous ne devez traiter que les données que vous voulez traiter, si vous n’exécutez pas ce mapping plusieurs fois en même temps (ce que vous devez éviter à cause du verrouillage des tables).