Informacje o wersji 1.14.6.0
z dn. 15-04-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: 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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... ani ponad..., 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]

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