ANVEDI Callback
Informacje na tej stronie są przeznaczone do instalacji na miejscu z wykorzystaniem wyłącznie plików FOB.
Jeśli używasz Microsoft Dynamics NAV 2017 lub nowszy i Anveo EDI Connect 5.00 oferuje nową logikę dostosowywania zdarzeń. Gorąco zalecamy przejście na nowe zdarzenia integracyjne, jeśli to możliwe, w celu ułatwienia aktualizacji do nowszych wersji.
Codeunit kodująca ANVEDI Callback o ID 5327310 jest centralnym punktem, jeśli chcesz zmienić zachowanie Anveo EDI Connect. Utrzymujemy stałe API tej Codeunit, więc nie musisz nadpisywać tego obiektu podczas aktualizacji naszego modułu. Istnieje kilka funkcji, które mogą być modyfikowane przez Ciebie i kilka funkcji pomocy, których nie wolno modyfikować. Jeśli zaktualizowałeś moduł i brakuje Ci funkcji pomocy, która mogła zostać dodana w nowszej wersji, istnieje drugi obiekt o nazwie EDI Callback - Template with ID 5327313, gdzie znajdziesz nową funkcjonalność.
OnFunction
Moduł ten pozwala na zdefiniowanie własnej funkcjonalności, którą można wywołać z mapowania EDI. Możesz zdefiniować tyle funkcji, ile potrzebujesz. Należy użyć predefiniowanego określenia wielkości liter i dodać wywołania do wbudowanych funkcji FunctionName..FunctionName5.
Nie należy umieszczać żadnego kodu poza zdefiniowaną wcześniej strukturą przypadku, ponieważ funkcja ta może być nazywana dość często, a każdy dodatkowy kod może mieć negatywny wpływ na wydajność.
Numer na końcu lokalnej funkcji pomocniczej FunctionName określa liczbę parametrów. Można zdefiniować funkcje o maksymalnie pięciu parametrach. Dostęp do zawartości parametrów można uzyskać poprzez wywołanie funkcji GetTextParameter(ParNumber) i podobnych funkcji dla innych typów danych. Numer parametru jest liczony od „1” do „5”.
Każda funkcja musi zwrócić wartość przez wywołanie funkcji lokalnej o nazwie FunctionResult.
FunctionResult należy wywołać tylko raz. Dobrą praktyką jest dodawanie oświadczenia EXIT bezpośrednio po nim, aby zapobiec wielokrotnemu wywoływaniu funkcji.
Możesz wybierać nazwy obiektów i funkcji według własnego uznania.
Pierwsze 29 znaków kombinacji nazwy obiektu i funkcji musi być unikalne, aby można było określić parametry z mapping. Powinieneś postarać się skrócić te nazwiska.
W tym miejscu znajduje się pełna lista dostępnych funkcji do wykorzystania w zestawieniu CASE. Od Anveo EDI Connect 4.00:
- FunctionName(ObjectName: Text; FunctionName: Text)
- FunctionName1(ObjectName: Text; FunctionName: Text; ParamName1: Text)
- FunctionName2(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text)
- FunctionName3(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text)
- FunctionName4(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text; ParamName4: Text)
- FunctionName5(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text; ParamName4: Text; ParamName5: Text)
Tutaj znajduje się lista funkcji, których można użyć, aby uzyskać dostęp do parametrów:
- GetTextParameter(ParNum : Integer) : Text
- Ustawia parametr i próbuje wpisać go do tekstu typu danych.
- GetIntegerParameter(ParNum : Integer) : Integer
- Ustawia parametr i próbuje go rzucić na liczbę całkowitą typu danych.
- GetBooleanParameter(ParNum : Integer) : Boolean
- Ustawia parametr i próbuje go oddać na typ danych boolean.
- GetDecimalParameter(ParNum : Integer) : Decimal
- Ustawia parametr i próbuje rzucić go na typ danych dziesiętnych.
- GetDateParameter(ParNum : Integer) : Date
- Ustawia parametr i próbuje wpisać go do daty typu danych.
- GetTimeParameter(ParNum : Integer) : Time
- Ustawia parametr i próbuje wpisać go do czasu typu danych.
- GetDateTimeParameter(ParNum : Integer) : DateTime
- Ustawia parametr i próbuje wpisać go do typu danych data/czas.
- GetParameter(ParNum : Integer;VAR EDIVariant : Codeunit
- Ustawia parametr jako instancję Codeunit ANVEDI Variant.
CallbackRegistration
Funkcja ta jest wywoływana za każdym razem, gdy coś się dzieje w module, na co można zareagować. Funkcja zawiera strukturę przypadków, gdzie można sprawdzić, co się stało z przekazanym parametrem CallbackSupport.
Nie należy umieszczać żadnego kodu poza zdefiniowaną wcześniej strukturą przypadku, ponieważ funkcja ta może być nazywana dość często, a każdy dodatkowy kod może mieć negatywny wpływ na wydajność.
Ta struktura może wyglądać nietypowo dla programistów C/AL, ale możemy w ten sposób dodać funkcjonalność, bez konieczności aktualizacji Codeunit ANVEDI Callback.
Dostępne zdarzenia są definiowane przez dział ANVEDI Callback Support Codeunit. W kolejnych rozdziałach omówimy dostępne wydarzenia.
OnJobCallback
Możesz użyć codeunit zadania z modułu do zdefiniowania własnych zadań. codeunit pozwala na obsługę wielu parametrów. Więcej informacji na ten temat można znaleźć w dokumentacji osoby odpowiedzialnej za pracę.
OnAcceptTransmission
Funkcja ta służy do określenia, czy dany plik lub komunikat powinien zostać zaakceptowany lub zignorowany przez moduł. Moduł nie zapisuje, czy transmisja została zignorowana i za każdym razem, gdy zobaczy transmisję, będzie wywoływał tę funkcję. Plik nie jest jeszcze czytany, więc można decydować tylko na podstawie dostępnych metadanych.
Parametry:
Zapis z tabeli EDI Transmission z danymi, które są znane do tej pory. Zapis nie jest jeszcze zapisany.
Jeśli zareagujesz na to zdarzenie, musisz wywołać następującą funkcję:
Parametry:
Czy odebrać transmisję, czy nie. Wartość True oznacza, że chcesz otrzymać dane, wartość False, że chcesz zignorować transmisję.
Do tego parametru należy przekazać zapis z wywołania OnAcceptTransmission.
OnBeforeList
Kod ten jest wywoływany zanim moduł poszuka nowych danych. Może to być wykorzystane do wydania zewnętrznego polecenia lub skryptu do odbioru plików, zanim moduł wyszuka nowe dane.
Parametry:
Określa zapis danych w tabeli EDI Communication Channel, dla których mają być wyszukiwane nowe wiadomości.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnAfterList
Kod ten jest wywoływany po wyszukaniu przez moduł nowych danych.
Parametry:
Określa zapis danych w tabeli EDI Communication Channel.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnBeforeReceive
To zdarzenie jest wywoływane przed odtworzeniem transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnAfterReceive
To zdarzenie jest wywoływane po odebraniu transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnBeforeArchive
Zdarzenie to jest wywoływane przed zarchiwizowaniem transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnAfterArchive
To zdarzenie jest wywoływane po zarchiwizowaniu transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnBeforeDelete
Zdarzenie to jest wywoływane przed usunięciem transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnAfterDelete
Zdarzenie to jest wywoływane po usunięciu transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnBeforeSend
To zdarzenie jest wywoływane przed wysłaniem transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
Reagując na to zdarzenie należy wywołać tę funkcję:
Czy wysłać transmisję. Wartość True oznacza, że transmisja powinna zostać wysłana.
Transmisja, którą dostał pan wraz z wezwaniem na imprezę.
OnComposeMessage
Zdarzenie to jest wywoływane podczas komponowania transmisji.
Parametry:
Określa zapis danych w tabeli EDI Transmission.
To zdarzenie nie wymaga wywołania innej funkcji, ponieważ nie obsługuje żadnych wartości zwrotnych.
OnAfterSend
To zdarzenie jest wywoływane po wysłaniu transmisji.
Parametry:
Określa rekord danych w tabeli EDI Transmission.
Reagując na to zdarzenie należy wywołać tę funkcję:
Wynik jest obecnie ignorowany.
Transmisja, którą dostał pan wraz z wezwaniem na imprezę.
OnReplacePlaceholder
Funkcja ta jest wywoływana, gdy oceniany jest łańcuch, który może zawierać zmienne zdefiniowane przez użytkownika, takie jak nazwa pliku.
Poniżej znajduje się przykład:
Parametry:
Nazwa zmiennej pomiędzy nawiasami klamrowymi, dla których wyszukiwana jest wartość.
Reagując na to zdarzenie należy wywołać tę funkcję:
Parametry:
Czy chcesz zwrócić wartość. Jeśli zwrócisz True, powinieneś określić wartość zmiennej. Możesz pominąć zmienne systemowe.
Wartość, która powinna być użyta.
OnError
Zdarzenie to jest wywoływane w przypadku wystąpienia błędu w kolejce przetwarzania.
Parametry:
Przykład EDI Processing Queue tabeli, której przetwarzanie zakończyło się niepowodzeniem.
AfterProcess
Zdarzenie to jest wywoływane po przetworzeniu wpisu w EDI Processing Queue tabeli. Należy sprawdzić status przyjętego wpisu i odpowiednio zareagować.
Parametry:
Przykład EDI Processing Queue tabeli, która została przetworzona.
LookupLinkedDocument
Funkcja ta jest wywoływana z listy dokumentów powiązanych, jeśli użytkownik chce otworzyć stronę karty. W module znajduje się kilka predefiniowanych stron i staramy się wrócić do domyślnej strony odnośnika, w przypadku gdy funkcja ta zwraca False.
Rekord, dla którego użytkownik chce otworzyć stronę.
Wartość boolean. Zwróć wartość True, jeśli strona została otwarta przez tę funkcję; False inaczej.
BeforeConvert
Ta funkcja jest wywoływana przed uruchomieniem mapping. Połączenie znajduje się wewnątrz transakcji bazy danych mapping. Możesz anulować wykonanie mapping, zanim jeszcze rozpocznie się mapping, zwracając wartość True. Zasadniczo nie zalecamy korzystania z tej funkcji. Jeśli chcesz wywołać niestandardowy kod, skorzystaj z nowszej funkcji CallbackRegistration lub OnFunction.
AfterConvert
Funkcja ta jest wywoływana po pomyślnym zakończeniu mapping. Połączenie znajduje się wewnątrz transakcji bazy danych mapping. Zasadniczo nie zalecamy korzystania z tej funkcji. Jeśli chcesz wywołać niestandardowy kod, skorzystaj z nowszej funkcji CallbackRegistration lub OnFunction.
W Anveo EDI Connect 4.00 dodaliśmy do zdarzeń funkcję CallbackRegistration zwaną OnError i AfterProcess. Proszę skorzystać z nowej funkcji, jeśli to możliwe.
Referencje krzyżowe
Możesz zdefiniować swoją własną logikę powiązań. Funkcja ta jest wywoływana, gdy typ odsyłacza jest ustawiony na wywołanie callback. Często zalecamy stosowanie mapowań zamiast niestandardowego kodu wywołania zwrotnego, aby ułatwić czytanie mapowań. Niestandardowy kod odsyłacza jest z naszego punktu widzenia trudniejszy do utrzymania.
ValidateCrossReferenceNumber
Sprawdź, czy zewnętrzny numer referencyjny jest prawidłowy.
Funkcja ta jest przestarzała i nie powinna być używana.
GetInternalNo
Zwraca wewnętrzny numer z zewnętrznego.
GetExternalNo
Zwraca zewnętrzny numer z wewnętrznego.
UpdateCrossReference
Jest wywoływany, jeśli użytkownik próbuje zaktualizować odnośnik.
Zdeprecjonowane funkcje
Poniższa funkcjonalność jest tylko częściowo zaimplementowana i tym samym nie jest bezpieczna. Zalecamy korzystanie z domyślnych filtrów bezpieczeństwa Microsoft Dynamics NAV 2015 i pozostawienie obu funkcji pustych.
ApplyUserFilter
Pozwala na filtrowanie przekazywanych danych w taki sposób, aby użytkownik mógł je później zmienić. Korzystanie z tej funkcji nie jest już zalecane. Funkcja ta może być usunięta w nowszych wersjach.
ApplySecurityFilter
Pozwala na filtrowanie danych w sposób uniemożliwiający zmianę filtra przez użytkownika. Ta funkcja nie jest wywoływana we wszystkich przypadkach. Korzystanie z tej funkcji nie jest już zalecane. Funkcja ta może być usunięta w nowszych wersjach.