ANVEDI Integration
L’codeunit d’ANVEDI Integration contient tous les appels API publics au module EDI, que vous pouvez appeler à partir de votre code personnalisé. Toutes les fonctions de cette codeunit sont censées être utilisées si vous souhaitez lancer directement une action EDI par code.
Concepts généraux
Dans cette section, nous allons d’abord aborder les concepts fondamentaux, que vous devez comprendre pour pouvoir lire les exemples de codes.
Transactions des utilisateurs
Anveo EDI Connect a un concept appelé « transactions utilisateur », qui peut couvrir plusieurs transactions de base de données et collecter plusieurs erreurs. La plupart des actions dans Anveo EDI Connect nécessiteront une transaction ouverte de l’utilisateur pour les exécuter. Vous pouvez lancer une transaction d’utilisateur en appelant :
L’appel à END_USER_TRANSACTION vous permet soit d’afficher les erreurs, soit de casser la transaction de base de données en cours, soit d’obtenir une valeur de retour, s’il y a eu une erreur. Nous en discuterons en détail plus tard.
BEGIN_USER_TRANSACTION
Lance une nouvelle transaction d’utilisateur. Veuillez noter que vous n’intégrez les appels dans le module EDI qu’aux points où un COMMIT peut avoir lieu. Dans de nombreux cas, le module validera toutes les modifications de la base de données avant d’exécuter la logique de l’EDI. Envisagez également de marquer les données et d’utiliser un travail en arrière-plan pour exécuter la logique de l’EDI.
Le texte donné est montré à l’utilisateur, si un dialogue d’attente est ouvert, parce que le processus prend du temps.
Vous devez toujours terminer un appel à BEGIN_USER_TRANSACTION par un appel à END_USER_TRANSACTION.
SHOWDIALOGS
Cette fonction peut être utilisée pour masquer tout dialogue EDI.
Le paramètre spécifie si les dialogues sont affichés ou non. Un appel à cette fonction doit se faire à l’intérieur d’une transaction d’utilisateur. Normalement, vous appelez cette fonction directement après BEGIN_USER_TRANSACTION.
ISPROCESSING
Cette fonction permet de savoir si vous êtes dans une exécution mapping. Vous pouvez vérifier cette valeur lors de la validation des déclencheurs, par exemple, pour obtenir un comportement différent lors du traitement des processus EDI. Vous pouvez également utiliser cette valeur pour afficher les dialogues de saisie uniquement lorsque vous ne traitez pas l’EDI.
END_USER_TRANSACTION
Cette fonction mettra fin à une transaction de l’utilisateur.
S’il y a eu des erreurs lors de la transaction, indiquez-les dans un dialogue à l’utilisateur final. Ce paramètre n’a aucun effet, si GUIALLOWED est False.
Si le module doit lancer une erreur, interrompant le déroulement du processus en cours. Tout code après cette ligne n’est pas exécuté, s’il y a eu une erreur lors de la transaction. Si vous réglez ce paramètre sur True, un message d’erreur indiquera qu’une ou plusieurs erreurs se sont produites, le cas échéant. Dans ce cas, l’utilisateur ne peut pas voir la liste complète des erreurs.
Une valeur de retour, qu’il y ait eu une erreur ou non. Rendements True sur la réussite, c’est-à-dire il n’y a pas eu d’erreurs ; False sinon.
La valeur de retour était nommée différemment dans les anciennes versions du module, mais avait la même fonction. L’ancien nom de la valeur de retour était incorrect, la fonction renvoyait toujours True en cas de succès.
Travailler avec les transactions commerciales
RUN_BUSINESSTRANSACTION_JOB
Exécute le travail de collecte de données d’un type de transaction commerciale spécifié. Il doit être appelé de l’intérieur d’une transaction d’utilisateur.
Code du type de transaction commerciale.
START_BT_WITH_REC
Lance une nouvelle transaction commerciale pour le code et l’identifiant d’enregistrement donnés.
RUN_BT_BATCH_JOB
Exécute le travail de collecte par lots avec le nom spécifié. Il doit être appelé de l’intérieur d’une transaction d’utilisateur.
Actions
Parfois, vous voulez créer un bouton sur une page pour lancer un processus EDI, ou vous voulez l’intégrer, par exemple, dans le processus de libération. Dans ce cas, vous pouvez exécuter presque toutes les actions du module à partir du code. Veuillez garder à l’esprit que les processus EDI doivent généralement être automatisés et se dérouler en arrière-plan. Ainsi, avant d’ajouter des actions dans le code, envisagez la possibilité d’un travail en arrière-plan comme alternative.
Effectuer une Mapping EDI
Pour exécuter une Mapping EDI, nous devons lancer une transaction utilisateur. Ensuite, nous pourrions vouloir transmettre des données à la mapping. Nous pouvons alors lancer la mapping et vérifier le résultat lorsque nous mettons fin à la transaction de l’utilisateur. Vous trouverez la description détaillée des commandes après l’exemple de code.
RESET_TABLEVIEWS
Réinitialise toutes les vues de table stockées existantes. Doit être appelé de l’intérieur d’une transaction d’utilisateur.
SET_TABLEVIEW
Stocke une vue de table sous un nom spécifique. Doit être appelé de l’intérieur d’une transaction d’utilisateur.
Un code représentant le nom du filtre. Vous devrez spécifier exactement le même nom dans la EDI Mapping pour récupérer le filtre.
Le texte du filtre sous la forme d’un tableau Anveo EDI Connect. Vous devez utiliser la fonction intégrée Microsoft Dynamics NAV 2015 GETVIEW, si possible, pour obtenir la chaîne correctement formatée.
GET_TABLEVIEW
Récupère un filtre stocké. Doit être appelé de l’intérieur d’une transaction d’utilisateur.
RUN
Effectuer une ou plusieurs cartographies EDI. Doit être appelé de l’intérieur d’une transaction d’utilisateur.
Le code du projet ou une chaîne de filtrage correspondant au code du projet.
Le code du format mapping ou une chaîne de filtrage correspondant au code du format.
Le code du mapping ou un filtre correspondant aux codes mapping souhaités.
Si plusieurs mappages doivent être exécutés au cas où un filtre est spécifié. Il s’agit d’un dispositif de sécurité qui vous empêche d’effectuer plus d’une mapping.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
Autres actions
RECEIVE_ALL
Fonction déqualifiée. Vous devez éviter d’appeler la fonction générale et appeler l’une des fonctions plus spécifiques ci-dessous.
Reçoit tous les canaux de communication. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
RECEIVE_FOLDER
Reçoit les données du ou des dossiers de transmission spécifiés. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
Le code du filtre de transmission ou une chaîne de filtrage sur le champ de code.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
RECEIVE_COMMUNICATIONCHANNEL
Reçoit les données du canal de communication spécifié. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
Le code du canal de communication ou une chaîne de filtrage sur le champ de code.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
SEND_ALL
Fonction déqualifiée. Vous devez éviter d’appeler la fonction générale et appeler l’une des fonctions plus spécifiques ci-dessous.
Envoie tous les canaux de communication. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
SEND_FOLDER
Envoie des transmissions ouvertes du dossier de transmission spécifié. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
Le code du dossier de transmission ou une chaîne de filtrage sur le champ de code.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
SEND_COMMUNICATIONCHANNEL
Envoie des transmissions ouvertes du canal de communication spécifié. Cette fonction doit être appelée de l’intérieur d’une transaction utilisateur.
Le code du canal de communication ou une chaîne de filtrage sur le champ de code.
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
PROCESS
Si le post-traitement doit être exécuté. Normalement, vous voulez mettre cette option sur « True« .
Un filtre sur les post-traitements. Vous pouvez normalement vouloir passer dans une chaîne vide.
Si seuls les post-traitements de la transaction actuelle de l’utilisateur doivent être traités.
Détermination du destinataire/expéditeur
SET_COMMUNICATION_CHANNEL
Définit le canal de communication pour l’appel mapping suivant dans la transaction de l’utilisateur.
Le code du canal de communication.
SET_RECEIVER_PARTNER
Définit le partenaire récepteur pour l’appel mapping suivant dans la transaction de l’utilisateur.
Le code du partenaire récepteur.
SET_RECEIVER_IDENTIFICATION
Définit l’identification du récepteur pour l’appel mapping suivant dans la transaction de l’utilisateur.
L’identification du destinataire. Il s’agit d’un texte libre, qui peut avoir une signification particulière sur certains canaux de communication.
SET_SENDER_PARTNER
Définit le partenaire expéditeur pour l’appel mapping suivant dans la transaction de l’utilisateur.
Le code du partenaire expéditeur.
SET_SENDER_IDENTIFICATION
Définit l’identification de l’expéditeur pour l’appel mapping suivant dans la transaction de l’utilisateur.
L’identification du destinataire. Il s’agit d’un texte libre, qui peut avoir une signification particulière sur certains canaux de communication.
Enregistrement et traitement des erreurs
Les fonctions suivantes ne peuvent être appelées que lorsqu’un mapping est en cours. Ces fonctions sont destinées à être utilisées par les gestionnaires d’erreurs personnalisés à partir du code.
LogError
Enregistre un message d’erreur.
Le message d’erreur. L’exécution se poursuivra après cet appel. Pour interrompre le flux de contrôle, utilisez la fonction native ERROR.
LogWarning
Enregistre un avertissement.
Le texte de l’avertissement.
LogInformation
Informations sur les journaux.
Les informations à consigner.
LogDocumentError
Enregistre une erreur appartenant à un document EDI. Il existe une fonction plus universelle appelée LogRecIDErrorWithCode.
Le message d’erreur.
Le document EDI auquel l’erreur appartient.
LogDocumentWarning
Enregistre un avertissement appartenant à un document EDI. Il existe une fonction plus universelle appelée LogRecIDWarningWithCode.
L’avertissement à consigner.
Le document EDI auquel l’erreur appartient.
LogDocumentInformation
Enregistre une information appartenant à un document EDI. Il existe une fonction plus universelle appelée LogRecIDInformationWithCode.
Les informations à consigner.
Le document EDI auquel l’erreur appartient.
LogDocumentLineError
Enregistre une erreur appartenant à une ligne de document EDI. Il existe une fonction plus générale appelée LogRecIDErrorWithCode.
Le message d’erreur à enregistrer.
La ligne du document EDI à laquelle appartient l’erreur.
LogDocumentLineWarning
Enregistre un avertissement appartenant à une ligne de document EDI. Il existe une fonction plus générale appelée LogRecIDWarningWithCode.
L’avertissement qui doit être consigné.
La ligne du document EDI à laquelle appartient l’erreur.
LogDocumentLineInformation
Enregistre une information appartenant à une ligne de documents EDI. Il existe une fonction plus générale appelée LogRecIDInformationWithCode.
Les informations à consigner.
La ligne du document EDI à laquelle appartient l’erreur.
LogErrorWithCode
Enregistre une erreur avec un code d’erreur supplémentaire.
S’il faut interrompre le flux de contrôle ou poursuivre l’exécution
Le message d’erreur à enregistrer.
Un code pour identifier l’erreur.
LogWarningWithCode
Enregistre un avertissement avec un code d’erreur supplémentaire.
L’avertissement qui doit être consigné.
Un code pour identifier l’erreur.
LogInformationWithCode
Enregistre une information avec un code d’erreur supplémentaire.
Les informations qui doivent être consignées.
Un code pour identifier l’erreur.
LogRecIDErrorWithCode
Enregistre un message d’erreur qui devrait appartenir à un enregistrement spécifique.
Qu’il s’agisse de rompre le flux de contrôle ou de poursuivre l’exécution.
Le message d’erreur à enregistrer.
L’ID d’enregistrement auquel l’erreur appartient.
Un code d’erreur pour identifier l’erreur.
Si l’erreur peut être acceptée par l’utilisateur final. Pour cela, il faut un code d’erreur non vide.
LogRecIDWarningWithCode
Enregistre un avertissement qui devrait faire partie d’un dossier.
L’avertissement qui doit être consigné.
L’enregistrement indique à qui l’avertissement doit appartenir.
Un code permettant d’identifier l’entrée du journal.
LogRecIDInformationWithCode
Enregistre une information qui devrait faire partie d’un dossier.
Les informations qui doivent être consignées.
L’enregistrement identifie l’information à laquelle elle doit appartenir.
Un code permettant d’identifier l’entrée du journal.