Przejdź do treści

FAQ - na co zwrócić uwagę przy przejściu na Neosa 6.0

Kluczowe zmiany

Serwer Neos od wersji 6.0 posiada zmienioną warstwę dostępu do danych przez co wymaga zaktualizowanego klienta VCL. Dlatego ważne jest klient VCL został podniesiony technologicznie do wersji 6.0.

Najważniejsze zmiany w wersji 6.0:

  • pełne wsparcie do pisania kodu logiki biznesowej w jezyku C#, dzięki czemu nie trzeba już pisać logiki w bazie danych
  • wprowadzenie mechanizmu trigerów C# na obiektach NEOSowych wymusiło, aby to serwer Neos zapisywał i aktualizował dane w bazie. Klient VCL na formach NEOSowych łączy się do bazy tylko w celu odczytywania danych, ale zapis danych po edycji dokonywany jest przez Serwer Neosa a nie przez klienta VCL.
  • zmiana zachowania PostRecord na synchroniczną - w wersjach 5.X, wywołanie PostRecord() umieszczał w kolejce komunikat do klienta VCL, który fizycznie zapisywał dane, przez co kod C# następujący po PostRecord() wykonywał się jeszcze przed zapisaniem danych. Od wersji 6.0, serwer Neos zapisuje dane synchronicznie w momencie wywołania PostRecord().

Konfiguracja SMD / APP

W plikach konfiguracyjnych systemu podczas konfigurowania dostępu do bazy danych musimy używać ścieżek sieciowych. Ponadto kilka wpisów w pliku SMD nie jest już obsługiwanych i można je usunąć.

[Database:esystem]
DatabaseFile=localhost:C:\DB\esystem.fdb
DatabaseDriver=FB
# Nowe parametry do konfiguracji #
EnablePooling=yes <- włączenie puli połączeń (domyślnie włączone)
MaxConnectionLifetime=15 <- czas życia połączenia przy bezczynności w sekundach
ReadOnlyTransactionDefault=no <- włączenie domyślnie transakcji tylko do odczytu

# Parametry nieobsługiwane od wersji 6.0 #
EnablePartialFill
AutoCommitTimer
ConnectionPoolerPolicy
ConnectionPoolerPolicyCloseNotUsedAfter

Sterowanie rodzajem domyślnych transakcji jest opisane tutaj: Sterowanie ustawieniami transakcji w NEOSie

Debugowanie

Serwer NEOSa od wersji 6.0 wspiera debugowanie na środowisku developerskim (lokalnym). Aby uruchomić debugowanie należy posiadać zainstalowany program Visual Studio Code. Linki oraz wymagane oprogramowanie znajdziesz w Instalacja NEOS 6.0.

Błąd MSVCR120.dll

Jeśli potrzebujemy uruchomić NEOS\'a z wbudowaną bazą postgresową to możemy napotkać na następujący błąd.

Rozwiązaniem jest instalacja biblioteki Visual C++ 2013.

Problem z kompilacją projektów

Na nowym środowisku serwer NEOS'a wymaga zainstalowania .NET Framework 4.8 Developer Pack. Szczegóły dostępne w Instalacja NEOS 6.0.

Primary key (klucz główny) na obiektach biznesowych

Na obiektach biznesowych wymagane są klucze główne. Żeby to ułatwić, już od dawna istnieje mechanizm walidacji projektów, który wskazuje który obiekt biznesowy nie ma ustawionego klucza głównego.

Mechanizm dodatkowych warunków złączenia

Od wersji 6.0, mechanizm dodatkowych warunków złączenia nie wspiera już tzw. "Pola ze słownika klasy bazowej". W związku z tym opcja wyboru tego pola została ukryta.

Przed aktualizacją do wersji 6.0 lub nowszej, należy usunąć wpisy <DDICTFIELDUUID> z plików .bobj. Nieusunięcie tych wpisów może skutkować błędami podczas działania aplikacji.

Przykładowy błąd, który może wystąpić, przedstawiono poniżej:

Komenda FROM na obiekcie z procedury

Od Neosa 6.0 wymagane jest, aby komenda FROM na obiekcie z procedury była zawsze uzupełniona, nawet pomimo tego, że jest dodana metoda SetDBQuery. Zapytanie to musi być poprawne w kontekście składni SQL.

Mechanizm logowania zmian SECURITYLOG

Od Neosa 6.0 należy sprawdzać czy pola, które chcemy obserwować za pomocą mechanizmu SECURITYLOG mają zaznaczony checkbox "Logowanie zmian" w polach modelu danych. Wtedy po kliknięciu na dany rekord i wybraniu opcji "Funkcje" -> "Historia zmian" pokaże nam się forma, w której będą zapisane wszystkie zmiany wartości danego rekordu.