ANVEDI Job Handler
Microsoft Dynamics NAV 2013R2 heeft een job scheduling systeem dat u in staat stelt om codeunits te draaien op bepaalde tijdstippen. Anveo EDI Connect biedt een speciale codeunit aan die gebruikt kan worden. De codeunit heeft de ID 5327312 en heet ANVEDI Job Handler.

Deze codeunit biedt verschillende jobs aan en kan worden aangestuurd door de parameterstring. Deze string volgt eenvoudige regels en we laten u voorbeelden zien voor elk van de beschikbare acties. De algemene syntaxis van deze parameter is:
ACTION_NAME(Parameter1=Value1, Parameter2=Value2)
Er zijn twee parameters die beschikbaar zijn voor de meeste banen, behalve voor Bedrijfstransacties:
Controleert of post-processen automatisch worden uitgevoerd. Dit is standaard False, indien niet gespecificeerd.
De nabewerking moet achteraf plaatsvinden
De standaardinstelling bepaalt of post-processen worden uitgevoerd.
Deze parameter is optioneel. De standaardwaarde is geen tabelweergave. Deze parameter specificeert een view op de tabel voor de EDI Processing Queue die gebruikt wordt als ProcessFollowing=True. De string moet een Microsoft Dynamics NAV 2013R2-tabelweergave zijn, zoals WHERE(Project Code=FILTER(A*)).
Veelgebruikte acties
Meestal zult u een van de volgende acties willen gebruiken:
Ontvangen van gegevens
Deze actie ontvangt gegevens voor een bepaald communicatiekanaal of een bepaalde map.
RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
U zult een van de volgende parameters moeten opgeven:
Specificeert een filterstring naar de code van het communicatiekanaal. Dit kan ofwel de volledige code zijn, ofwel een filterkoord.
Specificeert een filterstring naar de mapcode van de transmissie. Dit kan ofwel de volledige code zijn, ofwel een filterkoord.
Een mapping uitvoeren
Vaak gebeurt het dat als u gegevens wilt exporteren, u begint met een zakelijke transactietaak, of een NAV mapping. Maar het planningsysteem kan elke vorm van mapping uitvoeren.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
De toegestane parameters zijn:
De projectcode of een filterstring op de projectcode.
De formaatcode of een filterstring op de formaatcode.
De mapping code of een filterstring op de mapping code.
Veiligheidskenmerk. Of er meerdere mappings moeten worden uitgevoerd. Standaard op False.
Meerdere mappings kunnen worden uitgevoerd.
Meerdere mappings kunnen niet worden uitgevoerd.
Verzamelen van zakelijke transactiegegevens
Als u een zakelijk transactietype met gegevensverzameling heeft, kunt u de volgende parameterstring gebruiken:
BT_COLLECT(Code=MY_BT_TYPE)
Er is maar één parameter:
De code van het type zakelijke transactie. Deze parameter laat geen filters toe.
Geavanceerde Acties
De volgende acties zijn meer gespecialiseerd en worden niet zo vaak gebruikt.
Batchproces Zakelijke transactiegegevens
BT_BATCH(Batch=MY_BATCH_CODE)
De code van de Batch. Deze parameter laat geen filters toe.
Verzamelen en in batch verwerken van zakelijke transactiegegevens
Dit is een combinatie van BT_COLLECT en BT_BATCH.
BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
De code van de Batch. Deze parameter laat geen filters toe.
De code van het type zakelijke transactie. Deze parameter laat geen filters toe.
Proces Open Verwerkingswachtrijen
Als u de post-processen niet automatisch uitvoert, kunt u taken instellen om bepaalde openstaande acties uit te voeren.
PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
U kunt de parameters ProcessQueueView en ProcessFollowing gebruiken.
Openstaande transmissies verzenden
Meestal wordt het verzenden van gegevens gedaan als een post-stap van de mapping uitvoering. Als u echter op een bepaald moment openstaande bestanden wilt verzenden, kunt u gebruik maken van een opdracht.
SEND(Channel=MY_CHANNEL)
Specificeert een filterstring naar de code van het communicatiekanaal. Dit kan ofwel de volledige code zijn, ofwel een filterkoord.
Specificeert een filterstring naar de mapcode van de transmissie. Dit kan ofwel de volledige code zijn, ofwel een filterkoord.
Voer aangepaste code terugbellen uit
U kunt de job handler codeunit gebruiken om uw aangepaste code uit te voeren.
U kunt zoveel parameters opgeven als u nodig heeft. We raden aan een parameter Naam te gebruiken om een terugbelidentificatie te specificeren. U heeft toegang tot de parameters via de ANVEDI Callback codeunit. In codeunit ANVEDI Callback in de functie CallbackRegistration kunt u reageren op de OnJobCallback gebeurtenis 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;
Let erop dat de parameternamen in de variabele ParameterDictionary in hoofdletters worden omgezet. U kunt de volgende parameterreeks in de Job Queue gebruiken om het terugbellen op te roepen:
CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)