Informacje o wersji 1.14.8.0
z dn. 16-06-2025

PDF

W tej wersji

Wymagane działania

Nie jest wymagane wykonanie żadnych dodatkowych czynności.

Kompatybilność aplikacji

Migracja aplikacji jest możliwa tylko między wersjami nAxiom kompatybilnymi na poziomie bazy danych.

Bieżąca wersja bazy danych: 20250610093512

W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji wymagane jest zaktualizowanie środowiska źródłowego.

Nowe i zmodernizowane funkcje

1. Pulpity aplikacji

Dodano nowy rodzaj obiektu aplikacji — pulpit aplikacji (INTEREFEJS UŻYTKOWNIKA > Pulpity). W nowym oknie dialogowym w AdminSPA można zdefiniować metadane pulpitu (Kod, Nazwa, Opis, Aplikacja, Moduł, Aktywny). Dodawanie widżetów do pulpitu i zmiana ich układu odbywa się we FrontSPA, analogicznie jak w przypadku pulpitów użytkownika. Pulpity aplikacji, w przeciwieństwie do pulpitów użytkownika, można migrować.

W definicji aplikacji na karcie Uprawnienia dodano uprawnienie PBA do edycji pulpitu (obejmuje tylko zmiany układu widżetów). Dodatkowo, na karcie Ogólne można wskazać pulpit domyślny aplikacji, który będzie wyświetlany w trybie pojedynczej aplikacji po przełączeniu na tę aplikację.

W profilu użytkownika dodano możliwość ustawienia, czy po zalogowaniu ma być wyświetlany pulpit domyślny użytkownika, czy pulpit aplikacji. To ustawienie dotyczy tylko trybu pojedynczej aplikacji.

W ramach zadania wprowadzono zmiany w funkcjonalności zarządzania pulpitami we FrontSPA, między innymi usunięto atrybut Kod z definicji pulpitu użytkownika.

2. Dezaktywacja zadań cyklicznych

W definicji zadania cyklicznego dodano przełącznik Aktywne. Pozwala on dezaktywować zadanie, to jest przerwać odliczanie czasu do kolejnego wykonania. Ponadto, w historii wykonania zadań dodano status Usunięto z harmonogramu. Wpis z takim statusem jest rejestrowany po dezaktywacji zadania, usunięciu go oraz po aktualizacji zadania. W tym ostatnim przypadku odliczanie jest resetowane, czyli po wpisie o usunięciu z harmonogramu jest rejestrowany wpis o dodaniu tego zadania do harmonogramu.

3. Domyślne powiększenie podglądu PDF

W kreatorze formularzy, w ustawieniach sekcji podglądu załączników dodano możliwość określenia domyślnej wartości powiększenia podglądu załączników w formacie PDF. W tej wersji dostępne są wartości procentowe. W przyszłych wersjach planowane jest dodanie opcji dopasowania podglądu do szerokości/wysokości strony.

4. Widok listy - filtrowanie dat

W widoku listy, w panelu filtrowania kolumny typu data oraz data i godzina dla opcji zakres dat zamieniono pola wprowadzania na kontrolki typu date-/datetime-picker.

5. Widok listy - wyrównanie nagłówków i stopek

W definicji listy dodano możliwość definiowania wyrównania wartości w polach wierszy, nagłówków i stopek dla całej listy oraz dla poszczególnych kolumn. W ramach bilansu otwarcia zostaną zachowane ustawienia wyrównania dla indywidualnych kolumn. Te same ustawienia zostaną zastosowane do wyrównania pól stopek, a pola nagłówków będą domyślnie wyrównane do lewej.

6. Pole modelu danych - atrybut Etykieta

W definicji pola modelu danych dodano wymagany atrybut Etykieta. Wartość atrybutu (maks. 255 dowolnych znaków) definiuje się w kreatorze modeli danych po przejściu do edycji pola. Dla istniejących pól wartość atrybutu jest taka sama jak nazwa pola danych. Wartość atrybutu jest zapisywana w tabeli core.SqlBuilderColumnsInfo.

W ramach zadania rozbudowano funkcjonalność tłumaczeń o obsługę tego atrybutu. Wartość atrybutu i jej tłumaczenia podlegają migracji.

Systemowe wykorzystanie tego atrybutu jest planowane w kolejnej wersji w funkcjonalności formularzy publicznych.

Poprawki i usunięte błędy

1. Mail monitor - obsługa wiadomości w formacie HTML

