Logika biznesowa w tabelach
Ze względu na techniczną strukturę publikowania tabel za pośrednictwem Anveo Pages konieczne jest, aby cała logika biznesowa znajdowała się w tabelach i codeunits, a nie w formularzach/stronach. Pod względem koncepcyjnym, jest to czystsze od samego początku, ponieważ tabela musi się sprawdzić pod kątem spójności strukturalnych, ponieważ codeunits są przewidziane do pracy z procesami biznesowymi, a formularze/strony reprezentują jedynie dane wejściowe/wyjściowe dotyczące użytkownika aplikacji.
W rezultacie, przy publikowaniu tabeli należy sprawdzić, czy obliczenia lub testy znajdują się w odpowiedniku – formularzu/stronie w programie Dynamics Client – które mają być przeniesione do tabeli.
xRec i CurrFieldNo
xRec jest używany w wielu funkcjach tabelarycznych w ramach Dynamics i reprezentuje rekord przed modyfikacją. xRec może być użyty w wyzwalaczu OnValidate do sprawdzenia, czy pole rzeczywiście się zmieniło, na przykład w wyzwalaczu OnValidate dla tabeli Klienta.
Jednakże, xRec jest dostępny tylko wtedy, gdy wejście odbywa się poprzez formularz/stronę. Brak xRec w przypadku funkcji w tabelach i codeunits jest ograniczeniem ze strony Dynamics, które nie jest widoczne przy korzystaniu z Dynamics Client, ponieważ dane są tam modyfikowane wyłącznie poprzez formularze i strony, a strony te oferują xRec automatycznie. Bez xRec, kod pokazany powyżej nie będzie działał poprawnie.
Anveo Client Suite udostępnia funkcję GetxRec w codeunit ACF Management, dzięki czemu Anveo Client Suite ustawia również poprawnie xRec i CurrFieldNo. W aplikacji podstawowej Anveo Client Framework znajduje się szablon funkcji GetxRec oraz przykładowy kod do poprawnej aktywacji. Postępuj jak pokazano poniżej, tak aby xRec i CurrFieldNo były dostępne dla Ciebie dla Twoich tabel:
- Utwórz w swojej tabeli funkcję GetxRec z następującymi parametrami:
- Dodaj do funkcji GetxRec następujący kod:
ACFxRec.GETTABLE(xRec);
ACFManagement.GetxRec(ACFxRec,CurrFieldNo);
IF ACFxRec.NUMBER <> 0 THEN
ACFxRec.SETTABLE(xRec);
- Dodać następujący kod na początku wszystkich wyzwalaczy tabelarycznych, które używają xRec lub CurrFieldNo:
//+Anveo Client Suite Integration
GetxRec(xRec,CurrFieldNo);
//-Anveo Client Suite Integration
Wykonanie kodu jest kompatybilne z klientem Classic, Role Tailored Client i klientem Windows Microsoft Dynamics NAV. Ponieważ kod działa na wszystkich klientach, nie jest konieczne osobne rozróżnienie przypadków. Wywołanie tej funkcji może być wykonywane przez każdą tabelę w systemie tak często, tylko pierwsze wywołanie przy użyciu Anveo Client Suite zwraca odpowiednio xRec i CurrFieldNo.