Informacje o wersji 1.14.6.0
z dn. 15-04-2025
W tej wersji
- Zmiany w uprawnieniach ACL dla formularzy:
- Zmiany mechanizmu synchronizacji LDAP
- Zmiany weryfikacji licencji
- Poprawki w różnych obszarach platformy
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: 20250317081642
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.5.0
- 1.14.5.1
Nowe i zmodernizowane funkcje
1. Malarz uprawnień
W oknie Uprawnienia formularza
dodano funkcjonalność malarza uprawnień. Pozwala ona skopiować uprawnienia z wybranej kolumny lub wiersza i wkleić je, odpowiednio, do innych kolumn lub wierszy.
2. Zbiorcze ustawianie uprawnień
W oknie dialogowym Uprawnienia formularza
dodano możliwość zbiorczego ustawiania uprawnień dla danego elementu dla wszystkich uprawnionych za pomocą pól wyboru w nagłówkach kolumn macierzy uprawnień. Dodatkowo, do zbiorczych ustawień w wierszach dodano pole wyboru dla wymagalności.
3. Wyszukiwanie ról
Na liście wielowyboru Rola globalna
w oknie dialogowym Nowy uprawniony
(Uprawnienia dla formularza
) zmieniono sposób wyszukiwania ról z listy. Obecnie role są wyszukiwane według dowolnego fragmentu nazwy.
4. Synchronizacja LDAP
Wprowadzono szereg zmian w mechanizmie synchronizacji struktury organizacyjnej i użytkowników:
- Zmodyfikowano mechanizm synchronizacji struktury organizacyjnej i użytkowników w przypadku, gdy skonfigurowano dokument dla danych dodatkowych. Obecnie podczas synchronizacji rekord danych dodatkowych będzie tworzony zawsze, nawet jeśli nie skonfigurowano mapowania parametrów z systemu zewnętrznego na pola formularza z danymi dodatkowymi. W przypadku wpisów użytkowników i jednostek bez rekordów danych dodatkowych, te rekordy zostaną utworzone podczas kolejnej synchronizacji.
- Dodano mechanizm sprawdzania konieczności aktualizacji danych dodatkowych oparty na porównaniu danych. W przypadku braku zmian dane (instancje dokumentów) nie będą aktualizowane i wersja dokumentu nie będzie podnoszona.
- Zmodyfikowano obsługę konfiguracji synchronizacji mechanizmem SQL, tak aby zachowanie parametru RepeatInterval było takie same jak dla synchronizacji LDAP. Oznacza to, że podanie wartości 0 lub mniejszej od zera powodowało wyłączenie danej synchronizacji. Obecnie nie ma potrzeby usuwania konfiguracji synchronizacji mechanizmem SQL w celu jej wyłączenia. Ponadto, w logach TaskService na poziomie Information dodano komunikaty z informacją, że dana konfiguracja synchronizacji jest wyłączona.
- W synchronizacji jednostek organizacyjnych dodano dopisywanie wartości ExternalFormUrl do tabeli core.OUInstances.
5. Zmiany weryfikacji licencji
Zmodyfikowano mechanizm synchronizacji struktury organizacyjnej pod kątem obsługi licencjonowania. Po zmianach proces synchronizacji nie zostanie wykonany, jeżeli dla dowolnej z ról zostanie wykryte przekroczenie limitu licencji. W takim przypadku zostanie wyświetlony komunikat z następującymi informacjami:
- nazwa roli systemowej, dla której przekroczono limit,
- limit licencji dla tej roli,
- liczba użytkowników aktywnych dla tej roli,
- łączna liczba użytkowników aktywnych po synchronizacji.
Mechanizm weryfikacji zlicza użytkowników aktywnych nienależących do domeny, nowych użytkowników z domeny do dodania oraz aktywnych użytkowników z domeny do zaktualizowania. Użytkownicy nieaktywni nie są brani pod uwagę podczas weryfikacji limitu licencji.
Dodano logowanie komunikatów na poziomie information w momencie pomyślnej weryfikacji limitu licencji oraz na zakończenie procesu synchronizacji z informacją o liczbie zsynchronizowanych użytkowników.
Ponadto poprawiono obsługę błędów, w tym wyeliminowano pusty komunikat o błędzie w logach.
Poprawki i usunięte błędy
1. Rodzaj środowiska
Poprawiono błąd powodujący, że niektóre serwisy nAxiom działały w środowisku deweloperskim, ignorując faktyczne ustawienie środowiska dla danej witryny.
Błąd powodował:
- uruchamianie akcji niezgodnie z bieżącym typem środowiska,
- korzystanie z nieprawidłowych wartości zmiennych aplikacji.
Poprawka została wprowadzona w serwisach:
- PublicAPI,
- MobileAPI,
- BpmnAPI,
- ExecutorAPI.
Na potrzeby wdrożenia nAxiom z obrazów Docker zmodyfikowano domyślną wartość w pliku appsettings.json serwisów na Production. Ta zmiana wymaga samodzielnego ustawienia typu środowiska na odpowiadający danemu wdrożeniu w plikach appsettings-custom.json poszczególnych serwisów. Patrz artykuł z bazy wiedzy.
W ramach zadania poprawiono instalator dla systemów Windows, aby poprawnie modyfikował pliki konfiguracyjne zgodnie z wybranym typem środowiska.
2. Uprawnienia formularza - model uproszczony
Zmodyfikowano sposób określania uprawnień na formularzu powiązanym z definicję dokumentu opartego na modelu uproszczonym. Po otwarciu okna uprawnień ACL formularza wyświetlany jest komunikat informujący, że w tym oknie możliwe jest określenie tylko uprawnień dla twórcy dokumentu oraz, że dodatkowe uprawnienia można określić w ustawieniach dostępności, przy czym konieczne jest wybranie odpowiedniego typu walidacji uprawnień.
Planowane jest rozbicie obsługi uprawnień na formularzu dla dokumentów w modelu uproszczonym na nowy dokument (przed zapisem) i dokument zapisany.
3. Wartości domyślne, min. i maks.
W designerze formularzy poprawiono błąd wyświetlania wartości domyślnej, minimalnej i maksymalnej ustawianych dla pola numerycznego powiązanego z kolumną typu liczby float. Obecnie wartości te wyświetlane są z dokładnością do pięciu miejsc po przecinku.
Ponadto poprawiono formatowanie wartości domyślnej, minimalnej i maksymalnej dla danych typu integer (bez miejsc po przecinku) i decimal (liczba miejsc zgodna z definicją kolumny).
4. Kontrolki daty i godziny
Dla kontrolek Datepicker, Datepicker i pole czasu oraz Pole czasu poprawiono przenoszenie konfiguracji w przypadku zmiany typu kontrolki w obrębie tej grupy. Jeśli wartość domyślna, minimalna i maksymalna są określone jako literały, będą poprawnie przenoszone podczas zmiany. Jeśli te wartości określono instrukcją SQL, zmiana typu kontrolki spowoduje ich wyczyszczenie. Jeśli kontrolka obsługująca typ danych datetime zostanie zmieniona na kontrolkę obsługującą inny typ danych, wartości domyślna, minimalna, maksymalna i format zostaną wyczyszczone. Tak samo będzie w przypadku zmiany kontrolki innego typu na jedną z kontrolek datetime, przy czym w tym przypadku zostanie ustawiony format odpowiedni dla docelowego typu kontrolki.
5. Kontrolka Datepicker
Dla kontrolki Datepicker poprawiono obsługę funkcji GETDATE() w zapytaniu dla wartości domyślnej, minimalnej i maksymalnej. W wyniku błędu walidacja wartości wpisanej w takiej kontrolce uwzględniała godzinę, dodatkowo wartość domyślna była zapisywana wraz z godziną.
6. Widok listy
Usunięto błąd, który powodował, że po użyciu w zapytaniu źródłowym widoku listy odwołania do pola formularza ({@*KodFormularza.NazwaPola}) nie można było dodać kolumny do widoku listy — okno wyświetlane poleceniem Generuj kolumny
było puste.
7. Edycja inline
Poprawiono błąd, który powodował, że po włączeniu tryb edycji inline w widoku listy pozostawał włączony także po odświeżeniu widoku, a nawet w przypadku przełączenia na inny widok listy. Problem poprawiono także dla list hierarchicznych.
8. Filtrowanie listy hierarchicznej
Poprawiono funkcje filtrowania listy hierarchicznej dla kolumn typu date i datetime. W ramach zadania przywrócono możliwość wybrania innego interwału niż minuty dla filtrów na kolumnach typu datetime.
W kolumnach typu time nie należy stosować filtrów
w ciągu ostatnich...
aniponad...
, ponieważ te wartości określają tylko godzinę i nie mają odniesienia do bieżącego momentu, który jest wykorzystywany przez te filtry.
9. Kolumna Właściciel zadania
W widokach listy, w kolumnie Właściciel zadania
ukryto filtry zaczyna się od i jest równe.
10. Dane audytu
Poprawiono wyświetlanie danych audytu w przypadku zmian, które dotyczyły dokumentu w tym samym statusie.
11. Smart numbers
Poprawiono błędne identyfikowanie nieskończonej pętli podmiany wartości zagnieżdżonych smart numbers w przypadkach, gdzie taka pętla nie występowała. Błąd pojawiał się w przypadku podmiany dwóch wartości, z których pierwsza zwracała null lub pusty tekst.
12. Migracja akcji
Poprawiono błąd powodujący, że zmigrowana akcja przekierowania odwoływała się do błędnych lub nieistniejących wywołań callback. Ten błąd mógł mieć wpływ także na migrację innych akcji i wynikał z używanych w definicji akcji odwołań do liczbowych identyfikatorów innych obiektów, których wartości na środowisku docelowym mogły być inne. Obecnie takie odwołania są przed eksportem zamieniane na wartości RowGuid, a podczas importu na poprawne wartości Id w środowisku docelowym.
13. Usuwanie załączników
Poprawiono błąd, który powodował, że usunięcie załącznika z kategorii z włączonym wersjonowaniem nie powodowało poprawnego usunięcia wszystkich wpisów w tabelach systemowych powiązanych z tą wersją załącznika.
Aby sprawdzić, czy w bieżącej bazie danych występuję błędne wpisy i je usunąć, należy zaadaptować i wykonać poniższy skrypt.
Przed zatwierdzeniem transakcji należy dokładnie sprawdzić, czy obejmuje ona wyłącznie błędne wpisy.
BEGIN TRANSACTION
DECLARE @repositoryId INT = 5 -- Identyfikator repozytorium do zweryfikowana
DECLARE @versioningIdentifierTable TABLE ([Id] UNIQUEIDENTIFIER)
DECLARE @attachmentContentTable TABLE ([Id] UNIQUEIDENTIFIER)
INSERT INTO @versioningIdentifierTable
SELECT
[VersioningIdentifier]
FROM [core].[Attachments] a
JOIN [core].[AttachmentCategories] ac
ON ac.[Id] = a.[AttachmentCategoryId]
JOIN [core].[AttachmentRepositories] ar
ON ar.[Id] = ac.[AttachmentRepositoryId]
LEFT JOIN [NAXATTACHMENTS].[dbo].[AttachmentContent] att
ON att.[Id] = a.[RowGuid]
WHERE att.[Id] IS NULL
AND ar.[Id] = @repositoryId
AND ar.[RepositoryType] = 1
SELECT * FROM @versioningIdentifierTable
DELETE FROM [core].[AttachmentVersions]
WHERE [Id] IN (SELECT [Id] FROM @versioningIdentifierTable)
DELETE FROM [core].[Attachments]
WHERE [VersioningIdentifier] IN (SELECT [Id] FROM @versioningIdentifierTable)
INSERT INTO @attachmentContentTable
SELECT
att.[Id]
FROM [NAXATTACHMENTS].[dbo].[AttachmentContent] att -- Nazwa bazy i tabeli z zawartością załączników
LEFT JOIN [core].[Attachments] a
ON a.[RowGuid] = att.[Id]
WHERE a.[Id] IS NULL
SELECT * FROM @attachmentContentTable
DELETE FROM [NAXATTACHMENTS].[dbo].[AttachmentContent] -- Nazwa bazy i tabeli z zawartością załączników
WHERE [Id] IN (SELECT [Id] FROM @attachmentContentTable)
ROLLBACK
--COMMIT
14. Obsługa klawisza Enter
Poprawiono obsługę klawisza Enter w oknie dialogowym edycji zastępstwa oraz w sekcji raportów Telerik. Naciśnięcie klawisza Enter w tych miejscach nie będzie już powodować wywołania akcji pod pierwszym przyciskiem typu submit w modelu DOM strony.
W sekcji raportów Telerik użycie klawisza Enter spowoduje odświeżenie raportu dla wskazanych parametrów wejściowych o ile są one skonfigurowane.
15. Synchronizacja LDAP
Usunięto błąd synchronizacji LDAP powodujący, że dla nowych użytkowników w tabeli auth.AspNetUsers ustawiany był identyfikator języka 0. Ten błąd występował też w przypadku włączenia flagi OverrideUserLanguageByDefaultValue podczas aktualizacji języka dla użytkowników. Obecnie podczas synchronizacji nowych użytkowników wartość LangId będzie ustawiana poprawnie, aby jednak poprawić błędy w istniejących danych należy wykonać poniższy skrypt:
UPDATE asp
SET asp.[LanguageId] = us.[LanguageId]
FROM [auth].[AspNetUsers] AS asp
INNER JOIN [core].[UserProfiles] AS us
ON asp.[Id] = us.[Id]