C'est une traduction automatique. Le message original est disponible en 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 de cette codeunit via votre propre codeunit. Les événements sont pris en charge à la fois dans la version FOB et dans la version Extension Microsoft Dynamics.

Events

Les Events disponibles sont les suivants :

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

OnFunctionRegistration

procedure OnFunctionRegistration(Register: Codeunit "ANVEDI Function Register")

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 fournit 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 doivent 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 du mapping. Les noms doivent être 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 Event. Mais nous recommandons de séparer plusieurs fonctions en plusieurs récepteurs d’Event.

Register.RegisterFunction('CustomObj', 'MyFunction');
Register.AddParameter('Name');
Register.AddParameter('Value');
Exemple : Utilisation du registre des fonctions

Après avoir enregistré la fonction, vous devez réagir aux appels de fonction. Cette opération est réalisée par l’EventOnFunctionExecution Event décrit ci-après.

OnFunctionExecution

procedure OnFunctionExecution(FunctionCall: Codeunit "ANVEDI Function Call")

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

Vous devez vérifier si l’FunctionCall correspond à votre fonction personnalisée et n’exécuter le code que si c’est le cas. Pour ce faire, il convient d’appeler la fonction Is() avec les mêmes paramètres que ceux utilisés pour RegisterFunction dans l’EventOnFunctionRegistration. Si Is() renvoie un résultat positif, vous pouvez accéder aux paramètres, exécuter votre code personnalisé et renvoyer une valeur.

if FunctionCall.Is(ObjectNameTok, FunctionNameTok) then begin
            Name := FunctionCall.GetTextParameter(1);
            Val := FunctionCall.GetIntegerParameter(2);
            Message(Name + ': ' + Format(Val));
            FunctionCall.SetResult(TRUE);
 end;
Exemple : Réagir à un appel de fonction

L’codeunit ANVEDI Function Call fournit les fonctions suivantes :

procedure Is(ObjectName: Text[30];FunctionName: Text[30]): Boolean

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

procedure SetResult(Value: Variant)

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

procedure GetTextParameter(ParNum: Integer): Text[1024]

Récupère un paramètre avec le numéro donné sous forme de texte. L’index commence par 1.

procedure GetIntegerParameter(ParNum: Integer): Integer

Récupère un paramètre avec le nombre donné en tant qu’entier. L’index commence par 1.

procedure GetBooleanParameter(ParNum: Integer): Boolean

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

procedure GetDecimalParameter(ParNum: Integer): Decimal

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

procedure GetDateParameter(ParNum: Integer): Date

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

procedure GetTimeParameter(ParNum: Integer): Time

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

procedure GetDateTimeParameter(ParNum: Integer): DateTime

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

procedure GetParameter(ParNum: Integer;var EDIVariant: Codeunit "ANVEDI Variant"): Boolean

Récupère un paramètre avec le numéro donné en tant qu’EDIVariant. La fonction indique si le paramètre a pu être récupéré. L’index commence par 1.

OnJob

procedure OnJob(ParameterDictionary: Codeunit "ANVEDI Data Structures";EventArgs: Codeunit "ANVEDI Event Args")

Vous pouvez utiliser l’codeunit du module pour définir des tâches personnalisées. L’codeunit permet l’utilisation de plusieurs paramètres. Vous trouverez de plus amples informations dans la documentation sur le gestionnaire de tâches.

ParamaterDictionary

Un dictionnaire contenant les paramètres transmis au travail.

EventArgs

Si vous avez traité un travail, vous devez définir l’Event comme étant traité. La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAcceptTransmission

