ANVEDI Job Handler
Microsoft Dynamics 365 Business Central posiada system planowania zadań, który pozwala na uruchamianie codeunits w określonym czasie. Anveo EDI Connect oferuje dedykowaną codeunit, która może być używana. codeunit ma numer identyfikacyjny 5327312 i nazywa się ANVEDI Job Handler.

Ta codeunit oferuje różne zadania i może być kontrolowana przez łańcuch parametrów. Ciąg ten opiera się na prostych zasadach, a my pokażemy Ci przykłady dla każdej z dostępnych akcji. Ogólna składnia tego parametru jest następująca:
ACTION_NAME(Parameter1=Value1, Parameter2=Value2)
Istnieją dwa parametry, które są dostępne dla większości miejsc pracy, z wyjątkiem transakcji biznesowych:
Kontroluje, czy post-procesy są wykonywane automatycznie. Jeśli nie zostało to określone, to jest to domyślnie False.
Przetwarzanie wtórne powinno przebiegać później
Domyślna konfiguracja określa, czy będą uruchamiane post-processingi.
Ten parametr jest opcjonalny. Domyślną wartością jest brak widoku tabeli. Parametr określa widok w tabeli dla kolejki przetwarzania EDI, który jest używany jeśli ProcessFollowing=True. Ciągiem musi być widok tabeli Microsoft Dynamics 365 Business Central, jak WHERE(Project Code=FILTER(A*)).
Często stosowane działania
W większości przypadków, będziesz chciał skorzystać z jednej z poniższych czynności:
Otrzymywanie danych
Ta czynność spowoduje otrzymanie danych dla określonego kanału komunikacyjnego lub folderu.
RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
Będziesz musiał określić jeden z poniższych parametrów:
Określa ciąg filtrujący do kodu kanału komunikacyjnego. Może to być albo pełny kod, albo łańcuch filtracyjny.
Określa łańcuch filtrujący do kodu folderu transmisyjnego. Może to być albo pełny kod, albo łańcuch filtracyjny.
Wykonaj mapping
Często zdarza się, że jeśli chcesz wyeksportować dane, rozpoczynasz albo pracę z transakcją biznesową, albo NAV mapping. Ale system planowania może uruchomić każdy rodzaj mapping.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Dozwolone są następujące parametry:
Kod projektu lub łańcuch filtra w kodzie projektu.
Kod formatu lub łańcuch filtra na kodzie formatu.
Kod mapping lub łańcuch filtra na kodzie mapping.
Zabezpieczenie. Czy należy wykonać wiele mapowań. Defaults to False.
Możliwe jest wykonanie wielu mapowań.
Nie można wykonać wielu mapowań.
Gromadzenie danych o transakcjach biznesowych
Jeśli posiadasz typ transakcji biznesowej z gromadzeniem danych, możesz użyć następującego ciągu parametrów:
BT_COLLECT(Code=MY_BT_TYPE)
Jest tylko jeden parametr:
Kod typu transakcji biznesowej. Ten parametr nie pozwala na stosowanie filtrów.
Działania zaawansowane
Poniższe działania są bardziej wyspecjalizowane i nie są wykorzystywane tak często.
Proces wsadowy Dane o transakcjach biznesowych
BT_BATCH(Batch=MY_BATCH_CODE)
Kod Batch. Ten parametr nie pozwala na stosowanie filtrów.
Gromadzenie i przetwarzanie wsadowe danych o transakcjach biznesowych
Jest to połączenie BT_COLLECT i BT_BATCH.
BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
Kod Batch. Ten parametr nie pozwala na stosowanie filtrów.
Kod typu transakcji biznesowej. Ten parametr nie pozwala na stosowanie filtrów.
Proces Otwarte kolejki przetwarzania
Jeśli nie uruchomisz post-processingu automatycznie, możesz skonfigurować zadania do uruchamiania pewnych otwartych akcji.
PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Można skorzystać z parametrów ProcessQueueView i ProcessFollowing.
Wyślij otwarte transmisje
Zazwyczaj wysyłanie danych odbywa się po wykonaniu mapping. Jeśli jednak chcesz wysłać otwarte pliki w określonym czasie, możesz skorzystać z pracy.
SEND(Channel=MY_CHANNEL)
Określa ciąg filtrujący do kodu kanału komunikacyjnego. Może to być albo pełny kod, albo łańcuch filtracyjny.
Określa łańcuch filtrujący do kodu folderu transmisyjnego. Może to być albo pełny kod, albo łańcuch filtracyjny.
Uruchom kod niestandardowy Wywołanie zwrotne
Możesz użyć codeunitowej job handleer do uruchomienia własnego kodu.
Możesz określić tyle parametrów, ile potrzebujesz. Zalecamy użycie parametru Nazwa w celu określenia identyfikatora wywołania zwrotnego. Dostęp do parametrów można uzyskać z codeunit ANVEDI Callback. W codeunit ANVEDI Callback w funkcji CallbackRegistration można zareagować na zdarzenie OnJobCallback implementując następujący blok CASE:
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;
Należy pamiętać, że nazwy parametrów są konwertowane na duże litery w zmiennej ParameterDictionary. Możesz użyć następującego ciągu parametrów w kolejce zadań, aby wywołać wywołanie zwrotne:
CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)