Rozbudowano funkcjonalność mail monitorów o obsługę wiadomości e-mail, które nie mają zawartości tekstowej (sekcja Content-Type: text/plain), a tylko zawartość HTML (sekcja Content-Type: text/html). W takim przypadku nie można było zapisać treści wiadomości jako załącznika do instancji dokumentu. Obecnie wiadomość zawsze zostanie zapisana jako załącznik, jednak w przypadku wyboru opcji zapisu jako tekst i braku zawartości testowej plik załącznika będzie pusty.

W modelu danych dostępnym dla akcji wywoływanej po dodaniu załącznika dodano parametr @Email_HTMLContent, który zawiera treść wiadomości z sekcji text/html, o ile jest ona dostępna.

Dodatkowo poprawiono działanie mechanizmów dla serwerów Exchange, MS Graph oraz IMAP, aby w każdym przypadku przetwarzanie wiadomości e-mail przez mail monitor przebiegało jednakowo (różnice występowały na przykład przy obsłudze plików graficznych z wiadomości, które nie były zapisywanie jako załączniki).

2. Mail monitor - transakcyjność przetwarzania

Rozwiązano problem, który powodował, że w przypadku niepowodzenia w przetwarzaniu załączników do wiadomości e-mail mail monitor tworzył dokument bez załączników. Obecnie przetwarzanie każdej wiadomości przez mail monitor odbywa się w transakcji i w razie wystąpienia błędu na dowolnym etapie, wprowadzone zmiany zostaną wycofane. Transakcyjność nie obejmuje plików załączników zapisywanych na dysku lub w repozytorium w innej bazie danych. Takie pliki nie zostaną usunięte w przypadku wycofania transakcji.

3. Mail monitor - załączniki w formacie .eml

Rozwiązano problem obsługi przez mail monitor wiadomości z załącznikiem w formacie eml (typ zawartości message/rfc822) dla serwerów Exchange, MS Graph oraz IMAP. Takie załączniki będą zapisywane jako załącznik do dokumentu w formacie pliku .eml z nazwą pliku taką, jak załącznik do wiadomości e-mail.

Przed zapisaniem pliku jako załącznika do dokumentu zostaną z niego usunięte wszystkie niedozwolone znaki.

4. Baza danych - poziom izolacji transakcji

W celu zmniejszenia ryzyka wystąpienia zakleszczeń na bazie danych, w szczególności podczas pobierania danych do listy, zmieniono poziom izolacji transakcji z Serializable na ReadCommited. Ponadto dodano mechanizm ponawiający wykonanie zapytania w przypadku zakleszczenia.

5. Edycja inline - wartości domyślne

Dodano obsługę odwołań do pól formularza ({@*KodFormularza.PoleFormularza}) i pól kontekstu rekordu ({@NazwaPola}) w celu obliczenia wartości domyślnej dla kolumn z edycją inline. Odwołania do pól formularza są obsługiwane tylko w przypadku, kiedy dana lista jest osadzona na formularzu.

6. Edycja inline - mapowanie kolumn

Funkcjonalność mapowania wartości z kolumn kontrolki listy rozwijanej na inne kolumny w trybie edycji inline rozszerzono na kontrolki definiowane w oparciu o definicję dokumentu.

7. Migracja konfiguracji i filtrów list

Naprawiono problem, który mógł powodować, że podczas importu aplikacji były usuwane konfiguracje listy i filtry zdefiniowane przez użytkownika w środowisku docelowym. Obecnie konfiguracje użytkownika nie będą usuwane. Nie dotyczy to sytuacji, kiedy w importowanej aplikacji nie ma już listy obecnej we wcześniejszej wersji i zostaje ona usunięta. W takim wypadku usuwane są też wszystkie konfiguracje listy (GridConfigurations) oraz konfiguracje filtrów (GridFilters) z uwagi na powiązanie tych elementów z listą (Grids).

W przypadku, gdy użytkownik korzysta z filtra predefiniowanego listy (niepowiązanego z żadnym użytkownikiem), który jest usuwany podczas importu, użytkownik będzie musiał wybrać w swojej konfiguracji listy inny dostępny filtr.

Ponadto poprawiono błąd, który blokował migrację systemowej (domyślnej) konfiguracji listy. Obecnie w paczce importu będą znajdować się wyłącznie konfiguracja systemowa listy oraz filtry predefiniowane listy.

8. Konfiguracja domyślna listy

Poprawiono błąd, który powodował, że ustawienie jako domyślnej konfiguracji listy innej niż systemowa przez jednego użytkownika nadpisywało ustawienie konfiguracji domyślnej dla tych użytkowników, którzy mieli wybraną konfigurację systemową jako domyślną. W takim przypadku również na podglądzie w kreatorze list w AdminSPA konfiguracja systemowa nie była widoczna, a zapisanie listy powodowało usunięcie dotychczasowych ustawień konfiguracji systemowej.

