ANVEDI Integration
codeunit ANVEDI Integration zawiera wszystkie publiczne wywołania API do modułu EDI, być może będziesz chciał zadzwonić z własnego kodu. Wszystkie funkcje w tej codeunit mają być używane, jeśli chcesz bezpośrednio rozpocząć akcję EDI za pomocą kodu.
Koncepcje ogólne
W tej części omówimy najpierw podstawowe pojęcia, które powinny być zrozumiałe, aby móc zapoznać się z przykładami kodu.
Transakcje z użytkownikami
Anveo EDI Connect posiada koncepcję nazywaną „transakcje użytkownika”, która może obejmować wiele transakcji w bazie danych i zbierać wiele błędów. Większość działań w Anveo EDI Connect będzie wymagała otwartej transakcji użytkownika, aby je uruchomić. Możesz rozpocząć transakcję z użytkownikiem, dzwoniąc:
Wywołanie do END_USER_TRANSACTION pozwala na pokazanie błędów, przerwanie bieżącej transakcji w bazie danych lub otrzymanie wartości zwrotnej, niezależnie od tego, czy wystąpił błąd. Omówimy to szczegółowo później.
BEGIN_USER_TRANSACTION
Rozpoczyna transakcję z nowym użytkownikiem. Należy pamiętać, że połączenia w module EDI integrujesz tylko w punktach, w których może odbywać się KOMITET. W wielu przypadkach moduł dokonuje wszystkich zmian w bazie danych przed wykonaniem logiki EDI. Rozważ również zwykłe zaznaczenie danych i użycie zadania w tle do wykonania logiki EDI.
Podany tekst jest pokazywany użytkownikowi, jeśli zostanie otwarte okno dialogowe oczekujące, ponieważ proces ten wymaga czasu.
Zawsze należy zakończyć połączenie do BEGIN_USER_TRANSACTION z połączeniem do END_USER_TRANSACTION.
SHOWDIALOGS
Funkcja ta może być używana do ukrywania dowolnych okien dialogowych EDI.
Parametr ten określa, czy okna dialogowe są wyświetlane, czy nie. Wywołanie tej funkcji musi znajdować się wewnątrz transakcji użytkownika. Zwykle funkcja ta jest wywoływana bezpośrednio po BEGIN_USER_TRANSACTION.
ISPROCESSING
Funkcja ta zwraca, czy użytkownik znajduje się w obrębie wykonania mapping. Możesz sprawdzić tę wartość podczas sprawdzania poprawności działania wyzwalaczy, na przykład, aby uzyskać inne zachowanie podczas przetwarzania procesów EDI. Wartości tej można również używać do wyświetlania dialogów wejściowych tylko wtedy, gdy nie przetwarza się EDI.
END_USER_TRANSACTION
Funkcja ta spowoduje zakończenie transakcji użytkownika.
Jeśli podczas transakcji wystąpiły błędy, pokaż to w oknie dialogowym dla użytkownika końcowego. Ten parametr nie ma żadnego wpływu, jeśli GUIALLOWED jest False.
Czy moduł powinien wyrzucić błąd, przerywając aktualny przepływ procesu. Cały kod po tej linii nie jest wykonywany, jeśli podczas transakcji wystąpił błąd. Ustawienie tego parametru na True (Prawda) spowoduje wyświetlenie komunikatu o błędzie, który wystąpił jeden lub więcej błędów, jeśli takie wystąpiły. W tym przypadku użytkownik nie może zobaczyć pełnej listy błędów.
Wartość zwrotna, niezależnie od tego, czy wystąpił błąd, czy nie. Wraca True o sukcesie, tzn. nie było żadnych błędów; False inaczej.
W starszych wersjach modułu wartość zwrotu była różnie nazywana, ale miała tę samą funkcję. Stara nazwa wartości zwrotnej była nieprawidłowa, funkcja zawsze zwracała True on success.
Praca z transakcjami biznesowymi
RUN_BUSINESSTRANSACTION_JOB
Wykonuje zadanie zbierania danych określonego typu transakcji biznesowej. To musi być wywołane z wnętrza transakcji użytkownika.
Kod typu transakcji biznesowej.
START_BT_WITH_REC
Rozpoczyna nową transakcję biznesową dla danego kodu i identyfikatora zapisu.
RUN_BT_BATCH_JOB
Wykonuje zadanie odbioru partii o określonej nazwie. To musi być wywołane z wnętrza transakcji użytkownika.
Działania
Czasami chcesz utworzyć przycisk na stronie, aby rozpocząć proces EDI, lub chcesz go zintegrować, na przykład, z procesem wydania. W tym przypadku można uruchomić prawie wszystkie akcje modułu z kodu. Proszę pamiętać, że procesy EDI powinny być zazwyczaj zautomatyzowane i prowadzone w tle. Tak więc przed dodaniem akcji w kodzie, rozważ możliwość pracy w tle jako alternatywę.
Wykonaj EDI Mapping
Aby uruchomić EDI Mapping będziemy musieli rozpocząć transakcję użytkownika. Następnie możemy chcieć przekazać dane do mapping. Możemy wtedy uruchomić mapping i sprawdzić wynik po zakończeniu transakcji użytkownika. Szczegółowy opis poleceń znajduje się po przykładzie kodu.
RESET_TABLEVIEWS
Resetuje wszystkie istniejące zapisane widoki tabeli. Musi być wywołany z wnętrza transakcji użytkownika.
SET_TABLEVIEW
Przechowuje widok tabeli pod określoną nazwą. Musi być wywołany z wnętrza transakcji użytkownika.
Kod reprezentujący nazwę filtra. Musisz podać dokładnie taką samą nazwę w EDI Mapping, aby odzyskać filtr.
Tekst filtru w formie widoku tabeli Anveo EDI Connect. Powinieneś użyć wbudowanej funkcji Microsoft Dynamics NAV 2016 GETVIEW, jeśli to możliwe, aby uzyskać prawidłowo sformatowany łańcuch.
GET_TABLEVIEW
Odzyskuje zapisany filtr. Musi być wywołany z wnętrza transakcji użytkownika.
RUN
Uruchomić jeden lub więcej mappingu EDI. Musi być wywołany z wnętrza transakcji użytkownika.
Kod projektu lub łańcuch filtra odpowiadający kodowi projektu.
Kod formatu mapping lub łańcuch filtra odpowiadający kodowi formatu.
Kod mapping lub filtr odpowiadający żądanym kodom mapping.
Czy należy wykonać wiele mapowań w przypadku, gdy określony jest filtr. Jest to funkcja bezpieczeństwa, zapobiegająca uruchomieniu więcej niż jednego mapping.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
Inne działania
RECEIVE_ALL
Niedopracowana funkcja. Należy unikać wywoływania funkcji ogólnej i wywołać jedną z bardziej szczegółowych funkcji poniżej.
Odbiera wszystkie kanały komunikacyjne. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
RECEIVE_FOLDER
Otrzymuje dane z określonego folderu transmisyjnego lub folderów. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
Kod filtra transmisji lub łańcuch filtra w polu kodu.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
RECEIVE_COMMUNICATIONCHANNEL
Otrzymuje dane z określonego kanału komunikacyjnego. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
Kod kanału komunikacyjnego lub łańcuch filtra w polu kodu.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
SEND_ALL
Niedopracowana funkcja. Należy unikać wywoływania funkcji ogólnej i wywołać jedną z bardziej szczegółowych funkcji poniżej.
Wysyła wszystkie kanały komunikacyjne. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
SEND_FOLDER
Wysyła otwarte transmisje określonego folderu transmisji. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
Kod folderu transmisyjnego lub łańcuch filtra w polu kodu.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
SEND_COMMUNICATIONCHANNEL
Wysyła otwarte transmisje określonego kanału komunikacyjnego. Funkcja ta musi być wywołana z wnętrza transakcji użytkownika.
Kod kanału komunikacyjnego lub łańcuch filtra w polu kodu.
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
PROCESS
Czy należy wykonać obróbkę końcową. Normalnie chcesz to ustawić na True.
Filtr na postprocesach. Normalnie możesz chcieć przejść przez pusty łańcuch.
Czy powinny być przetwarzane tylko post-procesy z bieżącej transakcji użytkownika.
Ustawianie Odbiorcy / Nadawcy
SET_COMMUNICATION_CHANNEL
Ustawia kanał komunikacji dla następującego połączenia mapping wewnątrz transakcji użytkownika.
Kod kanału komunikacyjnego.
SET_RECEIVER_PARTNER
Ustawia partnera odbiorczego na następujące połączenie mapping wewnątrz transakcji użytkownika.
Kod partnera odbiornika.
SET_RECEIVER_IDENTIFICATION
Ustawia identyfikację odbiorcy dla następującego połączenia mapping wewnątrz transakcji użytkownika.
Identyfikacja odbiornika. Jest to wolny tekst, który może mieć szczególne znaczenie na określonych kanałach komunikacyjnych.
SET_SENDER_PARTNER
Ustawia partnera nadawcy na następujące połączenie mapping wewnątrz transakcji użytkownika.
Kod partnera nadawcy.
SET_SENDER_IDENTIFICATION
Ustawia identyfikację nadawcy dla następującego połączenia mapping wewnątrz transakcji użytkownika.
Identyfikacja odbiornika. Jest to wolny tekst, który może mieć szczególne znaczenie na określonych kanałach komunikacyjnych.
Logowanie i obsługa błędów
Poniższe funkcje mogą być wywoływane tylko w czasie trwania mapping. Funkcje te są przeznaczone do wykorzystania w niestandardowych systemach obsługi błędów z kodu.
LogError
Zapisuje komunikat o błędzie.
Komunikat o błędzie. Egzekucja będzie kontynuowana po tym wezwaniu. Aby przerwać przepływ sterowania, należy użyć natywnej funkcji ERROR.
LogWarning
Zapisuje ostrzeżenie.
Tekst ostrzeżenia.
LogInformation
Informacje z dzienników.
Informacje, które mają być rejestrowane.
LogDocumentError
Rejestruje błąd należący do dokumentu EDI. Istnieje bardziej uniwersalna funkcja o nazwie LogRecIDErrorWithCode.
Komunikat o błędzie.
Dokument EDI, do którego należy błąd.
LogDocumentWarning
Rejestruje ostrzeżenie należące do dokumentu EDI. Istnieje bardziej uniwersalna funkcja o nazwie LogRecIDWarningWithCode.
Ostrzeżenie do zarejestrowania.
Dokument EDI, do którego należy błąd.
LogDocumentInformation
Rejestruje informacje należące do dokumentu EDI. Istnieje bardziej uniwersalna funkcja o nazwie LogRecIDInformationWithCode.
Informacje, które mają być rejestrowane.
Dokument EDI, do którego należy błąd.
LogDocumentLineError
Rejestruje błąd należący do linii dokumentów EDI. Istnieje bardziej ogólna funkcja o nazwie LogRecIDErrorWithCode.
Komunikat o błędzie, który ma być rejestrowany.
Linia dokumentu EDI, do której należy błąd.
LogDocumentLineWarning
Rejestruje ostrzeżenie należące do wiersza dokumentów EDI. Istnieje bardziej ogólna funkcja o nazwie LogRecIDWarningWithCode.
Ostrzeżenie, które powinno być rejestrowane.
Linia dokumentu EDI, do której należy błąd.
LogDocumentLineInformation
Rejestruje informacje należące do EDI Document Line. Istnieje bardziej ogólna funkcja o nazwie LogRecIDInformationWithCode.
Informacje, które mają być rejestrowane.
Linia dokumentu EDI, do której należy błąd.
LogErrorWithCode
Rejestruje błąd za pomocą dodatkowego kodu błędu.
Czy przerwać przepływ kontrolny, czy kontynuować wykonanie
Komunikat o błędzie, który ma być rejestrowany.
Kod służący do identyfikacji błędu.
LogWarningWithCode
Rejestruje ostrzeżenie z dodatkowym kodem błędu.
Ostrzeżenie, które powinno być rejestrowane.
Kod służący do identyfikacji błędu.
LogInformationWithCode
Rejestruje informacje z dodatkowym kodem błędu.
Informacje, które powinny być rejestrowane.
Kod służący do identyfikacji błędu.
LogRecIDErrorWithCode
Zapisuje komunikat o błędzie, który powinien należeć do konkretnego rekordu.
Czy przerwać przepływ sterowania, czy kontynuować realizację.
Komunikat o błędzie, który ma być rejestrowany.
Identyfikator rekordu, do którego należy błąd.
Kod błędu do identyfikacji błędu.
Czy błąd może zostać zaakceptowany przez użytkownika końcowego. Będzie to wymagało podania niepustego kodu błędu.
LogRecIDWarningWithCode
Zapisuje ostrzeżenie, które powinno należeć do zapisu.
Ostrzeżenie, które powinno być rejestrowane.
Zapis, do którego powinno należeć ostrzeżenie.
Kod służący do identyfikacji wpisu w dzienniku.
LogRecIDInformationWithCode
Zapisuje informacje, które powinny należeć do zapisu.
Informacje, które powinny być rejestrowane.
Identyfikator zapisu, do którego powinny należeć informacje.
Kod służący do identyfikacji wpisu w dzienniku.