Informacje o wersji 1.15.10.0
z dn. 15-10-2026
W tej wersji
- Szczególny przypadek kontroli ACL create
- Domyślna widoczność kolumny
- Panel zarządzania kolumnami
- Synchronizacja ról w jednostkach
- Ustawienia kontrolek edycji inline
- Akcje edycji inline
- Przyciski w nagłówku listy
- Rozwiązane problemy
- Optymalizacja SQL - informacje o funkcjonalności
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: 20261012055447
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 rozszerzone funkcjonalności
1. Szczególny przypadek kontroli ACL create
W niektórych aplikacjach tworzonych w nAxiom formularz nowego rekordu (Id=0) nie jest używany do tworzenia nowych dokumentów, tylko do prezentacji danych w sekcjach typu lista. Jednocześnie w tych aplikacjach może być wymagana kontrola uprawnień do tworzenia nowych dokumentów, np. z poziomu edycji inline, przez Public API itp. Na potrzeby takich szczególnych przypadków dodano możliwość wyłączenia sprawdzania uprawnień do tworzenia rekordów podczas otwierania formularza nowego dokumentu. Służy do tego przełącznik Wykonuj kontrolę uprawnień do tworzenia dokumentu podczas otwierania formularza nowego rekordu dostępny w definicji formularza. Domyślnie jest on włączony. W przypadku definicji dokumentu bez włączonej obsługi uprawnień, przełącznik jest zastępowany etykietą Nie dotyczy.
Uwaga
Zaleca się korzystanie z tej funkcjonalności wyłącznie w przypadku formularzy używanych do prezentacji danych, np. w sekcjach typu lista. Jest to rozwiązanie tymczasowe. W wersji nAxiom 2.0 planowane jest umożliwienie tworzenia formularzy niepowiązanych z definicją dokumentu. Takie formularze będą przeznaczone wyłącznie na potrzeby prezentacji danych.
2. Domyślna widoczność kolumny
W Kreatorze listy, we właściwościach kolumny dodano przełącznik Domyślnie widoczna. Wyłączenie tego przełącznika spowoduje, że dana kolumna nie będzie widoczna we Front SPA, ale użytkownik będzie mógł ją wyświetlić, używając nowego polecenia Zarządzanie kolumnami (dawniej Widoczność kolumn).
Ponadto, również w Kreatorze listy, dodano możliwość zbiorczego ustawiania stanu domyślnej widoczności oraz aktywności, dodając obsługę zaznaczenia wielu elementów na liście kolumn oraz odpowiednie polecenia menu kontekstowego.
3. Panel zarządzania kolumnami
Zmieniono sposób zarządzania kolejnością i widocznością kolumn na listach oraz dodano możliwość przypinania kolumn w widoku listy we Front SPA. W ramach zadania polecenie Widoczność kolumn zastąpiono poleceniem Zarządzanie kolumnami. Polecenie wyświetla okno dialogowe z listą kolumn. W tym oknie można zmieniać kolejność kolumn, ukrywać je i wyświetlać oraz przypinać i odpinać.
Cała funkcjonalność jest dostępna zarówno dla widoków listy w aplikacjach biznesowych, jak i dla list systemowych, np. dla listy użytkowników.
Funkcjonalność przypinania działa zgodnie ze specyfikacją Kendo Grid Sticky Columns, to jest podczas przewijania przypięta kolumna nie znika z widoku, tylko zostaje zadokowana przy lewej lub prawej krawędzi.
4. Synchronizacja ról w jednostkach
Rozbudowano mechanizm synchronizacji struktury organizacyjnej bazujący na tabelach buforowych SQL o możliwość synchronizacji przypisania ról biznesowych użytkownikom w jednostkach organizacyjnych. W tym celu dodano nową tabelę core.SyncOUInstanceUserRoles, w której można definiować przypisania. Tabela składa się z kolumn:
- RoleId (INT): identyfikator roli z tabeli Roles, kolumna nie posiada klucza obcego do wskazanej tabeli,
- UserId (NVARCHAR(450)): identyfikator użytkownika z tabeli SyncUserProfiles z kolumny UserId, kolumna posiada klucz obcy do wskazanej tabeli i kolumny,
- OrgUnitId (NVARCHAR(450)): identyfikator jednostki organizacyjnej z tabeli SyncOUInstances z kolumny OrgUnitId, kolumna posiada klucz obcy do wskazanej tabeli i kolumny.
W celu skorzystania z rozbudowanego mechanizmu synchronizacji należy zapewnić komplet danych dla profili użytkowników, jednostek organizacyjnych, przypisania użytkownika w jednostkach oraz przypisania ról biznesowych w tych jednostkach, a następnie zmienić wartość wszystkich wpisów w tabeli SqlTableStatuses na 1 - dane gotowe do synchronizacji.
Ponadto w ramach zadania wprowadzono następujące zmiany:
- w serwisie Public API dodano punkt końcowy OUInstanceUserRolesList typu POST pozwalający na zasilenie nowej tabeli,
- w tabeli SqlTableStatuses dodano wpis dla SyncOUInstanceUserRoles z wartością domyślną statusu 0 - gotowość na przyjęcie danych,
- rozbudowano diagnostykę mechanizmu synchronizacji przez logowanie informacji na poziomach INFORMATION, WARNING, DEBUG oraz TRACE,
- poprawiono działanie punktów końcowych odpowiedzialnych za obsługę przyjęcia danych do synchronizacji; w określonych przypadkach wypełnienie danymi kończyło się niepowodzeniem,
- zoptymalizowano również sam proces dodawania danych do tabel buforowych.
5. Ustawienia kontrolek edycji inline
Dodano możliwość skonfigurowania następujących wartości dla kontrolki Pole numeryczne używanej w edycji inline:
Wstaw 0 zamiast NULL dla pustej wartościFormat wyświetlania danychSpinner
6. Wyróżnienie aktywnego filtra
Aby poprawić widoczność kolumn z aktywnym filtrem w widoku listy we Front SPA, zastosowano podświetlenie przycisku menu w nagłówku kolumny kolorem ustawionym w Kreatorze stylów jako kolor dodatkowy.
7. Przyciski w nagłówku listy
W Kreatorze listy na karcie Ustawienia listy dodano nowe ustawienie: Zestaw danych dla przycisków nagłówka listy. Zależnie od wybranej wartości, ustawienie to określa dostęp do zmiennych systemowych i danych z kontekstu formularza w akcjach przypisanych do przycisków w nagłówku listy (w tym przycisku zapisu w edycji inline):
-
Według definicji listy(domyślnie dla istniejących list): brak zmiany w stosunku do poprzednich wersji; w akcjach dostępna jest zmienna {@_BusinessDocDefId} odpowiadająca definicji dokumentu podanej w konfiguracji listy (lub NULL, jeśli nie podano definicji) oraz inne zmienne systemowe ({@_Nazwa}), oprócz @_FormId i @_Id (odwołanie do nich w ciele akcji zwróci błąd, a w warunku wykonania akcji NULL). Dotyczy zarówno listy wyświetlanej z menu, jak i osadzonej na formularzu. -
Dopasuj do miejsca użycia(domyślnie dla nowych list):- Gdy lista jest sekcją formularza, w akcjach można referować się wprost do kontekstu formularza przez notację @NazwaPola, do parametrów systemowych @_NazwaParametru (właściwych dla formularza) oraz do tablicy OpenedForms przez notację @*KodFormularza.NazwaPola. Dotyczy to zarówno ciała akcji, jak i warunku wykonania.
- Gdy lista jest otwierana z menu (poza formularzem), dostęp do zmiennych w akcjach przycisków nagłówka jest taki sam, jak dla ustawienia
Według definicji listy.
Wskazówka
Zmianę wprowadzono z myślą o warunkowym wykonywaniu akcji z poziomu nagłówka listy, w zależności od tego, czy lista jest osadzona na formularzu (także na kilku formularzach), czy nie. W szczególności jako kryterium wykonania można używać wartości zmiennej @_BusinessDocDefId. Ponadto, dotyczy to tylko warunku wykonania akcji, odwołanie do zmiennej, która będzie niedostępna, zwróci wartość NULL.
Rozwiązane problemy
1. Kontrolka Wynik zapytania SQL
Zmodyfikowano sposób prezentacji kontrolki Wynik zapytania SQL w taki sposób, aby jej wygląd był spójny z wyglądem innych kontrolek w trybie tylko do odczytu. Ponadto dodano mechanizm odświeżania wartości tej kontrolki podczas odświeżania sekcji formularza.
2. Kontrolka Obszar tekstowy
Dla kontrolki Obszar tekstowy (TextArea) dodano możliwość zmiany wysokości kontrolki za pomocą myszy oraz przewijania zawartości w trybie tylko do odczytu.
3. Zaznaczanie rekordów na liście
Poprawiono działanie funkcji zaznaczania wszystkich rekordów na liście za pomocą pola wyboru wyświetlanego w nagłówku listy.
4. Eksport do Excel
Poprawiono działanie eksportu do pliku Excel danych z listy o strukturze płaskiej działającej w trybie Tylko przeglądarka WWW. Dane są eksportowane z uwzględnieniem sortowania i filtrowania.
5. Odświeżanie sekcji formularza
Poprawiono działanie akcji odświeżania sekcji formularza w przypadku, gdy była ona uruchamiana z poziomu formularza wyświetlanego jako panel boczny.
6. Kreator modeli danych
W kreatorze modeli danych usunięto błąd, który powodował czyszczenie wartości etykiet pól po zmianie nazwy modelu danych.
7. Logowanie w TenantsAdmin SPA
Usunięto problem z logowaniem SSO w TenantsAdminSPA w konfiguracji z ADFS.
8. Synchronizacja w TenantsAdmin SPA
Usunięto problem, który powodował, że skonfigurowanie synchronizacji z AD i SSO w TenantsAdmin SPA (Global settings > External user synchronization/External login)powodowało restart Taskservice.
9. Propagacja ustawień listy na kolumny
Poprawiono mechanizm propagacji ustawień definiowanych we właściwościach listy na indywidualne kolumny oraz dziedziczenia tych ustawień przez nowo generowane kolumny. Mechanizm dotyczy między innymi ustawień Sortowanie, Filtrowanie, Grupowanie oraz ustawień z karty Wygląd. Wyjątkiem jest ustawienie wyrównania dla wierszy oraz stopki w nowo generowanych kolumnach, które zależy od typu danych kolumny: tekst jest domyślnie wyrównywany do lewej, a inne typy danych do prawej
10. Zaznaczanie rekordów na liście
Poprawiono działanie pola wyboru służącego do zaznaczania/odznaczania wszystkich rekordów na liście.
11. Zależność od sekcji
Poprawiono działanie mechanizmu zależności od sekcji w przypadku, gdy zmiany sekcji nadrzędnej były wprowadzane w trybie edycji inline.
12. Eksport do Excel
Poprawiono działanie akcji eksportu danych do formatu Excel w przypadku nowej akcji z opcją Eksportuj jako o wartości Uzupełniony istniejący szablon. W takiej konfiguracji akcja zgłaszała błąd w logach z komunikatem Value cannot be null. (Parameter ‘input’).
13. Nagłówek formularza
Poprawiono odświeżanie metryki dokumentu w nagłówku formularza podczas przełączania instancji dokumentów.
14. Reguły walidacji dokumentu
Poprawiono błąd, który powodował, że po włączeniu globalnego filtra aplikacji w Admin SPA nie były wyświetlane reguły walidacji w definicji dokumentu. Dodatkowo naprawiono działanie filtrów kolumnowych na liście reguł walidacji.
15. Filtr aplikacji w Admin SPA
Poprawiono działanie globalnego filtra aplikacji w Admin SPA. Obecnie włączenie filtra powoduje automatyczne odfiltrowanie wyświetlanych danych, a po odświeżeniu strony filtr jest nadal aktywny. Ponadto zmieniono operator stosowany do dopasowania nazwy aplikacji z Zawiera na Jest równe.
16. Kopiowanie formularza
Poprawiono funkcjonalność kopiowania formularza w przypadku, gdy na kopiowanym formularzu zdefiniowano pole techniczne.
17. Zależność kolumna-kolumna
Zmodyfikowano funkcjonalność zależności kolumna-kolumna dla kontrolki listy wyboru używanej do edycji inline. Obecnie, w przypadku zależności dotyczącej kolumny nieaktywnej, taka zależność będzie pomijana. Ponadto, wyłączenie aktywności kolumny, której dotyczy zależność, spowoduje wyświetlenie odpowiedniego ostrzeżenia podczas zapisu definicji widoku listy.
18. Reset hasła
Zmodyfikowano wyrażenie regularne do weryfikacji adresów email podczas procesu resetowania hasła. Dotychczasowa walidacja mogła odrzucać poprawne adresy e-mail o bardziej rozbudowanej strukturze.
Wskazówka
W dalszym ciągu nie jest możliwe zresetowanie hasła przy użyciu loginu, który zawiera symbol @ (i nie jest tożsamy z adresem e-mail).
19. Grupowanie rekordów
Z listy kolumn wyświetlanej po kliknięciu pozycji Grupowanie kolumn w menu konfiguracji listy we Front SPA usunięto kolumny akcji i selekcji.
20. Pulpit domyślny
Wyeliminowano występujący nieregularnie problem z ładowaniem pulpitu domyślnego po zalogowaniu użytkownika.
21. Przycisk usuwania inline
W Kreatorze listy na karcie właściwości przycisku usuwania w trybie inline po kliknięciu w wiersz poprawiono tekst etykiety dla zbioru akcji.
22. Kontrolka daty/godziny
W kontrolkach daty, godziny oraz daty i godziny poprawiono zapis wartości ustawianych za pomocą strzałek klawiatury, kółka myszy oraz przycisków dostępnych w kontrolce.
23. Akcja importu dokumentów
Usunięto błąd, który powodował niepowodzenie akcji importu dokumentów z włączonym audytem zdarzeń.
24. Akcja zmiany statusu
Poprawiono działanie nAxiom w przypadku uruchomienia akcji zmiany statusu dla dużego zbioru rekordów, co skutkowało błędami przekroczenia limitu czasu. W ramach zadania wprowadzono następujące optymalizacje:
- Wyeliminowano wielokrotne przetwarzanie rekordów w akcji masowej zmiany statusu (szczególnie dla rekordów z różnymi statusami początkowymi).
- Zoptymalizowano mechanizm czyszczenia cache i publikacji zdarzeń (agregacja/batching), znacząco ograniczając narzut i skracając przetwarzanie dużych paczek.
- Zmodyfikowano procesy odświeżania uprawnień ACL, aby zredukować obciążenie TaskService podczas operacji masowych.
25. Nowa akcja globalna
Naprawiono błąd uniemożliwiający zmianę modułu i aplikacji podczas tworzenia akcji globalnej bezpośrednio po próbie utworzenia nowej akcji formularza.
26. Kopiowanie listy
Usunięto następujące błędy, występujące w Admin SPA podczas kopiowania listy z włączoną edycją inline:
- brak w skopiowanej liście zależności ustawionych w kontrolkach lista wyboru dla edycji inline,
- jeśli w kopiowanej liście była używana systemowa akcja zapisu, po wykonaniu kopii akcja przestawała działać we wszystkich miejscach użycia.
27. Edytor dla akcji JavaScript
Poprawiono wywołanie edytora podczas tworzenia lub edycji akcji Javascript na formularzu.
28. Kreator modeli danych
Wprowadzono poprawkę, która wyeliminowała brak możliwości utworzenia modelu danych w nowoutworzonym tenancie. Problem dotyczył sytuacji, kiedy podczas tworzenia tenanta nie została zainicjowana lista słów zastrzeżonych SQL. Obecnie w takim przypadku system zachowa się tak, jakby lista słów zastrzeżonych była pusta.
Informacje uzupełniające
1. Optymalizacja SQL - informacje o funkcjonalności
Funkcja Optymalizacja SQL (Admin SPA → Administracja → Optymalizacja SQL) jest dostępna dla użytkowników z rolą Konsultant. Umożliwia analizę danych diagnostycznych SQL Server oraz, zależnie od wybranej funkcji, wykonanie operacji na indeksach i danych.
Zapytania są wykonywane przez API na koncie określonym w connection string bieżącego tenanta. Część zapytań analizuje bieżącą bazę danych, natomiast wybrane funkcje analizują również informacje dostępne na poziomie całej instancji SQL Server, między innymi aktywne zapytania, oczekiwania, blokady, wykorzystanie zasobów i zadania (job) SQL Server Agent.
Aby korzystać z diagnostyki wykorzystującej serwerowe widoki DMV, konto SQL powinno posiadać następujące uprawnienia:
- VIEW SERVER STATE na serwerze SQL. W nowszych wersjach SQL Server mogą mieć zastosowanie również nowsze uprawnienia wydajnościowe. W Azure SQL Database zakres i nazwy wymaganych uprawnień zależą od typu usługi.
- Uprawnienia pozwalające na odczyt metadanych i danych systemowych w bazie danych tenanta, zwykle zapewnione przez rolę db_datareader albo db_owner.
Aby korzystać z operacji modyfikujących, konto musi dodatkowo posiadać uprawnienia odpowiednie do wybranej operacji:
- db_datawriter albo uprawnienia INSERT, UPDATE i DELETE dla operacji na danych.
- db_ddladmin albo odpowiednie uprawnienia DDL dla tworzenia, modyfikowania i usuwania indeksów oraz obiektów bazodanowych.
- Uprawnienia do tworzenia i modyfikowania procedur, tabel i widoków wymaganych przez rozszerzony test kondycji i obciążenia środowiska SQL.
Dla zestawienia Lista jobów na SQL Server konto musi mieć dostęp do odpowiednich obiektów w bazie msdb, zwykle poprzez rolę SQLAgentReaderRole. Funkcja wymaga obecności SQL Server Agent i nie jest dostępna w Azure SQL Database ani w edycjach bez SQL Server Agent.
Ważne
Rola db_owner zapewnia wymagane uprawnienia w bazie tenanta, ale nie zastępuje uprawnień serwerowych. Standardowo tworzone konta aplikacyjne oraz konta nadawane przez instalator nie muszą posiadać uprawnienia VIEW SERVER STATE. Przy kontach innych niż sa uprawnienie należy nadać administracyjnie, na przykład:
GRANT VIEW SERVER STATE TO [login];
Przy uwierzytelnianiu Windows uprawnienia należy nadać kontu, na którym działa API, na przykład kontu puli aplikacji IIS albo kontu usługi.
Funkcjonalność będzie modyfikowana w kolejnych wersjach platformy w kierunku poprawy czytelności informacji o stanie bazy danych i prezentowania zalecanych czynności służących jej optymalizacji. Ze względów bezpieczeństwa funkcjonalność w nowej odsłonie będzie służyć wyłączenie analizie kondycji bazy danych bieżącego tenanta, a analizy na poziomie serwera SQL pozostaną w gestii administratora serwera.