This is an automatic translation. The original post is available in Anglais.

ANVEDI Events

Anveo EDI Connect offre une codeunit unique pour les événements d’intégration : Codeunit ANVEDI Events. Vous pouvez réagir aux événements dans cette codeunit de code via votre propre codeunit. Les événements sont pris en charge à la fois dans la version FOB et la version Extension de Microsoft Dynamics.

Events

Les événements disponibles sont :

  • OnFunctionRegistration
  • OnFunctionExecution
  • OnJob
  • OnAcceptTransmission
  • OnBeforeList
  • OnAfterList
  • OnBeforeReceive
  • OnAfterReceive
  • OnBeforeArchive
  • OnAfterArchive
  • OnBeforeDelete
  • OnAfterDelete
  • OnBeforeSend
  • OnComposeMessage
  • OnAfterSend
  • OnReplacePlaceholder
  • OnError
  • OnAfterProcess

OnFunctionRegistration

Cet événement est appelé lorsque le module recherche des fonctions personnalisées. Vous pouvez définir vos propres fonctions en utilisant la fonctionnalité fournie par l’codeunit ANVEDI Function Register qui est fournie sous le nom Register. L’codeunit a deux fonctions : RegisterFunction et AddParameter.

RegisterFunction attend deux paramètres, le nom de l’objet et le nom de la fonction de votre nouvelle fonction. Ces noms peuvent être choisis librement, mais ne peuvent pas dépasser 30 caractères.

Les 29 premiers caractères de la combinaison du nom de l’objet et de la fonction doivent être uniques pour pouvoir spécifier les paramètres à partir de la mapping. Vous devez essayer de faire en sorte que les noms soient courts.

Après avoir enregistré une fonction, vous pouvez appeler AddParameter jusqu’à 5 fois. AddParameter attend un nom pour le paramètre de votre fonction. Vous pouvez utiliser plusieurs blocs de RegisterFunction et AddParameter dans un même événement. Mais nous recommandons de séparer les fonctions multiples pour les auditeurs d’événements multiples.

Exemple : Utilisation du registre des fonctions

Après avoir enregistré la fonction, vous devez réagir aux appels de fonction. Cela se fait par l’événement OnFunctionExecution décrit ci-après.

OnFunctionExecution

L’événement est appelé, lorsque le module recherche une implémentation de fonction personnalisée. Une instance de l’codeunit ANVEDI Function Call est transmise à cet événement sous le nom de FunctionCall.

Vous devez vérifier si le FunctionCall correspond à votre fonction personnalisée et n’exécuter qu’un code, si c’est le cas. Cela se fait en appelant la fonction Is() avec les mêmes paramètres que ceux que vous avez appelés RegisterFunction dans l’événement OnFunctionRegistration. Si Is() renvoie true, vous pouvez accéder aux paramètres, exécuter votre code personnalisé et renvoyer une valeur.

Exemple : Réagir à un appel de fonction

L’codeunit ANVEDI Function Call assure les fonctions suivantes :

Renvoie si l’appel de fonction correspond à la signature de fonction spécifiée.

Vous devez appeler cette fonction pour montrer au module que vous avez traité l’appel de fonction. Vous pouvez passer un résultat de fonction, ou simplement utiliser true comme résultat.

Récupère un paramètre avec le nombre donné comme texte. L’indice commence par 1.

Récupère un paramètre avec le nombre donné comme entier. L’indice commence par 1.

Récupère un paramètre avec le nombre donné comme booléen. L’indice commence par 1.

Récupère un paramètre avec le nombre donné comme décimal. L’indice commence par 1.

Récupère un paramètre avec le numéro donné comme date. L’indice commence par 1.

Récupère un paramètre avec le numéro donné comme date et heure. L’indice commence par 1.

Récupère un paramètre avec le nombre donné comme temps. L’indice commence par 1.

Récupère un paramètre avec le numéro donné comme EDIVariant. La fonction retourne, si le paramètre a pu être récupéré. L’indice commence par 1.

OnJob

Vous pouvez utiliser l’codeunit des emplois du module pour définir des emplois personnalisés. L’codeunit permet de prendre en charge l’utilisation de plusieurs paramètres. Vous pouvez trouver plus d’informations sur la documentation relative au gestionnaire de l’emploi.

ParamaterDictionary

Un dictionnaire contenant les paramètres passés au travail.

EventArgs

Si vous avez traité un travail, vous devez mettre l’événement en mode « traité ». La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAcceptTransmission

Cette fonction est appelée pour déterminer si un fichier ou un message doit être accepté ou ignoré par le module. Le module ne mémorise pas si une transmission a été ignorée et appelle cette fonction chaque fois qu’il voit une transmission. Le fichier n’est pas encore lu, vous ne pouvez donc décider qu’en fonction des métadonnées disponibles.

