Anveo EDI Connect / Config / Automatyzacja / ANVEDI Job Handler
Jest to tłumaczenie automatyczne. Pierwotne stanowisko jest dostępne w angielski.

ANVEDI Job Handler

Microsoft Dynamics 365 Business Central posiada system planowania zadań, który pozwala na uruchamianie codeunits w określonych godzinach. Anveo EDI Connect oferuje dedykowaną codeunit, z której można korzystać. codeunit ma identyfikator 5327312 i nazywa się ANVEDI Job Handler.

Przykładowa konfiguracja kolejki zadań w Microsoft Dynamics 365 Business Central

Ta codeunit oferuje różne zadania i może być kontrolowana przez ciąg parametrów. Ciąg ten podlega prostym zasadom, a my pokażemy 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 zadań, z wyjątkiem transakcji biznesowych:

ProcessFollowing

Kontroluje, czy przetwarzanie końcowe jest wykonywane automatycznie. Domyślnie jest to wartość False, jeśli nie została określona.

True

Przetwarzanie końcowe powinno zostać uruchomione później

False

Domyślna konfiguracja określi, czy post-processing zostanie uruchomiony.

ProcessQueueView

Ten parametr jest opcjonalny. Wartością domyślną jest brak widoku tabeli. Ten parametr określa widok w tabeli dla EDI Processing Queue, który jest używany, jeśli ProcessFollowing=True. Ciąg musi być widokiem tabeli Microsoft Dynamics 365 Business Central, na przykład WHERE(Project Code=FILTER(A*)).

Często używane akcje

W większości przypadków będziesz chciał użyć jednej z poniższych akcji:

Odbieranie danych

Ta akcja spowoduje odebranie danych dla określonego kanału komunikacyjnego lub folderu.

RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
Przykładowy parametr String: Odbiór danych z kanału komunikacyjnego MY_COMM_CHANNEL

Konieczne będzie określenie jednego z następujących parametrów:

Channel

Określa ciąg filtra do kodu kanału komunikacyjnego. Może to być pełny kod lub ciąg filtrujący.

Folder

Określa ciąg filtra do kodu folderu transmisji. Może to być pełny kod lub ciąg filtrujący.

Uruchom mapping

Często, jeśli chcesz wyeksportować dane, zaczynasz od zadania transakcji biznesowych lub NAV mapping. Ale system planowania może uruchomić dowolny rodzaj mapping.

RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
Przykładowy ciąg parametrów: Run the mapping TEST, NAV, EXPORT_JOB.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Przykładowy ciąg parametrów: Uruchom wszystkie mapowania NAV projektu TEST.

Dozwolone parametry to:

ProjectFilter

Kod projektu lub ciąg filtrujący kodu projektu.

FormatFilter

Kod formatu lub ciąg filtru na kodzie formatu.

CodeFilter

Kod mapping lub ciąg filtrujący kodu mapping.

MultipleAllowed

Funkcja bezpieczeństwa. Czy należy wykonać wiele mapowań. Domyślnie False.

True

Można wykonać wiele mapowań.

False

Nie można wykonać wielu mapowań.

Zbieranie danych o transakcjach biznesowych

Jeśli masz typ transakcji biznesowej z gromadzeniem danych, możesz użyć następującego ciągu parametrów:

BT_COLLECT(Code=MY_BT_TYPE)
Przykładowy parametr String: Zbierz dane zdefiniowane w typie transakcji biznesowej MY_BT_TYPE.

Jest tylko jeden parametr:

Code

Kod typu transakcji biznesowej. Ten parametr nie zezwala na stosowanie filtrów.

Konserwacja

Jeśli chcesz korzystać z funkcji automatycznego ponawiania mapowań lub kanałów komunikacyjnych, musisz skonfigurować proste zadanie konserwacyjne. Ta praca jest naprawdę szybka, gdy nie ma nic do zrobienia i może być wykonywana dość często. Należy pamiętać, że zadanie musi być uruchamiane co najmniej tak często, jak często mają być ponawiane akcje.

MAINTENANCE()
Przykładowy ciąg parametrów: Uruchom automatyczne procesy, takie jak ponawianie prób.

Zadanie nie ma parametrów.

Działania zaawansowane

Poniższe akcje są bardziej wyspecjalizowane i nie są używane zbyt często.

Przetwarzanie wsadowe danych transakcji biznesowych

BT_BATCH(Batch=MY_BATCH_CODE)
Przykładowy ciąg parametrów: Uruchom akcję wsadową z kodem MY_BATCH_CODE.
Batch

Kod Batch. Ten parametr nie zezwala na stosowanie filtrów.

Zbieranie i przetwarzanie wsadowe danych transakcji biznesowych

Jest to połączenie BT_COLLECT i BT_BATCH.

BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
Przykładowy ciąg parametrów: Zbierz dane z MY_BT_TYPE i uruchom akcję wsadową z kodem MY_BATCH_CODE.
Batch

Kod Batch. Ten parametr nie zezwala na stosowanie filtrów.

Code

Kod typu transakcji biznesowej. Ten parametr nie zezwala na stosowanie filtrów.

Otwarte kolejki przetwarzania

Jeśli postprocessing nie jest uruchamiany automatycznie, można skonfigurować zadania do uruchamiania określonych otwartych akcji.

PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Przykładowy parametr String: Przetwórz otwarte wpisy z projektu MY_PROJECT.

Można użyć parametrów ProcessQueueView i ProcessFollowing.

Wysyłanie otwartych transmisji

Zazwyczaj wysyłanie danych odbywa się po wykonaniu mapping. Jeśli jednak chcesz wysyłać otwarte pliki w określonym czasie, możesz użyć zadania.

SEND(Channel=MY_CHANNEL)
Przykładowy parametr String: Wyślij otwartą transmisję MY_CHANNEL.
Channel

Określa ciąg filtra do kodu kanału komunikacyjnego. Może to być pełny kod lub ciąg filtrujący.

Folder

Określa ciąg filtra do kodu folderu transmisji. Może to być pełny kod lub ciąg filtrujący.

Uruchom wywołanie zwrotne kodu niestandardowego

Do uruchamiania niestandardowego kodu można użyć codeunit obsługi zadań.

Można określić dowolną liczbę parametrów. Zalecamy użycie parametru Name 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 reagować 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;
Przykładowy kod w Codeunit wywołania zwrotnego ANVEDI.

Należy pamiętać, że nazwy parametrów są konwertowane na wielkie litery w zmiennej ParameterDictionary. Do wywołania zwrotnego można użyć następującego ciągu parametrów w kolejce zadań:

CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)
Przykładowy ciąg parametrów: Wywołanie niestandardowego kodu