ANVEDI Events
Anveo EDI Connect oferuje jedną codeunit dla zdarzeń integracyjnych: Codeunit ANVEDI Events. Możesz reagować na zdarzenia w tej codeunit owej za pośrednictwem własnej codeunit. Zdarzenia są obsługiwane zarówno w wersji FOB, jak i Extension systemu Microsoft Dynamics.
Events
Dostępne Events to:
- OnFunctionRegistration
- OnFunctionExecution
- OnJob
- OnAcceptTransmission
- OnBeforeList
- OnAfterList
- OnBeforeReceive
- OnAfterReceive
- OnBeforeArchive
- OnAfterArchive
- OnBeforeDelete
- OnAfterDelete
- OnBeforeSend
- OnComposeMessage
- OnAfterSend
- OnReplacePlaceholder
- OnError
- OnAfterProcess
OnFunctionRegistration
To zdarzenie jest wywoływane, gdy moduł wyszukuje funkcje niestandardowe. Można definiować własne funkcje, korzystając z funkcji zapewnianych przez codeunit ANVEDI Function Register, która jest dostępna pod nazwą Register. codeunit udostępnia dwie funkcje: RegisterFunction i AddParameter.
RegisterFunction oczekuje dwóch parametrów, nazwy obiektu i nazwy funkcji nowej funkcji. Nazwy te mogą być dowolne, ale nie mogą przekraczać 30 znaków.
Pierwsze 29 znaków kombinacji nazwy obiektu i funkcji musi być unikalne, aby można było określić parametry z mapping. Nazwy powinny być krótkie.
Po zarejestrowaniu funkcji można wywołać AddParameter do 5 razy. AddParameter oczekuje nazwy parametru funkcji. W jednym Event można użyć wielu bloków RegisterFunction i AddParameter. Zalecamy jednak rozdzielenie wielu funkcji do wielu detektorów Event.
Po zarejestrowaniu funkcji należy reagować na jej wywołania. Odbywa się to za pomocą OnFunctionExecution opisanego poniżej.
OnFunctionExecution
Event jest wywoływane, gdy moduł szuka niestandardowej implementacji funkcji. Instancja codeunit ANVEDI Function Call jest przekazywana do tego zdarzenia pod nazwą FunctionCall.
Powinieneś sprawdzić, czy FunctionCall pasuje do Twojej niestandardowej funkcji i wykonać dowolny kod tylko wtedy, gdy tak jest. Odbywa się to poprzez wywołanie funkcji Is() z tymi samymi parametrami, z którymi wywołano RegisterFunction w OnFunctionRegistration. Jeśli funkcja Is() zwróci wartość true, można uzyskać dostęp do parametrów, wykonać niestandardowy kod i zwrócić wartość.
codeunit ANVEDI Function Call udostępnia następujące funkcje:
Zwraca, czy wywołanie funkcji jest zgodne z określoną sygnaturą funkcji.
Musisz wywołać tę funkcję, aby pokazać modułowi, że obsłużyłeś wywołanie funkcji. Możesz przekazać wynik funkcji lub po prostu użyć wartości true jako wyniku.
Pobiera parametr z podaną liczbą jako tekst. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą całkowitą. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą jako wartość logiczną. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą dziesiętną. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą jako datą. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą jako datą i godziną. Indeks zaczyna się od 1.
Pobiera parametr z podaną liczbą jako czasem. Indeks zaczyna się od 1.
Pobiera parametr o podanym numerze jako EDIVariant. Funkcja zwraca, czy parametr mógł zostać pobrany. Indeks zaczyna się od 1.
OnJob
Do definiowania niestandardowych zadań można użyć codeunit zadania z modułu. codeunit umożliwia obsługę wielu parametrów. Więcej informacji można znaleźć w dokumentacji obsługi zadań.
Słownik zawierający parametry przekazane do zadania.
Należy ustawić Event na obsłużone, jeśli zadanie zostało przetworzone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAcceptTransmission
Funkcja ta jest wywoływana w celu określenia, czy plik lub wiadomość powinny zostać zaakceptowane lub zignorowane przez moduł. Moduł nie przechowuje informacji o tym, czy transmisja została zignorowana i wywołuje tę funkcję za każdym razem, gdy widzi transmisję. Plik nie został jeszcze odczytany, więc decyzję można podjąć jedynie na podstawie dostępnych metadanych.
Transmisja, dla której pobrano metadane. Należy pamiętać, że w tym momencie nie otrzymano żadnych danych i rekord nie został jeszcze wprowadzony do bazy danych.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Powinieneś również zwrócić wartość, czy przetworzyć transmisję (ustaw wartość zwracaną na true); lub nie (ustaw ją na false). Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnBeforeList
Kod ten jest wywoływany zanim moduł zacznie szukać nowych danych. Można tego użyć do wydania zewnętrznego polecenia lub skryptu w celu odebrania plików, zanim moduł wyszuka nowe dane.
Kanał komunikacyjny, który powinien pobierać dane.
Jeśli zdarzenie zostało przetworzone, należy ustawić Event na handled. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterList
Kanał komunikacyjny, który powinien pobierać dane.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
Kod ten jest wywoływany po wyszukaniu nowych danych przez moduł.
OnBeforeReceive
To Event jest wywoływane przed pobraniem transmisji. Należy pamiętać, że w tym momencie nie można przerwać przetwarzania. Jeśli chcesz zdecydować, czy pobrać wiadomość, czy nie, użyj OnAcceptTransmission.
Transmisja. Wiadomości nie zostały jeszcze odebrane.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterReceive
To Event jest wywoływane po odebraniu transmisji.
Transmisja po odzyskaniu (można uzyskać dostęp do wiadomości).
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnBeforeArchive
To Event jest wywoływane przed zarchiwizowaniem transmisji.
Transmisja, która zostanie zarchiwizowana w zdalnej lokalizacji.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterArchive
To Event jest wywoływane po zarchiwizowaniu transmisji.
Transmisja, która została zarchiwizowana w zdalnej lokalizacji.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnBeforeDelete
To Event jest wywoływane przed usunięciem transmisji.
Transmisja, która zostanie usunięta w zdalnej lokalizacji.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterDelete
To Event jest wywoływane po usunięciu transmisji.
Transmisja, która została usunięta z lokalizacji zdalnej.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnBeforeSend
To Event jest wywoływane przed wysłaniem transmisji.
Transmisja, która zostanie wysłana.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnComposeMessage
To Event jest wywoływane po utworzeniu transmisji.
Transmisja, która jest skomponowana.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterSend
To Event jest wywoływane po wysłaniu transmisji.
Transmisja, która została wysłana.
Jeśli zdarzenie zostało przetworzone, należy ustawić Event na handled. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnReplacePlaceholder
Ta funkcja jest wywoływana, gdy oceniany jest ciąg znaków, który może zawierać zmienne zdefiniowane przez użytkownika, takie jak nazwa pliku.
Nazwa symbolu zastępczego. Moduł szuka obecnie wartości, która zastąpi ten konkretny symbol zastępczy. Jeśli chcesz podać wartość, musisz określić wynik i ustawić zdarzenie jako obsługiwane w EventArgs.
Wstępnie przefiltrowany zapis połączonych dokumentów. Można na przykład użyć tej tabeli, aby uzyskać dokumenty buforowe zawarte w pliku.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Musisz także zapewnić wartość. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
Poniższy przykład pokazuje, jak można zwrócić dane z połączonego dokumentu:
OnError
To Event jest wywoływane, gdy w kolejce przetwarzania wystąpi błąd.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
OnAfterProcess
To Event jest wywoływane po przetworzeniu wpisu w tabeli EDI Processing Queue. Należy sprawdzić status przekazanego wpisu i odpowiednio zareagować.
Jeśli Event zostało przetworzone, należy ustawić je jako obsłużone. Opis struktury ANVEDI Event Args znajduje się na końcu tego rozdziału.
ANVEDI Event Args
Niektóre Events wykorzystują strukturę o nazwie ANVEDI Event Args. Struktura ta umożliwia zwracanie wartości i informowanie modułu, czy zdarzenie zostało obsłużone.
Następujące funkcje są dostępne dla ANVEDI Event Args przekazywanych do Event:
Czy Event zostało obsłużone przez kod użytkownika.
Wartość zwrotna, jeśli Event oczekuje wartości zwrotnej.
Przykład
Poniższy przykład pokazuje, jak można dodać własną funkcję niestandardową „MYOBJECT.MYFUNC”, która wyświetla komunikat zawierający podaną nazwę, po której następuje „: ” i wartość. Możesz dodać tyle funkcji z tylu rozszerzeń, ile potrzebujesz.
Zależności
Jeśli chcesz reagować na Event poprzez AL, musisz dodać zależność do modułu Anveo EDI Connect.
Wartości dla Extension OnPremise są następujące:
Upewnij się, że zastąpiłeś x, y, z poprawnym numerem wersji.
Wartości dla Business Central Online i Universal Code Extension są następujące:
Upewnij się, że zastąpiłeś x, y, z poprawnym numerem wersji. Starsze wersje BC nazywały „id” „appId”.