ANVEDITransmission

La transmission, pour laquelle les métadonnées ont été récupérées. Veuillez noter qu’aucune donnée n’a été reçue à ce stade et que l’enregistrement n’est pas encore inséré dans la base de données.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. Vous devez également renvoyer une valeur, qu’il s’agisse de traiter la transmission (mettez la valeur de retour à true) ; ou non (mettez la valeur à false). La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeList

Ce code est appelé avant que le module ne recherche de nouvelles données. Cela peut être utilisé pour émettre une commande ou un script externe pour recevoir les fichiers, avant que le module ne recherche de nouvelles données.

EDICommunicationChannel

Le canal de communication qui doit permettre de récupérer les données.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterList

EDICommunicationChannel

Le canal de communication qui doit récupérer les données.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

Ce code est appelé après que le module ait recherché de nouvelles données.

OnBeforeReceive

Cet événement est appelé avant qu’une transmission ne soit récupérée. Veuillez noter que vous ne pouvez pas interrompre le traitement à ce stade. Si vous souhaitez décider de récupérer ou non un message, veuillez utiliser l’événement OnAcceptTransmission.

ANVEDITransmission

La transmission. Les messages ne sont pas encore reçus.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterReceive

Cet événement est appelé après la réception d’une transmission.

ANVEDITransmission

La transmission après qu’elle ait été récupérée (vous pouvez accéder aux messages).

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeArchive

Cet événement est appelé avant qu’une transmission ne soit archivée.

ANVEDITransmission

La transmission qui va être archivée sur le site distant.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterArchive

Cet événement est appelé après l’archivage d’une transmission.

ANVEDITransmission

La transmission qui a été archivée sur le site distant.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeDelete

Cet événement est appelé avant qu’une transmission ne soit supprimée.

ANVEDITransmission

La transmission qui va être supprimée sur le site distant.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterDelete

Cet événement est appelé après la suppression d’une transmission.

ANVEDITransmission

La transmission qui a été supprimée de l’emplacement distant.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeSend

Cet événement est appelé avant l’envoi d’une transmission.

ANVEDITransmission

La transmission qui va être envoyée.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnComposeMessage

Cet événement est appelé lors de la composition d’une transmission.

ANVEDITransmission

La transmission qui est composée.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterSend

Cet événement est appelé après l’envoi d’une transmission.

ANVEDITransmission

La transmission qui a été envoyée.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnReplacePlaceholder

Cette fonction est appelée lorsque l’on évalue une chaîne de caractères pouvant contenir des variables définies par l’utilisateur, comme un nom de fichier.

Placeholder

Le nom du titulaire. Le module est actuellement à la recherche d’une valeur pour remplacer ce paramètre spécifique. Si vous souhaitez fournir une valeur, vous devez spécifier le résultat et définir l’événement à traiter dans les EventArgs.

ANVEDILinkedDocument

Un enregistrement pré-filtré des documents liés. Vous pouvez, par exemple, utiliser ce tableau pour obtenir les documents tampons qui sont contenus dans le fichier.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. Vous devez également fournir une valeur. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

L’exemple suivant montre comment vous pouvez renvoyer des données à partir du document lié :

Exemple : OnReplacePlaceholder

OnError

Cet événement est appelé lorsqu’une erreur se produit dans la file d’attente de traitement.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterProcess

Cet événement est appelé après le traitement d’une entrée dans la table EDI Processing Queue. Vous devez vérifier le statut de l’entrée passée et réagir en conséquence.

EventArgs

Si vous avez traité l’événement, vous devez le mettre en traitement. La description de la structure des ANVEDI Event Args se trouve à la fin de ce chapitre.

ANVEDI Event Args

Certains des événements utilisent une structure appelée ANVEDI Event Args. Cette structure vous permet de renvoyer des valeurs et de dire au module si vous avez géré l’événement.

Les fonctions suivantes sont disponibles sur les ANVEDI Event Args passés à l’événement :

Value

Si l’événement a été géré par votre code.

Value

La valeur de retour, si l’événement attend une valeur de retour.

Exemple

L’exemple suivant montre comment vous pouvez ajouter votre propre fonction personnalisée « MYOBJECT.MYFUNC », qui affiche un message contenant le nom fourni suivi de ‘ : ‘ et la valeur. Vous pouvez ajouter autant de fonctions à partir d’autant d’extensions que vous le souhaitez.

Exemple complet : Fonction personnalisée

Dépendances

Si vous souhaitez réagir aux événements via AL, vous devez ajouter une dépendance au module Anveo EDI Connect.

Les valeurs de l’extension sur site sont les suivantes

Veillez à remplacer x, y, z par le numéro de version correct.

Les valeurs pour l’extension en ligne du Business Central sont les suivantes

Veillez à remplacer x, y, z par le numéro de version correct.