Events Codeunit
Anveo Mobile App udostępnia codeunit ACF App Events in Dynamics, do której wszystkie przychodzące zmiany danych są wysyłane z urządzeń mobilnych podczas synchronizacji. W tej codeunit można zdefiniować, co należy zrobić ze zmianami danych użytkowników telefonów komórkowych. Wykrywaj i rozwiązuj konflikty danych w przypadku, gdy dwóch użytkowników zmieniło ten sam rekord ze względu na możliwości offline. Ponadto można uruchomić indywidualny kod C/AL. Niniejszy podrozdział opisuje jego cechy.
Globalne właściwości
codeunit dostarcza duży zestaw zmiennych globalnych. W zależności od tego, która funkcja jest uruchamiana, zmienne ustawiane są z wartościami. Które zmienne są ustawione, można zobaczyć w pierwszym wierszu komentarza każdej funkcji.
Ta zmienna zawiera zapis Dynamics zawierający wszystkie pola. Został on wcześniej pobrany z bazy danych SQL z GET(Primary Key). To ta, która ma zostać zmieniona w tej codeunit. RecRef jest najważniejszą zmienną, której można użyć do ustawiania zmian – z modyfikacją lub bez modyfikacji przychodzących danych.
W tej codeunit definiujesz, jakie dane powinny być przesyłane z urządzenia mobilnego przechowywanego w DeviceRecRef do RecRef. Krok po kroku możesz ustawić swoje wartości w RecRef, aż zostaną zapisane z powrotem do bazy danych SQL za pomocą INSERT lub MODIFY później w procesie.
Zapis urządzenia przenośnego. Zawiera tylko dane pól, które są zawarte w pakietach synchronizacyjnych dla bieżącego użytkownika. RecordRef jest źródłem danych do ustawiania wartości w RecRef.
Poprzedni zapis urządzenia mobilnego. Zawiera tylko dane pól, które są zawarte w pakietach synchronizacyjnych dla bieżącego użytkownika. RecordRef zawiera dane zanim użytkownik lub Anveo Script zmienił się na urządzeniu przenośnym.
Jest to bardzo ważne dla wykrywania konfliktów danych: Porównując RecRef i xDeviceRecRef otrzymasz informację, czy dwie osoby zmieniły te same dane w tym samym czasie. W RecRef otrzymujesz aktualną wartość Dynamics, w xDeviceRecRef widzisz rekord zanim został on zmieniony w aplikacji. Jeśli się różnią, użytkownik mógł zdecydować się na zmianę wartości na starych danych.
Dla każdej tabeli i pola możesz zdecydować, czy chcesz porównać wartości pól i jakie pola należy dołączyć do porównania – niektóre pola lub wszystkie pola rekordu.
Ta właściwość daje informację, czy wartość została zmieniona w interfejsie użytkownika lub przez Anveo Script.
Wartości opcji są następujące: User, Script.
Możesz użyć tego pola Sell-to Name w Sales Header tabeli: Zmiana dokonywana przez Anveo Script musi pochodzić z twojego wyzwalacza tabeli mobilnej i może być ignorowana, ponieważ kod C/AL w Dynamics robi to samo. Ale zmiany w interfejsie użytkownika są zmianami indywidualnymi, które muszą być zaakceptowane.
ForINSERT , MODIFY i DELETE wartość NAVAction określa, czy akceptować nadchodzące zmiany danych i czy uruchamiać wyzwalacze tabel OnInsert, OnModify czy OnDelete w tabeli Dynamics. Ponadto można odrzucić zmiany danych w telefonie komórkowym i wysłać pakiet aktualizacyjny do telefonu komórkowego, który odrzuca zmianę.
Jeśli ustawisz wartość pola, właściwość ta decyduje, czy chcesz zaakceptować zmianę i czy chcesz wykonać funkcję VALIDATE w Dynamics.
Zmiana danych jest akceptowana i Dynamics uruchamia swój triger tabelaryczny.
Zmiana danych jest akceptowana, ale żaden wiersz tabeli nie będzie działał w Dynamics.
Zmiana danych nie jest akceptowana, a odrzucenie nie jest wysyłane do urządzenia mobilnego. W takim przypadku należy zadbać o spójność danych pomiędzy Dynamics a urządzeniem przenośnym.
Zmiana danych nie jest akceptowana, a wiadomość o odrzuceniu jest wysyłana do urządzenia mobilnego.
Jeśli otrzymałeś wiadomość o usunięciu rekordu, wyśle ona wiadomość o utworzeniu rekordu do urządzenia mobilnego. W przypadku nowego rekordu wysyłany jest komunikat o usunięciu. Zapewnia to spójność danych.
W funkcji OnSetValue można użyć właściwości RemoteAction, aby sprawdzić, czy zmiana danych w Skrypcie Anveo została wykonana przez SETVALUE czy VALIDATE . Zmiany użytkownika w interfejsie użytkownika są oznaczone jako VALIDATE.
Dla lepszego zrozumienia przetwarzania przychodzących danych zalecamy aktywowanie szczegółowego dziennika tekstowego. Odbywa się to poprzez ustawienie Logging Level w Anveo User na (dalsze informacje tutaj). Otrzymasz szczegółowy protokół przetwarzania danych krok po kroku.
Funkcja OnSyncRequest
Funkcja ta jest uruchamiana przed uruchomieniem procesu inicjalizacji i synchronizacji. Parametr IsInit pokazuje, czy jest to pierwsza inicjalizacja czy synchronizacja.
Synchronizacja rozpoczyna się po przetworzeniu wszystkich danych przychodzących z urządzenia mobilnego.
Funkcja OnSetValue
Funkcja ta jest uruchamiana, jeżeli użytkownik zmienia wartość w interfejsie użytkownika lub Anveo Script używa poleceń SETVALUE lub VALIDATE. Funkcja ta może być użyta do podjęcia decyzji, czy zaakceptować czy zignorować zmiany wartości przychodzących. Opcja NAVAction jest używana do decydowania, czy uruchomić triger tabeli OnValidate tego pola.
Funkcja OnBeforeInsert
Funkcja ta jest uruchamiana zanim rekord zostanie wprowadzony do bazy danych Dynamics. Jest on używany przez OnInsertRecord tylko do kodu strukturalnego.
Funkcja OnInsertRecord Funkcja OnInsertRecord
Funkcja ta jest uruchamiana, jeżeli Anveo Script używa polecenia Record:INSERT(). Opcja NAVAction jest używana do decydowania, czy uruchomić RecRef.INSERT() i jego tabelaryczny trigger OnInsert na końcu funkcji.
Funkcja OnModifyRec
Funkcja ta jest uruchamiana, jeżeli użytkownik zmienił wartość w interfejsie użytkownika lub jeżeli Anveo Script użył polecenia Record:MODIFY(). Opcja NAVAction służy do decydowania, czy uruchomić RecRef.MODIFY() i jego triger tabelaryczny OnModify na końcu funkcji.
Funkcja OnDeleteRec
Funkcja ta jest uruchamiana, jeżeli Anveo Script używa polecenia Record:DELETE(). Opcja NAVAction służy do decydowania, czy uruchomić RecRef.DELETE() i jego triger tabelaryczny OnDelete na końcu funkcji.
Funkcja PrintReport
Funkcja ta odpowiada za zapisywanie wyników raportu w postaci dokumentu PDF i wysyłanie go do użytkownika za pomocą tabeli ACF File Repository.
Funkcja GetMatchedRecRef Funkcja GetMatchedRef
Funkcja ta jest częścią zarządzania serią numerów telefonów komórkowych. Jest on odpowiedzialny za przekształcenie RecRefs z serii numerów telefonów komórkowych w końcową serię numerów z Dynamics.
Funkcja LanguageIDMapping Język funkcji
W przypadku niektórych języków wymagane jest, aby urządzenie mobilne przetworzyło język okien Language tabelarycznego na inny język okien.
USTAWIENIA funkcji/USTAWIENIA/USTAWIENIA funkcji
Funkcje te są używane wewnętrznie do ustawiania i pobierania wartości z tej codeunit.