9. Logowanie Windows

Poprawiono błąd, który uniemożliwiał zalogowanie w przypadku logowania Windows. Dla błędu w logach serwisu AUTH był rejestrowany komunikat „Object reference not set to an instance of an object”.

10. Zależności listy wyboru

Usunięto błąd wyświetlania zależności Nazwa kolumny > Powiązane pole formularza definiowanych w konfiguracji kontrolek typu lista wyboru.

11. Audyt

Usunięto problem z aktualizacją triggerów audytu po zmianach w modelu danych (usunięcie kolumny).

12. Uprawnienia formularza - interesariusze

Poprawiono błąd, który powodował, że w oknie uprawnień ACL formularza nie można było zdefiniować uprawnień dla grupy interesariuszy (pusta lista).

13. Uprawnienia formularza - statusy

W oknie dialogowym uprawnień formularza dodano obsługę przypadku, gdy dla danej definicji dokumentu występują dwa (lub więcej) statusy o takiej samej nazwie (atrybut Opis). Do tej pory uprawnienia dla takich statusów były wyświetlane jako jedna grupa.

14. Uprawnienia formularza - nowy uprawniony

W oknie uprawnień formularza poprawiono błąd, który powodował, że pierwsze kliknięcie przycisku Nowy uprawniony nie powodowało żadnej reakcji.

15. Migrator aplikacji

W procesie importu aplikacji zmodyfikowano kolejność operacji tak, aby tworzenie struktury tabeli do importu na podstawie tabeli TABLES_TO_EXPORT_CONFIG odbywało się przed tworzeniem procedur. Pozwoliło to wyeliminować błąd występujący, kiedy rozpoczynano tworzenie procedury DeleteCascade bez uprzedniego utworzenia struktury tabeli z konfiguracją importu. Problem występował, gdy użytkownik rozpoczął import aplikacji bez porównywania.

16. Akcja odświeżania formularza

Zmodyfikowano działanie akcji odświeżania wskazanego formularza w taki sposób, że obecnie pobiera dane z modelu na podstawie kodu formularza a nie jego identyfikatora. Wyeliminuje to możliwość występowania błędów w przypadku, gdy identyfikator formularza zmieni się po imporcie aplikacji.

W przypadku wcześniejszych wersji nAxiom można po imporcie aplikacji wykonać poniższy skrypt, który wyeliminuje ewentualne błędy.

UPDATE
  bta
SET
  bta.[Parameters] = JSON_MODIFY(
  bta.[Parameters],
  '$.formId',
  (SELECT [Id] FROM [core].[Forms]
  WHERE [Code] = JSON_VALUE(bta.[Parameters], '$.formCode')))
FROM
  [core].[BusinessTransitionActions] bta
WHERE
  [ActionId] = (SELECT [Id] FROM [core].[Actions] WHERE [Command] = 'RefreshIndicatedForm')

17. Wartość ustalona

Poprawiono zapis wartości ustalonej dla listy wyboru w przypadku, gdy wartość na tej liście była ustawiana na podstawie wartości w innej liście wyboru z użyciem mechanizmu “Lista zależności: kolumna - pole formularza”.

Należy pamiętać, że mapowanie wartości przy użyciu powyższego mechanizmu nie wyzwala zdarzenia OnChange w kontrolce docelowej, tak samo jak ustawienie wartości domyślnej. Zdarzenie OnChange jest wyzwalane tylko w przypadku zatwierdzenia zmienionej wartości naciśnięciem klawisza Enter lub utratą fokusu.

18. Bloczek oczekiwania

Poprawiono błąd, który powodował, że usunięcie dokumentu w statusie odpowiadającym bloczkowi oczekiwania powodowało nieskończoną pętlę odwołań z serwisu Taskservice do tego dokumentu. Błąd był spowodowany tym, że dla usuniętego obiektu pozostawała aktywna flaga bloczku oczekiwania w tabeli core.BusinessTransitionAwaiters. Obecnie takie flagi są usuwane podczas usuwania dokumentu.

Dodatkowo, w przypadku gdyby dokument został usunięty np. bezpośrednio w bazie danych, dodano sprawdzanie podczas próby wyjścia z bloku oczekiwania, czy dokument istnieje. Jeśli nie, flaga zostanie ustawiona na zakończoną i zostanie zalogowany błąd z informacją, że nie znaleziono rekordu, do którego odwołuje się flaga bloku oczekiwania.


Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.