procedure OnAcceptTransmission(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cette fonction est appelée pour déterminer si un fichier ou un message doit être accepté ou ignoré par le module. Le module n’enregistre 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 prendre une décision que sur la base 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’a pas encore été inséré dans la base de données.

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». Vous devez également renvoyer une valeur indiquant si la transmission doit être traitée (la valeur de retour doit être  » true« ) ou non (la valeur de retour doit être  » false« ). La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeList

procedure OnBeforeList(EDICommunicationChannel: Record "ANVEDI Communication Channel";EventArgs: Codeunit "ANVEDI Event Args")

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

EDICommunicationChannel

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer la valeur « handled ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterList

procedure OnAfterList(EDICommunicationChannel: Record "ANVEDI Communication Channel";EventArgs: Codeunit "ANVEDI Event Args")
EDICommunicationChannel

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

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

OnBeforeReceive

procedure OnBeforeReceive(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event 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, utilisez l’EventOnAcceptTransmission.

ANVEDITransmission

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterReceive

procedure OnAfterReceive(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

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

ANVEDITransmission

La transmission après avoir été récupérée (vous pouvez accéder aux messages).

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeArchive

procedure OnBeforeArchive(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event est appelé avant l’archivage d’une transmission.

ANVEDITransmission

La transmission qui sera archivée sur le site distant.

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterArchive

procedure OnAfterArchive(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event 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’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeDelete

procedure OnBeforeDelete(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event est appelé avant la suppression d’une transmission.

ANVEDITransmission

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterDelete

procedure OnAfterDelete(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event 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’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnBeforeSend

procedure OnBeforeSend(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

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

ANVEDITransmission

La transmission qui va être envoyée.

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnComposeMessage

procedure OnComposeMessage(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event est appelé lorsqu’une transmission est composée.

ANVEDITransmission

La transmission qui est composée.

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterSend

procedure OnAfterSend(ANVEDITransmission: Record "ANVEDI Transmission";EventArgs: Codeunit "ANVEDI Event Args")

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

ANVEDITransmission

La transmission qui a été envoyée.

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer la valeur « handled ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnReplacePlaceholder

procedure OnReplacePlaceholder(Placeholder: Text[50];var ANVEDILinkedDocument: Record "ANVEDI Linked Document";EventArgs: Codeunit "ANVEDI Event Args")

Cette fonction est appelée lors de l’évaluation d’une chaîne de caractères pouvant contenir des variables définies par l’utilisateur, telles qu’un nom de fichier.

Placeholder

Le nom de l’espace réservé. Le module recherche actuellement une valeur pour remplacer cet espace réservé spécifique. Si vous souhaitez fournir une valeur, vous devez spécifier le résultat et définir l’événement à gérer dans l’EventArgs

ANVEDILinkedDocument

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». Vous devez également apporter une valeur ajoutée. La description de la structure 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é :

[EventSubscriber(ObjectType::Codeunit, Codeunit::="" Events="" TRUE,="" TRUE)]=""]
local procedure OnReplacePlaceholderExternalDocumentNo(Placeholder: Text[50];var ANVEDILinkedDocument: Record "ANVEDI Linked Document";EventArgs: Codeunit "ANVEDI Event Args")
var
  recID: RecordID;
  ediDocument: Record "ANVEDI Document";
begin
  if Placeholder = 'ExternalDocumentNo' then begin
    if ANVEDILinkedDocument.FindSet() then 
      repeat
        recID := ANVEDILinkedDocument.RecordId;
        if recID.TableNo = Database::"ANVEDI Document" then begin
          ediDocument.get(recID);
          EventArgs.SetResult(ediDocument."External Document No.");
          EventArgs.SetHandled(true);
          exit;
        end;
      until ANVEDILinkedDocument.Next() = 0;
  end;
end;
Exemple : OnReplacePlaceholder

OnError

procedure OnError(ANVEDIProcessingQueue: Record "ANVEDI Processing Queue";EventArgs: Codeunit "ANVEDI Event Args")

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

EventArgs

Si vous avez traité l’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

OnAfterProcess

procedure OnAfterProcess(ANVEDIProcessingQueue: Record "ANVEDI Processing Queue";EventArgs: Codeunit "ANVEDI Event Args")

Cet Event 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’Event, vous devez lui attribuer le statut « traité ». La description de la structure ANVEDI Event Args se trouve à la fin de ce chapitre.

ANVEDI Event Args

Certains Events utilisent une structure appelée ANVEDI Event Args. Cette structure vous permet de renvoyer des valeurs et d’indiquer au module si vous avez traité l’événement.

Les fonctions suivantes sont disponibles pour l’ANVEDI Event Args transmis à l’Event:

SetHandled(Value: Boolean)
Value

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

SetResult(Value: Variant)
Value

La valeur de retour, si l’Event 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 de la valeur. Vous pouvez ajouter autant de fonctions provenant d’autant d’extensions que vous le souhaitez.

codeunit 50100 MyAnveoFunctions
{
    var
        ObjectNameTok: label 'MYOBJECT';
        FunctionNameTok: label 'MYFUNC';


    [EventSubscriber(ObjectType::Codeunit, Codeunit::="" Events="" TRUE,="" TRUE)]=""]
    local procedure OnRegisterFunctions(Register: Codeunit "ANVEDI Function Register")
    begin
        Register.RegisterFunction(ObjectNameTok, FunctionNameTok);
        Register.AddParameter('Name');
        Register.AddParameter('Value');
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::="" Events="" TRUE,="" TRUE)]=""]
    local procedure OnFunction(FunctionCall: Codeunit "ANVEDI Function Call")
    var
        Name: Text;
        Val: Integer;
    begin
        if FunctionCall.Is(ObjectNameTok, FunctionNameTok) then begin
            Name := FunctionCall.GetTextParameter(1);
            Val := FunctionCall.GetIntegerParameter(2);
            Message(Name + ': ' + Format(Val));
            FunctionCall.SetResult(TRUE);
        end;
    end;
}
Exemple complet : Fonction personnalisée

Dépendances

Si vous souhaitez réagir à l’Event via AL, vous devez ajouter une dépendance au module Anveo EDI Connect.

Les valeurs pour l’Extension OnPremise sont les suivantes :

{
      "id": "25286BD2-B08A-49F9-B613-64122CCEE4E1",
      "name": "Anveo EDI Connect - OnPremise",
      "publisher": "conion media GmbH",
      "version": "5.x.y.z"
}

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

Les valeurs du Business Central Online et de l’Extension code universel sont les suivantes :

{
      "id": "FC195C4F-19BF-4167-BFE8-6D1FF7D266BC",
      "name": "Anveo EDI Connect",
      "publisher": "conion media GmbH",
      "version": "5.x.y.z"
}

Veillez à remplacer x, y, z par le numéro de version correct. Les anciennes versions de la CB s’appelaient « id » « appId ».