ANVEDI Job Handler
LaMicrosoft Dynamics 365 Business Central dispose d’un système de planification des tâches qui vous permet d’exécuter des codeunits à certains moments. Anveo EDI Connect propose une codeunit dédiée qui peut être utilisée. L’codeunit a le numéro d’identification 5327312 et s’appelle ANVEDI Job Handler.

Cette codeunit offre différents emplois et peut être contrôlée par la chaîne de paramètres. Cette chaîne suit des règles simples et nous vous montrerons des exemples pour chacune des actions disponibles. La syntaxe générale de ce paramètre est :
ACTION_NAME(Parameter1=Value1, Parameter2=Value2)
Deux paramètres sont disponibles pour la plupart des emplois, sauf pour les transactions commerciales :
Contrôle si les post-traitements sont exécutés automatiquement. Par défaut, la valeur est False, si elle n’est pas spécifiée.
Le post-traitement doit se faire après
La configuration par défaut déterminera si les post-traitements fonctionneront.
Ce paramètre est facultatif. La valeur par défaut n’est pas une vue en tableau. Ce paramètre spécifie une vue sur la table pour la file d’attente de traitement EDI qui est utilisée si ProcessFollowing=True. La chaîne doit être une vue de table Microsoft Dynamics 365 Business Central, comme WHERE(Project Code=FILTER(A*))).
Actions fréquemment utilisées
La plupart du temps, vous voudrez utiliser l’une des actions suivantes :
Réception des données
Cette action recevra des données pour un canal de communication ou un dossier spécifique.
RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
Vous devrez spécifier l’un des paramètres suivants :
Spécifie une chaîne de filtrage au code du canal de communication. Il peut s’agir soit du code complet, soit d’une chaîne de filtrage.
Spécifie une chaîne de filtrage au code du dossier de transmission. Il peut s’agir soit du code complet, soit d’une chaîne de filtrage.
Faire un mapping
Souvent, si vous voulez exporter des données, vous commencez soit par un travail de transaction commerciale, soit par une mapping de la valeur nette (NAV mapping). Mais le système de programmation peut exécuter n’importe quel type de mapping.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Les paramètres autorisés sont les suivants :
Le code du projet ou une chaîne de filtrage sur le code du projet.
Le code de format ou une chaîne de filtrage sur le code de format.
Le code mapping ou une chaîne de filtrage sur le code mapping.
Dispositif de sécurité. Si plusieurs mappages doivent être exécutés. Par défaut, c’est False.
Plusieurs cartographies peuvent être exécutées.
Il n’est pas possible d’exécuter plusieurs mappages.
Recueillir des données sur les transactions commerciales
Si vous avez un type de transaction commerciale avec collecte de données, vous pouvez utiliser la chaîne de paramètres suivante :
BT_COLLECT(Code=MY_BT_TYPE)
Il n’y a qu’un seul paramètre :
Le code du type de transaction commerciale. Ce paramètre n’autorise pas les filtres.
Actions avancées
Les actions suivantes sont plus spécialisées et ne sont pas utilisées aussi fréquemment.
Traitement par lots des données relatives aux transactions commerciales
BT_BATCH(Batch=MY_BATCH_CODE)
Le code du Batch. Ce paramètre n’autorise pas les filtres.
Collecte et traitement par lots des données relatives aux transactions commerciales
Il s’agit d’une combinaison de BT_COLLECT et BT_BATCH.
BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
Le code du Batch. Ce paramètre n’autorise pas les filtres.
Le code du type de transaction commerciale. Ce paramètre n’autorise pas les filtres.
Traitement des files d’attente ouvertes
Si vous n’exécutez pas les post-traitements automatiquement, vous pouvez configurer des emplois pour exécuter certaines actions ouvertes.
PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Vous pouvez utiliser les paramètres ProcessQueueView et ProcessFollowing.
Envoyer des transmissions ouvertes
L’envoi des données est généralement effectué après l’exécution de la mapping. Si vous souhaitez toutefois envoyer des fichiers ouverts à un certain moment, vous pouvez utiliser un emploi.
SEND(Channel=MY_CHANNEL)
Spécifie une chaîne de filtrage au code du canal de communication. Il peut s’agir soit du code complet, soit d’une chaîne de filtrage.
Spécifie une chaîne de filtrage au code du dossier de transmission. Il peut s’agir soit du code complet, soit d’une chaîne de filtrage.
Exécuter le rappel de code personnalisé
Vous pouvez utiliser l’codeunit du gestionnaire de tâches pour exécuter votre code personnalisé.
Vous pouvez spécifier autant de paramètres que vous le souhaitez. Nous recommandons d’utiliser un paramètre Nom pour spécifier un identifiant de rappel. Vous pouvez accéder aux paramètres à partir de l’codeunit ANVEDI Callback. Dans l’codeunit ANVEDI Callback de la fonction CallbackRegistration, vous pouvez réagir à l’événement OnJobCallback en implémentant le bloc CASE suivant :
CallbackSupport.OnJobCallback(ParameterDictionary):
BEGIN
IF NOT ParameterDictionary.GETBYKEY('NAME', Tmp) THEN
ERROR(Text001);
Name := Tmp;
CASE UPPERCASE(Name) OF
'Example':
BEGIN
IF NOT ParameterDictionary.GETBYKEY('MYPARAM1', Tmp) THEN
ERROR(Text001);
MyParam1 := tmp;
IF NOT ParameterDictionary.GETBYKEY('MYPARAM2', Tmp) THEN
ERROR(Text001);
MyParam2 := tmp;
// Do something with the parameters MyParam1 and MyParam2
END;
ELSE
ERROR(Text002, Name);
END;
END;
Veuillez noter que les noms des paramètres sont convertis en majuscules dans la variable ParameterDictionary. Vous pouvez utiliser la chaîne de paramètres suivante dans la Job Queue pour appeler le rappel :
CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)