Anveo EDI Connect / Config / Automatisering / ANVEDI Job Handler
Dit is een automatische vertaling. De originele post is beschikbaar in Engels.

ANVEDI Job Handler

Microsoft Dynamics 365 Business Central heeft een taakplanningssysteem waarmee je codeunits op bepaalde tijden kunt uitvoeren. Anveo EDI Connect biedt een speciale codeunit die kan worden gebruikt. De codeunit heeft ID 5327312 en heet ANVEDI Job Handler.

Voorbeeld van Job Queue Setup in Microsoft Dynamics 365 Business Central

Deze codeunit biedt verschillende opdrachten en kan worden geregeld met de parameter string. Deze string volgt eenvoudige regels en we zullen je voorbeelden laten zien voor elk van de beschikbare acties. De algemene syntaxis van deze parameter is:

ACTION_NAME(Parameter1=Value1, Parameter2=Value2)

Er zijn twee parameters beschikbaar voor de meeste taken, behalve voor Bedrijfstransacties:

ProcessFollowing

Bepaalt of nabewerkingen automatisch worden uitgevoerd. Dit is standaard False als het niet is opgegeven.

True

De nabewerking moet daarna worden uitgevoerd

False

De standaardinstelling bepaalt of nabewerkingen worden uitgevoerd.

ProcessQueueView

Deze parameter is optioneel. De standaardwaarde is geen tabelweergave. Deze parameter specificeert een weergave van de tabel voor de EDI-verwerkingswachtrij die wordt gebruikt als ProcessFollowing=True. De string moet een Microsoft Dynamics 365 Business Central-tabelweergave zijn, zoals WHERE(Project Code=FILTER(A*)).

Veelgebruikte acties

Meestal zul je een van de volgende acties willen gebruiken:

Gegevens ontvangen

Deze actie ontvangt gegevens voor een opgegeven communicatiekanaal of map.

RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
Voorbeeld Parameter String: Gegevens ontvangen van communicatiekanaal MY_COMM_CHANNEL

Je moet een van de volgende parameters opgeven:

Channel

Geeft een filterstring op voor de code van het communicatiekanaal. Dit kan de volledige code zijn of een filterstring.

Folder

Geeft een filterstring op voor de mapcode van de transmissie. Dit kan de volledige code zijn of een filterstring.

Een mapping uitvoeren

Als je gegevens wilt exporteren, begin je vaak met een zakelijke transactieopdracht of een NAV mapping. Maar het planningssysteem kan elke soort mapping uitvoeren.

RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
Voorbeeld Parameter String: Voer de mapping TEST, NAV, EXPORT_JOB uit.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Voorbeeld Parameter String: Voer alle NAV-toewijzingen van project TEST uit.

De toegestane parameters zijn:

ProjectFilter

De projectcode of een filterstring op de projectcode.

FormatFilter

De opmaakcode of een filterstring op de opmaakcode.

CodeFilter

De mapping of een filterstring op de mapping.

MultipleAllowed

Veiligheidsfunctie. Of meerdere toewijzingen moeten worden uitgevoerd. Wordt standaard ingesteld op False.

True

Er kunnen meerdere toewijzingen worden uitgevoerd.

False

Meerdere toewijzingen kunnen niet worden uitgevoerd.

Gegevens over zakelijke transacties verzamelen

Als je een bedrijfstransactietype met gegevensverzameling hebt, kun je de volgende parameterreeks gebruiken:

BT_COLLECT(Code=MY_BT_TYPE)
Voorbeeld Parameter String: Verzamel de gegevens zoals gedefinieerd in het bedrijfstransactietype MY_BT_TYPE.

Er is maar één parameter:

Code

De code van het type bedrijfstransactie. Deze parameter staat geen filters toe.

Onderhoud

Als je de automatische herhalingsfunctie van de toewijzingen of communicatiekanalen wilt gebruiken, moet je een eenvoudige onderhoudstaak instellen. Deze functie is echt snel als er niets te doen is en kan vrij vaak worden uitgevoerd. Houd er rekening mee dat de taak minstens zo vaak moet worden uitgevoerd als je acties opnieuw wilt proberen.

MAINTENANCE()
Voorbeeld Parameter String: Automatische processen zoals retries uitvoeren.

De opdracht heeft geen parameters.

Geavanceerde acties

De volgende acties zijn meer gespecialiseerd en worden niet zo vaak gebruikt.

Batchverwerking Bedrijfstransactiegegevens

BT_BATCH(Batch=MY_BATCH_CODE)
Voorbeeld Parameter String: Voer de batchactie uit met code MY_BATCH_CODE.
Batch

De code van de Batch. Deze parameter staat geen filters toe.

Zakelijke transactiegegevens verzamelen en batchgewijs verwerken

Dit is een combinatie van BT_COLLECT en BT_BATCH.

BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
Voorbeeld Parameter String: Verzamel gegevens van MY_BT_TYPE en voer de batchactie uit met code MY_BATCH_CODE.
Batch

De code van de Batch. Deze parameter staat geen filters toe.

Code

De code van het type bedrijfstransactie. Deze parameter staat geen filters toe.

Verwerken Open verwerkingswachtrijen

Als je nabewerkingen niet automatisch uitvoert, kun je taken instellen om bepaalde open acties uit te voeren.

PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Voorbeeld Parameter String: Verwerk open vermeldingen van project MY_PROJECT.

Je kunt de parameters ProcessQueueView en ProcessFollowing gebruiken.

Open transmissies verzenden

Gewoonlijk wordt het verzenden van gegevens uitgevoerd als een vervolgstap op de mapping. Als je echter geopende bestanden op een bepaald tijdstip wilt verzenden, kun je een taak gebruiken.

SEND(Channel=MY_CHANNEL)
Voorbeeld Parameter String: Stuur de open transmissie van MY_CHANNEL.
Channel

Geeft een filterstring op voor de code van het communicatiekanaal. Dit kan de volledige code zijn of een filterstring.

Folder

Geeft een filterstring op voor de mapcode van de transmissie. Dit kan de volledige code zijn of een filterstring.

Aangepaste code terugbellen

Je kunt de job handler codeunit gebruiken om je aangepaste code uit te voeren.

Je kunt zoveel parameters opgeven als je nodig hebt. We raden aan een parameter Name te gebruiken om een callback identifier te specificeren. Je hebt toegang tot de parameters vanuit de codeunit ANVEDI Callback. In codeunit ANVEDI Callback kun je in de functie CallbackRegistration reageren op de gebeurtenis OnJobCallback door het volgende CASE-blok te implementeren:

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;
Voorbeeldcode in ANVEDI Codeunit.

Merk op dat de parameternamen worden geconverteerd naar hoofdletters in de variabele ParameterDictionary. Je kunt de volgende parameterstring in de Taakwachtrij gebruiken om de callback aan te roepen:

CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)
Voorbeeld Parameter String: Aangepaste code oproepen