Anveo Web Portal / Instalacja / Logika biznesowa w tabelach
Jest to tłumaczenie automatyczne. Pierwotne stanowisko jest dostępne w angielski.

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.

IF "No." <> xRec."No." THEN BEGIN
SalesSetup.GET;
NoSeriesMgt.TestManual(SalesSetup."Customer Nos.");
"No. Series" := '';
END;
IF "Invoice Disc. Code" = '' THEN
"Invoice Disc. Code" := "No.";
Kod źródłowy wyzwalacza OnValidate pola nr. w ramach tabeli Klient

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.