Informacje o wersji 1.14.8.3 z dn. 17-07-2025
W tej wersji
- Poprawiono błąd, który prowadził do nieoczekiwanej zmiany tożsamości bieżącego użytkownika na tożsamość użytkownika, który wcześniej go zastępował. Błąd mógł wystąpić, jeśli kiedykolwiek zdarzyło się, że użytkownik zastępujący pracował w trybie zastępstwa i w tym samym czasie zastępowany był zalogowany do systemu.
- W wywołaniu punktów końcowych Internal API RunManyActions (wykonanie akcji w transakcji) oraz RunSaveFormSystemAction zmieniono sposób przesyłania parametrów z adresu URL na ciało żądania. W przypadku bardzo dużej liczby parametrów dotychczasowe rozwiązanie mogło powodować błąd 414 URI Too Long.
- W plikach konfiguracyjnych nAxiom dodano ustawienia umożliwiające połączenia SSL/TLS z oprogramowaniem Redis.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250610093512
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.8.0
- 1.14.8.1
- 1.14.8.2
Informacje o wersji 1.14.8.3 z dn. 16-07-2025
W tej wersji
- Poprawiono błąd, który prowadził do nieoczekiwanej zmiany tożsamości bieżącego użytkownika na tożsamość użytkownika, który wcześniej go zastępował. Błąd mógł wystąpić, jeśli kiedykolwiek zdarzyło się, że użytkownik zastępujący pracował w trybie zastępstwa i w tym samym czasie zastępowany był zalogowany do systemu.
- W wywołaniu punktów końcowych Internal API RunManyActions (wykonanie akcji w transakcji) oraz RunSaveFormSystemAction zmieniono sposób przesyłania parametrów z adresu URL na ciało żądania. W przypadku bardzo dużej liczby parametrów dotychczasowe rozwiązanie mogło powodować błąd 414 URI Too Long.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250610093512
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.8.0
- 1.14.8.1
- 1.14.8.2
Informacje o wersji 1.14.8.2 z dn. 04-07-2025
W tej wersji
Zmodyfikowano zachowanie listy wyboru z zapisaną wartością ustaloną. W przypadku wyczyszczenia wartości w takiej kontrolce i odświeżenia jej źródła danych, zapisana wartość ustalona nie będzie dostępna na liście wartości w tej kontrolce.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250610093512
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.8.0
- 1.14.8.1
Informacje o wersji 1.14.8.1 z dn. 26-06-2025
W tej wersji
W tej aktualizacji rozwiązano kilka problemów dotyczących listy wyboru interesariuszy, mechanizmu mapowania wartości przez listy wyboru oraz edycji inline.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250610093512
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.8.0
Poprawki i usunięte błędy
Kontrolka interesariuszy - użytkownicy spoza listy
Dla listy wyboru interesariuszy dodano obsługę przypadków, kiedy wartość w kontrolce jest ustawiana poprzez mapowanie z innej listy wyboru lub przez wartość domyślną. W takiej sytuacji próba dodania do grupy interesariuszy użytkowników, którzy nie spełniają kryteriów określonych w konfiguracji listy wyboru interesariuszy nie powiedzie się i nie zostanie wyświetlony żaden komunikat.
Należy zwrócić uwagę, że właściwości listy wyboru interesariuszy dotyczą tylko i wyłącznie kontrolki, a nie samej grupy interesariuszy. W szczególności możliwa jest sytuacja, że w grupie interesariuszy będą użytkownicy nie spełniający kryteriów określonych dla listy wyboru interesariuszy (np. dodani przy użyciu akcji interesariuszy). Tacy użytkownicy będą wyświetlani w kontrolce.
Mapowanie wartości - kontrolka interesariuszy
Poprawiono działanie mechanizmu mapowania wartości dla listy wyboru w przypadku, gdy jako docelowe pole formularza wybrano listę wyboru interesariuszy.
Mapowanie wartości - pole spoza modelu
W funkcji mapowania wartości dla listy wyboru usunięto błąd uniemożliwiający zapisanie jako powiązanego pola formularza ręcznie wprowadzonego pola, którego nie ma w źródle danych formularza.
Mapowanie wartości - docelowe pole formularza
Poprawiono błąd w wyświetlaniu nazwy pola docelowego na liście zależności dla listy wyboru, w przypadku ponownego wejścia w edycję zależności i zapisania tej samej wartości.
Edycja inline - listy wyboru
W funkcji edycji inline dodano przechwycenie wyjątku występującego w przypadku, gdy nie udało się pobrać danych do kontrolki. W takim przypadku zostanie wyświetlony komunikat z kodem kontrolki oraz nazwą kolumny, w której użyto tej kontrolki. Do tej pory taka sytuacja prowadziła do ogólnego wyjątku NullReferenceException, o niewielkiej wartości diagnostycznej.
W ramach zadania poprawiono także obsługę zmiennych kontekstu rozszerzonego ({@key_NazwaKolumny} itp.) używanych w różnych kolumnach.
Informacje o wersji 1.14.8.0 z dn. 16-06-2025
W tej wersji
- Pulpity aplikacji
- Dezaktywacja zadań cyklicznych
- Domyślne powiększenie podglądu PDF
- Modernizacje w różnych obszarach
- Poprawione błędy
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji 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 zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
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.
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.
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.
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.
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.
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
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).
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.
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.
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.
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.
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.
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.
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.
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”.
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.
Audyt
Usunięto problem z aktualizacją triggerów audytu po zmianach w modelu danych (usunięcie kolumny).
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).
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.
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.
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.
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')
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.
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.
Aktualizacja wersji 1.14.5.2, 1.14.6.x i 1.14.7.x z dn. 04-06-2025
W tej wersji
Wykryto błąd w działaniu bloczku oczekiwania. Po upływie czasu oczekiwania nie aktualizowała się flaga zakończenia oczekiwania. W przypadku, kiedy po bloczku oczekiwania był użyty bloczek akceptacji powodowało to nadmiarowe wpisy do tabel core.Notifications i core.BusinessTransitionAcceptances. Odpowiednie zmiany wprowadzono w pakietach instalacyjnych do wersji 1.14.5.2, 1.14.6.0, 1.14.6.1, 1.14.7.0 i 1.14.7.1. Zaktualizowane pakiety można pobrać z katalogu Releases.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: bez zmian
Wersje nAxiom kompatybilne na poziomie bazy danych:
- bez zmian
Informacje o wersji 1.14.5.2 z dn. 26-05-2025
W tej wersji
W tej aktualizacji poprawiono dwa błędy wykryte w wersji 1.14.5.x. Odpowiednie poprawki zostały także wprowadzone we wszystkich późniejszych wersjach nAxiom. Zaktualizowane pakiety instalacyjne można pobrać z odpowiednich folderów w witrynie pobierania. Poprawione błędy dotyczyły:
- unikalności kodów (autonumerator) w przypadku, gdy kilka procesów równocześnie próbowało utworzyć instancje dokumentów w tej samej tabeli; problem wykryto dla przypadku koincydencji zadań cyklicznych dodających rekordy do tej samej tabeli z różnym interwałem (dziennie, miesięcznie i kwartalnie),
- ponawiania żądania wygenerowania raportu; w szczególności błąd występował w przypadku generowania kilku raportów jednocześnie.
Ponadto, w aplikacji FrontSPA, w lewym dolnym rogu okna (pod napisem Powered by nAxiom) dodano wyświetlanie numeru wersji nAxiom.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji 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
Nota techniczna z dn. 16-05-2025
W tej wersji
Wpływ na wydajność wyświetlania listy, autonomicznej lub w sekcji formularza, ma nie tylko ilość danych, ale również konstrukcja zapytania zwracającego dane wyświetlane na liście. Większość zapytań SQL definiowanych przez konsultantów w AdminSPA jest podczas wykonywania opakowywana w dodatkowe instrukcje. Aby zobaczyć, jak faktycznie wygląda zapytanie wysyłane do bazy można skorzystać z MiniProfilera i wyświetlić podgląd żądania Grid/GetGridPartialContent.
Zapytanie wykonywane w celu wyświetlenia strony rekordów widoku listy z kontrolą uprawnień ACL, skonfigurowanym filtrem i ustawionym sortowaniem wygląda następująco:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SELECT (
SELECT COUNT(*) FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM [rklRjs_View]('1') -- zapytanie źródłowe listy
) AS _FilterGridQueryTable_ WHERE ([CREATEDATE] <= '2025-05-14 15:16') -- filtr listy
) AS [GRIDContext] WHERE [GRIDContext].[ACLId] IN ( -- kontrola ACL
SELECT [ACLId]
FROM [core].[GetAclIds]('18ef4e5e-11ee-41cd-5a9d-08d8da52c48b', 1, 'InstanceWithStatus'))
) AS _FilterQueryTable_
) AS _CountResult_
) AS [TotalRecords],
0 AS [Offset],
100 AS [Take],
( SELECT TOP(100) * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM [rklRjs_View]('1')
) AS _FilterGridQueryTable_ WHERE ([CREATEDATE] <= '2025-05-14 15:16')
) AS [GRIDContext] WHERE [GRIDContext].[ACLId] IN (
SELECT [ACLId]
FROM [core].[GetAclIds]('18ef4e5e-11ee-41cd-5a9d-08d8da52c48b', 1, 'InstanceWithStatus'))
) AS _FilterQueryTable_ ORDER BY [ID] DESC OFFSET 0 ROWS -- sortowanie listy
) AS [InnerData] FOR JSON PATH, INCLUDE_NULL_VALUES
) AS [Data] FOR JSON PATH, INCLUDE_NULL_VALUES
W przypadku wyświetlania sekcji typu lista zapytanie wygląda podobnie. Jeśli jest zdefiniowany warunek zależności od innej sekcji, zastępuje on skonfigurowany filtr dla listy (linie 7 i 21). Zestaw rekordów zwracanych do listy jest sortowany klauzulą ORDER BY w linii 25. W tym warunku wstawiana jest nazwa kolumny sortowania domyślnego, z wybranej konfiguracji listy lub tej, której nagłówek kliknął ostatnio użytkownik we FrontSPA. Sortowanie jest resetowane (do domyślnej konfiguracji wyświetlania) po kliknięciu przycisku resetowania konfiguracji listy (czerwony przycisk z gumką).
Konstrukcja tego zapytania zostanie zoptymalizowana w jednej z kolejnych wersji. Tym niemniej, aby nie powodowało ono problemów z wydajnością, warto stosować się do poniższych zaleceń:
- Dla dużych zestawów danych włączać ustawienie
Funkcja server-side
w definicji listy. - Nie stosować klauzul ORDER BY i OFFSET w zapytaniu źródłowym widoku listy w celu ustawiania domyślnego sortowania.
-
Jeśli zachodzi potrzeba domyślnego sortowania rekordów listy, należy w kreatorze listy w AdminSPA kliknąć nagłówek odpowiedniej kolumny na podglądzie i zapisać definicję (patrz ilustracja poniżej). Jeśli ta kolumna nie ma być widoczna, należy użyć warunku widoczności lub dezaktywować kolumnę. To sortowanie zostanie zapisane jako systemowa konfiguracja listy.
Ustawianie domyślnego sortowania listy
Ponadto należy wprowadzić plan utrzymania kondycji bazy danych poprzez reorganizację lub przebudowę indeksów. W tym celu można skorzystać z poniższego skryptu, który w przyszłych wersjach będzie dostępny jako procedura systemowa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
DECLARE @table_schema NVARCHAR(MAX)
DECLARE @table_name NVARCHAR(MAX)
DECLARE tables_cursor CURSOR FAST_FORWARD
FOR
SELECT
SCHEMA_NAME(schema_id) as [Schema_Name],
t.name AS Table_Name
FROM sys.tables AS t
ORDER BY
SCHEMA_NAME(schema_id),
t.name;
OPEN tables_cursor
FETCH NEXT FROM tables_cursor
INTO @table_schema, @table_name;
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @index_name NVARCHAR(MAX)
DECLARE @index_fragmentation DECIMAL(18, 2)
DECLARE @table_with_schema NVARCHAR(MAX) = CONCAT('[', @table_schema, ']', '.', '[', @table_name, ']')
PRINT 'Table: ' + @table_with_schema
DECLARE index_cursor CURSOR FAST_FORWARD
FOR
SELECT
idx.[name],
ips.[avg_fragmentation_in_percent]
FROM
sys.dm_db_index_physical_stats(DB_ID(DB_NAME()), OBJECT_ID(@table_with_schema), NULL, NULL, NULL) AS [ips]
INNER JOIN sys.indexes AS [idx] ON [ips].[object_id] = [idx].[object_id] AND [ips].[index_id] = [idx].[index_id]
WHERE ips.[index_id] > 0
OPEN index_cursor
FETCH NEXT FROM index_cursor
INTO @index_name, @index_fragmentation;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Index: ' + @index_name
PRINT 'Fragmentation: ' + CAST(@index_fragmentation AS NVARCHAR(MAX))
IF (@index_fragmentation BETWEEN 5 AND 30)
BEGIN
DECLARE @reorganizeQuery NVARCHAR(MAX) = 'ALTER INDEX ' + @index_name + ' ON ' + @table_with_schema + ' REORGANIZE'
exec sp_executesql @reorganizeQuery
PRINT 'Index ' + @index_name + ' was reorganized'
END
ELSE IF (@index_fragmentation > 30)
BEGIN
DECLARE @rebuildQuery NVARCHAR(MAX) = 'ALTER INDEX ' + @index_name + ' ON ' + @table_with_schema + ' REBUILD'
exec sp_executesql @rebuildQuery
PRINT 'Index ' + @index_name + ' was rebuilt'
END
FETCH NEXT FROM index_cursor
INTO @index_name, @index_fragmentation;
END
PRINT ''
CLOSE index_cursor;
DEALLOCATE index_cursor;
FETCH NEXT FROM tables_cursor
INTO @table_schema, @table_name;
END
CLOSE tables_cursor;
DEALLOCATE tables_cursor;
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych:
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Informacje o wersji 1.14.7.1 z dn. 09-05-2025
W tej wersji
Poprawiono błąd, który powodował, że wyświetlenie niektórych okien dialogowych w AdminSPA, np. okna generowania elementów aplikacji w kreatorze modeli danych, zaburzało wyświetlanie innych okien dialogowych.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250415070758
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.7.0
Informacje o wersji 1.14.7.0 z dn. 07-05-2025
W tej wersji
- Wyszukiwarka kontrolek na formularzu
- Nowe funkcje listy wyboru w edycji inline
- Rozszerzenia logowania błędów
- Kilka nowości w różnych obszarach
- Usunięte błędy
Przed aktualizacją
Wymagane jest wykonanie następujących czynności:
- Lista wyboru w edycji inline: Aktualizacja nAxiom do wersji 1.14.7.0 spowoduje usunięcie kolumny *DefinedControlOptions* z tabeli *core.GridColumns*. W efekcie wartości *[key]* wybierane na liście wyboru w trybie edycji inline nie będą trafiać do kolumny docelowej i nie będą zapisywane. Aby to naprawić, należy zdefiniować mapowanie wartości *[key]* na kolumnę docelową (właściwości kolumny > karta `Edycja Inline` > `Lista zależności kolumna - kolumna`). Przed aktualizacją można wyszukać w bazie takie przypadki zapytaniem: ```sql SELECT [Id] ,[GridDataId] ,[Code] ,[DataType] ,[DefinedControlId] ,[DefinedControlOptions] FROM [MojaBaza].[core].[GridColumns] WHERE DefinedControlOptions IS NOT NULL ```
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250415070758
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Wyszukiwarka kontrolek formularza
Ujednolicono komponent wyświetlający strukturę formularza w kreatorze i w designerze. Do tego komponentu dodano okienko wyszukiwania elementów formularza po nazwie, kodzie lub po identyfikatorze. W ostatnim przypadku numer nalezy poprzedzić symbolem hash . W ramach zadania dodano także pole ID we właściwościach elementów formularza (tylko do odczytu).
Usunięto mechanizm niejawnej obsługi sytuacji, w której dwie sekcje formularza mają taką samą kolejność. W takich przypadkach po aktualizacji do wersji 1.14.7.0 nie będzie można zapisać formularza. W celu rozwiązania problemu należy zmienić kolejność sekcji na formularzu. Można to zrobić tylko w kreatorze formularzy poprzez przeniesienie sekcji w drzewie struktury. Drzewo struktury w designerze formularzy nie obsługuje tej operacji.
Lista wyboru w edycji inline
Zmodyfikowano funkcjonalność kontrolki listy wyboru używanej w trybie edycji inline. Obecnie obsługiwany jest przypadek, kiedy kontrolka zwraca dodatkowe kolumny, oprócz obowiązkowych [key] i [value]. Wartości z tych kolumn dla wybranej pozycji w kontrolce są dostępne w kontekście rekordu listy jako parametry {@NazwaSQL_KolumnaKontrolki} (tylko w przypadku, gdy tryb edycji inline będzie aktywny). Jeśli na przykład w kolumnie [Wojewodztwo] zostanie osadzona lista wyboru zwracająca kolumny [key], [value] i [MiastoWojewodzkie], w akcji zapisu inline można używać parametrów: {@Wojewodztwo_key}, {@Wojewodztwo_value} i {@Wojewodztwo_MiastoWojewodzkie}.
Podstawowy scenariusz zakłada, że lista wyboru zostanie użyta w kolumnie pomocniczej używanej do wyświetlania danych, a w tabeli modelu danych będzie zapisywana wartość klucza zwracana przez listę.
- Zdefiniuj kontrolkę:
SELECT Id AS [key] , Nazwa AS [value] , Uwagi AS [info] FROM [dbo].[Maszyny]
- Dodaj kolumnę pomocniczą w definicji listy:
SELECT v.* , m.Nazwa as [NazwMaszyny] FROM [model_View]({@_LangId}) v LEFT JOIN [dbo].[Maszyny] m ON m.Id = v.IdMaszyny
- Skonfiguruj kontrolkę do edycji inline:
- w kolumnie [NazwaMaszyny] ustaw kontrolkę z pkt. 1
- zdefiniuj zależność [key] → IdMaszyny
- Zdefiniuj akcję zapisu:
IF ({@Id} IS NULL) INSERT INTO [dbo].[Produkcja] (IdMaszyny) VALUES ({@IdMaszyny}) ELSE UPDATE [dbo].[Produkcja] SET IdMaszyny = {@IdMaszyny} WHERE Id = {@Id}
Ta konfiguracja pozwala używać listy wyboru w kolumnie [NazwaMaszyny] do wprowadzania identyfikatora maszyny w kolumnie [IdMaszyny]. W kontekście rekordu są również dostępne wartości {@NazwaMaszyny_value) i {@NazwaMaszyny_info).
Aby taka konfiguracja działała poprawnie, kolumna pomocnicza w zapytaniu źródłowym musi zwracać wartości identyczne jak kolumna value kontrolki.
Uwagi dodatkowe:
-
Usunięto ustawienie
Kolumna dla zapisu wartości
(core.GridColumns.DefinedControlOptions). Konsekwencje tej zmiany opisano w sekcji Wymagane działania na początku niniejszych informacji. -
Obsługiwany jest scenariusz uproszczony, w którym kontrolkę wstawia się w kolumnie o typie zgodnym z wartością [value] zwracaną przez kontrolkę. W takim przypadku w tej kolumnie zapisywana będzie wartość wybrana z listy.
-
Nie jest obsługiwany scenariusz, w którym kontrolkę wstawia się w kolumnie o typie zgodnym z wartością [key] zwracaną przez kontrolkę.
-
Można definiować zależności do innych kolumn widoku listy, w których używane są kontrolki listy rozwijanej. W takim przypadku należy przekazać wartość odpowiadającą wartości [key] z kontrolki w kolumnie zależnej. Taka konfiguracja będzie działać poprawnie, to znaczy wybór wartości w kontrolce nadrzędnej spowoduje prawidłowe ustawienie wartości w kontrolce zależnej. Nie zaleca się natomiast definiowania zależności między jedną z kolumn zwracanych przez kontrolkę, a kolumną widoku listy, w której znajduje się ta kontrolka.
Logi błędów - kody kontrolek
Rozszerzono funkcjonalność logowania błędów o kod kontrolki formularza, w której wystąpił błąd (parametr ControlCode). W połączeniu z nową wyszukiwarką kontrolek w kreatorze/designerze formularzy usprawni to proces diagnostyki.
Logi błędów - zapytania SQL
Zmodyfikowano działanie funkcji logowania błędów. Po zmianach:
- informacje szczegółowe będą logowane dla każdego błędu,
- kontekst formularza będzie logowany jako obiekt JSON, a nie tekst, co poprawi czytelność logów,
- w przypadku błędów i wyjątków SQL, w tym błędów dotyczących podstawiania wartości parametrów, logowane będzie zapytanie oraz nazwa, typ i wartość parametrów używanych w zapytaniu (o ile nie włączono ukrywania wartości parametrów w ustawieniach systemu).
Ponadto uzupełniono brakujące tłumaczenia komunikatów o błędach.
Tymczasowy zapis zapytania SQL
Dodano możliwość zapisania definicji akcji, formularza i widoku listy pomimo wykrytych błędów w zapytaniu SQL. Dotyczy to sytuacji, kiedy w zapytaniu występuje odwołanie do nieistniejącej kolumny lub tabeli, a w przypadku list dodatkowo następujących błędów:
- zapytanie SQL nie zwraca kolumny wskazanej jako kolumna klucza głównego,
- nazwy kolumn zwracanych przez zapytanie listy są takie same jak nazwy kolumn zwracanych przez listy wyboru używane w trybie edycji inline.
W przypadku wykrycia tego rodzaju błędu podczas zapisu wyświetlany jest odpowiedni komunikat, ale użytkownik może tymczasowo zapisać definicję z błędami. Aby zapisany obiekt działał prawidłowo, konieczne jest usunięcie błędów.
Wykonaj zapytanie SQL
W aplikacji AdminSPA rozszerzono możliwość wykonania dowolnego skryptu SQL (Kreator modeli danych
> Wykonaj SQL
) na inne miejsca. Odpowiedni przycisk (
) jest dostępny na pasku „breadcrumbs” z prawej strony (obok przycisków wyświetlania logów i odświeżania) oraz w oknie designera formularzy (w prawym górnym rogu). W zapytaniach nie są obsługiwane parametry systemowe ani składnia smart numbers.
Kontrolka wyboru interesariusza
Zmodyfikowano kontrolkę wyboru interesariuszy. Obecnie wartość wyświetlana w kontrolce odpowiada wartości zwracanej w kolumnie [value] przez zapytanie źródłowe kontrolki.
Konfiguracja logowania - obrazy Docker
Opracowano plik konfiguracji logowania zdarzeń dotyczących migracji w tabeli core.ImportLogs w bazie danych aplikacji w środowisku skonteneryzowanym. Plik należy umieścić w ścieżce taskservice/configs w katalogu głównym wdrożenia.
W przypadku konieczności scalenia fragmentów tego pliku z własnym plikiem konfiguracyjnym, należy skopiować definicję miejsca docelowego od linii nr 10 oraz reguły ograniczające logowanie do zdarzeń dotyczących migracji (od linii 47).
Plik jest dostępny w ścieżce Linux Docker Image/taskservice/configs/nlog-custom.configs w katalogu pobierania obrazów dokerowych dla wersji 1.14.7.0.
Poprawki i usunięte błędy
Akcja zapisu inline
Akcję SQL zapisu danych używaną do zapisu w trybie edycji inline rozszerzono o obsługę smart numbers.
Wartość ustalona
Poprawiono błąd nadpisywania wartości ustalonej przez NULL w przypadku uruchomienia akcji zapisu rekordu przed zakończeniem pobierania danych przez kontrolkę.
Akcja otwierania formularza
Poprawiono błąd zapisu akcji otwierania formularza. Błąd występował w przypadku zapisu akcji z zaznaczoną opcją wskazany dokument
, o ile użytkownik nie zmienił wyświetlonej wartością domyślnej {@Id}. Ta wartość nie zapisywała się i po ponownym otwarciu zaznaczona była opcja nowy dokument.
Akcja otwierania formularza
Poprawiono błąd, który powodował, że wartości NULL przekazywane do otwieranego formularza w akcji otwórz formularz były konwertowane na puste stringi.
Przekazywanie danych datetime
Naprawiono błąd powodujący zmianę wartości godziny w danych typu datetime w przypadku ich przekazywania w akcji otwierania formularza wywoływanej z pozycji listy. Błąd był spowodowany błędną obsługą strefy czasowej.
Filtrowanie widoku listy
Poprawiono działanie wyszukiwania wartości do filtrowania w okienku filtra dynamicznego w kolumnie typu liczbowego.
Kreator modeli danych
Usunięto błąd, który blokował możliwość zmiany nazwy kolumny typu int w Kreatorze modeli danych
.
Edycja inline
Poprawiono błąd walidacji wymagalności dla pola tekstowego w edycji inline. Pomimo wyświetlanej informacji o wymagalności pola, można było zapisać rekord bez podawania wartości.
Informacje o wersji 1.14.6.1 z dn. 25-04-2025
W tej wersji
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji 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
- 1.14.6.0
Poprawki i usunięte błędy
Wczytywanie formularza
Poprawiono błąd, który powodował, że w niektórych przypadkach zamiast formularza ładowała się tylko etykieta NewDocument. Po odświeżeniu formularz był wyświetlany poprawnie.
Znane problemy
Usuwanie w edycji inline
W przypadku błędu wykonania akcji usunięcia rekordu w edycji inline nie jest wyświetlany komunikat. Błąd jest widoczny tylko w logach. Odpowiednia poprawka zostanie wydana w wersji nAxiom 1.15
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
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji 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
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.
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.
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.
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.
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
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.
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.
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).
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.
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ą.
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.
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.
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.
Kolumna Właściciel zadania
W widokach listy, w kolumnie Właściciel zadania
ukryto filtry zaczyna się od i jest równe.
Dane audytu
Poprawiono wyświetlanie danych audytu w przypadku zmian, które dotyczyły dokumentu w tym samym statusie.
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.
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.
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
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.
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]
Informacje o wersji 1.14.5.1 z dn. 10-04-2025
W tej wersji
Ta aktualizacja zawiera poprawki dotyczące obsługi trybu edycji inline.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji 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
Poprawki i usunięte błędy
Filtrowanie list wyboru w edycji inline
W funkcji filtrowania listy wyboru używanej w edycji inline dodano możliwość filtrowania po wartości [value] zwracanej przez inną listę wyboru. Do tej pory możliwe było filtrowanie tylko po wartości [key].
Wartość domyślna w edycji inline
Poprawiono obsługę wartości domyślnej dla edycji inline w przypadku odwołania do pola formularza.
Pole numeryczne w edycji inline
Dla pola numerycznego używanego w edycji inline poprawiono obsługę formatu oraz dodano ukrywanie przycisków zmiany wartości w trybie tylko do odczytu.
Zapis w trybie edycji inline
Poprawiono działanie zapisu w trybie inline w przypadku ustawienia wymagalności dla kilku kolumn.
Nota techniczna z dn. 04-04-2025
W tej wersji
W przypadku żądań wysyłanych do serwisu publicapi, operacje korzystające ze zmiennych środowiskowych zawsze używają zmiennych środowiska deweloperskiego. Aby rozwiązać ten problem, należy w pliku appsettings.json dla serwisu publicapi dodać wpis:
"AppConfiguration": {
"Environment": "env_type"
}
gdzie env_type może przyjąć wartość Development, Test lub Production.
Taki wpis będzie dodawany automatycznie przez instalator od wersji nAxiom 1.14.6.0.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych:
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Informacje o wersji 1.14.5.0 z dn. 03-04-2025
W tej wersji
- Rozbudowa trybu edycji inline, w tym:
- Profiler żądań HTTP
- Filtrowanie JO i użytkowników w JO
- Wymagalność dla kontrolki interesariuszy
- Usuwanie znaków sterujących z pól wprowadzania
- Rozwiązane problemy i usunięte błędy
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250317081642
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Edycja inline - filtrowanie listy wyboru
Dodano obsługę filtrowania wartości zwracanych przez listę wyboru używaną w trybie edycji inline. Filtrowanie może odbywać się na podstawie:
- wartości z dowolnej kolumny danego rekordu w widoku listy;
- wartości pola na formularzu, w którym lista jest osadzona.
W pierwszym przypadku w warunku filtrowania należy użyć odwołania {@Nazwa}, gdzie Nazwa to wartość właściwości Nazwa SQL
danej kolumny. W drugim przypadku odwołanie do pola formularza musi mieć postać {@*KodFormularza.Nazwa}, gdzie Nazwa to wartość właściwości Nazwa pola w DB
danego pola na formularzu.
Dla kontrolek opartych na zapytaniu SQL, parametry są obsługiwane w konstrukcji zapytania, dla kontrolek opartych na definicji dokumentu warunek konstruuje się osobno w oknie dialogowym otwieranym przyciskiem Dodaj filtr
.
Ponadto odwołanie {@*KodFormularza.Nazwa} jest obsługiwane w definicji wartości domyślnej dla trybu edycji inline (niezależnie od typu kontrolki).
Edycja inline - mapowanie listy wyboru na pola rekordu
Konfigurację listy wyboru używanej w edycji inline rozszerzono o możliwość mapowania kolumn zwróconych przez zapytanie źródłowe kontrolki na pola danego rekordu, w tym także wyświetlane w trybie tylko do odczytu. Po powiązaniu kolumn listy wyboru z kolumnami widoku listy wybranie wartości na liście wyboru zaktualizuje wartość w powiązanym polu danego rekordu. Dodatkowo można wybrać tryb aktualizacji wartości, dostępne opcje to:
Tylko po zmianie na liście wyboru
Tylko gdy wskazane pole jest puste
Ta funkcjonalność jest analogiczna do funkcjonalności Lista zależności: kolumna listy - pole formularza
dostępnej dla list wyboru używanych na formularzu, jednak w tym przypadku nie ma możliwości tworzenia nowych zmiennych w kontekście rekordu.
Profiler żądań HTTP
Udostępniono narzędzie do profilowania wykonania żądań HTTP (https://miniprofiler.com/). Korzystanie z profilera wymaga modyfikacji pliku appsettings.json dla serwisu api:
"Profiling": {
"Enable": false,
"ProfilerRouteBasePath": "/profiler",
"EnableAsyncEventsProfiling": true
}
- Enable: włącza profiler: domyślnie false.
- ProfilerRouteBasePath: ścieżka bazowa punktów końcowych profilera; lista wyników profilera jest dostępna pod adresem: {adres-internal-api}/{ProfilerRouteBasePath}/results-index (np: https://witryna-naxiom/back/profiler/results-index)
- EnableAsyncEventsProfiling: określa czy poza żądaniami HTTP profilowane będą też zdzarzenia asynchroniczne przetwarzane w systemie (np audyt, aktualizacja danych pod widok moje zadania, indeksowanie danych pod wyszukiwanie pełnotekstowe etc).
Profiler udostępnia podgląd wszystkich zapytań SQL wykonywanych przez aplikację, dlatego należy go włączać tylko w środowisku developerskim na potrzeby badania wydajności aplikacji.
Filtrowanie JO i użytkowników w JO
Dodano możliwość filtrowania jednostek w strukturze organizacyjnej oraz na liście użytkowników danej jednostki organizacyjnej. Usunięto zakładkę Wersje
w widoku edycji jednostki organizacyjnej.
Wymagalność dla kontrolki interesariuszy
W uprawnieniach ACL formularza dodano możliwość ustawienia wymagalności dla listy wyboru interesariuszy. Kryterium wymagalności jest spełnione, gdy do grupy interesariuszy, z którą jest powiązana kontrolka, należy co najmniej jeden użytkownik, rola lub rola w jednostce. W przypadku ustawienia dla kontrolki właściwości Minimalna liczba użytkowników
, użytkownik końcowy musi wybrać co najmniej tylu użytkowników, niezależnie od ustawienia wymagalności. Role i role w JO przypisane do grupy interesariuszy nie są uwzględniane podczas walidacji liczby użytkowników.
Usuwanie znaków sterujących z pól wprowadzania
W polach wprowadzania dodano sprawdzanie wartości pod kątem występowania znaków sterujących (znaki ASCII o kodach 0–31). Takie znaki, z wyjątkiem znaków LF (10), CR (13) i HT (9) — nowy wiersz i tabulator — będą usuwane, aby nie powodowały problemów podczas zapisu do bazy danych (instrukcje INSERT i UPDATE).
Zmiana ma na celu wyeliminowanie przypadków wklejania w pole wprowadzania znaków sterujących skopiowanych z innych aplikacji.
Definicja raportu
Wyłączono automatyczne otwieranie modułu Report Designer po zapisie deklaracji raportu. Aby przejść do projektowania raportu, należy kliknąć przycisk Designer
w lewym dolnym rogu.
Poprawki i usunięte błędy
Lista wyboru w edycji inline
Poprawiono błąd, który powodował, że kontrolka zbudowana w oparciu o definicję dokumentu użyta do edycji w trybie inline w widoku listy nie działała. W ramach tego zadania wyłączono wyświetlanie niepotrzebnych list wyboru dla kontrolek budowanych w oparciu o zapytanie SQL.
Obsługa klawisza Enter
Zmodyfikowano obsługę klawisza Enter podczas pracy na formularzu. Obecnie naciśnięcie klawisza Enter odpowiada kliknięciu przycisku tylko wtedy, gdy fokus jest ustawiony na przycisku. W pozostałych przypadkach naciśnięcie klawisza Enter jest ignorowane. Zapis formularza można wywołać kombinacją klawiszy Ctrl+Enter.
Dodawanie warstwy tekstowej
Zastosowano dodatkową konwersję daty dla plików PDF zgodnych ze specyfikacją 1.4. Pozwoliło to wyeliminować błąd w działaniu akcji dodawania warstwy tekstowej. Źródłem problemu jest błąd obsługi wartości CreateDate w plikach PDF 1.4 w oprogramowaniu ABBYY FineReader.
Interwał eskalatorów
Zmodyfikowano logikę wyliczania interwału dla eskalatorów. Do tej pory eskalatory bez znaku w definicji interwału były błędnie interpretowane jako eskalatory przed terminem. Obecnie znak plus (+) lub brak znaku w definicji interwału określa eskalator po terminie, a znak minus (-) określa eskalator przed terminem.
Ze względu na zmianę dotychczasowego zachowania zaleca się sprawdzenie, czy w tabeli core.Escalators, w kolumnie IsoDurationCondition występują definicje interwałów nie poprzedzone znakiem i dopisanie znaku minus (-) tam, gdzie w definicji nie ma żadnego znaku. Można to zrobić, używając zapytania SQL:
UPDATE [core].[Escalators] SET [IsoDurationCondition] = REPLACE([IsoDurationCondition], '''P', '''-P') WHERE [IsoDurationCondition] LIKE '%''P%'
Tryb pojedynczej aplikacji
W ramach funkcjonalności trybu pojedynczej aplikacji dodano weryfikację dostępu do aplikacji na podstawie ról. Obecnie w profilu użytkownika nie można wybrać aplikacji, do której użytkownik nie ma dostępu na podstawie swoich ról.
Zmiana roli użytkownika oraz dostępności aplikacji dla roli może skutkować wyczyszczeniem aplikacji domyślnej dla użytkownika. Obecnie nie ma mechanizmu powiadamiającego użytkownika o zmianie aplikacji domyślnej.
Definiowanie statusów
W oknie definiowania statusu ograniczono definicje dokumentów wyświetlane na liście wyboru do opartych na modelu standardowym. Wcześniej były tam także wyświetlane definicje oparte na modelu uproszczonym, które nie mają statusu.
Wyświetlanie okienek filtrowania
Usunięto błąd, który powodował, że listy rozwijane w okienkach filtra zaawansowanego w widoku listy były wyświetlane nieprawidłowo.
Brak uprawnień do diagramu procesu (FrontSPA)
Rozwiązano problem powodujący wyświetlenie komunikatu o braku uprawnień podczas podglądu diagramu procesu we FrontSPA. Problem spowodowany był próbą pobrania akcji systemowych dla diagramu, do czego były wymagane uprawnienia Przegląd aplikacji
w module AdminSPA.
Diagram procesu (FrontSPA)
Poprawiono błąd, który powodował, że w przypadku przełączania się między formularzami wyświetlanymi jako link wewnętrzny nie aktualizował się obraz diagramu procesu.
Walidacja wartosci min./maks.
Poprawiono walidację wartości minimalnej oraz maksymalnej dla pola numerycznego w przypadku typu danych decimal i float, gdy parametry były definiowane przy użyciu zapytania SQL.
Filtrowanie dat
Poprawiono funkcje filtrowania widoku listy 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ą długości interwałów, a nie momentów w czasie.
Filtrowanie list server-side
Poprawiono błąd, na skutek którego filtry kolumn typu datetime w widoku listy (dzisiaj
, ten tydzień
, ten miesiąc
) działały tylko dla list z wyłączoną funkcją server-side.
Migracja procesów BPMN
(Dotyczy funkcjonalności eksperymentalnej) W migratorze aplikacji usunięto problemy, które powodowały, że funkcja automatycznego publikowania procesów BPMN w środowisku docelowym nie działała.
Informacje o wersji 1.14.4.1 z dn. 27-03-2025
W tej wersji
Zmieniono wywołanie akcji dla zdarzenia OnChange
Przed wywołaniem akcji przypisanej do zdarzenia OnChange dla kontrolek na formularzu dodano oczekiwanie na wykonanie zależności kontrolek i aktualizację kontekstu formularza. Do tej pory akcja odwoływała się do kontekstu, nie czekając na jego aktualizację przez zależności, co uniemożliwiało uzyskanie oczekiwanych rezultatów.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250312140056
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.4.0
Informacje o wersji 1.14.4.0 z dn. 14-03-2025
W tej wersji
- Nowy interfejs wyboru adresatów w akcji e-mail i eskalatorach
- Obsługa zastępstw w akcji e-mail
- Inne nowe funkcje, m.in. w obszarach akcji e-mail i zastępstw
- Poprawione błędy
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250312140056
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Adresaci (akcja e-mail, eskalatory)
W akcji wysyłki e-mail oraz w oknie definiowania eskalatorów w WorkflowSPA zmieniono sposób definiowania adresatów. Ustawienia podzielono na trzy kart:
- Adresaci Do,
- Adresaci DW,
- Adresaci UDW.
Na każdej z tych kart dostępnych jest pięć podrzędnych kart, na których można wybierać adresatów:
-
Interesariusze
: należy wskazać definicję dokumentu, grupę interesariuszy oraz instancje dokumentu; jako adresaci zostaną dodani użytkownicy przypisani do wybranych grup interesariuszy dla instancji dokumentu zwróconych przez zapytanie. -
Posiadacze ról globalnych
: należy wskazać role; jako adresaci zostaną dodani użytkownicy, którym przypisano te role. -
Użytkownicy wskazani przez zapytanie SQL
: jako adresaci zostaną dodani użytkownicy, których identyfikatory zostaną zwrócone przez zapytanie SQL. -
Adresy email wskazane przez zapytanie SQL
: jako adresaci zostaną dodani właściciele adresów e-mail zwróconych zapytaniem SQL w formie listy wierszy lub ciągu wartości rozdzielonych znakiem średnika. -
Adresy email wskazane bezpośrednio
: jako adresaci wybrani zostaną właściciele adresów e-mail wpisanych w kontrolce wielowyboru (obsługiwana jest notacja smart numbers).
Na każdej karcie znajduje się przełącznik pozwalający na wyłączenie danej konfiguracji bez konieczności jej usuwania. Zakładki z aktywną konfiguracją posiadają pogrubiony tekst i systemowy ciemno-zielony kolor.
W przypadku eskalatorów opisana powyżej konfiguracja adresatów jest dostępna po kliknięciu przycisku Ustaw w sekcji Adresaci
.
Akcja e-mail - obsługa zastępstw
W definicji akcji e-mail o nowy parametr Obsługa zastępstw
. Gdy jest włączony, wiadomość e-mail zostanie wysłane także do osób zastępujących dowolnego z adresatów. Obsługa zastępstw dotyczy tylko adresatów definiowanych na kartach:
-
Interesariusze
, -
Posiadacze ról globalnych
, -
Użytkownicy wskazani przez zapytanie SQL
.
W takim przypadku do wiadomości dodawane są informacje:
- dla zastępowanego: informacja o tym, że kopia wiadomości została wysłana do zastępującego i dane tej osoby,
- dla zastępującego: informacja o tym, że ta wiadomość to kopia oryginalnej wiadomości wysłanej do zastępowanego, informacje o zastępstwie, informacje o oryginalnych adresatach wiadomości.
W przypadku adresatów podanych w polu UDW (BCC), kopia wiadomości wysyłana do osób zastępujących nie zawiera żadnych dodatkowych informacji.
Funkcjonalność dotyczy tylko zastępstw, w których włączono przełącznik
Przekazuj powiadomienia email z systemu do zastępcy
.
Akcja e-mail - edycja szablonów
W definicji akcji e-mail dodano możliwość edycji szablonu wiadomości e-mail oraz utworzenia nowego szablonu. Utworzony szablon jest automatycznie ustawiany jako wybrany dla danej akcji.
Zastępstwa - przekierowanie e-mail
W definicji zastępstwa dodano nowy parametr Przekazuj powiadomienia email z systemu do zastępcy
. Dla nowych zastępstw parametr jest domyślnie włączony, co powoduje, że powiadomienia mailowe dla użytkownika będą domyślnie przekazywane także do osoby, która go zastępuje, o ile w odpowiedniej akcji e-mail włączono obsługę zastępstw.
Obsługę tego parametru (ForwardEmailNotification) dodano w PublicAPI w punkcie końcowym PermissionDelegation/Save oraz w akcjach dodawania i edycji zastępstwa.
Nowy parametr nie został dodany automatycznie do zapytań SQL w zdefiniowanych akcjach dodawania/edycji zastępstw. Jest to równoznaczne z wartością false.
Poziom uwierzytelniania (SSO)
Dodano logowanie poziomu uwierzytelniania w przypadku włączonego logowania SSO od zewnętrznego dostawcy tożsamości ze skonfigurowanym odczytem tego parametru. Odpowiednia informacja jest zapisywana w tabelach systemowych:
- core.LoginHistories: kolumna UserAuthenticationLevel.
- core.SecurityAudits: kolumna Details dla zdarzenia ExternalLoginSuccessfull; zapis w formacie UserAuthenticationLevel: liczba.
W razie braku informacji o poziomie logowania, w kolumnie UserAuthenticationLevel tabeli LoginHistories będzie zapisywana wartość NULL (o ile nie zostanie zdefiniowana wartość domyślna), a w kolumnie Details w tabeli SecurityAudits będzie zapisywany pusty string.
Poprawki i usunięte błędy
Widoczność w wersji mobilnej
Dla elementów formularza dodano jawną deklarację domyślnego włączenia parametru Pole widoczne w wersji mobilnej
. Zmiana dotyczy nowo tworzonych formularzy i elementów formularzy. W istniejących formularzach wartość tego parametru nie jest zmieniana.
Akcje zastępstw
W związku z nową funkcjonalnością zastępstw zmieniono definicję akcji dodawania i edycji zastępstw: usunięto odwołanie do właściciela zadań oraz zapytanie SQL zwracające role i role w jednostkach biznesowych.
Nadpisywanie twórcy zastępstwa
W funkcjonalności zastępstw poprawiono błąd, na skutek którego edycja zastępstwa powodowała nadpisanie identyfikatora użytkownika, który utworzył zastępstwo.
Wyłączanie trybu pracy w zastępstwie
Poprawiono błąd, który powodował, że gdy użytkownik pracujący w trybie zastępstwa zmieniał datę zakończenia tego zastępstwa, tryb pracy w zastępstwie był wyłączany. Tryb pracy w zastępstwie jest wyłączany tylko wtedy, gdy pracujący w tym trybie użytkownik dezaktywuje bieżące zastępstwo.
Akcja zmiany statusu
Poprawiono błędne działanie akcji zmiany statusu (komunikat o braku uprawnień) w przypadku, kiedy użytkownik miał uprawnienia ACL wynikające tylko z szablonu instancji.
Uprawnienia ACL interesariuszy
Poprawiono błędne działanie mechanizmu uprawnień, które powodował, że w przypadku gdy szablon uprawnień dla grupy interesariuszy nadawał uprawnienie R, osoby dodawane do tej grupy uzyskiwały także uprawnienie U.
Walidacja kolumn systemowych
Poprawiono treść komunikatów w przypadku stwierdzenia zmiany atrybutu ALLOW NULL
dla kolumn systemowych w tabelach dokumentu biznesowego.
Podgląd załącznika
Poprawiono zachowanie kontrolki podglądu załącznika na formularzu w taki sposób, aby swoją wysokość dostosowywała do wysokości sekcji, w której jest osadzona.
Uprawnienia ACL formularza
Poprawiono zapis konfiguracji uprawnień ACL formularza w przypadku, gdy w danej kolumnie formularza są dwie sekcje typu lista z tym samym widokiem listy. Błąd powodował, że konfiguracje uprawnień dla tych list nadpisywały się (aktualizowana była wartość w kolumnie SectionId w tabeli ACLFormTemplateEntryFields). Obecnie wpisy w bazie generowane są poprawnie, osobno dla każdej z sekcji.
Lista wyboru
Zmieniono sposób wykonywania zapytań SQL konfigurowanych dla list wyboru. Pozwoliło to wyeliminować komunikat o błędzie wyświetlany w przypadku wejścia w konfigurację listy wyboru z klauzulą ORDER BY (lista wyboru w takim przypadku działała poprawnie).
Informacje o wersji 1.14.3.2 z dn. 05-03-2025
W tej wersji
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250227085928
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Poprawki i usunięte błędy
Logowanie SSO (ADFS)
Poprawiono błąd, który uniemożliwiał zalogowanie przez SSO z użyciem ADFS. Było to spowodowane nieprawidłową obsługą identyfikatora sesji użytkownika, który w przypadku ADFS nie jest identyfikatorem GUID. W ramach tej poprawki zmodyfikowano kolumnę SessionId w tabeli LoginHistories, zmieniając jej typ z UNIQUEIDENTIFIER na NVARCHAR(100).
Wylogowywanie użytkownika
Poprawiono działanie nAxiom dla skonfigurowanego automatycznego logowania zewnętrznego przez ADFS. Gdy użytkownik zalogowany przez ADFS zamknął kartę przeglądarki z aplikacją nAxiom po czym próbował ponownie wejść do nAxiom, np. klikając link do dokumentu w wiadomości e-mail wyświetlana strona wylogowania.
Po zmianach użytkownik zostanie wylogowany tylko w przypadku korzystania z macierzystego dostawcy tożsamości nAxiom (serwis auth).
Synchronizacja JO
Poprawiono mechanizm synchronizacji struktury organizacyjnej z LDAP. Zmiana dotyczyła niepoprawnej obsługi parametru SkipOUInstancesSynchronization; chociaż ten parametr miał wartość true nadal wykonywana była synchronizacja jednostek. To powodowało dezaktywację wszystkich jednostek, które w kolumnie Ouid w tabeli OUInstances miały wartość inną niż NULL.
Informacje o wersji 1.14.3.1 z dn. 26-02-2025
W tej wersji
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250206072416
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.3.0
Poprawki i usunięte błędy
Konfiguracja listy wyboru
Poprawiono problem w działaniu funkcji Lista zależności: kolumna - pole formularza
w przypadku, gdy w konfiguracji listy wyboru używano podzapytań zwracających kolumny listy.
Ważne informacje
Lista zależności w konfiguracji listy wyboru
Należy pamiętać, że zmiana wartości na liście wyboru bezpośrednio w kontekście formularza, na przykład przez kod Javascript, nie wyzwala mapowania wartości zdefiniowanej w tabelce Lista zależności...
w konfiguracji listy wyboru.
Taka zmiana nie wyzwala również zdarzenia OnChange dla kontrolki której dotyczy, ani zdefiniowanych dla niej zależności kontrolki.
Informacje o wersji 1.14.3.0 z dn. 20-02-2025
W tej wersji
- Skanowanie kodów QR/BC
- Nowe okno audytu danych
- Audyt bezpieczeństwa: logowanie wylogowania
- Poprawki błędów (m. in. dotyczących kontrolki interesariuszy)
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250206072416
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Akcja skanowania kodów QR/BC
Dodano nowy typ akcji Skanowanie kodów QR/BC. Akcja umożliwia odczytanie wartości reprezentowanych przez kody paskowe lub QR i zapisanie ich w aplikacji nAxiom. Akcja wykorzystuje interfejs API używanej przeglądarki i jest zgodna z większością popularnych przeglądarek. Tabela zgodności znajduje się w oknie definicji akcji.
Prezentacja danych audytowych
Gruntownie zmodyfikowano okno audytu instancji dokumentu wyświetlane z poziomu formularza. Obecnie informacje o zmianach dokumentu prezentowane są na trzech zakładkach:
- Przejścia statusów: data zmiany, status początkowy, status końcowy, użytkownik.
- Zmiany w polach dokumentu: data zmiany, użytkownik, status, nazwa kolumny, stara wartość, nowa wartość.
- Zarejestrowane zdarzenia: data zmiany, status, użytkownik, typ zdarzenia; po kliknięciu przycisku + z lewej strony wyświetlane są szczegóły zdarzenia.
Rejestracja wylogowania w audycie bezpieczeństwa
W logach bezpieczeństwa systemu (core.SecurityAudits) dodano rejestrowanie wylogowania użytkownika jako zdarzenia typu UserLoggedOutSuccessfully (kategoria Authorization).
Tryb PWA - blokada gestu odświeżania
W ustawieniach systemu dodano sekcję Praca na urządzeniach mobilnych
, a w niej ustawienie Odświeżanie przez gest przesunięcia palcem
. To ustawienie pozwala zablokować gest odświeżania widoku przez przesunięcie palcem w dół. Domyślnie obsługa tego gestu jest włączona.
Poprawki i usunięte błędy
Wylogowanie z konta SSO
W funkcjonalności zastępstw dodano obsługę wylogowania z konta SSO w chwili wylogowania użytkownika z nAxiom podczas pracy w zastępstwie.
Obsługa NULL w akcji C#
Zmodyfikowano walidację modelu danych podczas zapisu dokumentu w akcji C# za pomocą CSharpScript.ActionRunner.SaveRecordAction.Instance.RunActionAsync. Dzięki temu wyeliminowano błąd, który występował w przypadku zwrócenia przez zapytanie SQL w SqlHelper.ExecuteSqlQueryRowsToDictionary wartości NULL.
Kontrolka interesariuszy - sprawdzanie uprawnień
Dodano sprawdzanie uprawnień formularza dla listy wyboru interesariuszy w przypadku modyfikacji wartości listy za pomocą pozycji zaznacz wszystko
i odznacz wszystko
.
Kontrolka interesariuszy - wydajność
Zmodyfikowano działanie kontrolki interesariuszy w celu przyspieszenia jej wczytywania na formularzu. Obecnie kontrolka w pierwszej kolejności pobiera i wyświetla ustawione w niej wartości, a dopiero potem pobiera zbiór wszystkich wartości, które można wybrać.
Kontrolka interesariuszy - mapowanie wartości
Poprawiono błędy w działaniu funkcji mapowania wartości z listy wyboru SQL do listy wyboru interesariuszy (Lista zależności kolumna - pole formularza
). Te błędy powodowały wyświetlanie komunikatu o braku uprawnień oraz nieprawidłowe wyświetlanie wartości w przypadku aktualizacji listy wyboru interesariuszy. Obecnie działanie jest zgodne z ustawieniem Tryb aktualizacji pól zależnych
w konfiguracji listy wyboru SQL.
Kontrolka interesariuszy - brak uprawnień
Usunięto problem, który powodował brak uprawnień formularza do edycji dla nowo dodanej listy wyboru interesariuszy, pomimo że te uprawnienia były włączone.
Kontrolka interesariuszy - walidacja właściwości
Dla listy wyboru interesariuszy poprawiono błąd, który powodował pominięcie sprawdzenia, czy wartość Minimalna liczba użytkowników
jest mniejsza niż wartość Maksymalna liczba użytkowników
. W przypadku stwierdzenia błędu jest wyświetlany taki sam komunikat jak w przypadku nieprawidłowych wartości minimalnej i maksymalnej dla pól data/czas oraz pól numerycznych.
Błąd podczas aktualizacji
Usunięto błąd, który w specyficznych przypadkach powodował próbę ponownego wykonania migracji Entity Framework na bazie danych, co prowadziło do przerwania aktualizacji nAxiom.
Procesy robocze na serwerze IIS
Usunięto błąd, który powodował, że w określonych przypadkach serwer IIS mógł powoływać dużą liczbę procesów roboczych dla serwisu nAxiom, który nie potwierdził uruchomienia w ciągu 2 minut. Obecnie w przypadku braku potwierdzenia uruchomiony proces jest usuwany.
Przycisk pomocy na formularzach i listach
Poprawiono wykonywanie akcji otwarcia formularza wyzwalanych kliknięciem przycisku pomocy na liście i formularzu. Zmodyfikowano także styl przycisku pomocy.
Edycja inline
Poprawiono błędy w zachowaniu kontrolki użytej w widoku listy z włączoną edycją inline.
Akcja zamknij formularz
Poprawiono błąd, który powodował, że w przypadku, kiedy użytkownik otwierał formularz, klikając link w wiadomości e-mail, następnie logował się do systemu i zmieniał status dokumentu, akcja zamykania formularza przypisana do przejścia jako akcja po nie wykonywała się.
Akcja odświeżania uprawnień
Poprawiono błąd, który powodował brak aktualizacji danych dla widoku core.UserTasks_View w tabeli core.UserTasksData w przypadku wykonywania akcji odświeżania uprawnień jako akcji po na przejściu wychodzącym z bloczku decyzyjnego.
Informacje o wersji 1.14.2.2 z dn. 17-02-2025
W tej wersji
- Zmiany w procesach BPMN - funkcje eksperymentalne
- Poprawka do walidacji wymagalności pól
- Poprawka błędu SQL „request has too many parameters”
- Znany błąd: odświeżanie pamięci cache
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250129124203
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.2.0
- 1.14.2.1
Nowe i zmodernizowane funkcje
Procesy BPMN (funkcja eksperymentalna)
Wprowadzono zmiany w funkcjonalności eksperymentalnej Procesy biznesowe BPMN 2.0. Obecnie ta pozycja menu nosi nazwę Grupy procesów BPMN. Ta zmiana spowodowała zmianę wyboru procesu w akcji Uruchom proces BPMN. Należy najpierw wybrać grupę procesów, a następnie wybrać proces (diagram) i jego wersję. Te zmiany pozwalają wybierać w akcji dowolny proces BPMN, a nie tylko proces wiodący, jak do tej pory.
Poprawki i usunięte błędy
Przekroczenie liczby parametrów w zapytaniu SQL
Usunięto problem, który powodował, że w przypadku niektórych akcji (np. odświeżanie uprawnień, dodawanie interesariuszy), w których używano złożonych zapytań SQL, wykonanie akcji kończyło się błędem: ”The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.”
Wymagalność pól formularza
Poprawiono sprawdzanie wymagalności pól formularzy według szablonów uprawnień formularza.
Znane problemy
Smart numbers i odświeżanie cache
Informacje o obiektach obsługiwanych przez smart numbers są przechowywane w pamięci podręcznej poszczególnych serwisów nAxiom. Jednak niektóre serwisy (taskservice, publicapi, mobileapi) odświeżają zawartość cache tylko podczas uruchamiania. W przypadku zmian, np. po dodaniu roli, lub grupy interesariuszy, odwołanie za pomocą smart numbers do nowych obiektów w akcjach obsługiwanych przez taki serwis (np. zadania cykliczne) zakończy się błędem (undefined parameter in SQL query). Aby tego uniknąć konieczne jest ręczne restartowanie tych serwisów, w programie IIS Manager lub na platformie do zarządzania kontenerami.
Problem zostanie usunięty w wersji nAxiom 1.15, dzięki wykorzystaniu brokera komunikatów do informowania serwisów o konieczności odświeżenia cache.
Informacje o wersji 1.14.2.1 z dn. 04-02-2025
W tej wersji
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250129124203
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.2.0
Poprawki i usunięte błędy
Nieoczekiwane zakończenie zastępstwa
Poprawiono błędy, które powodowały, że dla niektórych dat zakończenia zastępstwa po podjęciu pracy w zastępstwie następowało natychmiastowe zakończenie pracy w zastępstwie lub występował efekt dezaktywacji zastępstwa (znikało oznaczenie trybu zastępstwa i możliwość zakończenia go).
Po aktualizacji do wer. 1.14.2.0 witryna nie uruchamia się
Poprawiono błąd w skrypcie SQL odpowiadającym za migrację triggerów audytu. Błąd występował w przypadku powiązania wielu definicji dokumentów z jednym modelem danych. Na skutek błędu dane w tabeli core.AuditColumns były niezgodne ze stanem faktycznym bazy danych (istniały wpis audytu dla tabeli, która nie miała zdefiniowanych triggerów audytu). W rezultacie po aktualizacji do wersji 1.14.2.0 witryna nie uruchamiała się.
Informacje o wersji 1.14.2.0 z dn. 31-01-2025
W tej wersji
- Zupełnie nowa odsłona funkcjonalności zastępstw
- Sprawdzanie zgodności na poziomie baz danych w migratorze
- Optymalizacja akcji C#
Przed aktualizacją
Wymagane jest wykonanie następujących czynności:
- Nowe zastępstwa: W ramach modyfikacji funkcji *core.GetAllSubstitutions* usunięto parametr *LangId*. W związku z tą zmianą zdefiniowane wywołania funkcji będą zwracać błąd. Wymagane jest usunięcie parametru z wywołania funkcji: ```sql SELECT * FROM core.GetAllSubstitutions () ```
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250129124203
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Nowe zastępstwa
Gruntownie zmodernizowano funkcjonalność zastępstw, opierając ją na nowej mechanice pracy w kontekście wybranego użytkownika. Kiedy użytkownik podejmuje pracę w zastępstwie, system wysyła żądanie wystawienia nowego tokenu z identyfikatorem zastępowanego użytkownika. Jednak token zawiera teraz także atrybut NativeUserId, który odpowiada faktycznej tożsamości użytkownika. Obecnie parametr systemowy @_UserId określa kontekst pracy użytkownika, a nowy parametr @_NativeUserId - tożsamość użytkownika.
Zgodnie z parametrem UserId (oraz powiązanymi z nim rolami, rolami w jednostkach i przynależnością do grup interesariuszy) sprawdzane są uprawnienia ACL, PBA oraz dostęp do menu aplikacji i uprawnienia do akceptacji dokumentów.
Obecnie użytkownik, który podejmie pracę w zastępstwie, ma wyłącznie uprawnienia użytkownika zastępowanego, a zastępstwo obejmuje wszystkie role użytkownika zastępowanego.
- Definiowanie zastępstw
- Wymagane są odpowiednie uprawnienia PBA.
- Należy wskazać zastępowanego, zastępującego, datę rozpoczęcia (dowolna), datę zakończenia (bieżąca lub przyszła), status aktywne/nieaktywne.
- Nie można utworzyć zastępstwa za samego siebie ani za użytkownika z zablokowanym/nieaktywnym profilem.
- W przypadku użytkownika, którego profil wygasł, możliwość zdefiniowania zastępstwa zależy od nowego ustawienia systemowego (adminSPA).
- W przypadku dezaktywacji zastępstwa, którego okres się rozpoczął, wyświetlany jest komunikat z ostrzeżeniem. Jeśli zastępstwo dezaktywuje zastępujący podczas pracy w zastępstwie, nastąpi zakończenie pracy w zastępstwie. UWAGA: Dezaktywacja zastępstwa podczas pracy w zastępstwie powoduje, że znika oznaczenie pracy w trybie zastępstwa oraz przycisk do zakończenia pracy w zastępstwie. To zachowanie zostanie poprawione w przyszłości. Jednak w takim przypadku wartości UserId i NativeUserId pozostają różne.
- Możliwe jest wyznaczenie kilkorga zastępujących za jednego zastępowanego; jeden zastępujący może zastępować kilkoro zastępowanych (zawsze jako osobne zastępstwa).
- System nie weryfikuje, czy osoby wyznaczane jako zastępujący są obecne, ani czy definiowane zastępstwo nie jest zagnieżdżone (A za B za C) lub rekurencyjne (A za B i B za A). Zastępstwa są nieprzechodnie.
- Podejmowanie/kończenie pracy w zastępstwie
- Aby podjąć pracę w zastępstwie, należy rozwinąć menu profilu zalogowanego użytkownika i kliknąć przycisk
Rozpocznij
obok imienia i nazwiska osoby zastępowanej. - Aby zakończyć pracę w zastępstwie, należy kliknąć przycisk
Zakończ
w menu profilu użytkownika. - Praca w zastępstwie jest sygnalizowana dopiskiem
zastępstwo za: Imię Nazwisko
pod imieniem i nazwiskiem zalogowanego użytkownika. - Przy rozpoczynaniu i kończeniu pracy w zastępstwie jest wyświetlane potwierdzenie.
- Użytkownik może się wylogować podczas pracy w zastępstwie, co jest równoważne z zakończeniem pracy w zastępstwie.
- Podjęcie i zakończenie pracy w zastępstwie jest rejestrowane w audycie bezpieczeństwa (core.SecurityAudits, kategoria Permissions, typ zdarzenia UserIdentityChanged). Nie dotyczy to sytuacji, kiedy użytkownik wyloguje się podczas pracy w zastępstwie (zdarzenie wylogowania będzie rejestrowane w kolejnej wersji).
- Jeśli użytkownik ma przypisanych kilka zastępstw, może się przełączać między nimi bez konieczności kończenia pracy w zastępstwie.
- Aby podjąć pracę w zastępstwie, należy rozwinąć menu profilu zalogowanego użytkownika i kliknąć przycisk
- Praca w zastępstwie
- Jeśli audyt zdarzeń dla dokumentu biznesowego jest włączony, rejestrowane są informacje o użytkowniku który dokonał zmian oraz o tym, że pracował w zastępstwie i o osobie zastępowanej. W tabelach core.Audits, core.AudtitEventLogs i core.AuditEventLog dodano kolumnę NativeUserId. Jako wartości bilansu otwarcia dla nowej kolumny przyjęto wartości z kolumny UserId. Nie dotyczy to tabeli core.AuditLogs, której aktualizacja mogłaby powodować przekroczenie limitu czasu ze względu na dużą liczbę rekordów. W przypadku tej tabeli można po aktualizacji do nowej wersji uruchomić poniższy skrypt SQL.
UPDATE [core].[AuditLogs] SET [NativeUserProfileId] = [UserProfileId] WHERE [NativeUserProfileId] IS NULL
- W przypadku komentarzy do dokumentów biznesowych dodawanych podczas pracy w zastępstwie, obok imienia i nazwiska autora jest wyświetlana informacja o zastępstwie. W tabeli core.Comments dodano kolumnę NativeUserId. Jako wartości bilansu otwarcia dla nowej kolumny przyjęto wartości z kolumny UserId.
- W okresie aktywnego zastępstwa powiadomienia do użytkownika zastępowanego są kierowane także do użytkowników, którzy go zastępując (bez względu na to czy pracują w zastępstwie).
- Podczas pracy w zastępstwie czat jest wyłączony. Podczas pracy w normalnym trybie, przy próbie napisania wiadomości do użytkownika, który jest nieobecny, wyświetlana jest informacja o nieobecności i osobach zastępujących (wiadomości czatu nie są wysyłane do zastępujących).
- Podczas pracy w zastępstwie polecenie
Mój profil
wyświetla dane użytkownika zastępującego. Wyjątkiem jest sytuacja, kiedy użytkownik zastępowany nie ma uprawnień PBA do podglądu własnych danych. W takiej sytuacji wyświetlana jest informacja o braku dostępu (403), ponieważ zastępujący pracuje z uprawnieniami PBA zastępowanego.
- Jeśli audyt zdarzeń dla dokumentu biznesowego jest włączony, rejestrowane są informacje o użytkowniku który dokonał zmian oraz o tym, że pracował w zastępstwie i o osobie zastępowanej. W tabelach core.Audits, core.AudtitEventLogs i core.AuditEventLog dodano kolumnę NativeUserId. Jako wartości bilansu otwarcia dla nowej kolumny przyjęto wartości z kolumny UserId. Nie dotyczy to tabeli core.AuditLogs, której aktualizacja mogłaby powodować przekroczenie limitu czasu ze względu na dużą liczbę rekordów. W przypadku tej tabeli można po aktualizacji do nowej wersji uruchomić poniższy skrypt SQL.
- Inne zmiany
- Dotychczas podczas określania uprawnień ACL użytkownika sprawdzane były także jego zastępstwa, ponieważ zastępujący zachowywał swoje uprawnienia oraz nabywał uprawnienia zastępowanych. Obecnie nie jest to konieczne, a zmieniona funkcja core.GetAclIds powinna wydajniej obsługiwać uprawnienia ACL dla dużych zbiorów danych.
- Usunięto tabelę core.PermittedRoles (informacje o rolach objętych zastępstwem), a także zmodyfikowano funkcje tabelaryczne dotyczące zastępstw core.GetAllSubstitutions oraz core.SubstitutionsPerformedByUser. Obecnie te funkcje zwracają inny zestaw kolumn.
- Zmieniono weryfikację uprawnień PBA. Po podjęciu pracy w zastępstwie zastępujący ma tylko takie uprawnienia, jak zastępowany. Po zakończeniu pracy w zastępstwie przywracane są własne uprawnienia zalogowanego użytkownika.
- Akcje dodawania, edytowania i usuwania zastępstw nie zostały zmienione, jednak działają one poprawnie. Dla akcji dodawania i edycji atrybuty ról objętych zastępstwem są ignorowane.
- Zmodyfikowano endpoint PublicAPI PermissionDelegation/Save.
Migrator aplikacji
W migratorze aplikacji dodano sprawdzanie zgodności bazy danych importowanej aplikacji z bazą danych środowiska docelowego. Bazy danych są zgodne, kiedy podczas aktualizacji wersji nAxiom w obu wykonywany jest ten sam zestaw migracji Entity Framework, czyli kiedy ostatni rekord w tabeli core.__EFMigrationsHistory ma tę samą wartość w kolumnie MigrationId w obu bazach. W przypadku niezgodności wyświetlany jest komunikat i import jest blokowany.
Akcje C#
Zoptymalizowano działanie akcji C# pod kątem czasu wykonania oraz wykorzystania procesora i pamięci RAM. W tym celu wprowadzono zapisywanie skompilowanych skryptów akcji w pamięci cache. Do tej pory kompilacja odbywała się za każdym razem podczas wywołania akcji, co prowadziło do nadmiernego wykorzystania zasobów sprzętowych.
Ustawienia konfiguracyjne pamięci cache dla akcji C# znajdują się w sekcji AppConfiguration:Modules:Scripting w pliku appsettings.json serwisu api. Są to:
-
SlidingCacheExpirationInHours
: czas w godzinach (liczba zmiennoprzecinkowa) od ostatniego użycia, po upływie którego skompilowany skrypt jest usuwany z cache. -
EnableCompiledScriptCache
: wyłączenie zapisywania skompilowanych skryptów w pamięci cache.
Poprawki i usunięte błędy
Uprawnienia PBA do zastępstw
Wprowadzono drobne zmiany w uprawnieniach PBA w sekcji Zastępstwa
. Poprawiono opisy pól wyboru, zmieniono ich kolejność oraz zmieniono zachowanie tak, że zaznaczenie pola wyboru uprawnień o większym zakresie powoduje zaznaczenie pól wyboru o mniejszych zakresach.
Należy pamiętać, że uprawnienie do nadawania zastępstw dla dowolnego użytkownika obejmuje także podwładnych i siebie, a uprawnie dotyczące podwładnych obejmuje także siebie. Po przyznaniu uprawnienia o szerszym zakresie, pola wyboru uprawnień o węższym zakresie są ignorowane.
Informacje o wersji 1.14.1.0 z dn. 23-01-2025
W tej wersji
- Zoptymalizowano przetwarzanie operacji wsadowych na dużych zbiorach rekordów.
- Dodano konfigurację schedulera zadań cyklicznych
- Dodano ustawienie sterujące konwersją tekstu na datę
- Poprawiono wykryte błędy
Przed aktualizacją
Wymagane jest wykonanie następujących czynności:
- Wydajność operacji wsadowych: W związku ze zmianą struktury tabeli [core].[ACLInstanceEntries] wszelkie zapytania niestandardowe oparte na tej tabeli mogą wymagać aktualizacji odpowiednio do wprowadzonych zmian.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20250117133124
W tej wersji nAxiom struktura bazy danych zmieniła się. Przed migracją aplikacji do tej wersji zaleca się zaktualizowanie środowiska źródłowego.
Nowe i zmodernizowane funkcje
Wydajność operacji wsadowych
Wprowadzono kilka zmian mających na celu poprawę wydajności operacji wsadowych na dużych zbiorach rekordów. Zmiany dotyczyły:
- mechanizmu generowania autonumeracji dokumentów, pod kątem operacji importu dokumentów (zapis definicji w pamięci podręcznej, ograniczenie liczby zapytań),
- akcji odświeżania uprawnień,
- akcji dodawania interesariusza.
Ponadto w ramach tych prac zoptymalizowano aktualizację danych w tabeli core.ACLInstanceEntries na potrzeby funkcji tabelarycznej core.UserTasks_View po wykonaniu akcji importu dokumentów, w tym między innymi:
- zmieniono sposób generowania wartości AclId dla nowoutworzonych dokumentów biznesowych na identyfikatory Guid ze znacznikiem czasu, co poprawiło wydajność indeksów budowanych na tej kolumnie,
- podzielono na mniejsze paczki operację aktualizacji wykonywaną po akcji importu; do tej pory było to 1000 rekordów,
- zmodyfikowano tabelę systemową core.ACLInstanceEntries, wydzielając z niej do osobnej tabeli dane potrzebne dla funkcji tabelarycznej core.UserTasks_View. Nowe tabele mają następujące kolumny:
[core].[ACLInstanceEntries](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ACLId] [uniqueidentifier] NOT NULL,
[CanRead] [bit] NOT NULL,
[CanUpdate] [bit] NOT NULL,
[CanDelete] [bit] NOT NULL,
[CanManage] [bit] NOT NULL,
[UserId] [uniqueidentifier] NULL,
[StatusId] [int] NULL,
[OUInstanceId] [int] NULL,
[OUSubInstances] [bit] NOT NULL,
[StakeholderId] [int] NULL)
[core].[UserTasksData](
[ACLInstanceEntryId] [int] NOT NULL,
[ApplicationDefinitionId] [int] NULL,
[BusinessDocumentId] [int] NULL,
[BusinessDocumentDescription] nvarchar NULL,
[BusinessDocumentAcronym] nvarchar NULL,
[InstanceId] [int] NULL,
[InstanceCode] nvarchar NULL,
[InstanceCreateBy] [uniqueidentifier] NULL,
[InstanceCreateByName] nvarchar NULL,
[InstanceCreateDate] datetime2 NULL,
[InstanceStatus] [int] NULL,
[InstanceStatusName] nvarchar NULL,
[LastStatusTransitionTime] datetime2 NULL,
[InstanceCurrentDeadline] datetime2 NULL,
[ShowInUserTaskList] [bit] NOT NULL)
Relacja między tymi tabela to 1:1 (złączenie po [core].[UserTasksData].[ACLInstanceEntryId] = [core].[ACLInstanceEntries].[Id]
Zadania cykliczne
Dodano możliwość konfiguracji biblioteki Quartz odpowiedzialnej za wykonywanie zadań cyklicznych. Ustawienia są pobierane z pliku appsettings.json (sekcja Quartz) serwisu TaskService. Dokumentację dostępnych opcji konfiguracji można znaleźć pod adresem https://www.quartz-scheduler.net/documentation/quartz-3.x/configuration/reference.html.
Ponadto zmieniono zachowanie funkcji zadań cyklicznych w przypadku, gdy dana iteracja zadania cyklicznego nie została wykonana w zadanym czasie (quartz.jobStore.misfireThreshold, domyślnie 60 s), np. z powodu braku dostępnych wątków („misfire”). Do tej pory, taka iteracja była porzucana. Obecnie próba wykonania takiego zadania zostanie podjęta bezpośrednio po wykryciu przekroczenia ustawionego limitu misfireThreshold.
Konwersja tekstu na datę
W ustawieniach systemu (AdminSPA) dodano nowe ustawienie Formatuj tekst przekazywany w parametrach @Nazwa na datę
. Ustawienie to pozwala wyłączyć domyślne rozpoznawanie dat przekazywanych jako tekst w zmiennych @Nazwa. Rozpoznawanie działa dla formatów dd/MM/yyyy oraz yyyy-MM-dd i zamienia rozpoznany ciąg na datę w formacie dd.MM.yyyy HH:mm:ss, ustawiając godzinę 00:00:00.
Opcja znajduje się w nowej sekcji Zarządzanie wartościami parametrów
. Do tej sekcji przeniesiono także opcję Wyłącz konwersję na nvarchar dla zmiennych @Nazwa
z sekcji Ogólne
.
Poprawki i usunięte błędy
Migracja widoków
Usunięto błąd występujący podczas migracji widoków bazodanowych o rozbudowanej definicji (ponad 4000 znaków).
Wstępne ładowanie PublicAPI
W instalatorze nAxiom dodano włączanie wstępnego ładowania na serwerze IIS dla serwisu PublicAPI. Ta zmiana wyeliminuje występowanie błędów w przypadku, kiedy program wysyłający żądanie do PublicAPI po uruchomieniu witryny przekraczał limit czasu oczekiwania na odpowiedź.
Obecnie instalator włącza wstępne ładowanie dla następujących serwisów nAxiom:
- api (back),
- ocrapi,
- publicapi,
- reportsapi,
- tenantsapi,
- taskservice
Akcja tworzenia PDF z warstwą tekstową
Poprawiono działanie akcji tworzenia pliku PDF z warstwą tekstową w przypadku przetwarzania większej liczby załączników. Dodatkowo, w ramach zadania dodano indeks na kolumnach AttachmentId i Type w tabeli core.OCRProcessesQueue.
Synchronizacja z LDAP
-
Poprawiono obsługę ustawienia
Ustawienia systemu
>LDAP
>Nazwa identyfikatora użytkownika
. Na skutek błędu ustawienie inne niż wartość domyślna dla danej usługi katalogowej było ignorowane. Obecnie uwzględniana jest bieżąca wartość tego ustawienia. -
W procedurze obsługi synchronizacji użytkowników z usługami LDAP poprawiono obsługę parametru objectGuid w przypadku synchronizacji wartości do dokumentu biznesowego z danymi dodatkowymi profilu użytkownika. W ramach tego zadania dodano obsługę parametru objectSid z ActiveDirectory. Z uwagi na specyfikę tego parametru jest on obsługiwany tylko wtedy, gdy witryna nAxiom jest hostowana na środowisku Windows.
Filtrowanie list wyboru
Poprawiono błąd, na skutek którego w trybie tylko do odczytu lista wyboru SQL filtrowana zależnościami kontrolek była pusta.
Aktualizacja kontrolek z wartością ustaloną
Poprawiono obsługę aktualizacji wartości przez kod Javascript dla kontrolek z włączonym zapisem wartości ustalonej.
Lista zależności: kolumna - pole formularza
Poprawiono błąd, który powodował, że aktualizacja pól formularza po wybraniu pozycji na liście wyboru (Lista zależności: kolumna - pole formularza) nie działała w odniesieniu do listy wyboru interesariusza.
Dwie kontrolki interesariuszy na formularzu
Usunięto błąd, który powodował, że dodanie na dwóch sekcjach w tej samej kolumnie formularza kontrolki z listą wyboru interesariuszy powodowało usunięcie konfiguracji listy oraz zapisywanie komunikatów o błędach w logach systemu.
Walidacja kontrolki interesariuszy
Poprawiono niedziałającą walidację określenia właściwości Interesariusz
dla listy wyboru interesariuszy.
Podgląd obrazów
Naprawiono wyświetlanie podglądu plików PNG w środowisku dockerowym.
Uprawnienia ACL na sekcji typu lista
Poprawiono błąd weryfikacji uprawnień ACL dla rekordów listy osadzonej w sekcji formularza, w przypadku, gdy dla tej sekcji ustawiono zależność od innej sekcji. Błąd mógł powodować, że w sekcji mogły być wyświetlane rekordy, do których użytkownik nie miał uprawnień.
Powiadomienia
Poprawiono błąd, który powodował wyświetlanie nieprawidłowej daty utworzenia dla starszych powiadomień.
Eksport do Excel
W funkcji eksportu listy do arkusza Excel usunięto błąd, który powodował że wartość typu date w arkuszu była zapisywana jako data z godziną.
Informacje o wersji 1.14.0.15 z dn. 14-01-2025
W tej wersji
Poprawiono działanie mechanizmu uprawnień ACL w przypadku zadań obsługiwanych przez taskservice.
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20241030081548
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.0.11 i nowsze
Poprawki i usunięte błędy
Taskservice i uprawnienia ACL
Usunięto błąd, który powodował, że zmiany dokumentów na skutek akcji wywoływanych przez taskservice (zadania cykliczne, przejścia po bloku oczekiwania) generowały niepełne wpisy uprawnień ACL, co z kolei powodowało brak aktualizacji widoku core.UserTask_View.
Aby naprawić błędne wpisy w tabeli core.ACLInstanceEntries zaleca się uruchomienie na bazie danych procedury core.Refresh_ACLInstanceEntries_DuplicatedData:
exec core.Refresh_ACLInstanceEntries_DuplicatedData
Informacje o wersji 1.14.0.14 z dn. 09-01-2025
W tej wersji
- Buforowanie wyniku weryfikacji tokena
- Migrator - zależności obiektów bazodanowych
- Migracja pustego formularza
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20241030081548
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.0.13
- 1.14.0.12
- 1.14.0.11
Nowe i zmodernizowane funkcje
Buforowanie wyniku walidacji tokena
W celu wyeliminowania przypadków nieoczekiwanego wylogowania użytkownika w serwisie FrontSPA wprowadzono mechanizm zapisu wyniku walidacji tokena w pamięci podręcznej. W związku z tym w pliku appsettings.json serwisu Internal-API, w sekcji ReferenceTokenAuthenticationConf dodano dwa parametry:
- EnableCaching (bool): określa, czy wynik walidacji tokena powinien być zapisywany w pamięci podręcznej (in-memory lub Redis, zależnie od konfiguracji).
- CacheDuration (string): określa czas przechowywania wyniku weryfikacji tokena w pamięci podręcznej; wartość domyślna to ‘00:05:00’ czyli 5 minut.
Do tej pory każde zapytanie do Internal-API (z FrontSPA, z AdminSPA, z WorkflowSPA) powodowało wysłanie żądania pod adres https://auth/connect/introspect w celu sprawdzenia ważności tokenu. Włączenie buforowania wyniku tego sprawdzania spowoduje, że to żądanie będzie wysyłane tylko podczas uruchamiania witryny nAxiom, uruchamiania nowej sesji użytkownika oraz za każdym razem po upływie czasu CacheDuration. W pozostałych przypadkach wynik będzie odczytywany z pamięci podręcznej. Ograniczy to liczbę żądań do API serwisu AUTH oraz liczbę wpisów w logach Internal-API i AUTH.
Buforowanie wyniku walidacji tokena można włączyć lub wyłączyć na poziomie witryny nAxiom, to jest dla wszystkich tenantów.
Wynik sprawdzenia ważności jest przechowywany w pamięci podręcznej typu in-memory po stronie serwera. Nie jest to pamięć podręczna przeglądarki ani pamięć podręczna witryny nAxiom, którą można wyczyścić w ustawieniach systemowych. W przypadku korzystania z pamięci podręcznej obsługiwanej przez Redis, buforowanie wyniku sprawdzenia tokena również korzysta z tej pamięci.
Poprawki i usunięte błędy
Migrator - zależności obiektów bazodanowych
Zmodyfikowano sposób działania migratora w przypadku importu obiektów bazodanowych zależnych od innych obiektów, które nie zostały jeszcze zaimportowane. Dotychczas taka sytuacja kończyła się błędem importu aplikacji, który można było obejść, ponawiając próbę importu aplikacji.
Obecnie migrator sam ponowi próbę importu obiektu po zaimportowaniu pozostałych obiektów.
Migracja pustego formularza
Poprawiono błąd, który uniemożliwiał eksport aplikacji zawierającej formularz bez żadnej sekcji lub formularz bez żadnego pola. Problem był spowodowany błędną składnią danych JSON zapisywanych w pliku nax.
Informacje o wersji 1.14.0.13 z dn. 20-12-2024
W tej wersji
- Nowe typy akcji wywoływanych z akcji Algorytm C#
- Zmiany funkcjonalności eksperymentalnych dotyczących procesów BPMN
- Aktualizacja modułu Telerik Reporting
- Poprawki błędów…
Przed aktualizacją
Nie jest wymagane wykonanie żadnych dodatkowych czynności.
Kompatybilność aplikacji
Zaleca się przenoszenie aplikacji między wersjami nAxiom kompatybilnymi na poziomie bazy danych.
Bieżąca wersja bazy danych: 20241030081548
Wersje nAxiom kompatybilne na poziomie bazy danych:
- 1.14.0.12
- 1.14.0.11
Nowe i zmodernizowane funkcje
Rozszerzenie akcji Algorytm C#
Akcję Algorytm C# rozbudowano o możliwości wywołania akcji raportu oraz definiowania i wykonywania akcji systemowych zapisu rekordu i zmiany statusu dokumentu. Akcje zapisu i zmiany statusu są wykonywane z id użytkownika, który zainicjował wykonanie macierzystej akcji Algorytm C#.
Akcja generowania raportu
Akcja wywołana w ten sposób musi mieć włączony przełącznik Zapisz wygenerowany plik do załączników
, pobranie wygenerowanego raportu przez przeglądarkę nie jest możliwe.
Wywołanie:
var result = await CSharpScript.ActionRunner.ReportsAction.Instance.RunActionAsync({&BaseApp.Actions.BaseModule.AkcjaRaport}, model);
Parametr model jest przekazywany jako ciąg znaków. Aby wygenerowany raport został dodany do załącznika, w modelu należy wskazać RecordId (instancję dokumentu) oraz BusinessDocumentId (definicję dokumentu). Dla poprawnego działania uprawnień konieczne jest przekazanie parametru UserId. Parametry używane w zapytaniu raportu należy przekazać w polu Model parametru model. To pole nie może mieć wartości NULL, jeśli parametry nie są przekazywane, musi ono być pustym obiektem JSON ({}):
using System;
using System.Linq;
using System.Text;
using Shared.Exceptions;
using Newtonsoft.Json;
using System.Collections.Generic;
var recordId = 122;
var model = new Dictionary<string,object>()
{
{ "Model", @"{""Test"" : 1}" },
{ "RecordId", recordId},
{ "BusinessDocumentId", BusinessDocumentId},
{ "UserId", UserId }
};
var serializedModel = JsonConvert.SerializeObject(model);
var result = await CSharpScript.ActionRunner.ReportsAction.Instance.RunActionAsync({&BaseApp.Actions.BaseModule.AkcjaRaport}, serializedModel);
if(!result.IsValid)
{
throw new TranslatedException("Błąd akcji raportu:", result.ValidationResult);
}
return result.IsValid;
W parametrze model można przekazać do akcji raportów wartość kontekstu (pole Model) samej akcji Algorytm C#:
var model = new Dictionary<string,object>()
{
{ "Model", Model,
{ "RecordId", recordId},
{ "BusinessDocumentId", BusinessDocumentId},
{ "UserId", UserId }
};
Przy tworzeniu modelu można również pominąć krok serializacji słownika i ręcznie stworzyć odpowiedni ciąg znaków:
var model = @$""", ""RecordId"": ""{recordId}"", ""BusinessDocumentId"": {BusinessDocumentId}}}";
Akcja zapisu rekordu
Wywołanie:
var result = await CSharpScript.ActionRunner.SaveRecordAction.Instance.RunActionAsync(request);
Definicja typu parametru request:
public class SaveDocumentRequest
{
public int? BusinessDocumentId { get; set; }
public Dictionary<string, object> Model { get; set; }
public string RecordId { get; set; }
}
- BusinessDocumentId (int): id definicji dokumentu
- RecordId (string): id dokumentu (aktualizacja); w przypadku nowego rekordu należy przekazać wartość 0
- Model (Dictionary<string, object>): słownik par klucz: wartość, wartości pól dokumentu biznesowego
Przykład zapisu nowego dokumentu z przekazaniem wartości Email. Id dokumentu jest przypisane do zmiennej newId:
using System;
using System.Linq;
using System.Text;
using Shared.Exceptions;
using Newtonsoft.Json;
using System.Collections.Generic;
using CSharpScript.ActionRunner;
var request = new SaveDocumentRequest()
{
RecordId = "0",
BusinessDocumentId = BusinessDocumentId,
Model = new Dictionary<string, object>()
{
{"Email", "nowe c# nowy record"},
}
};
var result = await CSharpScript.ActionRunner.SaveRecordAction.Instance.RunActionAsync(request);
if(!result.IsValid)
{
throw new TranslatedException("Tworzenie rekordu nie powiodło się", result.ValidationResult);
}
var newId = result.Result;
Akcja zmiany statusu
Wywołanie:
var result = await CSharpScript.ActionRunner.ChangeStatusAction.Instance.RunActionAsync(request);
Definicja typu parametru request:
public class ChangeStatusRequest
{
public int? BusinessDocumentId { get; set; }
public string TransitionInternalId { get; set; }
public IDictionary<string, object> Model { get; set; }
public string RecordId { get; set; }
}
- TransitionInternalId (GUID): wartość pola InternalId przejścia, które ma zostać wykonane (core.BusinessTransitions.InternalId)
- BusinessDocumentId (int): id definicji dokumentu
- RecordId (string): id dokumentu (aktualizacja); w przypadku nowego rekordu należy przekazać wartość 0
- Model (Dictionary<string, object>): słownik par klucz: wartość, umożliwia przekazanie kontekstu danych dla akcji przed i po wykonywanych podczas zmiany statusu
Przykład zmiany statusu dla bieżącego rekordu (otworzonego w formularzu, na którym znajduje się przycisk wywołujący akcję):
using System;
using System.Linq;
using System.Text;
using Shared.Exceptions;
using Newtonsoft.Json;
using System.Collections.Generic;
using CSharpScript.ActionRunner;
var request = new ChangeStatusRequest()
{
RecordId = RecordId,
BusinessDocumentId = BusinessDocumentId,
TransitionInternalId = "c70a1fd2-32b2-7d0b-c470-d42eba506425",
Model = JsonConvert.DeserializeObject<Dictionary<string, object>>(Model)
};
var result = await CSharpScript.ActionRunner.ChangeStatusAction.Instance.RunActionAsync(request);
if(!result.IsValid)
{
throw new TranslatedException("Zmiana statusu nie powiodła się", result.ValidationResult);\
}
Pliki appsettings.json
Do plików konfiguracyjnych appsettings.json serwisów taskservice i publicapi dodano adresy URL serwisów reportsapi i syncfusion. Ta zmiana umożliwi korzystanie z nowych możliwości akcji Algorytm C# w zadaniach cyklicznych oraz żądaniach do PublicAPI.
Funkcjonalności eksperymentalne
Akcja Uruchom BPMN
W akcji Uruchom BPMN dodano oczekiwanie na odpowiedź z silnika BPMN w przypadku, gdy akcja była wywoływana w inny sposób niż z przeglądarki (np. wyzwalana przejściem workflow). Zmiana dotyczy tylko akcji wykonywanej w trybie synchronicznym.
Migracja procesów BPMN
W migratorze aplikacji dodano mechanizm automatycznego publikowania w środowisku docelowym migrowanych procesów BPMN, który były opublikowane w środowisku źródłowym.
Poprawki i usunięte błędy
Raporty Telerik
Usunięto błąd w działaniu akcji raportów, który powodował, że plik PDF z wygenerowanym raportem dodawany do sekcji załączników był nieprawidłowy.
Raporty Telerik
Usunięto problem z uruchamianiem modułu designera raportów w środowisku dockerowym.
Migrator aplikacji
Poprawiono migrację triggerów bazodanowych dla schematów innych niż domyślny (dbo).
Informacje uzupełniające
Aktualizacja Telerik Reporting
Zaktualizowano moduł Telerik Reporting do wersji 18.3.24.1112.
Informacje o wersji (fix) 1.14.0.13 z dn. 06-12-2024
Informacje uzupełniające
Aktualizacja Telerik Reporting
Zaktualizowano moduł Telerik Reporting do wersji 18.3.24.1112.
Poprawki i usunięte błędy
Raporty Telerik
Usunięto błąd w działaniu akcji raportów, który powodował, że plik PDF z wygenerowanym raportem dodawany do sekcji załączników był nieprawidłowy.
Raporty Telerik
Usunięto problem z uruchamianiem modułu designera raportów w środowisku dockerowym.
Informacje o wersji (fix) 1.14.0.12 z dn. 20-11-2024
Nowe i zmodernizowane funkcje
Instalator zaawansowany
Od bieżącej wersji nAxiom wymaga, aby w bieżącym środowisku opartym na serwerze IIS (Windows) było zainstalowane środowisko uruchomieniowe .NET 8. W związku z tym wprowadzono następujące zmiany w instalatorze zaawansowanym („custom installer”):
- kontrola instalacji .NET 8 w bieżącym środowisku; w razie stwierdzenia braku instalator wyświetli komunikat i zablokuje możliwość kontynuowania instalacji,
- w ciągach połączeń z serwerem bazy danych instalator dodaje właściwość Encrypt o wartości false; dotyczy to tylko nowych instalacji oraz aktualizacji środowisk, w których nie określano tej właściwości.
Obrazy dockerowe
W ramach uaktualnienia nAxiom do obsługi platformy .NET 8 zmodyfikowano proces budowania obrazów Docker dla wdrożeń w architekturze kontenerów. Obecnie w środowisku kontenerów nAxiom jest instalowana platforma .NET 8.
Migrator aplikacji
W migratorze dodano możliwość eksportu tabel pomocniczych, które nie mają klucza głównego. Jak w poprzednich wersjach, te tabele muszą być powiązane z eksportowanym modułem.
Informacje o wersji (fix) 1.14.0.11 z dn. 12-11-2024
Nowe i zmodernizowane funkcje
Skrypty migracji
Dodano możliwość definiowania skryptów SQL wykonywanych przed importem aplikacji na środowisko docelowe i po zakończeniu importu. Skrypty są uruchamiane w ramach transakcji importu; błąd wykonania skryptu o odpowiedniej istotności przerywa wykonanie transakcji. Skrypty można wpisać na nowo dodanych kartach w oknie definiowania aplikacji.
Przy użyciu skryptu przed importem można na przykład utworzyć w bazie nowe schematu używane przez importowaną aplikację, aby utworzyć kilka schematów można użyć w skrypcie komendy GO:
CREATE SCHEMA myAppSchema1;
GO
CREATE SCHEMA myAppSchema2;
GO
Obsługa komendy GO została zaimplementowana w nAxiom punktowo tylko na potrzeby skryptów migracyjnych. W przypadku sprawdzania poprawności składni SQL dla skryptu jak w przykładzie powyżej, jest wyświetlany komunikat o błędzie, jednak skrypt można zapisać i jest on wykonywany poprawnie. Ten problem zostanie rozwiązany w kolejnej wersji nAxiom.
Zmienne aplikacji
Dodano możliwość wyłączenia nadpisywania wartości zmiennych aplikacji w środowisku docelowym podczas importu aplikacji. Funkcja działa osobno dla każdego rodzaju środowiska (dev/test/prod). Z funkcji można skorzystać w oknie definicji aplikacji na karcie Zmienne
, gdzie dodano przycisk Ustawienia migrowania zmiennych
. Kliknięcie przycisku wyświetla okno dialogowe z trzema przełącznikami dla indywidualnych rodzajów środowisk. Wyłączenie przełącznika spowoduje, że wartości zmiennych aplikacji w środowisku docelowym danego typu nie będą nadpisywane wartościami z importowanej aplikacji.
W przypadku zmiennych, które nie istnieją w środowisku docelowym, wyłączenie nadpisywania spowoduje, że nowa zmienna zostanie utworzona i będzie miała wartość NULL.
Migrator aplikacji
W migratorze zmieniono tryb importu procedur SQL w przypadku, gdy taka procedura już istnieje na środowisku docelowym. Obecnie istniejąca procedura jest aktualizowana za pomocą instrukcji ALTER. Wcześniej taka procedura była usuwana i tworzona od nowa (DROP/CREATE).
Poprawki dotyczące bezpieczeństwa i dobrych praktyk programistycznych
Biblioteki Javascript
Zaktualizowano używane w projekcie biblioteki Javascript:
- jquery 3.6.0 -> 3.7.1
- jquery-validate 1.19.5 ->1.21.0
- jquery-validation-unobtrusive 3.2.11 -> 4.0.0
Usunięcie nadmiarowych informacji
Z komunikacji http między aplikacją (FrontSPA) i backendem usunięto informacje umożliwiające poznanie struktury bazy danych. Ma to na celu poprawę bezpieczeństwa, w tym między innymi uniemożliwienie identyfikacji miejsc podatnych na ataki typu SQL Injection.
nginx 1.27.1
W pakiecie do wdrożeń w architekturze kontenerów zaktualizowano używany serwer nginx do wersji 1.27.1.
Nagłówki odpowiedzi HTTP
W wysyłanych z nAxiom odpowiedziach HTTP na niektóre żądania uzupełniono brakujące nagłówki:
- Permissions-Policy (dawn. Feature-Policy): umożliwia szczegółową kontrolę nad zakresem wykorzystania przez przeglądarkę klienta dostępnych funkcjonalności oraz API aplikacji.
- Content-Security-Policy: zawiera informacje o typach zawartości zamieszczonych na stronie.
- Referrer-Policy; pozwala na zarządzanie postacią nagłówka Referer w przypadku żądań kierowanych do innych witryn z aplikacji nAxiom.
- X-Content-Type-Options (nosniff): znacznik używany przez serwer do wskazania, że typy MIME ogłaszane w nagłówkach Content-Type nie powinny być zmieniane, oraz że należy ich przestrzegać.
- X-Frame-Options: pozwala zapobiegać atakom typu clickjacking, polegającym na doprowadzeniu użytkownika do nieświadomego wykonania operacji na stronie.
- Strict-Transport-Security: informuje przeglądarki, że dostęp do danej witryny powinien zawsze odbywać się przez połączenie szyfrowane HTTPS, oraz że wszelkie przyszłe próby dostępu przez HTTP powinny być automatycznie konwertowane na HTTPS.
Protokoły TLS
W celu podniesienia poziomu bezpieczeństwa wyłączono obsługę protokołu TLS w wersji 1.0 i 1.1.
Algorytmy kryptograficzne
Z zestawu algorytmów kryptograficznych możliwych do wynegocjowania do ochrony transmisji szyfrowanej SSL/TLS usunięto te, których użycie nie jest już rekomendowane ze względów bezpieczeństwa. Dotyczy to między innymi algorytmów RSA używanych do wymiany kluczy, szyfrów blokowych pracujących w trybie CBC i algorytmów SHA używanych jako funkcja skrótu do uwierzytelniania wiadomości.
Pliki cookie sesji
Dodano atrybuty httponly i secure w plikach cookie sesji, których tworzenie wymusza serwer nAxiom podczas korzystania z wskazanych serwisów. Pierwszy z tych atrybutów blokuje dostęp do plików cookie z poziomu aktywnego kodu po stronie klienta (np. JavaScript), drugi pozwala na przesyłanie pliku cookie tylko przez połączenie szyfrowane.
Informacje o technologii
Z odpowiedzi HTTP rozsyłanych przez witrynę nAxiom wyeliminowano informację o wykorzystywanych komponentach (Server: nginx/1.23.4).
Przedrostek URL tenanta
W aplikacji TenantsAdminSPA, w konfiguracji przedrostka adresu URL tenanta dodano mechanizm walidacji wykluczający użycie znaku podkreślenia (_) w tym przedrostku w celu zapewnienia zgodności z obowiązującymi specyfikacjami i standardami oraz uniknięcia potencjalnych problemów z routingiem i identyfikacją tenanta.
Ponieważ domyślnie wartość tego ustawienia jest pobierana z ustawienia Kod, również w kodzie tenanta wykluczono możliwość stosowania podkreślenia.
Poprawki i usunięte błędy
Migrator aplikacji
W migratorze aplikacji wyłączono sprawdzanie, czy nazwa importowanej kolumny zaczyna się od wielkiej litery. Kolumny, które nie spełniały tego wymagania, nie były tworzone w środowisku docelowym. Problem dotyczył tabel tworzonych poza kreatorem modeli danych, w którym nawy kolumn muszą zaczynać się z wielkiej litery.
Raporty Telerik
Żądanie generowania raportu Telerik rozbudowano o obsługę błędów i automatyczne ponawianie w przypadku błędu połączenia.
Lista hierarchiczna
Usunięto błąd, który powodował, że odświeżenie strony powodowało usunięcie skonfigurowanych filtrów dla listy hierarchicznej.
Wartość ustalona
Zmieniono mechanizm pobierania danych dla listy wyboru z wartością ustaloną. W takich przypadkach w trybie tylko do odczytu wyłączono wczytywanie źródła danych kontrolki, aby zlikwidować niepotrzebne opóźnienia.
Akcja odświeżania uprawnień
W oknie dialogowym akcji odświeżania uprawnień przywrócono wyświetlanie opisu zapytania SQL pod edytorem SQL.
Sygnalizacja wymagalności
Poprawiono błąd, który powodował, że dla niektórych kontrolek formularza nie działała sygnalizacja wymagalności pól (czerwony napis Pole wymagane).
Akcja komunikatu
Poprawiono błąd, który powodował, że w przypadku zamknięcia okna komunikatu klawiszem Esc, pozostawała aktywna blokada ekranu z ikoną operacji w toku. Problem dotyczył komunikatów wyświetlanych akcją komunikatu.
Lista wyboru interesariuszy
Poprawiono błąd, który powodował, że po rozwinięciu listy wyboru interesariuszy, która znajdowała się u dołu ekranu, lista była niewidoczna (rozwijała się poza obszar widoczny na ekranie).
Bloczek akceptacji
Poprawiono błąd w działaniu bloku akceptacji w przypadku kilku akceptantów.
Informacje o wersji (fix) 1.13.2.5 z dn. 25-10-2024
Poprawki i usunięte błędy
Aktualizacja .NET 6.0.35
Wprowadzono poprawkę zapewniającą obsługę aktualizacji Windows Update, w ramach której platforma .NET 6.0 została zaktualizowana do wersji 6.0.35. Ta aktualizacja uniemożliwiała korzystanie z pamięci podręcznej i tym samym działanie nAxiom.
Niniejsza aktualizacja nAxiom jest przeznaczona wyłącznie dla wdrożeń w wersji 1.13.x.x.
Informacje o wersji (fix) 1.12.1.1 z dn. 24-10-2024
Poprawki i usunięte błędy
Aktualizacja .NET 6.0.35
Wprowadzono poprawkę zapewniającą obsługę aktualizacji Windows Update, w ramach której platforma .NET 6.0 została zaktualizowana do wersji 6.0.35. Ta aktualizacja uniemożliwiała korzystanie z pamięci podręcznej i tym samym działanie nAxiom.
Niniejsza aktualizacja nAxiom jest przeznaczona wyłącznie dla wdrożeń w wersji 1.12.x.x.
Informacje o wersji (fix) 1.14.0.10 z dn. 15-10-2024
Nowe i zmodernizowane funkcje
Eksport uprawnień PBA
Funkcjonalność eksportu ról wraz z uprawnieniami PBA rozszerzono o uprawnienia PBA do aplikacji konfigurowane w AdminSPA.
Poprawki i usunięte błędy
Zależności kontrolki
Poprawiono błędne działanie ustawiania wartości w liście rozwijanej na podstawie wartości innej listy, która jednocześnie była kontrolką nadrzędną używaną do filtrowania wartości tej listy. Błąd był spowodowany próbą ustawienia wartości, której nie było na liście. Obecnie najpierw wykonywane jest filtrowanie wartości w kontrolce zależnej, a następnie ustawiana jest wartość w tej kontrolce.
Ta zmiana może wpłynąć na działanie dotychczasowych konfiguracji zależności kontrolek. Zaleca się sprawdzenie ich działania po aktualizacji do bieżącej wersji.
Aktualizacja elementów aplikacji
Poprawiono błędy, które powodowały nadpisywanie identyfikatorów GUID podczas ponownego zapisu (aktualizacji) niektórych elementów aplikacji. Takie zmiany powodowały zgłaszanie błędów podczas importu aplikacji do innego środowiska.
Kolejność sekcji formularza
Poprawiono błąd, który powodował duplikowanie numeru kolejnego sekcji (właściwość Kolejność
). Błąd ten mógł powodować, że po migracji sekcje o takim samym numerze kolejnym były renderowane w innej kolejności niż na środowisku źródłowym. W ramach zadania dodano wymóg unikalności numerów kolejnych wierszy, kolumn, sekcji i pól formularza. Ponadto rozbudowano walidatory sprawdzające poprawność definicji formularza przed zapisem.
Zastosowanie zmian w istniejących formularzach wymaga otwarcia definicji formularza i zapisania jej.
Migrator aplikacji
Poprawiono działanie funkcji porównywania konfiguracji w migratorze aplikacji.
Migrator aplikacji
Poprawiono błąd aktualizacji uprawnień PBA w przypadku importu roli, która na środowisku źródłowym nie miała uprawnień PBA, a miała uprawnienia PBA w środowisku docelowym. W takim przypadku uprawnienia PBA nie były resetowane.
Informacje o wersji (fix) 1.14.0.9 z dn. 30-09-2024
Nowe i zmodernizowane funkcje
Tryb pojedynczej aplikacji
W definicji aplikacji dodano możliwość ograniczenia dostępu do danej aplikacji w trybie pojedynczej aplikacji tylko do użytkowników z wskazanymi rolami. Jeśli żadne role nie zostaną wybrane, aplikacja będzie dostępna na liście wyboru dla wszystkich użytkowników. Ta funkcja działa tylko wtedy, gdy przełącznik widoczności aplikacji na liście wyboru jest włączony.
Migracja uprawnień PBA
W migratorze aplikacji dodano możliwość eksportu ról przypisanych do danej aplikacji wraz z uprawnieniami PBA skonfigurowanymi dla tych ról.
Funkcjonalność dotyczy wyłącznie uprawnień PBA definiowanych we FrontSPA.
W celu eksportu uprawnień należy włączyć przełącznik w kolumnie Eksportuj uprawnienia PBA
na liście wyboru aplikacji. Domyślnie eksport uprawnień PBA dla ról jest wyłączony.
Informacje o wersji (fix) 1.14.0.8 z dn. 19-09-2024
Poprawki i usunięte błędy
Wartości ustalone
Usunięto błąd, który powodował, że na liście rozwijanej z włączonym zapisem wartości ustalonych te wartości nie wyświetlały się.
Blok oczekiwania
Poprawiono działanie bloku oczekiwania na diagramie procesów. W ramach zadania:
- poprawiono działanie kontrolki do ustawiania wartości czasu oczekiwania (obsługa za pomocą strzałek),
- usunięto warunek, który blokował wykonanie akcji po przejściu (w tym także dla żądania PublicAPI Document/Save) oraz dodanie wpisu do tabeli core.BusinessTransitionAwaiters.
Błąd importu aplikacji
Usunięto błąd, który powodował, że podczas importu aplikacji system ponownie próbował utworzyć warunek constrain dla wartości domyślnej kolumny.
Informacje o wersji (fix) 1.14.0.7 z dn. 09-09-2024
Poprawki i usunięte błędy
Obsługa danych liczbowych
Poprawiono obsługę wartości zmiennoprzecinkowych w polach numerycznych. Te wartości będą teraz przekazywane jako liczby typu decimal z odpowiednią precyzją, a nie jak do tej pory jako float, o ile dana liczba ma nie więcej niż 38 cyfr.
Funkcja core.GetAllCurrentDocumentACLPermissions
Zmodyfikowano definicję funkcji core.GetAllCurrentDocumentACLPermissions pod kątem prawidłowego działania w edycji MS SQL Server 2016.
Informacje o wersji (fix) 1.14.0.6 z dn. 02-08-2024
Informacje uzupełniające
Wydajność wyświetlania list.
W przypadku zauważalnego spadku wydajności wyświetlania list dokumentów z włączoną obsługą uprawnień ACL po aktualizacji ze starszej wersji zaleca się przebudowanie indeksów tabeli core.ACLInstanceEntries (w programie MS SQL Server Management Studio).
Jednocześnie nie zaleca się stosowania w zapytaniu źródłowym widoku listy instrukcji ORDER BY [column-name] OFFSET 0 ROWS
.
Nowe i zmodernizowane funkcje
Zastępstwa
Zmodyfikowano wygląd okna dialogowego do definiowania zastępstw. Dodano uwagę o przekazywaniu w ramach zastępstwa indywidualnych uprawnień do dokumentów (uzyskanych na podstawie szablonu dla twórcy, przynależności do grupy interesariuszy albo przypisanych indywidualnie akcją lub z użyciem ikony kluczyka na formularzu). Dodano nazwy aplikacji dla ról globalnych i ról w jednostkach. Zaktualizowano opis działania funkcji zastępstw w dokumentacji, w tym podano metodę oprogramowania przełącznika sterującego dostępem do dokumentów, dla których zastępowany jest właścicielem zadania.
Aby ten przełącznik umożliwiał wyłączenie dostępu do takich dokumentów, należy w definicji list dodać warunek:
SELECT * FROM [myGrid_View]({@_LangId}) v
-- wyklucza rekordy, dla których zastępowany jest właścicielem zadania
WHERE NOT EXISTS (
-- wybiera zastępstwa, w których zastępowany jest właścicielem zadania
SELECT t.Id FROM
core.TaskOwnerships t
JOIN core.PermissionDelegations p
ON p.UserFromId = t.UserId
WHERE
-- aktywne i trwające w danym momencie
p.DateFrom <= GETDATE() AND
p.DateTo >= GETDATE() AND
p.IsActive = 1 AND
-- z wyłączonym przełącznikiem dostępu do zadań
p.AllowACLAccess = 0 AND
-- w których bieżący użytkownik jest zastępcą
p.UserForId = {@_UserId}
-- a przypisanie właściciela dotyczy bieżącego rekordu
AND t.RecordGuid = v.ACLId
)
Funkcja core.GetCurrentDocumentACLPermissions(ACLId, LangId)
Dodano systemową funkcję tabelaryczną core.GetCurrentDocumentACLPermissions(ACLId, LangId). Funkcja zwraca uprawnienia ACL do danego dokumentu oraz informacje o źródłach uprawnień, takie jak:
- czy uprawnienie pochodzi z zastępstwa,
- czy źródłem uprawnień jest szablon o określonym zasięgu (status lub instancja),
- czy uprawnienie wynika z posiadania roli globalnej lub roli w jednostce,
- czy uprawnienie wynika z przynależności do grupy interesariuszy (nazwa grupy),
- czy uprawnienie zostało nabyte indywidualnie (w ramach indywidualnej przynależności do grupy interesariuszy, na podstawie szablonu dla twórcy, w wyniku akcji przypisania uprawnień lub po użyciu ikony kluczyka na formularzu).
Opis funkcji zamieszczono w rozdziale „Predefiniowane funkcje i procedury” w Leksykonie nAxiom.
Wydajność wyświetlania list.
W przypadku zauważalnego spadku wydajności wyświetlania list dokumentów z włączoną obsługą uprawnień ACL po aktualizacji ze starszej wersji zaleca się przebudowanie indeksów tabeli core.ACLInstanceEntries (w programie MS SQL Server Management Studio).
Jednocześnie nie zaleca się stosowania w zapytaniu źródłowym widoku listy instrukcji ORDER BY [column-name] OFFSET 0 ROWS
.
Poprawki i usunięte błędy
Kopiowanie listy
Poprawiono działanie funkcji kopiowania widoku listy na ekranie Listy (AdminSPA > INTERFEJS UŻYTKOWNIKA
> Listy
). Obecnie w celu utworzenia kopii wybranej listy należy podać jej kod. Kopia listy ma taką samą nazwę jak lista oryginalna. Ponadto dodano walidację kodu dla nowych i kopiowanych list. Obecnie dozwolone są tylko znaki alfanumeryczne, znak podkreślenia i myślnik. Kody istniejących list, które zawierają niedozwolone znaki nie zostały zmienione.
Oznaczenie wymagalności pola
Usunięto problemy z wyświetlaniem czerwonych gwiazdek obok pól formularza skonfigurowanych jako wymagane.
Zwijanie sekcji
Poprawiono działanie funkcjonalności zwijania i rozwijania sekcji dla sekcji typu lista.
Informacje o wersji (hotfix) 1.14.0.5 z dn. 17-07-2024
Poprawki i usunięte błędy
Przekazywanie wartości 0 i false
Poprawiono błędne przekazywanie wartości 0 (int) i false (boolean) do kontrolki Blok HTML jako wartości typu string.
Nieoczekiwane wylogowanie
Poprawiono błąd, który powodował wylogowanie użytkowników korzystających z logowania zewnętrznego SSO i logowania Windows po upływie 30 minut od zalogowania.
Przekazywanie wartości typu data
Poprawiono błąd przekazywania wartości daty do kontrolki Pole daty oraz wartości czasu do kontrolki Pole czasu. przy użyciu parametrów {@referencja}.
Informacje o wersji (hotfix) 1.14.0.4 z dn. 02-07-2024
Poprawki i usunięte błędy
Przyciski listy
Usunięto problem, który powodował błąd przy zapisie listy po usunięciu przycisku listy. Błąd dotyczył list używanych jako sekcje na formularzach.
Sekcja Kalendarz
Poprawiono kilka błędów dotyczących sekcji Kalendarz:
- Wyświetlanie w widoku osi czasu dodatkowego wiersza nagłówka z wartościami czasu 00:00, jeśli w konfiguracji kontrolki kalendarza włączono przełącznik
Oś czasu - interwał całodniowy
. - Brak wyświetlania zdarzeń kalendarza po otwarciu formularza; konieczne było otwarcie dowolnego zdarzenia i jego zamknięcie, aby zdarzenia zostały wyświetlone.
- Zablokowanie kalendarza, jeśli dla zdarzeń kalendarza nie wybrano żadnej akcji; obecnie w takim przypadku kliknięcie zdarzenia lub próba usunięcia go nie spowoduje żadnej reakcji.
- Wyświetlanie jako domyślnego widoku w sekcji kalendarza tego, który jest w konfiguracji ustawiony jako pierwszy.
- Przełączanie z trybu miesięcznego do dziennego po kliknięciu przycisku wielokropka w polu zawierającym kilka zdarzeń.
Chat
Poprawiono działanie czatu we wdrożeniach nAxiom w architekturze kontenerów.
Zapisy audytu
Przywrócono wyświetlanie symboli rozwijania i zwijania (+ i -) w wierszu audytu.
Przyciski na pasku toolbar
Usunięto problem z zapisem zmienionej kolejności przycisków na pasku toolbar w designerze formularzy.
Migracja zaszyfrowanych haseł
Rozwiązano problem migracji źródeł danych i monitorów poczty e-mail w przypadku kiedy środowiska źródłowe i docelowe miały różne nazwy klienta (klucze licencyjne). Problem powodował konieczność ponownego ustawienia hasła do źródła danych/skrzynki pocztowej.
Informacje o wersji (fix) 1.14.0.3 z dn. 12-06-2024
Nowe i zmodernizowane funkcje
Ścieżka w strukturze organizacyjnej
W ustawieniach systemu (AdminSPA > ADMINISTRACJA
> Ustawienia systemu
) w sekcji Struktura organizacyjna
dodano ustawienia:
-
Wyświetlanie ścieżki jednostek w profilu użytkownika
: pozwala wybrać, czy w ścieżkach jednostek organizacyjnych w profilu użytkownika mają być używane kody, czy nazwy jednostek organizacyjnych. -
Tooltip dla ścieżki jednostek w profilu użytkownika
: pozwala określić zawartość podpowiedzi wyświetlanej po wskazaniu myszą pola jednostki organizacyjnej w profilu użytkownika.
Poprawki i usunięte błędy
Obszar tekstowy
Poprawiono obsługę stylu CSS zdefiniowanego przez użytkownika dla pola kontrolki Obszar tekstowy.
Przycisk na liście
Usunięto błąd, który powodował, że po usunięciu z listy przycisku, dla którego skonfigurowano ustawienia dostępności na formularzu (w sekcji typu lista) w tabeli core.FormSections zostawały wpisy dotyczące tego przycisku.
Sekcja harmonogramu
Poprawiono wygląd okna wyświetlanego po kliknięciu prawym przyciskiem myszy komórki zdarzenia w sekcji harmonogramu.
Eksport do Excel
Rozwiązano problem z eksportem listy hierarchicznej do pliku Excel.
Filtry listy na formularzu
Usunięto błąd, który blokował wyświetlanie filtrów kolumn listy osadzonej na formularzu, gdy formularz był otwierany w trybie dialog, okno lub panel boczny.
Filtrowanie aplikacji w AdminSPA
Poprawiono wyświetlanie listy aplikacji w nagłówku aplikacji AdminSPA.
Edycja definicji raportu
Poprawiono tytuł okna dialogowego wyświetlanego po kliknięciu przycisku Edytuj
dla szablonu raportu Telerik.
Link w prostej liście
Usunięto błąd, który powodował, że kliknięcie linku w sekcji prosta lista powodowało, zależnie od wersji nAxiom, wyświetlenie animowanego symbolu procesu w toku lub nie powodowało żadnej reakcji.
Kontrolka datepicker
Poprawiono walidację wartości minimalnej i maksymalnej dla kontrolki datepicker.
Informacje o wersji (fix) 1.14.0.2 z dn. 04-06-2024
Nowe i zmodernizowane funkcje
Zmienna {@_UserAuthenticationLevel}
Na potrzeby środowisk, w których skonfigurowano logowanie SSO do witryny nAxiom, dodano systemową zmienną {@_UserAuthenticationLevel}. Wartość zmiennej odpowiada metodzie uwierzytelnienia użytej w danej sesji przez użytkownika i jest określana na podstawie danych zwracanych przez dostawcę SSO.
Ponadto, w konfiguracji tenanta, w sekcji ExternalLogin dodano klucze:
- AuthenticationLevelClaimName: nazwa atrybutu przesyłanego z systemu zewnętrznego uwierzytelnienia, zawierającego wartość poziomu uwierzytelnienia,
- DefaultAuthenticationLevel: domyślny poziom uwierzytelnienia, jeżeli system zewnętrzny nie prześle atrybutu,
- AuthenticationLevelMapper mapper wartości przychodzących z zewnętrznego systemu na wartości nAxiom.
Przykładowa konfiguracja:
"ExternalLogin": {
"AuthenticationLevelClaimName": "authenticationLevel",
"DefaultAuthenticationLevel": 2,
"AuthenticationLevelMapper": {
"1": "1",
"2": "2",
"3": "3"
}
}
Wprowadzone zmiany pozwalają na uzależnienie przebiegu procesu biznesowego w nAxiom od metody uwierzytelnienia bieżącego użytkownika i na przykład żądanie uwierzytelnienia dwuskładnikowego w przypadku niektórych newralgicznych operacji.
Poprawki i usunięte błędy
Administrowanie uprawnieniami
Usunięto błąd, który powodował, że po odebraniu uprawnienia do aktualizacji (U) dokumentu, użytkownik z uprawnieniem do odczytu i administrowania uprawnieniami (RA) nie mógł zmienić uprawnień do tego dokumentu.
Kropka w nazwie bazy danych
Usunięto błąd, który uniemożliwiał użycie znaku kropki w nazwie bazy danych dla kolejnych tenantów.
Informacje o wersji (hotfix) 1.14.0.1 z dn. 23-04-2024
Ważne informacje
Żądania do PublicAPI w środowisku Openshift
W instalacji nAxiom w środowisku dockerowym wykryto problem z wykonywaniem akcji WebService, która wysyłała żądanie do PublicAPI w tej samej witrynie. Ten problem został rozwiązany przez dodanie brakującego certyfikatu proxy. Jednak w przypadku klientów korzystających z własnej infrastruktury PKI i oprogramowania Openshift konieczna jest odpowiednia modyfikacja pliku api-deployment.yaml. Poniżej przedstawiono przykład takiej modyfikacji przy założeniu, że klient używa własnego certyfikatu głównego root.crt i certyfikatu pośredniego sub.crt, które przechowuje w jednym obiekcie secret o nazwie naxiom-custom-certs. Odpowiednie wpisy należy dodać w sekcjach volumes i volumeMounts.
volumes:
- name: root-cert
secret:
secretName: naxiom-custom-certs
items:
- key: root.crt
path: root.crt
optional: false
- name: sub-cert
secret:
secretName: naxiom-custom-certs
items:
- key: sub.crt
path: sub.crt
optional: false
volumeMounts:
- name: root-cert
readOnly: true
mountPath: /usr/local/share/ca-certificates/root.crt
subPath: root.crt
- name: sub-cert
readOnly: true
mountPath: /usr/local/share/ca-certificates/sub.crt
subPath: sub.crt
Poprawki i usunięte błędy
Zapis diagramu procesu
Rozwiązano problem, który powodował wydłużenie czasu zapisu diagramu procesu (nawet do przekroczenia limitu czasu) zawierającego bloki oczekiwania lub podprocesu w przypadku, gdy dla tego diagramu (definicji dokumentu) było utworzonych dużo dokumentów (co najmniej kilka tysięcy).
Otwarcie formularza, przekazywanie parametrów
Poprawiono problem występujący w przypadku przekazywania w akcji otwarcia formularza wartości typu liczbowego bezpośrednio do kontekstu formularza (bez użycia odpowiedniej kontrolki na formularzu). Ten problem powodował błąd niezgodności typów danych podczas zapisu do bazy danych.
Akcja komunikatu
Usunięto problem, który powodował błąd podczas wywołania akcji komunikatu przyciskiem w wierszu listy (oraz sekcji typu lista na formularzu), jeśli lista nie miała przypisanej definicji dokumentu.
Równoległe zadania cykliczne
Rozwiązano problem powodujący losowe błędy wywoływania akcji C# poprzez zadania cykliczne występujący w sytuacji kiedy kilka zadań wykonywało się w tym samym momencie (miały tak samo zdefiniowane wyrażenie cron).
Eksport listy do Excel
Rozwiązano problem, który powodował błędy eksportu widoku listy do pliku Excel w przypadku równoległego uruchomienia kilku operacji eksportu. Obecnie do czasu zakończenia bieżącej operacji eksportu ekran jest blokowany.
Tworzenie dokumentu przez PublicAPI
Usunięto błąd, który powodował, że dla dokumentów tworzonych żądaniami przesyłanymi do PublicAPI nie były generowane uprawnienia ACL.
Informacje o wersji (hotfix) 1.13.2.4 z dn. 10-04-2024
Poprawki i usunięte błędy
Równoległe zadania cykliczne
Rozwiązano problem powodujący losowe błędy wywoływania akcji C# poprzez zadania cykliczne występujący w sytuacji kiedy kilka zadań wykonywało się w tym samym momencie (miały tak samo zdefiniowane wyrażenie cron).
Eksport listy do Excel
Rozwiązano problem, który powodował błędy eksportu widoku listy do pliku Excel w przypadku równoległego uruchomienia kilku operacji eksportu. Obecnie do czasu zakończenia bieżącej operacji eksportu ekran jest blokowany.
Tworzenie dokumentu przez PublicAPI
Usunięto błąd, który powodował, że dla dokumentów tworzonych żądaniami przesyłanymi do PublicAPI nie były generowane uprawnienia ACL.
Informacje o wersji (wersja) 1.14.0.0 z dn. 08-04-2024
Znane błędy
Błędy w wersji 1.13.x.x
W trakcie końcowych testów wersji 1.14 zgłoszono trzy błędy dotyczące wersji 1.13:
- problem z wywołaniem akcji C# przez kilka równolegle wyzwalanych zadań cyklicznych,
- problem z tworzeniem uprawnień ACL w przypadku tworzenia dokumentu przez publicAPI,
- problem z eksportem listy do arkusza Excel.
Poprawki tych błędów do wersji 1.13 zostaną wydane w hotfiksie 1.13.2.4 w bieżącym tygodniu. Natomiast poprawki do wersji 1.14 zostaną wydane w hotfiksie 1.14.0.1.
Ważne informacje
Aktualizacja biblioteki Kendo i innych
We wszystkich aplikacjach nAxiom z interfejsem użytkownika (front, admin, workflow itp.) przeprowadzono aktualizację kontrolek Kendo do najnowszej wersji. Zaktualizowano także wersję frameworka Angular, na którym zbudowane są te aplikacje, oraz zaktualizowano szereg innych bibliotek używanych w aplikacjach frontowych. Dla użytkownika końcowego efekty tych prac mogą być zauważalne w nieco zmienionym wyglądzie aplikacji. Nowe elementy UI i ustawienia konfiguracyjne wprowadzone w związku ze zmianami opisano w dalszej części tego dokumentu.
Obsługa pola daty
W związku z aktualizacją bibliotek Kendo zmieniła się obsługa kontrolki Pole daty z włączonymi strzałkami do zmiany wartości (spinner). Obecnie te strzałki pozwalają zmienić tylko pierwszy segment daty (np. dzień dla daty w formacie dd-mm-rrrr). Dowolny zaznaczony segment daty można zmienić za pomocą strzałek w górę i w dół na klawiaturze.
Zmiany w obsłudze funkcji OCR
Od wersji 1.14 niedostępne będą niektóre funkcjonalności OCR (przetwarzanie OCR dokumentów, rozpoznawanie szablonów) w aplikacjach FrontSPA i AdminSPA. Zmiana nie dotyczy akcji OCR. W designerze formularzy niedostępna będzie sekcja OCR, jednak sekcje OCR używane w formularzach będą działać w dalszym ciągu. Nadal obsługiwana jest także akcja dodawania warstwy tekstowej do PDF.
Nowe i zmodernizowane funkcje
Tryb pojedynczej aplikacji
W aplikacji FrontSPA dodano możliwość filtrowania pozycji menu według aplikacji, do której przypisano te pozycje. Aplikację domyślną przypisuje się w profilu użytkownika. Ponadto, w ustawieniach systemu dodano sekcję Tryb pojedynczej aplikacji
. W tej sekcji można włączyć/wyłączyć filtrowanie menu FrontSPA według aplikacji, określić sposób informowania o aplikacji aktywnej oraz zdecydować, czy użytkownik może zmienić swoją aplikację domyślną. W ramach tej funkcjonalności wprowadzono dodatkowo następujące zmiany:
- Dodano nowy mechanizm ładowania domyślnej aplikacji po zalogowaniu. Aplikacja domyślna jest ustawiana w profilu użytkownika. Jeśli nie zostanie ustawiona, wybierana jest aplikacja wskazana w ustawieniach systemu (o ile włączono tryb pojedynczej aplikacji).
- Dodano nową opcję do przełączania aplikacji oraz wyświetlenie kafelka z nazwą bieżącej aplikacji.
- W definicji pozycji i sekcji menu dodano możliwość ustawienia sekcji/pozycji jako współdzielonej. Taka sekcja/pozycja będzie wyświetlana zawsze, niezależnie od wybranej aplikacji.
- Rozszerzono definicje aplikacji o akronim oraz opcję widoczności aplikacji w panelu listy aplikacji.
Nowa funkcja showCustomMessage
W edytorze kodu JavaScript dodano wbudowaną funkcję showCustomMessage
, która daje możliwość wyświetlania w akcjach JS komunikatów zamiast usuniętej biblioteki Alertify.
Synchronizacja jednostek organizacyjnych
W funkcjonalności synchronizacji użytkowników z usługami LDAP wprowadzono obsługę sytuacji, kiedy jeden użytkownik może należeć do wielu jednostek organizacyjnych. W związku z tym wprowadzono następujące zmiany:
- Dodano nową tabelę SyncOUInstanceUsers z kolumnami OrgUnitId oraz UserId, która umożliwia powiązanie użytkownika z wieloma jednostkami.
- Z tabeli SyncUserProfiles usunięto kolumnę OrgUnitId. Podczas aktualizacji obecne przypisanie użytkownika do jednostki w tabeli SyncUserProfiles zostanie przeniesione do tabeli SyncOUInstanceUsers.
- Wprowadzono zmiany w tabeli SyncOUInstances na kolumnach:
- OrgUnitId: zmiana rozmiaru kolumny na NVARCHAR(450), dodanie unikalności wartości,
- ParentId: zmiana rozmiaru kolumny na NVARCHAR(450), dodanie unikalności wartości, klucz obcy do OrgUnitId
- Wprowadzono zmiany w tabeli SyncUserProfiles na kolumnach:
- UserId: zmiana rozmiaru kolumny na NVARCHAR(450), dodanie unikalności wartości,
- ParentId: zmiana rozmiaru kolumny na NVARCHAR(450), dodanie unikalności wartości, klucz obcy do UserId,
Zmiany danych w tych tabelach wyzwalają walidację, która nie dopuszcza do błędów i wymusza spójność danych. Podczas instalacji nowej wersji nAxiom zostanie wykonana migracja bazy danych, która wyczyści błędne dane i duplikaty.
Po zainstalowaniu bieżącej wersji wymagana jest weryfikacja danych do synchronizacji. W przypadku, gdy wartość ParentId odnosi się do nieistniejących wartości UserId lub OrgUnitId to zostanie zmieniona na NULL. W przypadku, gdy wartość ParentId jest taka sama jak wartość UserId lub OrgUnitId dla danego rekordu to zostanie zmieniona na NULL. W przypadku duplikatów w UserId lub OrgUnitId wszystkie duplikaty zostaną usunięte, pozostawiony zostanie tylko jeden rekord.
Podgląd załączników
Zmieniono zachowanie sekcji podglądu załączników. Obecnie sekcja domyślnie wyświetla podgląd załącznika z dowolnej sekcji załączników na formularzu. Konsultant ma możliwość wybrania sekcji, z której będą wyświetlane załączniki przez wybór pozycji z listy rozwijanej Kategoria załączników, jak do tej pory.
Zaokrąglenia elementów UI
W związku ze zmianą wersji biblioteki Kendo, w oknie Edycja definicji stylu
(AdminSPA > Interfejs użytkownika
> Kreator stylów systemu
) dodano sekcję Zaokrąglenia elementów
z parametrami umożliwiającymi określenie promienia zaokrąglenia dla prostokątnych kontrolek. Promień zaokrąglenia można ustawić osobno dla:
- przycisków, pól wprowadzania, kontrolek listy i sekcji formularza
- etykiet z akronimem definicji dokumentu
- innych elementów
Wartości promienia należy podać wraz z jednostką. Obsługiwane są standardowe jednostki CSS.
Nie zaleca się stosowania promieni zaokrągleń przycisków większych niż 0,5 rem (lub równoważnych w innych jednostkach) ze względu na nieprawidłowe wyświetlanie innych elementów interfejsu użytkownika, np. list rozwijanych.
Przycisk split-button
Zmieniono sposób grupowania przycisków w nagłówku formularza. Obecnie, jeśli w nagłówku będzie za mało miejsca na wyświetlenie wszystkich przycisków, zostaną ona zgrupowane w listę, pod przyciskiem o najmniejszej wartości właściwości Kolejność
(tzw. split-button). Kliknięcie takiego przycisku spowoduje wykonanie przypisanych mu akcji, kliknięcie strzałki z prawej strony przycisku spowoduje rozwinięcie listy z pozostałymi przyciskami.
Informacje diagnostyczne
Rozszerzono zakres logowanych informacji na poziomie INFO o komunikaty z uruchomienia poszczególnych serwisów nAxiom. Dodano obsługę najczęściej spotykanych błędów podczas połączenia z TenantAPI: błędnego adresu hosta i/lub portu, błędów SSL lub odpowiedzi serwera o statusie innym niż 200. W komunikacie podawany jest krótki opis błędu i informacje o tym, co należy zweryfikować. Obsługa tych błędów może ułatwić diagnostykę, ponieważ eliminuje konieczność przeglądania stosu wywołania błędu.
Lista kategorii załączników
Listę Kategorie załączników rozszerzono o kolumny:
-
Wersje
: pole wyboru wskazujące, czy dla danej kategorii włączono wersjonowanie. -
Repozytorium
: nazwa repozytorium, do którego jest przypisana dana kategoria. -
Dozwolone rozszerzenia
: wykaz dozwolonych rozszerzeń plików załącznika w danej kategorii.
Podgląd PDF
Zaimplementowano nową bibliotekę do wyświetlania podglądu plików w formacie PDF.
Nagłówek AdminSPA
Ujednolicono wygląd list rozwijanych w nagłówku strony AdminSPA (wybór aplikacji i trybu dla zmiennych środowiska).
Zaznaczenie rekordów w sekcji typu lista
Zmieniono zachowanie sekcji typu lista wyświetlanych na kartach w formularzu. Obecnie przełączenie do innej karty nie powoduje zresetowania stanu zaznaczenia rekordów na liście.
Modyfikacja tabel z konfiguracją przycisków
Usunięto kolumnę ButtonColor z tabel BusinessTransitions, GridButtons, GridInlineButtons.
Poprawki i usunięte błędy
Obsługa certyfikatów w instalatorze
W instalatorze, w oknie wyszukiwarki certyfikatów na liście Magazyn
dodano pozycję Usługa hosta sieci Web. Dodatkowo, ograniczono wyświetlanie certyfikatów tylko do tych, które mają klucz prywatny.
Zaleca się wybór certyfikatu wyłącznie z magazynu Osobisty lub Usługa hosta sieci Web.
Struktura organizacyjna
Poprawiono błąd, który w szczególnych przypadkach uniemożliwiał zapisanie zmian w jednostce organizacyjnej, kiedy jednostki były synchronizowane z serwerem LDAP.
Lista hierarchiczna
Poprawiono wyświetlanie listy hierarchicznej w przypadku, gdy włączono przełącznik Zablokuj kolumnę akcji.
Wydruk raportów Telerik
Rozwiązano problemy z wydrukiem raportów Telerik w formacie PDF w środowisku zdokeryzowanym (aktualizacja biblioteki).
Lista szablonów Excel
Poprawiono filtrowanie definicji szablonów Excel według aplikacji wybranej w nagłówku aplikacji AdminSPA. Należy pamiętać, aby po wybraniu aplikacji z listy odświeżyć stronę.
Listy aplikacji i definicji dokumentów
W aplikacji AdminSPA dodano kolumnę z wartościami identyfikatora do list definicji dokumentów i aplikacji.
Generowanie PDF z Word
Poprawiono błąd obsługi szablonu Word w akcji generowania PDF w przypadku, kiedy szablon zawierał wyrażenie warunkowe oparte na liczbie zwracanych rekordów dla tabeli w szablonie.
Kategorie załączników
Poprawiono błąd powodujący zmianę daty CreateDate w tabeli AttachmentCategories po modyfikacji i zapisie definicji kategorii załącznika.
Nawigacja na FrontSPA
Poprawiono nawigację przy użyciu klawiatury z menu skrótów do pierwszego widgetu na pulpicie w aplikacji FrontSPA.
Komentarze SQL
Poprawiono systemowy mechanizm przetwarzający zapytania SQL, aby umożliwić używanie komentarzy w kodzie SQL. Zmiany dotyczą:
- Kontrolki Wynik zapytania SQL,
- Warunku dostępności przycisku na diagramie procesów,
- Definicji wartości domyślnych, minimalnych i maksymalnych pól formularza,
- Zapytanie źródłowego dla formularza,
- Kontrolki Lista wyboru SQL,
- Zapytania definiującego widoczność kolumny listy,
- Zapytania źródłowego dla widoku listy,
- Warunku zależności od sekcji na formularzu,
- Mapowania pól formularza z użyciem zapytanie SQL,
- Zapytania definiującego placeholder kontrolki
Repozytoria załączników
Poprawiono treść komunikatu wyświetlanego podczas usuwania repozytorium załączników. Ponadto, usunięto błąd w wywołaniu tłumaczenia, w przypadku gdy klucz tłumaczenia zawierał znak ‘?’.
Wyszukiwanie pełnotekstowe
Poprawiono widoczność zaznaczenia opcji w polu ustawień wyszukiwania pełnotekstowego w aplikacji FrontSPA.
Formularz otwierany w trybie Okno
Poprawiono wyświetlanie formularza otwieranego w trybie okna oraz działanie pasków przewijania w takim formularzu.
Designer formularzy
Przywrócono wyświetlanie drzewa struktury formularza w sekcji Struktura
na panelu z prawej strony w designerze formularzy.
Przyciski na listach
Usunięto problem dotyczący pól numerycznych w konfiguracji przycisków na liście. Po usunięciu wartości liczbowej w tych polach wyświetlany był placeholder wartości domyślnej, ale w rzeczywistości pole było puste i nie można było zapisać listy.
Podpowiedzi w WorkflowSPA
Uzupełniono brakujące tłumaczenia podpowiedzi dla kontrolek w oknach dialogowych na diagramie procesów (WorkflowSPA).
Pola hybrydowe TXT/SQL
W polach hybrydowych tekst/SQL w definicji akcji otwierania formularza rozszerzono obsługę parametrów systemowych ({@_Nazwa}) oraz wyrażeń smart numbers na tryb tekstowy.
Designer formularzy
Zmieniono sposób zaznaczania sekcji w designerze formularzy. Obecnie wystarczy kliknąć nagłówek sekcji, a nie jak do tej pory nazwę wyświetlaną w nagłówku.
Instalator
Zmieniono zachowanie instalatora tak, aby nie usuwał niestandardowych wpisów w tablicy Secrets w pliku appsettings-protected.json.
Dane dodatkowe użytkowników
Usunięto problem, który uniemożliwiał wejście w edycję profilu użytkownika oraz wyświetlenie karty Dane dodatkowe
w oknie edycji jednostki organizacyjnej w przypadku, gdy tabela danych dodatkowych nie zawierała żadnych danych dla tego użytkownika/JO. Obecnie w takiej sytuacji zostanie wyświetlone ostrzeżenie o braku danych dodatkowych i informacja, że zostaną one dodane podczas zapisu profilu użytkownika/danych jednostki organizacyjnej.
Pole hasła
W oknie definicji źródła danych w polach Port
i Hasło
dodano obsługę smart numbers.
Dezaktywacja akcji
Zmieniono działanie przełącznika Aktywna
w oknie definicji akcji. Obecnie po wyłączeniu tego przełącznika akcja nie będzie wykonywana. Do tej pory takie akcje były widoczne na listach wyboru akcji, ale nie można było ich wybrać w celu przypisania, np. do przycisku lub przejścia na diagramie procesów. Jednak akcje, które zostały przypisane przed dezaktywacją, w dalszym ciągu były wykonywane.
Typy danych pól formularza
Dodano aktualizację typu danych pól formularza podczas zapisu definicji formularza. Pozwala to uniknąć błędów w przypadku, kiedy typ danych kolumny tabeli powiązanej z polem formularza zostanie zmieniony, a ta zmiana nie zostanie wprowadzona w definicji formularza.
Dodatkowo poprawiono błąd w obsłudze właściwości format, który występował po usunięciu definicji formatu.
Podprocesy asynchroniczne
Poprawiono zamykanie transakcji w przypadku błędów w akcji zmiany statusów. W niektórych przypadkach niezamknięte transakcje powodowały wyczerpanie puli połączeń do bazy danych i uniemożliwiały dalsze działanie witryny.
Informacje o wersji (fix) 1.13.2.3 z dn. 02-04-2024
Nowe i zmodernizowane funkcje
JO w profilu użytkownika
Zmieniono sposób wyświetlania informacji o jednostce organizacyjnej w profilu użytkownika. Obecnie, zamiast nazwy jednostki organizacyjnej użytkownika, wyświetlana jest ścieżka struktury organizacyjnej złożona z kodów jednostek organizacyjnych od jednostki głównej aż do jednostki użytkownika, przez wszystkie jednostki pośrednie.
Poprawki i usunięte błędy
Synchronizacja LDAP
Poprawiono mechanizm synchronizacji użytkowników LDAP z uwzględnieniem struktury organizacyjnej inicjowany przez zapytanie SQL. Obecnie użytkownik synchronizowany tą metodą powinien posiadać rolę systemową i zestaw ról globalnych zdefiniowany w ustawieniach tenanta:
"StructureSynchronizationConfiguration": {
(...)
"SystemRoleCode": "CLIENT",
"DefaultBusinessRoleCodes": [
"BusinessRoleCode1",
"BusinessRoleCode2",
"BusinessRoleCode3"
],
(...)
}
W pozostałym zakresie logika mechanizmu nie uległa zmianie. Role globalne przypisane ręcznie w profilu użytkownika nie są usuwane podczas synchronizacji.
Informacje o wersji (hotfix) 1.13.2.2 z dn. 07-03-2024
Poprawki i usunięte błędy
Parametry {@Nazwa} w tytule maila
W polu Tytuł maila
w oknie definicji akcji wysyłki e-mail dodano obsługę parametrów z kontekstu formularza ({@Nazwa}).
Uprawnienia ACL dla formularza
Poprawiono błędy dotyczące zapisu zmienionych uprawnień ACL dla formularza.
Informacje o wersji (hotfix) 1.13.2.1 z dn. 27-02-2024
Poprawki i usunięte błędy
Nierozpoznany parametr
Poprawiono błąd zwracający komunikat o nierozpoznanym parametrze. Przyczyną błędu było czyszczenie parametrów dodawanych dynamicznie do kontekstu formularza (niepowiązanych z kolumnami w tabeli dokumentu) przez akcję zapisu dokumentu. Błąd występował kiedy podczas wykonywania sekwencji akcji po stronie serwera, kolejne akcje próbowały odwoływać się do tych parametrów. Dotyczyło to sekwencji akcji inicjowanych przez zmianę statusu żądaniem public API, przez akcję zmiany statusu, akcji wywoływanych na przejściu po bloku decyzyjnym lub akcji wykonywanych w pętli na diagramie procesów.
Walidacja typu podczas zapisu
W mechanizmie zapisu dokumentu dodano walidację typu wartości identyfikatora przekazywanej z modelem danych (JSON) do akcji zapisu. Jeśli w tabeli docelowej kolumna identyfikatora będzie typu liczbowego, a przekazywana wartość będzie typu tekstowego, zostanie podjęta próba jej konwersji na typ liczbowy.
Sprawdzanie statusu archiwizacji
Usunięto problem ze sprawdzaniem statusu archiwizacji dokumentów. Problem występował podczas wywołania akcji z rekordu listy i dotyczył listy, której źródłem danych nie była tabela z definicji dokumentu przypisanej do tej listy. Obecnie, jeśli nie można zidentyfikować rekordu do sprawdzenia statusu, sprawdzanie jest pomijane.
Informacje o wersji (patch) 1.13.2.0 z dn. 20-02-2024
Ważne informacje
Akcja zmiany statusu
W celu poprawy wydajności operacji wsadowej zmiany statusu wielu dokumentów zmieniono sposób pobierania danych o dokumentach. W wyniku tej zmiany podczas wykonywania przejść w akcji zmiany statusu nie będą dostępne parametry systemowe dodawane do kontekstu formularza: FormId, BusinessDocId, FormCode, AppId. Dotyczy to akcji wykonywanych na przejściu, warunków wykonania przejścia, warunku wyświetlania przycisku, eskalatorów itp.
Ta zmiana może spowodować konieczność zmodernizowania aplikacji. W przypadku parametrów @FormId i @BusinessDocId można używać ich systemowych odpowiedników: @_FormId i @_BusinessDocDefId.
Uwagi dotyczące trybu wykonania akcji
Zachowanie akcji w przypadku wystąpienia błędu zależy od ustawienia Tryb wykonania akcji
:
-
transakcja (wszystkie rekordy)
: błąd dla indywidualnego dokumentu (akcja przed, zmiana statusu lub akcja po) powoduje wycofanie wszelkich zmian i przerwanie działania. Jest to zachowanie odmienne od wykonywania przejść poza tą akcją, kiedy to błędy akcji po nie powodują wycofania zmiany statusu. -
każdy rekord osobno
: błąd dla indywidualnego dokumentu powoduje przerwanie działania akcji - kolejne rekordy nie zostaną przetworzone; jeśli błąd dla dokumentu wystąpi w akcji po, zmiana statusu tego dokumentu nie zostanie wycofana; w pozostałych przypadkach status dokumentu nie zostanie zmieniony.
Dodatkowo należy pamiętać, że w przypadku akcji uruchamianej w trybie transakcyjnym wpisy uprawnień ACL są aktualizowane zbiorczo po zakończeniu transakcji. W rzadkich przypadkach może to powodować błędy uprawnień w akcjach po (np. w akcji przypisania właściciela zadania). W takiej sytuacji należy zmienić tryb wykonywania akcji na każdy rekord osobno
.
Nowe i zmodernizowane funkcje
Modernizacja matrycy uprawnień formularza
Zmieniono sposób działania i obsługi okna dialogowego Uprawnienia dla formularza w celu poprawienia wydajności zarządzania uprawnieniami dla rozbudowanych formularzy oraz aplikacji ze złożoną strukturą uprawnień.
Nad tabelą z uprawnieniami dodano wiersz przycisków odpowiadających sekcjom formularza (tzw. „filter chips”). Etykietą przycisku jest kod sekcji, kod i nazwa są wyświetlane w podpowiedzi po wskazaniu przycisku myszą. Domyślnie żadna sekcja nie jest zaznaczona i żadne uprawnienia nie są wyświetlane. Aby wyświetlić uprawnienia do poszczególnych kontrolek, należy kliknąć przycisk sekcji.
Dodano także funkcję automatycznego zapisu zmian po kliknięciu przycisku sekcji (domyślnie włączona) oraz ostrzeżenia przy próbie zamknięcia okna dialogowego z niezapisanymi zmianami. Niezapisane zmiany uprawnień są sygnalizowane przez gwiazdkę w etykiecie przycisku sekcji.
Systemowe repozytorium bazodanowe
Dodano definicję systemowego repozytorium załączników typu Baza danych tenanta
. Repozytorium to tabela o domyślnej nazwie NaxiomDefaultRepoForAttachmentFiles w bazie danych tenenta. Tę nazwę można zmienić. Domyślnie tabela jest w schemacie tabel użytkownika, ale można to zmienić za pomocą parametru DefaultRepoForAttachmentFilesSchema w konfiguracji tenanta (JSON) w aplikacji TenantsAdminSPA. Aby parametr był widoczny, po aktualizacji do bieżącej wersji należy zapisać bieżącą konfigurację tenanta i ponownie uruchomić witrynę.
Zmiana schematu i/lub nazwy powoduje utworzenie nowej tabeli. Dane z dotychczasowej tabeli nie zostają przeniesione. Zmiana nie powoduje również usunięcia dotychczasowej tabeli.
Na razie typ repozytorium Baza danych tenanta
jest zarezerwowany tylko dla tego domyślnego repozytorium.
Podczas migracji kategorii załączników przypisane repozytorium systemowe nadpisuje repozytorium kategorii w aplikacji docelowej. Jeśli natomiast importowana kategoria ma przypisane repozytorium niestandardowe, repozytorium kategorii w aplikacji docelowej pozostanie bez zmian.
Zdarzenia dokumentu - załączniki
Rozszerzono zbiór akcji dla zdarzeń dokumentu biznesowego dotyczących załączników (PROCESY BIZNESOWE
> Dokumenty biznesowe
> Edycja
> Zdarzenia
) o akcje rozpoznawania danych OCR, aktualizacji dokumentu przez OCR i dodawania warstwy tekstowej do PDF.
Ponadto dodano parametry kontekstu zdarzenia załącznika, można używać w definicji akcji wyzwalanych zdarzeniem:
- {@_Event.AttachmentId}: identyfikator załącznika
- {@_Event.AttachmentFileExtention}: rozszerzenie nazwy pliku załącznika (bez kropki)
- {@_Event.AttachmentFileSize}: rozmiar pliku załącznika
Jeśli użytkownik doda, zaktualizuje lub usunie więcej niż jeden załącznik w ramach jednej operacji, zdarzenie dotyczące załącznika wystąpi osobno dla każdego załącznika i za każdym razem wyzwoli przypisane akcje. Dla każdego załącznika wartości kontekstu zdarzenia zostaną zaktualizowane.
Zagnieżdżanie zmiennych aplikacji
Funkcjonalność zmiennych aplikacji rozszerzono o możliwość użycia w wartości zmiennej odwołania do:
- parametrów systemowych (np. {@_TenantBaseUrl}),
- parametrów z kontekstu formularza (z wyjątkiem tablic, np. OpenedForms),
- dowolnych elementów dostępnych poprzez składnię smart numbers, w tym do innych zmiennych aplikacji (za pomocą selektora AppInLineVariables).
Wartość zmiennej jest wyliczana rekurencyjnie.
Dodano także mechanizm zabezpieczający przed nieskończoną pętlą zagnieżdżeń oraz walidację poprawności wyrażenia smart numbers odwołującego się do takiej zmiennej. Użycie odwołania do nieistniejącej zmiennej spowoduje wyświetlenie komunikatu o błędzie i podanie nazwy tej zmiennej. W logach aplikacji pojawi się bardziej szczegółowy błąd z pełną ścieżką zamiany wartości.
Migrator aplikacji
W migratorze aplikacji dodano możliwość pominięcia porównania konfiguracji podczas importowania aplikacji.
Obsługa smart numbers
Dodano obsługę składni smart numbers w polach minimalnej i maksymalnej wielkości pliku (Monitoring poczty e-mail
> Edycja mail monitora
> Ogólne
). W tych polach za pomocą składni smart numbers można odwoływać się do wartości liczbowych zmiennych aplikacji.
Poprawki i usunięte błędy
Akcja C# i przyciski listy
Usunięto błąd, który uniemożliwiał użycie akcji C# w konfiguracji przycisku na liście (w nagłówku i w rekordzie).
W akcji przypisanej do przycisku w kolumnie akcji odwołanie do identyfikatora bieżącego rekordu wymaga użycia składni {RecordId}.
Znaki Unicode w haśle
Usunięto problem z logowaniem użytkowników LDAP do nAxiom w środowisku skonteneryzowanym (Linux) w przypadku, gdy hasło użytkownika zawierało znaki UTF-8.
Błąd zapisu dokumentu
Usunięto problem z zapisem dokumentu w przypadku, gdy w akcjach wykonywanych po na przejściu do statusu tego dokumentu była użyta systemowa akcja zapisu dokumentu.
Błąd na wyjściu z bloku oczekiwania
Usunięto problem, który powodował, że akcje zapisu dodawane automatycznie jako akcje wykonywane przed na przejściu wychodzącym z bloku oczekiwania kończyły się błędem „DocumentIsModifiedByAnotherUser” (wynikającym z braku aktualizacji wartości RowVersion).
Logowanie SSO
Usunięto błąd, który występował po kliknięciu imienia i nazwiska użytkownika w prawym górnym rogu w przypadku kiedy użytkownik był zalogowany do nAxiom przy użyciu SSO.
Informacje o wersji (fix) 1.13.1.1 z dn. 01-02-2024
Poprawki i usunięte błędy
Formularz na tabeli pomocniczej
Rozwiązano problem uniemożliwiający otworzenie formularza powiązanego z dokumentem biznesowym opartym o tabele pomocniczą.
Błąd aktualizacji
Usunięto błąd, który powodował wystąpienie nieobsługiwanego wyjątku podczas aktualizacji witryny nAxiom w przypadku, gdy wpis uprawnień PBA dla użytkownika z rolą systemową Konsultant miał wartość NULL.
Informacje o wersji (patch) 1.13.1.0 z dn. 22-01-2024
Nowe i zmodernizowane funkcje
Blokada edycji kodów pozycji słownikowych
W oknie definicji słownika dodano pole wyboru Zablokuj edycje kodów pozycji słownika. Zaznaczenie tego pola uniemożliwia zmianę kodu pozycji słownika w aplikacji FrontSPA. Blokada nie dotyczy tworzenia kodu podczas dodawania pozycji do słownika.
W ramach zadania wprowadzono także kilka usprawnień dotyczących obsługi słowników w aplikacji FrontSPA.
Rozszerzona obsługa smart numbers
Dodano obsługę wyrażeń smart numbers w wielu polach tekstowych oraz hybrydowych tekst/SQL w aplikacji AdminSPA. Odpowiednie informacje są wyświetlane jako placeholder w tych polach. W polach tekstowych i hybrydowych w trybie tekstowym należy wkleić wyrażenie przygotowane wcześniej w dowolnym edytorze SQL. W polach hybrydowych w trybie SQL można wpisywać wyrażenia smart numbers tak jak w edytorze SQL.
Migracja zmiennych aplikacji
Zmieniono sposób działania migracji dla zmiennych aplikacji. Obecnie wartości puste zmiennych w aplikacji importowanej nie nadpisują wartości zmiennych w aplikacji aktualizowanej.
Poprawki i usunięte błędy
Dodawanie załączników przez PublicAPI
Poprawiono aktualizację danych użytkownika i daty modyfikacji w przypadku nadpisywania załącznika przez PublicAPI.
Błąd zapisu konfiguracji
Poprawiono błąd, który występował podczas eksportu aplikacji (zapis konfiguracji) w przypadku, gdy systemowa akcja zmiany statusu odnosiła się do przejścia usuniętego z diagramu procesu.
Poprawka wizualne w profilu użytkownika
Skrócono placeholder w polu wyboru roli biznesowej w jednostce organizacyjnej w profilu użytkownika.
Informacje o wersji (hotfix) 1.13.0.1 z dn. 15-12-2023
Poprawki i usunięte błędy
Wylogowanie z nAxiom
Wprowadzono zmiany dotyczące obsługi wylogowania się użytkownika:
- Wylogowanie w jednej przeglądarce nie powoduje wylogowania w innej przeglądarce na tym samym komputerze.
- Wylogowanie na jednym komputerze nie powoduje wylogowania na innym komputerze.
Ponadto usunięto problem, który mógł powodować nieoczekiwane wylogowanie użytkownika podczas pracy w nAxiom przed upływem czasu nieaktywności i wyzwoleniem automatycznego wylogowania.
Podgląd plików PDF
Usunięto problem z podglądem załączników PDF, w których lokalizacja odręcznego podpisu była nieprawidłowa.
Linki w raportach Telerik
Usunięto błąd, który powodował, że w raportach Telerik przestały działać linki do innych raportów (INTERACTIVITY
> Action
> Type
> Navigate to report
).
Szablon dokumentacji
Dodano weryfikację rozszerzenia nazwy pliku szablonu dokumentacji (POMOC
> Generator dokumentacji
> Nadpisz szablon
). Wgrywany plik szablonu musi mieć rozszerzenie docx.
Informacje o wersji (wersja) 1.13.0.0 z dn. 12-12-2023
Ważne informacje
Usunięcie akcji odbioru e-mail
W wersji 1.14 planowane jest usunięcie akcji odbioru e-mail. Do odbierania wiadomości e-mail w nAxiom służy funkcjonalność Monitoring poczty e-mail. W szczególnych przypadkach można w tym celu wykorzystać także akcje C#.
Wycofanie organizacji
Zgodnie z wcześniejszymi zapowiedziami wycofano funkcjonalności związane z obsługą organizacji w nAxiom, to jest polecenie menu oraz listę wyboru organizacji na formularzu, a także pole wyboru organizacji w definicji profilu użytkownika i uprawnienie PBA Zarządzanie organizacjami (wycofywane)
. W celu zapewnienia kompatybilności wstecznej pozostawiono tabele core.Organizations i core.UserOrganizations oraz kolumnę Organization w tabelach standardowego i uproszczonego modelu danych, przy czym ta kolumna nie jest już kolumną systemową i może zawierać wartości null.
Zachowano także obsługę list wyboru organizacji w istniejących formularzach, ale na liście wyboru kontrolek w kreatorze formularza ten rodzaj kontrolki jest nieaktywny. W przypadku użycia na formularzu listy wyboru organizacji z atrybutem wymagalności może się zdarzyć, że nowy użytkownik, który nie ma przypisanej organizacji, nie będzie mógł zapisać nowego rekordu. Jeżeli taki scenariusz jest prawdopodobny, należy odpowiednio zmodyfikować formularz.
Zmodyfikowano funkcje tabelaryczne, które generują dane źródłowe do widoków list. Od tej wersji te funkcjedla nowych list będą zwracać kolumnę Organization, ale będzie ona typu int i będzie zawierać identyfikator starej organizacji lub będzie pusta. Dla istniejących list ta kolumna nadal będzie typu nvarchar i będzie zawierała nazwę organizacji. W celu aktualizacji typu danych kolumny należy kliknąć przycisk odśwież flow
lub Aktualizuj widoki
w kreatorze modeli danych lub przycisk Waliduj kolumny listy
we właściwościach listy na karcie Ogólne
(kreator listy).
Odpowiednie zmiany wprowadzono także w interfejsie Public API:
- User/Get: zwracany obiekt nie zawiera pola organizations — może być konieczna zmiana obsługi odpowiedzi, o ile uwzględniała wartość tego pola.
- USer/Save, User.AddNewUSer: nie trzeba wypełniać obiektu organizations
- StructureSynchronization/SynchronizeStructure: usunięto pola defaultOrganizationSymbols i overrideUserOrganizationByDefaultValue z obiektu przesyłanego do endpointa (te pola są już także nieużywane w sekcjach OpenLdapConf i StructureSynchronizationConfirmation w pliku appsettings.json — w aplikacji TenantAdminSPA).
Nowe i zmodernizowane funkcje
Uprawnienia PBA do menu systemowych
Zmieniono sposób określania dostępu do predefiniowanych pozycji menu poprzez dodanie odpowiednich uprawnień PBA. Zmieniono także sposób wyświetlania tych pozycji w aplikacji FrontSPA. Obecnie są one wyświetlane w sekcji Ustawienia systemowe
u dołu menu. Ta nowa sekcja nie jest objęta migracją. Jest ona wyświetlana indywidualnie na podstawie uprawnień PBA zalogowanego użytkownika.
Nowe uprawnienia PBA w sekcji Użytkowanie aplikacji
:
- Sekcja
Zarządzanie pozycjami słowników
:-
Tworzenie pozycji
: pozwala dodawać nowe pozycje do słowników, -
Podgląd listy słowników i ich pozycji
: pozwala przeglądać listę słowników i listę pozycji każdego słownika, -
Aktualizacja pozycji
: pozwala na edycję i sterowanie ochroną pozycji słownika, -
Usuwanie pozycji
: pozwala usuwać pozycje słownika.
-
- Pozycja
Akcje zdarzeń systemowych
: pozwala na sterowanie akcjami zdarzeń systemowych. - Pozycja
Import z MS Excel - mapowanie kolumn
: pozwala na wprowadzanie konfiguracji dla importu z MS Excel. - Sekcja
OCR
(wymagana licencja OCR):-
Szablony
: pozwala na zarządzanie szablonami OCR, -
Niezidentyfikowane dokumenty
: pozwala na przeglądanie dokumentów niezidentyfikowanych przez OCR.
-
W ramach bilansu otwarcia przyznano nowe uprawniania PBA rolom biznesowym, które wcześniej miały dostęp do systemowych pozycji menu.
Usunięto możliwość utworzenia pozycji menu dla struktury organizacyjnej w aplikacji AdminSPA.
Odświeżanie formularza po zapisie dokumentu
W akcji systemowej Zapisz rekord dodano przełącznik Odśwież nagłówek podczas tworzenia nowego rekordu
, który pozwala włączyć odświeżanie nagłówka formularza (sekcja toolbar) po zapisie nowego dokumentu, kiedy odświeżanie formularza jest wyłączone.
Do opisu akcji w Leksykonie nAxiom dodano cztery diagramy sekwencji ilustrujące operacje wykonywane po zapisie/aktualizacji dokumentu, zależnie od stanu przełączników w definicji akcji.
Konfigurowanie wyglądu przycisków
Zmodyfikowano i ujednolicono sposób konfiguracji wyglądu przycisków w AdminSPA (formularze, listy WorkflowSPA). W ramach zadania wprowadzono następujące zmiany:
- Dodano ustawienie
Kolor tekstu i ikony dla krycia tła przycisku 0% lub braku tła
, które określa kolor tekstu i ikony po najechaniu kursorem myszy na przycisk z przezroczystym tłem. Domyślnie jest to kolor akcji z aktywnego stylu w kreatorze stylów. - W przybornikach do wyboru koloru dodano ikonę braku koloru, suwak krycia oraz trzy kolumny kolorów predefiniowanych: z kreatora stylów (kolor główny, kolory zależne A, B i C, kolor akcji i jego kolor zależny A), standardowych odcieni szarości i kolorów używanych w bibliotece Bootstrap (btn-success, btn-danger, btn-warning, btn-info, btn-light, btn-dark). Te kolumny znajdują się z lewej strony palety predefiniowanych kolorów.
Ta zmiana spowoduje nieznaczne zwiększenie szerokości przycisków edycji inline w trybie
Tylko ikona
i może wymagać zwiększenia szerokości kolumny akcji w definicjach list, aby te przyciski nie wyświetlały się jeden nad drugim. Tę czynność można wykonać za pomocą zapytania SQL:UPDATE [core].[GridColumns] SET Width = Width + 5 WHERE [ColumnType] = 2 -- kolumna akcji AND [GridDataId] IN (1) -- id widoku listy
Asynchroniczny import aplikacji
Zmieniono sposób wykonywania operacji importu aplikacji z pliku nax na asynchroniczny. Po zainicjowaniu importu można przejść do innych czynności w witrynie lub wylogować się.
- W trakcie operacji importu zainicjowanej z poziomu AdminSPA nie można obecnie uruchomić kolejnego importu ani wyeksportować konfiguracji.
- Aby odświeżyć status importu, należy kliknąć przycisk odświeżania listy widoczny na ekranie migratora.
- W przypadku importowania aplikacji poprzez Public API, można zlecić kilka operacji importu, które zostaną dodane do kolejki.
Migracja aplikacji nAxiom wymaga, aby witryna źródłowa i docelowa były w tej samej wersji. W przeciwnym razie możliwe jest wystąpienie nieoczekiwanych błędów.
Obsługa chart.js w bloku HTML i kolumnie HTML
W konfiguracji kontrolki blok HTML oraz kolumny HTM w widoku listy dodano możliwość wykorzystania biblioteki chart.js, podobnie jak w sekcji HTML. W przypadku kolumny HTML należy wziąć pod uwagę następujące zalecenia:
- Należy zdefiniować unikalny identyfikator elementu canvas. O ile w danym rekordzie ma być tylko jeden wykres, można do tego wykorzystać identyfikator rekordu, na przykład:
var chartId = 'MyChart_' + RowDataContext.Id;
- Należy stosować automatyczną wysokość wykresu i definiować jedynie szerokość zgodną z szerokością kolumny. Pozwoli to na indywidualne dostosowanie wysokości wykresu w każdym rekordzie.
- Kod HTML w kolumnie HTML musi zawierać co najmniej jeden element z atrybutem rowHtmlElement o dowolnej wartości, która jednak nie może zawierać cyfr. W przeciwnym razie kod Javascript nie zostanie wykonany.
Przykład wykresu liniowego w kolumnie HTML:
<div rowHtmlElement="thisChart" style="width: 300px;">
<canvas id="ChartForm_{@Id}"></canvas>
</div>
var chartId = 'ChartForm_' + RowDataContext.Id;
var ctx = document.getElementById(chartId).getContext('2d');
var data = {
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
datasets: [
{
label: 'Sales by quater',
data: [
RowDataContext.Column1_SQLName,
RowDataContext.Column2_SQLName,
RowDataContext.Column3_SQLName,
RowDataContext.Column4_SQLName
]
}
]
};
var config = {
type: 'bar',
data: data,
options: {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Annual Report'
}
}
},
};
new Chart(ctx, config);
- Aby prawidłowo wyrenderować kilka wykresów na jednej stronie nAxiom, na jednym formularzu lub w jednej kontrolce, każdy element canvas musi mieć niepowtarzalną wartość atrybutu id.
- W przykładach zamieszczonych w dokumentacji do wersji 1.12 w skrypcie JS używano klauzuli
if (typeof data/config === 'undefined')
. Ta klauzula nie jest niezbędna, a w przypadku kilku wykresów na stronie może powodować, że te wykresy będą takie same.
Zmiany w akcji importu dokumentów
Wprowadzono zmiany w akcji importu dokumentów pod kątem zwiększenia jej wydajności. Między innymi w definicji akcji dodano możliwość mapowania zwracanych danych na kolumnę systemową Code. Aby zwiększyć wydajność akcji zaleca się stosowanie do następujących zaleceń:
-
Należy tak przygotować dane źródłowe, aby zawierały numer dokumentu, i zmapować je na kolumnę Code; funkcja autonumeracji znacząco obniża wydajność operacji wsadowego importu dokumentów.
Numer dokumentu musi być niepowtarzalny w całej tabeli danej definicji dokumentu.
- Mapując wartości importowanych danych na kolumny tabeli dokumentu nie należy korzystać z trybu SQL, który generuje dodatkowe podzapytania obniżające wydajność; parametry zapytania SQL zwracającego dane źródłowe ({@Import_nazwa}) są dostępne również w trybie TXT. Na przykład zamiast
<SQL> SELECT 'Code: ' + {@Import_Code}
, należy użyć metody<TXT> Code: {@Import_Code}
. - W przypadku, kiedy wymagane są bardziej zaawansowane operacje na importowanych danych, zaleca się wykonanie tych operacji na etapie przygotowania danych do importu.
Opis załącznika
W sekcji załączników dodano możliwość podania opisu załącznika (maks. 300 znaków). Treść opisu jest dodawana do indeksu wyszukiwania pełnotekstowego.
Zmiana akcji Odświeżanie listy
Zmieniono nazwę i zakres działania akcji Odświeżanie list. Obecnie akcja nosi nazwę Odświeżanie sekcji formularza i pozwala odświeżyć dowolną sekcję formularza. W przypadku sekcji Pola formularza odświeżana jest tylko kontrolka Blok HTML.
Kontrola liczby wątków roboczych
W plikach ustawień appsettings.json poszczególnych serwisów dodano ustawienie NumberOfBackgroundEventsConsumers (AppConfiguration > Modules). Umożliwia ono zdefiniowanie liczby wątków procesów roboczych (worker thread) przetwarzających zadania asynchroniczne. Wartość domyślna to 4.
Ten parametr może pomóc w zapewnieniu płynnego działania aplikacji, optymalnego wykorzystania zasobów oraz minimalizacji ryzyka konfliktów w ubieganiu się o zasoby podczas wykonywania złożonych zadań w tle.
Liczba wątków procesów roboczych nie powinna przekraczać liczby rdzeni procesora na hoście witryny nAxiom. Niestosowanie się do tego zalecenia może powodować nadmierne obciążenie procesora i zakłócać prawidłowe działanie witryny.
Zwijanie sekcji menu
Dodano możliwość zwijania sekcji menu, analogicznie jak dla pozycji nadrzędnych menu. Dla sekcji zwijanie można włączyć lub wyłączyć oraz określić, czy sekcja ma być domyślnie rozwinięta.
Szerokość automatyczna kolumn specjalnych
Dodano możliwość włączenia szerokości automatycznej i ustawienia szerokości minimalnej dla kolumn specjalnych widoku listy takich jak: kolumna HTML, kolumna terminu realizacji i kolumna właściciela zadania. Obecnie możliwe jest także ustawienie szerokości, przy której kolumna np. HTML będzie niewidoczna.
Zmiana tabeli core.PermissionDelegations
Usunięto nieużywaną kolumnę AcceptanceLimit z tabeli core.PermissionDelegations. Usunięto również odpowiadające jej pole z obiektów używanych w żądaniach Public API Get, Save i GetAllVisibleForMe dla kontrolera PermissionDelegation.
Aktywna karta na formularzu
Zmodyfikowano zachowanie formularza z wieloma sekcjami wyświetlanymi na osobnych kartach. Obecnie odświeżenie formularza nie powoduje przełączenia aktywnej karty.
Optymalizacja formularzy we FrontSPA
Zoptymalizowano aplikację FrontSPA pod kątem wyświetlania formularzy. ZMiany dotyczą wszystkich dostępnych trybów i mają na celu ograniczenie niewykorzystanego miejsca.
Niestandardowe formaty w eksporcie listy
W kreatorze listy na karcie Eksportowanie danych
(właściwości kolumny) dodano informację o konieczności stosowania angielskich skrótów w definicjach formatu niestandardowego dla daty i czasu, na przykład dd.mm.yyyy hh:mm zamiast dd.mm.rrrr gg:mm.
Zmiany kontrolek wartości domyślnej, minimalnej i maksymalnej
W definicji formularza zmieniono pola do obsługi wartości minimalnej i maksymalnej na odpowiadające typowi danych pola formularza. Zmiany dotyczą następujących kontrolek formularza: pole tekstowe, pole numeryczne, pole czasu, datepicker oraz datepicker i pole czasu. Ponadto dodano walidację ustawianej wartości zgodnie z konfiguracją kolumny w tabeli dokumentu odpowiadającej danemu polu formularza.
Nagłówki widgetów i sekcji formularza
Ujednolicono sposób prezentacji nagłówka widgetu i nagłówka sekcji formularza
Przykłady akcji C#
Opracowano przykłady akcji C# wykonujących żądania do PublicAPI (dodanie załącznika do dokumentu, pobranie załącznika, usunięcie załącznika). Przykłady opublikowano w opisie akcji C# w Leksykonie nAxiom.
Konfiguracja logowania zewnętrznego
Używane w konfiguracji logowania zewnętrznego parametry AuthenticateUserByUserEmail i AuthenticateUserByUserName zastąpiono parametrem AuthenticateUser, który może przyjmować następujące wartości:
- ByUserName: identyfikowanie użytkownika na podstawie nazwy (wartość domyślna w przypadku, gdy parametr nie jest ustawiony),
- ByUserEmail: identyfikowanie użytkownika na podstawie adresu e-mail,
- ByUserId: identyfikowanie użytkownika na podstawie identyfikatora UUID pobieranego w postaci tekstowej,
- ByUserIdBase64: identyfikowanie użytkownika na podstawie identyfikatora UUID pobieranego w postaci binarnej w formacie Base64.
Istniejące konfiguracje zostaną odpowiednio zmienione z zachowaniem wskazanej metody identyfikacji.
Dokumentacja API serwisów nAxiom
Ujednolicono sposób publikowania dokumentacji API serwisów back-endowych nAxiom. Dokumentacja jest dostępna pod adresem https://nazwa_domenowa_adres_ip_hosta:port/nazwa_serwisu/. Na przykład https://localhost:1519/auth/. Wyjątkiem jest serwis api, dla którego zamiast nazwy serwisu należy wpisać back.
Aby udostępnić dokumentację API danego serwisu, należy w pliku appsettings.json tego serwisu ustawić wartość true dla klucza Enabled w sekcji SwaggerConf.
Pliki doc (Word 97-2003)
Dodano obsługę plików w formacie doc (Word 97-2003) jako załączników.
Plików w tym formacie nie można używać jako szablonów MS Word, nie jest on także obsługiwany przez wtyczkę nAxiom do programu MS Word.
Podgląd załączników
Rozszerzono możliwość podglądu załączników. Obecnie można wyświetlić podgląd następujących typów plików: PNG, JPG, PDF, TXT, JPE, JPEG, APNG, GIF, SVG, WEBP, BMP, JSON, XML.
Zastępstwa
W interfejsie zastępstw dodano możliwość wprowadzenia oraz zmiany statusu aktywności zastępstwa z datą rozpoczęcia wcześniejszą niż bieżąca, W obu przypadkach data zakończenia musi być późniejsza niż data bieżąca lub jej równa.
Poprawki i usunięte błędy
AdminSPA - poprawki UX
Wprowadzono szereg poprawek w aplikacji AdminSPA w celu zwiększenia komfortu i ergonomii pracy konsultanta. Zmiany testowano w rozdzielczości FullHD 1080p i przy współczynniku powiększenia ekranu/okna przeglądarki 100% oraz (częściowo) w rozdzielczości 2K 1440p.
Główne obszary zmian to:
- rozmieszczenia elementów interfejsu pod kątem lepszego wykorzystania przestrzeni ekranu,
- wyświetlanie pasków przewijania, w szczególności eliminacja nadmiarowych pasków oraz dodanie brakujących pasków, a także zmiana zachowania zawartości podczas przewijania, w tym ustalenie położenia niektórych sekcji, na przykład z przyciskiem zapisu; te zmiany wprowadzono także w aplikacji WorkflowSPA
- układ okien definiowania elementów aplikacji (np. akcji); obecnie etykiety zajmują dwie kolumny, a pola wprowadzania 10 kolumn,
- zmiana etykiety przycisków
Podgląd kodu/zapytania SQL
naMaksymalizuj edytor
przy edytorach kodu (SQL, Javascript, JSON i inne); dodanie tego przycisku w każdym miejscu występowania edytora, - dodanie ikon wyświetlających edytor SQL w polach wprowadzania typu TXT/SQL,
- domyślne grupowanie na niektórych listach obiektów aplikacji (np. typy dokumentów); zmiana domyślnej paginacji na tych listach — obecnie wyświetlają one po 50 pozycji.
Ponadto uzupełniono wykryte braki w tłumaczeniach oraz wprowadzono zmiany obniżające wykorzystanie procesora i pamięci podczas edycji widoku listy z większą liczbą kolumn.
Wyświetlanie listy w widoku mobilnym
Zmodyfikowano sposób wyświetlania przycisków filtrów listy w widoku mobilnym. Obecnie przyciski filtrów są wyświetlane tylko dla kolumn, dla których włączono filtrowanie. Jeśli szerokość filtrów przekroczy szerokość kontenera listy, zostanie wyświetlony poziomy pasek przewijania.
Lista wyboru interesariuszy
Usunięto błąd, który uniemożliwiał usunięcie wszystkich interesariuszy z listy wyboru interesariuszy.
Blok synchronizatora
Usunięto błąd, który powodował, że blok synchronizatora nie działał prawidłowo, gdy model dokumentu podprocesu w formacie JSON przekraczał 2033 znaki. Ten błąd uniemożliwiał przejście procesu głównego do następnego statusu po zmianie statusu dokumentów w podprocesie asynchronicznym.
Wyświetlanie sekcji typu lista
Poprawiono wyliczanie szerokości automatycznej dla kolumn listy osadzonej w sekcji na formularzu w przypadku występowania kilku takich sekcji.
Eksport listy hierarchicznej
Poprawiono problem, który powodował, że plik MS Excel tworzony w wyniku eksportu listy hierarchicznej zawierał zduplikowane rekordy.
Obsługa błędów w podprocesie
Poprawiono obsługę błędów występujących podczas zapisu dokumentu w podprocesie. Kiedy błędy dotyczyły więcej niż jednej kolumny, komunikat nie był zwracany poprawnie.
Pomoc dla bloków workflow
Naprawiono wyświetlanie pomocy kontekstwej dla bloków na diagramie procesów.
Akcje zdarzeń kalendarza
Przywrócono możliwość konfigurowania akcji aktualizacji i usunięcia dla zdarzenia kalendarza we właściwościach sekcji typu kalendarz.
Filtrowanie kolumny HTML
Naprawiono problem, który uniemożliwiał filtrowanie kolumny HTML w przypadku, kiedy dla listy była włączona funkcja server-side, a kolumna wiodąca nie występowała na liście.
Przełączanie między oknami czatu
Naprawiono problem z zamykaniem i ponownym otwieraniem okien czatu w przypadku, gdy było otwartych kilka takich okien.
Synchronizacja jednostek organizacyjnych
Naprawiono błąd synchronizacji jednostek organizacyjnych za pomocą mechanizmu synchronizacji z użyciem tabeli SyncOUInstances. Wystąpieniu błędu towarzyszył komunikat:
The MERGE statement conflicted with the
FOREIGN KEY SAME TABLE constraint
"FK_OUInstances_OUInstances_ParentId".
Widok panel boczny
Poprawiono obsługę zamykania formularza w widoku panelu bocznego akcją Zamknij formularz. Obecnie użycie przycisku z tą akcją zamyka panel boczny w widoku listy bez cofania do poprzedniej strony.
Uprawnienia dla listy wielowyboru
Usunięto błąd, który występował, gdy dla listy wielowyboru z włączonym zapisem do tabeli relacyjnej lub dla sekcji formularza z taką listą wyłączono uprawnienie do odczytu i/lub edycji.
Przenoszenie przycisków na formularzu
Poprawiono mechanizm przenoszenia przycisków między sekcjami formularza. Obecnie styl przenoszonych przycisków jest zachowywany.
Rola systemowa administrator
Poprawiono mechanizm przekształcający rolę systemową administrator w rolę biznesową stosowany od wersji nAxiom 1.12, uwzględniając obsługę przypadków niestandardowych.
Wyświetlanie listy z grupowaniem
Poprawiono wyświetlanie listy z włączonym grupowaniem, eliminując efekt zmiany szerokości kolumn.
Ustawianie kolejności akcji
Poprawiono działanie mechanizmu drag&drop w przypadku zmiany kolejności akcji w oknie wyboru akcji.
Informacje o wersji (patch) 1.12.1.0 z dn. 14-11-2023
Nowe i zmodernizowane funkcje
Funkcja tabelaryczna GetAllSubstitutions
Udostępniono funkcję tabelaryczną core.GetAllSubstitutions, która zwraca wszystkie zastępstwa w systemie. Parametrem funkcji jest identyfikator języka. Przykład wywołania:
SELECT * FROM [core].[GetAllSubstitutions]({@_LangId})
Funkcja zwraca tabelę z następującymi kolumnami:
- SubstitutionId: identyfikator zastępstwa z tabeli core.PermissionDelegations,
- AbsentUserId: identyfikator zastępowanego z tabeli core.UserProfiles,
- AbsentUserFirstName: imię zastępowanego z tabeli core.UserProfiles,
- AbsentUserLastName: nazwisko zastępowanego z tabeli core.UserProfiles,
- AbsentUserEmail: adres e-mail zastępowanego z tabeli core.UserProfiles,
- SubstituteUserId: identyfikator zastępującego z tabeli core.UserProfiles,
- SubstituteUserFirstName: imię zastępującego z tabeli core.UserProfiles,
- SubstituteUserLastName: nazwisko zastępującego z tabeli core.UserProfiles,
- SubstituteUserEmail: adres e-mail zastępującego z tabeli core.UserProfiles,
- BeginDateTime: data i godzina rozpoczęcia zastępstwa,
- EndDateTime: data i godzina końca zastępstwa,
- ActivityStatus: flaga aktywności zastępstwa,
- TaskOwnershipAccess: flaga przekazania uprawnień TaskOwner,
- BusinessRoleId: identyfikator roli z tabeli core.Roles,
- BusinessRoleName: nazwa roli z tabeli *core.Roles,
- OrgUnitId: identyfikator jednostki organizacyjnej z tabeli core.OUInstances,
- OrgUnitName: nazwa jednostki organizacyjnej z tabeli core.OUInstances.
Jeden rekord tabeli wynikowej odpowiada zastępstwu w obrębie jednej roli (roli w jednostce organizacyjnej) zastępowanego użytkownika. Grupując wynik zapytania po identyfikatorze zastępstwa, można otrzymać komplet danych dotyczących tego zastępstwa.
Akcje zarządzania zastępstwami
Dodano trzy akcje do zarządzania zastępstwami:
-
Dodaj zastępstwo
: wymaga skonstruowania dwóch zapytań SQL:- zwracającego wszystkie parametry zastępstwa, tj.: id zastępowanego, id zastępującego, data rozpoczęcia (od godziny 00:00:00 tego dnia), data zakończenia (do godziny 23:59:59 tego dnia), statusu aktywności zastępstwa, flagi przekazania uprawnień do dokumentów, dla których zastępowany został przypisany jako TaskOwner;
- zwracającego zestaw ról i/lub par rola/jednostka organizacyjna, które mają być objęte zastępstwem.
-
Edytuj zastępstwo
: wymaga podania wszystkich parametrów, tak jak w akcji dodawania zastępstwa, a dodatkowo identyfikatora zastępstwa, którego dotyczy zmiana. -
Usuń zastępstwo
: jako argument akcji należy podać identyfikator zastępstwa (wartość kolumny Id z tabeli core.PermissionDelegations. Jedną akcją można usunąć wiele zastępstw. Wszystkich akcji można używać na przyciskach formularzy i widoków listy oraz na przejściach procesu.
Poprawki i usunięte błędy
Czat: licznik nieprzeczytanych wiadomości
Poprawiono błąd, który powodował, że licznik nieprzeczytanych wiadomości czatu nie zerował się od razu po przeczytaniu wiadomości. Jednocześnie zmieniono działanie tego licznika. Obecnie pokazuje on liczbę kontaktów, od których są nieprzeczytane wiadomości. Kliknięcie ikony czatu powoduje wyświetlenie listy kontaktów z nieprzeczytanymi wiadomościami, a kliknięcie kontaktu powoduje wyświetlenie wiadomości i wyzerowanie licznika dla danego kontaktu.
Czat: odświeżanie okna
Usunięto błąd, które powodował nieprawidłowe odświeżanie okien czatu w przypadku konwersacji z kilkoma użytkownikami.
Zachowanie stanu formularza
Poprawiono zachowanie informacji o stanie formularza otwartego jako link wewnętrzny w przypadku zapisu z włączoną opcją odświeżenia formularza po zapisie.
Eksport aplikacji dla MS SQL Server 2016
Poprawiono błąd, który uniemożliwiał eksport aplikacji w przypadku baz danych na serwerze MS SQL Server 2016.
Informacje o wersji (fix) 1.12.0.4 z dn. 06-11-2023
Poprawki i usunięte błędy
Synchronizacja z LDAP
Usunięto błędy synchronizacji użytkowników LDAP występujące w przypadku nowych użytkowników, którzy byli wskazani jako swoi przełożeni, oraz nowych użytkowników, których przełożeni już istnieli w systemie. W pierwszym przypadku błąd powodował, że taki użytkownik nie był dodawany, a w drugim system próbował dodać nowego użytkownika dwa razy, co skutkowało niepowodzeniem synchronizacji.
Informacje o wersji (fix) 1.12.0.3 z dn. 31-10-2023
Nowe i zmodernizowane funkcje
Etykiety pozycji menu
W zapytaniu SQL definiującym treść etykiety sekcji i pozycji menu dodano obsługę zmiennych systemowych (@_UserId, @_LangId, @_TenantId i @_TenantBaseUrl), zmiennych aplikacji oraz składni smart numbers.
Informacje o wersji (hotfix) 1.12.0.1 z dn. 13-10-2023
Nowe i zmodernizowane funkcje
Typ zawartości dla żądania API REST
W definicji akcji zapytania do webserwisu dodano pole Typ zawartości (MIME Type)
. Dotyczy to akcji odpytujących źródła typu REST. Dotychczas to pole było dostępne tylko dla akcji odpytujących źródła SOAP.
Poprawki i usunięte błędy
Zmiany kolorystyki
W celu poprawienia dostępności elementów interfejsu użytkownika zmieniono kolorystykę aktywnej karty formularza i paginatora na bardziej kontrastowe. Obecnie w paginatorze aktywna strona jest sygnalizowana pogrubieniem numeru strony.
Nagłówek żądania API
Usunięto problem, który powodował, że próba użycia w akcji zapytań do webserwisów nagłówka o nazwie Authorization i wartości zwracanej przez zapytanie SQL kończyła się komunikatem o błędzie nieprawidłowej składni.
Wartości undefined w kontekście formularza
Poprawiono zachowanie kontrolek typu lista wyboru. Obecnie po usunięciu wartości z takiej kontrolki w kontekście formularza jest wyświetlana wartość null. Do te pory była wyświetlana wartość undefined.
Wygląd przycisku
Poprawiono odstępy miedzy ikoną i tekstem na przycisku.
Migracja przycisków
Poprawiono błędne działanie migracji przycisków. Błędy powodowały, że wyeksportowana konfiguracja przycisku zawierała akcje usunięte w konfiguracji źródłowej oraz że numery kolejne akcji w konfiguracji były duplikowane.
Rozmiar czcionki we FrontSPA
Poprawiono błąd, w wyniku którego odświeżenie strony w aplikacji FrontSPA powodowało zresetowanie ustawionego rozmiaru czcionki do domyślnego.
Nadpisywanie stylu listy
Poprawiono błąd, który powodował, że otwarcie formularza z poziomu listy nadpisywało styl tej listy.
Informacje o wersji 1.12.0.0 z dn. 09-10-2023
Ważne informacje
Zapowiedź: Wycofanie obsługi organizacji
W wersji 1.13 planowane jest ostateczne wycofanie obsługi organizacji z platformy nAxiom. Ten krok był zapowiadany od dłuższego czasu. Nie będzie dostępny interfejs do tworzenia nowych organizacji, nie będzie można przypisywać organizacji użytkownikowi, zostanie wycofana obsługa kontrolki organizacje, a domyślnie generowany formularz nie będzie miał kontrolki do obsługi tego pola. Zostanie także usunięte sprawdzanie czy użytkownik ma przypisaną organizację, np. podczas tworzenia struktury organizacyjnej.
W celu zapewnienia kompatybilności wstecznej w istniejących bazach danych pozostawione zostaną tabela core.Organizations i kolumna Organization w tabelach modeli danych oraz lista wyboru organizacji na istniejących formularzach.
Wobec planowanego wycofania obsługi organizacji zaleca się przegląd aplikacji biznesowych pod kątem tej zmiany w celu zapewnienia ich prawidłowego działania po aktualizacji do wersji 1.13.
Zmiana roli Administrator na biznesową
Zmieniono typ roli Administrator z systemowej (core.Roles.Type = 0) na biznesową (core.Roles.Type = 1). W nowych instalacjach nAxiom ta rola biznesowa jest tworzona domyślnie z takimi samymi uprawnieniami jak dotychczas.
W istniejących instalacjach profilom użytkowników, które miały przypisaną tę rolę, zostaje przypisana rola systemowa Klient. Rola Administrator pozostaje przypisana jako rola biznesowa.
W związku z powyższą zmianą licencja nAxiom nie ma już pozycji USER_ADMIN. W istniejących instalacjach dotychczasowa liczba licencji na rolę Administrator zostaje dodana do liczby licencji na rolę Klient.
Jeśli w istniejących aplikacjach używano referencji do typu roli Administrator (core.Roles.Type), konieczne jest uwzględnienie zmiany tej wartości z 0 na 1.
Usunięcie kolumn z tabeli core.AclInstanceEntries
Ze względu na nieprawidłowe dane zwracane przez funkcję UserTask_View, z tabeli core.AclInstanceEntries usunięto kolumny TaskOwnerUserId i TaskOwnerName. Dane właściciela zadania są nadal zwracane przez funkcję UserTask_View, ale obecnie są pobierane z tabel dokumentów.
Konieczna jest modyfikacja własnych rozwiązań konsultantów w istniejących aplikacji biznesowych, które pobierają dane z kolumn TaskOwnerUserId i TaskOwnerName w tabeli core.AclInstanceEntries.
Wymagania WCAG 2.1, poziom AA
Wprowadzono szereg zmian w kodzie HTML aplikacji FrontSPA w celu spełnienia wymagań WCAG 2.1 na poziomie AA. Zmiany obejmują między innymi nawigację za pomocą klawiatury oraz obsługę aplikacji przez czytniki ekranu.
W ramach tych zmian dodano także menu skrótów, które pozwala pominąć część elementów strony w nawigacji przy użyciu klawiszy TAB i przejść od razu do żądanej sekcji. Menu jest wyświetlane po pierwszym naciśnięciu klawisza TAB po przeładowaniu strony i zawiera trzy pozycje przełączane klawiszem TAB:
Przejdź do menu głównego
Przejdź do nagłówka strony
Przejdź do treści strony
W celu wybrania polecenia należy nacisnąć klawisz Enter.
Wskazówka: Akcja generowania raportu
Próba wygenerowania raportu przy użyciu akcji przypisanej do przejścia między blokiem startowym i pierwszym blokiem ze statusem nie powiedzie się ze względu na blokadę tabeli zakładaną przez transakcję wstawiającą nowy rekord.
Aby pominąć tę blokadę należy w zapytaniu źródłowym dla raportu dodać instrukcję WITH(NOLOCK). Na przykład:
SELECT * FROM dbo.tableName
WITH(NOLOCK)
Nowe i zmodernizowane funkcje
Nowy tryb otwierania formularza
Opracowano nowy tryb otwierania formularza: Panel boczny. W tym trybie formularz jest otwierany jako panel zadokowany do prawej strony okna przeglądarki. Ten tryb jest przewidziany do wyświetlania formularza po kliknięciu rekordu na liście. Aby umożliwić otwarcie formularza w tym trybie, w definicji listy (karta Ustawienia listy
) dodano przełącznik Wywołaj akcje po interakcji z rekordem listy
. Jego włączenie powoduje wyświetlenie komponentu do wyboru akcji, w którym można zdefiniować odpowiednią akcję otwierania formularza.
Sekwencja akcji zdefiniowanych dla zdarzenia interakcji będzie wywoływana po kliknięciu w dowolnej kolumnie, z wyjątkiem kolumny akcji i kolumny checkbox.
Zarządzanie pulpitami
Zmieniono sposób zarządzania pulpitami (dashboard) w aplikacji FrontSPA. Obecnie z lewej strony nagłówka znajduje się lista rozwijana z definicjami pulpitów. Ta lista zawiera także polecenie Lista pulpitów
oraz, o ile bieżący użytkownik jest właścicielem bieżącego pulpitu, polecenie Edytuj bieżący pulpit
.
Lista pulpitów to lista zdefiniowanych pulpitów, na której użytkownik może zarządzać zdefiniowanymi pulpitami (kopiować, edytować metadane, usuwać, ustawiać jako pulpit domyślny). W trybie edycji pulpitu użytkownik może zarządzać widżetami na pulpicie i zmieniać układ pulpitu.
Ponadto przygotowano aplikację demo z różnymi typami widżetów wykorzystującymi nowe opcje konfiguracji przycisków, formatowanie warunkowe kolumny HTML oraz wykresy z biblioteki Chart.js.
Aplikacja jest dostępna w repozytorium wersji w katalogu aplikacji demo.
Nowe opcje widżetów
Dodano szereg ustawień umożliwiających dostosowanie wyświetlania widżetów, w tym widżetów formularzy z sekcją typu lista. Te ustawienia to:
- Widżety (wszystkie rodzaje, karta
Ogólne
):-
Minimalna wysokość widżetu w unitach
: dostępne wartości 1 unit, 2 unity, bez ograniczeń. 1 unit odpowiada mniej więcej 1/3 wysokości obszaru pulpitu w aplikacji FrontSPA dla rozdzielczości FullHD. -
Pokazuj toolbar widżetu
: pozwala wyłączyć pasek z nazwą widżetu i ikoną do zmiany parametrów (o ile widżet ma zdefiniowane parametry); w przypadku widżetu formularz jest to sekcja toolbar.
-
- Sekcja typu lista (okno
Ustawienia sekcji
):-
Wymuś wyświetlanie listy w trybie mobilnym
: stosuje ustawienia trybu mobilnego do wyświetlania listy. -
Wyświetlaj nazwę kolumn listy w tej sekcji
: pozwala wyłączyć wyświetlanie nazw kolumn w sekcji. Wymuś wyświetlanie przycisków kolumny akcji jeden nad drugim
-
Pokazuj w paginatorach liczbę kart i nawigację między kartami (jeżeli włączono paginację)
: pozwala ograniczyć informacje wyświetlane na pasku paginacji pod listą.
-
Obsługa chart.js w sekcji HTML
W sekcji HTML na formularzu i w widżecie sekcja HTML dodano obsługę biblioteki chart.js. Patrz chartjs.org/docs/latest/. Wykres jest generowany przez kod JavaScript w elemencie canvas. Na wykresie można prezentować dane zwracane przez zapytanie SQL. W tym celu w kodzie JavaScript wykresu należy zadeklarować zmienną dla każdej etykiety i/lub wartości prezentowanej na wykresie. Deklaracja zmiennej musi mieć formę:
var nazwaZmiennej = window["kodFormularza_QueryModel"][nr-rekordu].nazwaKolumny;
gdzie: kodFormularza to kod bieżącego formularza (w przypadku widżetu sekcja HTML należy podać kod pulpitu, na którym widżet ma być używany, w widżecie typu formularz należ podać kod formularza), nr-rekordu to numer rekordu (liczony od 0) zwróconego przez zapytanie, a nazwaKolumny to nazwa kolumny, z której ma zostać podstawiona wartość.
Przykładowa deklaracja prostego wykresu to:
HTML:
<div>
<canvas id="myChart"></canvas>
</div>
SQL:
SELECT 200 AS SalesEurope
,400 AS SalesAsia
JavaScript:
var ctx = document.getElementById('myChart');
var value1 = window["formCode_QueryModel"][0].SalesEurope;
var value2 = window["formCode_QueryModel"][0].SalesAsia;
new Chart(ctx, {
type: 'bar',
data: {
labels: ['Europe', 'Asia'],
datasets: [{
label: 'Regional Sales',
data: [value1, value2],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
Zalecenia:
- W celu poprawnego rozpoznawania serii danych i konfiguracji właściwych dla konkretnego wykresu podczas wyświetlania wielu wykresów jednocześnie zaleca się stosowanie unikalnych nazw dla wykresu, jego serii danych i jego konfiguracji.
- Dla uzyskania oczekiwanych efektów rozmieszczenia wykresu w obrębie pojedynczej sekcji zaleca się stosowanie techniki Flexbox Layout
Znane ograniczenia:
- nAxiom nie wspiera biblioteki Utils stosowanej w przykładach w dokumentacji Chart.js. Potrzebny kod i konfiguracje należy wprowadzać samodzielnie.
- Mogą występować problemy z wczytywaniem danych do wykresów z uwagi na istniejący mechanizm renderowania formularza. Należy odświeżyć stronę, aby spróbować wczytać dane ponownie. Trwają prace nad wyeliminowaniem tego problemu.
- W kolejnych wersjach planowane jest dodanie obsługi biblioteki chart.js na listach w kolumnie HTML oraz w kontrolce bloku HTML.
- Wykresy nie oferują definiowania zbioru akcji, w tym akcji otwórz formularz, ani funkcjonalności drill-down. Dostępne są jedynie zdarzenia opisane w dokumentacji chart.js.
Nowe właściwości przycisków
Dodano nowe właściwości przycisku za pomocą których można określać położenie ikony względem tekstu, rozmiar ikony, rozmiar tekstu, odstęp ikony od tekstu, margines wewnętrzny pionowy i poziomy. Ustawienia rozmiaru ikony i tekstu określa się w procentach względem ustawienia w kreatorze stylów (w którym dodano ustawienie domyślnego rozmiaru ikony). Ustawienia marginesów mają pierwszeństwo przed ustawieniami odstępu od tekstu w pionie i w poziomie definiowanymi w kreatorze stylów.
Wszystkie właściwości dotyczące wyświetlania przycisków są obecnie zapisywane w nowej tabeli bazy danych core.ButtonSettings.
Informacje o zastępstwach
Dodano funkcję tabelaryczną core.SubstitutionsPerformedByUser ({@UserId}, {@LangId}), która zwraca informacje o aktywnych zastępstwach użytkownika o podanym identyfikatorze. Funkcja zwraca jeden rekord na każde zastępstwo, a w nim informacje o zastępowanym, jego rolach i jednostkach organizacyjnych, czas trwania zastępstwa oraz zakres zastępstwa (właściciel zadania, rola i rola w jednostce).
Funkcji można użyć w widżecie typu sekcja HTML lub formularz do prezentowania informacji o zastępstwach bieżącego użytkownika.
Wyłączanie dokumentacji Swagger
W plikach appsettings.json, w gałęzi SwaggerConf dodano właściwość Enabled. Wartość domyślna dla wszystkich serwisów - z wyjątkiem Public API - to false. To ustawienie powoduje wyłączenie wyświetlania dokumentacji API danego serwisu.
Kreator modeli danych
W kreatorze modeli danych dodano obsługę dwukrotnego kliknięcia widoku lub funkcji skalarnej w celu otworzenia okna przypisania do modułu.
Edycja inline, sygnalizacja błędów
We właściwościach kolumn listy na karcie Edycja inline
dodano dwa ustawienia dotyczące wymagalności:
-
Wymagane uzupełnienie komórki
: po włączeniu tej opcji nie będzie można zapisać rekordu bez podania wartości w wymaganym polu. -
Komunikat o błędzie
: pozwala skonfigurować komunikat o błędzie wyświetlany pod polem w razie braku podania wartości.
Brak podania wartości w komórce jest sygnalizowany czerwoną obwódką i wyświetleniem etykietki z komunikatem o błędzie.
Kontrolki formularza, sygnalizacja błędów
Ujednolicono sposób sygnalizacji niewypełnionej lub wypełnionej niezgodnie z właściwościami kontrolki na formularzu. Obecnie w takiej sytuacji kontrolka jest oznaczana czerwoną ramką i wyświetlany jest komunikat o błędzie zdefiniowany przez użytkownika.
W ramach zadania do następujących kontrolek dodano właściwości Wartość minimalna
i Wartość maksymalna
:
- pole tekstowe i obszar tekstowy: minimalna i maksymalna liczba znaków;
- pola numeryczne: minimalna i maksymalna wartość liczbowa;
- pole czasu/daty, datepicker oraz datepicker i pole czasu: najwcześniejsza i najpóźniejsza data/godzina.
Wartości minimalne i maksymalne mogą być określane jako statyczne (stałe) lub zwracane przez SQL.
Ponadto dodano obsługę tłumaczeń dla komunikatów o błędach definiowanych przez konsultanta.
Zakładki sekcji, sygnalizacja błędów
Dodano oznaczenie braku wypełnienia wymaganych pól formularza na zakładkach sekcji, które są niewidoczne.
Etykieta dla sekcji/pozycji menu
W definicji sekcji i pozycji menu użytkownika dodano możliwość wyświetlania etykiety. Etykieta jest wyświetlana na panelu menu w FrontSPA na wysokości danej sekcji/pozycji z prawej strony. W celu zdefiniowania etykiety należy napisać zapytanie, które zwróci trzy parametry: LabelText (nvarchar), LabelTextColor (HEX) i LabelBackgroundColor (HEX). Jeśli zapytanie zwróci więcej niż jeden rekord, etykieta zostanie wyrenderowana na podstawie parametrów z pierwszego rekordu.
Podstawowym przeznaczeniem etykiety jest możliwość definiowania liczników rekordów dla pozycji menu, które wyświetlają widok listy.
Obecnie w zapytaniu SQL nie jest obsługiwana składnia smart numbers.
Zawijanie nazw menu
W ustawieniach sekcji menu użytkownika dodano dwie opcje określające sposób wyświetlania nazw, których długość przekracza szerokość panelu menu we FrontSPA:
Wyświetlaj jeden wiersz i dopisuj wielokropek
Zawijaj na białym znaku
Wybrane ustawienie jest dziedziczone przez wszystkie pozycje danej sekcji menu.
Aktywne sekcje i pozycje nadrzędne menu użytkownika
Rozszerzono funkcjonalność menu użytkownika. Obecnie można przypisywać formularze i/lub listy do sekcji menu oraz do pozycji nadrzędnych. W przypadku pozycji nadrzędnych kliknięcie nazwy pozycji wyświetla przypisany formularz/listę, a kliknięcie znacznika z prawej strony rozwija/zwija pozycje podrzędne menu.
Procedura dodająca e-maile do kolejki
Dodano procedurę składowaną core.PrepareEmailToSend, która dodaje do tabeli core.Emails rekord z parametrami wiadomości do wysłania. Procedury można używać w akcji SQL do systemowej bazy danych.
Parametr SenderEmail musi mieć wartość skonfigurowaną w ustawieniach systemu (
Nazwa użytkownika powiązana z poświadczeniami
lubExchange - Konto użytkownika
).
Przykład wywołania:
EXEC core.PrepareEmailToSend
@SenderEmail = 'default_sender@company.com'
,@ToEmails = 'receipient@company.com'
,@CcEmails = ''
,@BccEmails = ''
,@Title = 'message subject'
,@Body = 'message body'
Adres nadawcy, adres odbiorcy, temat i treść są obowiązkowe. Aby podać więcej adresów e-mail, należy je rozdzielić średnikami (;).
Uprawnienia PBA do zastępstw
Dodano nowe uprawnienia PBA obejmujące możliwość definiowania zastępstw. Dostęp do menu zastępstw jest definiowany jak dotychczas, na podstawie roli biznesowej.
Nowe uprawnienia znajdują się w gałęzi Zarządzanie strukturą…
/Zarządzanie użytkownikami
/Zastępstwa
:
-
Definiowanie zastępstw za dowolnego użytkownika
: dowolny zastępujący, dowolny zastępowany; -
Definiowanie własnych zastępstw
: dowolny zastępujący, zastępowany = bieżący użytkownik; -
Definiowanie zastępstw podległych pracowników
: dowolny zastępujący, zastępowany = bieżący użytkownik, podwładny i podwładny podwładnego.
Public API User/Save i AddNew
Zmodyfikowano działanie endpointu User/Save w Public API. Obecnie, gdy w treści żądania zostanie podany nowy identyfikator użytkownika, żądanie utworzy nowy profil użytkownika o podanym identyfikatorze. Jeśli identyfikator nie zostanie podany lub będzie złożony z samych zer, zostanie utworzony nowy profil użytkownika o losowym identyfikatorze. Jeśli zostanie podany identyfikator istniejącego profilu, żądanie zapisze zmiany w tym profilu.
Ponadto utworzono nowy endpoint User/AddNew, który obsługuje tylko tworzenie nowych profili (nowy identyfikator lub brak identyfikatora). Podanie w żądaniu identyfikatora istniejącego profilu spowoduje zwrócenie błędu.
Dokumentacja konfiguracji logowania zewnętrznego
Opublikowano opis parametrów konfiguracji logowania zewnętrznego do nAxiom wraz z przykładowymi konfiguracjami dla różnych dostawców uwierzytelniania.
Nowa funkcja powiadomień
Funkcjonalność powiadomień w aplikacji FrontSPA rozszerzono o rejestrowanie informacji dotyczących błędów, które wystąpiły podczas pracy użytkownika w bieżącej sesji. Dotychczasowy panel powiadomień podzielono na dwie karty: Powiadomienia
i Alerty
. Kliknięcie ikony szczegółów obok wpisu na karcie alerty wyświetla okno dialogowe ze szczegółami błędu oraz datą i godziną wystąpienia. Jeśli w ustawieniach systemu skonfigurowano dodatkowy adres e-mail (Ustawienia systemu
> Notyfikacje
> Adres email do wysyłki powiadomień o błędach od użytkowników
), w tym oknie dialogowym można także dopisać własne uwagi i razem z komunikatem wysłać jako email do administratora. W e-mailu jest także wysyłany identyfikator żądania HTTP, na podstawie którego można odnaleźć odpowiedni wpis w logach systemu.
Ikona powiadomień w nagłówku pulpitu aplikacji FrontSPA ma osobny licznik powiadomień i osobny licznik alertów.
FrontSPA, komunikaty o błędach
Dodano mechanizm przechwytujący niektóre komunikaty o błędach występujących po stronie serwera. Komunikaty te są zastępowane generycznym komunikatem „Wystąpił błąd. Skontaktuj się z administratorem.” Treść błędu jest logowana jak dotychczas w logach systemowych.
Poprawki i usunięte błędy
Odświeżanie formularza
Zmieniono zachowanie formularza podczas przełączania między trybami desktop i mobile, a także podczas odświeżania formularza za pomocą systemowej ikony odświeżania. Obecnie w takiej sytuacji formularz zapamiętuje aktywną kartę i nie zmienia jej po odświeżeniu. Natomiast odświeżenie okna przeglądarki (F5) powoduje przeładowanie formularza i wyświetlenie jako aktywnej karty pierwszej sekcji.
Akcja otwierania formularza
W akcji otwierania formularza dodano obsługę sytuacji, kiedy w kontekście formularza nie będzie pola wskazanego do przekazania parametru. Zostanie wówczas wyświetlony komunikat z ostrzeżeniem, a formularz zostanie otwarty bez ustawiania parametru.
Błędna interpretacja języka
Usunięto problem, który powodował, że niektóre przeglądarki oferowały opcję tłumaczenia strony witryny nAxiom w języku polskim, interpretując język strony jako angielski.
Brak pozycji na liście Pole formularza
Usunięto problem, który powodował, że lista wyboru we właściwości Pole formularza
dla kontrolki formularza była pusta. Problem występował w przypadku, gdy zapytanie źródłowe dla formularza było szczególnie złożone.
Błędy odświeżania formularza
Usunięto błąd, który powodował, że po zamknięciu formularza wyświetlonego w trybie dialog z wywołaniem akcji Zapisz rekord
, ale bez włączonej opcji Odśwież widok po akcji zapisu
, w nagłówku formularza głównego wyświetlane były błędne przyciski przejścia.
Akcja otwierania formularza
Usunięto błąd, który powodował, że akcja otwierania formularza używana na przejściu za blokiem decyzyjnym nie przekazywała ustawionych parametrów.
Akcja dodawania warstwy tekstowej
Poprawiono działanie akcji tworzenia pliku PDF z warstwą tekstową:
- Poprawiono błąd, który powodował, że warstwa tekstowa pliku PDF nie była indeksowana na potrzeby wyszukiwarki ElasticSearch.
- Usunięto problem, który występował w przypadku użycia tej akcji na dokumentach ze zdefiniowanymi uprawnieniami ACL; w tym celu wyłączono sprawdzanie uprawnień w przypadku operacji wykonywanych w trybie użytkownika systemowego, takich jak:
- zadania cykliczne
- przejścia diagramu procesów wychodzące z bloku oczekiwania
- akcje dla monitora e-mail
- akcja dodawania warstwy tekstowej
Migracja wyzwalaczy
Poprawiono błąd w działaniu migratora, który powodował, że wraz z migrowaną tabelą nie przenosiły się zdefiniowane dla tabeli wyzwalacze.
Migracja ustawień dostępności
Poprawiono błąd migratora, który powodował, że nie były migrowane ustawienia dostępności przycisków w sekcji typu lista.
Lista wyboru interesariuszy
Zmodyfikowano konfigurację listy wyboru interesariuszy. Obecnie po wybraniu roli biznesowej w celu zawężenia listy użytkowników, w konfiguracji listy jest dodawana klauzule WHERE z odwołaniem do roli przy użyciu składni smart numbers.
Uprawnienia formularza, paski przewijania
Poprawiono wyświetlanie pasków przewijania w oknie uprawnień formularza.
Informacje o wersji (fix) 1.11.5.2 z dn. 26-09-2023
Nowe i zmodernizowane funkcje
Public API: nowy rekord z pominięciem akcji na przejściach
Endpoint Document/Save w Public API rozszerzono o flagę skipWorkflowActionsForNewRecord. Ma ona zastosowanie tylko do żądania utworzenia nowego dokumentu (Id=0). Wysłanie żądania z tą flagą o wartości true spowoduje pominięcie wykonywania akcji podczas tworzenia nowego rekordu.
Jeśli flaga będzie miała wartość false lub nie zostanie podana, zostaną wykonane wszystkie akcje z przejścia prowadzącego do wybranego statusu. W takim przypadku oczekuje się, że tylko jeden blok na diagramie procesu będzie miał przypisany status wskazany w treści żądania oraz że do tego bloku będzie prowadziło tylko jedno przejście. Metoda Document/Save nie umożliwia wyboru bloku ani wyboru przejścia, z którego miałby zostać wykonane akcje.
Poprawki i usunięte błędy
Lista wielowyboru: typ danych klucza
Zastosowano obejście, które zapewnia prawidłowe działanie listy wielowyboru w przypadku, kiedy zapytanie źródłowe w konfiguracji listy zwraca wartości klucza (kolumna key), które są liczbami rzutowanymi na typ tekstowy.
W ogólności należy pamiętać, że wartości klucza dla listy wielowyboru mogą być typu liczbowego lub tekstowego (przy czym np. daty są w tym przypadku traktowane jak tekst). Wartości innych typów, np. bit, powinny zostać zrzutowane/przekonwertowane na typ tekstowy w zapytaniu źródłowym listy. Powyższe dotyczy sytuacji, kiedy wartości klucza są zapisywane w polu tabeli z separatorem $,$. W przypadku korzystania z tabeli relacyjnej wartości klucza muszą być typu int.
Podgląd raportu we FrontSPA
Usunięto błąd, który powodował, że w sekcji raportu na formularzu filtr w formie listy wartości nie działał, a pozycje zaznacz wszystko/wyczyść nie były wyświetlane.
Informacje o wersji (fix) 1.11.5.1 z dn. 11-09-2023
Poprawki i usunięte błędy
ACL i akcja zmiany statusu
Wyłączono sprawdzanie uprawnień ACL bieżącego użytkownika dla akcji zmiany statusu.
Zmiana statusu przez PublicAPI
Zmieniono sposób obsługi żądania zmiany statusu wysyłanego przez interfejs PublicAPI. Obecnie jest on taki sam, jak w przypadku kliknięcia przez użytkownika przycisku zmiany statusu w aplikacji FrontSPA: najpierw wykonywane są akcje przed, następnie sprawdzane jest uprawnienie ACL bieżącego użytkownika do aktualizacji dokumentu. Jeśli użytkownik ma to uprawnienie, zmieniany jest status dokumentu i są wykonywane akcje po zmianie statusu.
Synchronizacja LDAP
Usunięto błąd, który powodował przekroczenie limitu pamięci (OutOfMemory) podczas synchronizacji użytkowników w jednostkach organizacyjnych z katalogiem LDAP.
Informacje o wersji (patch) 1.11.5.0 z dn. 04-09-2023
Ważne informacje
Zmiany instalatora
W związku z nową akcją dodawania warstwy tekstowej do załączników zmodyfikowano działanie instalatora. Jeśli wybrano opcję instalacji modułu OCR, instalator tworzy nowy folder o nazwie ocr_others. Lokalizacja tego folderu zależy od przypadku użycia:
- instalacja nowej witryny: folder jest tworzony w folderze wskazanym dla rozpoznanych plików OCR,
- aktualizacja z niższej wersji: folder jest tworzony w domyślnym folderze zasobów dla pierwszego tenanta:
folder_instalacyjny_nAxiom/SystemRepositories/82229a18-dbd5-44b7-8266-c892a369676a/ocr_others
Wszystkie foldery używane przez moduł OCR są współużytkowane przez tenantów.
Aby zmienić lokalizację folderu, należy podać nową ścieżkę w pliku appsettings.json serwisu ocrapi:
"PathToProcessingFiles": "C:\\ocr_others"
Dodatkowo, instalator wpisuje w pliku appsettings.json serwisu taskservice adresy OcrApiServerUrl i ApiServerUrl.
Nowe i zmodernizowane funkcje
Warstwa tekstowa załącznika
Obsługę załączników rozszerzono o możliwość dodawania warstwy tekstowej. Służy do tego nowa akcja dodawania warstwy tekstowej. Akcja obsługuje obrazy i pliki PDF. W wyniku jej działania tworzony jest plik PDF z warstwą tekstową (jako nowy załącznik, jako nowa wersja załącznika lub w miejsce oryginalnego załącznika). Dodatkowo, rozpoznany tekst jest indeksowany przez wyszukiwarkę pełnotekstową.
Akcja dodawania warstwy tekstowej jest wykonywana asynchronicznie. Żądanie przetworzenia załącznika zostaje zapisane w kolejce (tabela core.OCRProcessesQueue), która jest sprawdzana przez taskservice z częstotliwością określoną nowym ustawieniem systemowym (OCR
> Częstotliwość sprawdzania kolejki procesów wykonywanych przez OCR (w sekundach)
). Po wykryciu nowego wpisu taskservice wywołuje serwis ocrapi, który rozpoznaje tekst, dodaje warstwę tekstową do pliku i zapisuje wynikowy plik w formacie PDF. W razie wystąpienia błędu próba przetworzenia wpisu jest ponawiana maksymalnie dwa razy. W tabeli kolejki jest rejestrowany komunikat zwracany przez ocrapi.
Pliki PDF, które już mają warstwę tekstową są pomijane w przetwarzaniu.
W procesie dodawania warstwy tekstowej używany jest folder ocr_others, którego lokalizację określa klucz PathToProcessingFiles w pliku appsettings.json serwisu ocrapi.
Aktywność pozycji słowników
Definicję pozycji słownika (zwykłego) rozszerzono o flagę aktywności pozycji (kolumna IsActive typu bit w tabeli core.DictionaryValues). Dla wszystkich istniejących pozycji ta flaga jest włączona, tak samo dla nowo dodawanych pozycji.
Dodatkowo, w definicji listy wyboru typu słownik (kreator/designer formularza) dodano możliwość wybrania, jakie pozycje mają być wyświetlane na liście: wszystkie, tylko aktywne lub tylko nieaktywne.
Flagę aktywności pozycji słownika można również wykorzystać w przypadku używania słownika do filtrowania wartości w widoku listy. Można filtrować według wszystkich pozycji (domyślnie) lub tylko według pozycji aktywnych.
Migracja słowników
W definicji słowników zwykłych i hierarchicznych dodano pole wyboru, które pozwala wyłączyć eksport pozycji słownika podczas migracji aplikacji. Ma to na celu ochronę pozycji słownika definiowanych w środowisku produkcyjnym. Ochronę przed nadpisywaniem podczas migracji można włączać/wyłączać indywidualnie dla każdej pozycji słownika. Dla nowych i istniejących słowników eksport pozycji jest domyślnie włączony, a ochrona przed nadpisywaniem wyłączona.
Akcje przypisywania do grup interesariuszy
Wyłączono sprawdzanie uprawnień bieżącego użytkownika dla akcji przypisywania użytkowników, ról i ról w jednostkach do grup interesariuszy. Ma to na celu umożliwienie tworzenia zautomatyzowanych procesów, w których akcje zmiany uprawnionych są przypisane do przejścia statusu lub inicjowane w ramach zadań cyklicznych, przez mail monitor, przez Public API itp.
Dla akcji nadawania i odświeżania uprawnień uprawnienia bieżącego użytkownika nie są walidowane.
Poprawki i usunięte błędy
Podgląd PDF
Rozszerzono obsługę wyświetlania podglądu pliku PDF dla którego ustawiono „hasło przyzwoleń” (permission password), a nie ustawiono hasła otwierania.
Kolejność wykonywania akcji
Usunięto problem, który powodował, że akcje przypisane do przejścia (akcje przed i akcje po) były wykonywane w nieprawidłowej kolejności.
Doinstalowanie modułu OCR
Usunięto problem, który powodował, że instalacja kończyła się niepowodzeniem, kiedy podczas aktualizacji włączono opcje instalacji modułu OCR. Niepowodzenie wynikało z braku folderów dla modułu OCR i odpowiednich wpisów w plikach appsettings.json serwisów ocr i ocrapi.
Obecnie w takim przypadku foldery są tworzone w domyślnym folderze zasobów pierwszego tenanta:
folder_instalacyjny_nAxiom/SystemRepositories/82229a18-dbd5-44b7-8266-c892a369676a/
Migrator aplikacji
Usunięto problem, który uniemożliwiał uruchomienie serwisu api po migracji aplikacji. Błąd występował, kiedy baza danych zawierała tabelę core.TABLES_TO_EXPORT_CONFIG o starej strukturze (bez kolumny columns_to_skip).
Link do resetu hasła
Usunięto błąd, który powodował, że w przypadku zapisania profilu użytkownika bez hasła we wdrożeniu nAxiom z obrazów Docker wysyłany link do resetu hasła był nieprawidłowy.
Informacje o wersji (patch) 1.11.4.0 z dn. 25-08-2023
Nowe i zmodernizowane funkcje
Zapis profilu bez hasła
Zmodyfikowano proces tworzenia profilu użytkownika nAxiom w taki sposób, że jeśli w profilu nie zostanie podane hasło, w momencie zapisu profilu do użytkownika zostanie wysłany e-mail z linkiem do resetu hasła. Wymaga to skonfigurowania akcji wysyłki e-mail z linkiem do resetowania hasła i wskazania jej w ustawieniach systemu (Polityka resetowania hasła
/Wskazanie akcji email dla powiadomienia o resecie hasła
).
Po ustawieniu akcji resetowania hasła konieczne jest ponowne uruchomienie witryny.
Nowe zachowanie dotyczy tylko profili z wyłączonym przełącznikiem Użytkownik LDAP
. Jeśli akcja nie zostanie skonfigurowana lub nie zostanie znaleziona, zostanie wyświetlony komunikat o błędzie i zapisanie profilu nie będzie możliwe.
Funkcjonalność nie jest obecnie dostępna we wdrożeniu nAxiom w architekturze kontenerów. Jej rozszerzenie jest planowane na kolejną wersję.
Blokada konta użytkownika
Dodano możliwość zarządzania blokadą konta użytkownika (tabela core.AspNetUsers, kolumna LockoutEnd). W kolumnie akcji na liście użytkowników i w drzewie listy użytkowników dodano ikonę zablokowania/odblokowania konta. Dodano także nowe uprawnienie PBA wymagane do zarządzania blokadą konta użytkownika (Zarządzanie użytkownikami
> Blokada konta
). Domyślnie to uprawnienie mają użytkownicy admin i superuser.
Eksport listy do Excela
Rozszerzono funkcjonalność eksportu danych z widoku listy do pliku MS Excel. We właściwościach listy dodano zakładkę Eksport listy
, na której można zdefiniować nazwę pliku eksportu (m.in. przez zapytanie SQL), a we właściwościach kolumn listy dodano kartę Eksportowanie danych
, na której można skonfigurować typ i format danych na potrzeby identyfikacji w programie Excel.
Akcje przycisków na listach
Rozszerzono listę akcji systemowych, które można przypisywać przyciskom używanym w widoku listy, oprócz akcji otwierania formularza i odświeżania listy, obecnie takim przyciskom można przypisywać akcje:
- odświeżenia formularza,
- odświeżenia wskazanego formularza,
- zamknięcia formularza.
Akcje te są wykonywane w przypadku, kiedy lista zostanie osadzona jako sekcja formularza. W przypadku list otwieranych w widoku listy te akcje nie są wykonywane.
Funkcja ClearCache()
W kodzie akcji C# dodano obsługę predefiniowanej funkcji ClearCache(), która czyści pamięć podręczną witryny nAxiom. (Odpowiednik polecenia ADMINISTRACJA
> Ustawienia systemu
> Cache
> Wyczyść wszystko
).
Funkcja ClearCache() czyści pamięć podręczną witryny dla wszystkich tenantów.
Migracja widoków i funkcji skalarnych
W kreatorze modeli danych dodano możliwość przypisywania widoków i funkcji skalarnych do modułów, aby umożliwić ich migrację.
Zapis raportu w formacie Excel
W pliku appsettings.json serwisu reportsapi dodano sekcję:
"telerikReporting": {
"extensions": [ {
"name": "XLSX",
"parameters": [ {
"name": "UseExtendedFormatting",
"value": "False"
} ]
} ]
}
To ustawienie wyłącza informacje o rozszerzonym formatowaniu w przypadku eksportu raportu Telerik do formatu MS Excel. Dzięki temu program Excel może wyświetlać prawidłową nazwę na liście Format liczb
(wstążka Narzędzia główne
, sekcja Liczba
). Ze względu na potwierdzony błąd w module Telerik, nie działa to prawidłowo dla typów danych datetime i time, dla których wyświetlany jest opis Niestandardowe.
Należy zauważyć, że bez względu na opis, typ danych jest zawsze prawidłowo interpretowany przez program Excel. Należy także pamiętać, że zastosowanie do wartości dowolnego pola funkcji Format() lub FormatwithCulture() spowoduje przekształcenie tej wartości w tekst (to samo dotyczy innych funkcji w kategorii Text
).
Aby prawidłowo sformatować wartości należy dla każdego pola w szablonie raportu wpisać odpowiedni kod formatu w pole Format na panelu właściwości. Poniżej podano przykłady:
- {0:p3}: wartości procentowe
- {0:c}: wartości walutowe
- {0:N0}: wartości liczbowe; liczba na prawo od symbolu formatowania określa liczbę miejsc po znaku dziesiętnym, jeśli nie zostanie podana, wartości liczbowe będą wyświetlane z dwoma miejscami po przecinku (sama wartość nie zostanie zaokrąglona).
Jeśli formatowanie w ogóle nie zostanie zastosowane, wartości liczbowe, tekstowe i logiczne będą wyświetlane przez Excel jako dane w formatowaniu Ogólne. Wartości daty i czasu są zawsze wyświetlane jako Niestandardowe. Jak już wspomniano, niezależnie od identyfikacji przez Excel, wszystkie wartości mogą być przetwarzane zgodnie ze swoim typem danych.
Audyty bezpieczeństwa
W tabeli core.SecurityAudits dodano kolumnę Description, w której zapisywane są informacje o identyfikatorze roli i/lub jednostki organizacyjnej dla operacji dodawania i usuwania ról (w tym ról w jednostkach) i jednostek organizacyjnych. Ta kolumna ułatwi filtrowanie wpisów audytu bezpieczeństwa.
Uprawnienie PBA do audytu
W uprawnieniach PBA w gałęzi Użytkowanie aplikacji
/Formularze
/Opcje systemowe
dodano pole wyboru Dostęp do audytu dokumentu
(domyślnie niezaznaczone). To uprawnienie służy do kontroli dostępu do przycisku audytu dokumentu widocznego w nagłówku formularza, o ile dla danej definicji dokumentu włączono audyt.
Tabele migracji
Zmieniono moment tworzenia tabel core.MODULES_TO_EXPORT_CONFIG i core.MODELS_TO_EXPORT_CONFIG. Obecnie te tabele są tworzone wraz z pozostałymi tabelami systemowymi bazy danych. Pozwala to na zaimportowanie aplikacji przez żądanie Public API bez konieczności wcześniejszego użycia polecenia Zapisz aplikacje
w migratorze.
Logo tenanta
W aplikacji TenantAdminSPA dodano możliwość ustawienia niestandardowego logo w oknach logowania i wylogowania dla wszystkich tenantów (Global settings
> Logo
) oraz indywidualnie dla każdego tenanta (Edit tenant
> Configuration
> Logo
).
Obsługa Exchange w kontenerach nAxiom
Dodano osobną obsługę wysyłki wiadomości e-mail przez serwer Exchange w architekturze kontenerów (Linux). W ustawieniach systemu należy podać nazwę hosta SMTP w formie https://URL-serwera-poczty/EWS/Exchange.asmx. wybrać typ serwera Exchange oraz podać adres e-mail i hasło użytkownika.
Poprawki i usunięte błędy
Zwykły przycisk
Wprowadzono zmiany w działaniu przycisku typu Zwykły przycisk. Obecnie, jeśli do zwykłego przycisku zostanie przypisana akcja systemowa Zapisz rekord, dane z formularza zostaną zapisane bez walidacji.
Zapis w tabeli pomocniczej
Usunięto błąd, który uniemożliwiał zapisanie danych w tabeli pomocniczej przy użyciu akcji systemowej Zapisz rekord.
Kolejność kolumn listy
Poprawiono błędne działanie konfiguracji widoku listy w przypadku zmiany kolejności kolumn oraz poprawiono obsługę zmiany kolejności kolumn.
Usuwanie ról podczas migracji
Poprawiono błąd, który powodował, że podczas importu aplikacji do pustej bazy danych usuwane były role systemowe.
Kolumna akcji w widoku listy
Usunięto błędy renderowania kolumny akcji w widoku listy dla włączonej opcji Zablokuj kolumnę akcji
(Kreator listy > karta Ustawienia listy
).
Tabela core.ACLInstanceEntries
Poprawiono błędne działanie skryptu aktualizującego tabelę core.ACLInstanceEntries podczas aktualizacji wersji nAxiom.
Informacje o wersji (patch) 1.11.3.0 z dn. 03-08-2023
Ważne informacje
Limity czasu serwera nginx
W przypadku wdrożenia w architekturze kontenerów limit czasu obsługi żądania na serwerze nginx wynosi 60 s, co może powodować, że większe żądania przekraczające ten limit są anulowane. Zaleca się wydłużenie tego limitu do 300 s. Zmianę należy wprowadzić w plikach konfiguracyjnych serwera nginx, ustawiając parametry:
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
Tę informację dodano w artykułach „Wdrożenie nAxiom w Openshift - krok po kroku” i „Wdrożenie nAxiom z obrazów Docker”.
Akcja C#, limit czasu obiektu HttpClient
Domyślny limit czasu dla wystąpienia klasy HttpClient to 100 sekund. W przypadku wykonywania rozbudowanych żądań w akcjach C# niezbędne jest zwiększenie tego limitu dla obiektu HttpClient, który wysyła to żądanie. Na przykład:
HttpClient forceImportClient = new HttpClient();
forceImportClient.Timeout = TimeSpan.FromMinutes(10);
Kolejność kolumn po migracji
Proces migracji aplikacji nie gwarantuje zachowania oryginalnej kolejności kolumn w migrowanych tabelach użytkownika.
Nowe i zmodernizowane funkcje
Uprawnienia ACL dla dokumentów
Zmieniono sposób generowania uprawnień ACL na podstawie szablonów uprawnień dla statusów. Obecnie, przy zmianie statusu danego dokumentu wyliczane są uprawnienia tylko dla bieżącego statusu, a wpisy uprawnień ACL dla poprzedniego statusu są usuwane.
Wartość domyślna w kontrolce interesariuszy
We właściwościach kontrolki interesariuszy dodano możliwość skonfigurowania wartości domyślnej. Pozwala ona wskazać jednego lub kilku użytkowników, którzy domyślnie mają należeć do danej grupy interesariuszy. Nie można w ten sposób wskazać ról globalnych ani ról w jednostkach. Wartością domyślną może być identyfikator GUID użytkownika lub zapytanie SQL zwracające listę identyfikatorów GUID. Zwrócone identyfikatory muszą być podzbiorem zestawu zwróconego przez zapytanie w konfiguracji kontrolki.
Czasy udanego/nieudanego logowania
Dodano mechanizm rejestrowania czasów ostatniego udanego i nieudanego logowania użytkownika do witryny nAxiom oraz czas trwania bieżącej sesji. Informacje te są wyświetlane po kliknięciu nazwy użytkownika zalogowanego w aplikacji FrontSPA.
Funkcje zliczające załączniki
Dodano dwie funkcje służące do obliczania liczby załączników dla określonego dokumentu: countAttachmentFiles oraz countAttachmentFilesByParams. Funkcje są tworzone w schemacie bazodanowym podanym podczas instalacji systemu, domyślnie core.
Funkcja countAttachmentFiles przyjmuje trzy parametry:
- BusinessDocumentId: identyfikator definicji dokumentu, parametr wymagany,
- RecordId: identyfikator dokumentu, parametr wymagany,
- AttachmentCategoryId: identyfikator kategorii załączników, parametr wymagany
Przykład użycia:
SELECT [core].[countAttachmentFiles](
{@BusinessDocId} -- BusinessDocumentId
,{@Id} -- RecordId
,1 -- AttachmentCategoryId)
Funkcja countAttachmentFilesByParams przyjmuje 14 parametrów:
- BusinessDocumentId: identyfikator definicji dokumentu, parametr wymagany,
- RecordId: identyfikator dokumentu, parametr wymagany,
- AttachmentCategoryId: identyfikator kategorii załączników, parametr wymagany,
- VersionNumberMinimum: minimalny nr wersji załącznika,
- VersionNumberMaximum: maksymalny nr wersji załącznika,
- FileName: nazwa pliku załącznika,
- FileExtension: rozszerzenie pliku załącznika,
- FileSizeMinimum: minimalny rozmiar załącznika w bajtach,
- FileSizeMaximum: maksymalny rozmiar załącznika w bajtach,
- CreateDateFrom: data utworzenia; wartość od,
- CreateDateTo: data utworzenia; wartość do,
- ModifyDateFrom: data modyfikacji; wartość od,
- ModifyDateTo: data modyfikacji; wartość do,
- SignatureStatus: status podpisu dokumentu
Przykład użycia, który pozwala sprawdzić, czy dodano załącznik w formacie PDF o maksymalnym rozmiarze 2 MB:
SELECT [core].[countAttachmentFilesByParams](
{@BusinessDocId} -- BusinessDocumentId
,{@Id} -- RecordId
,1 -- AttachmentCategoryId
,NULL -- VersionNumberMinimum
,NULL -- VersionNumberMaximum
,NULL -- FileName
,'pdf' -- FileExtension
,NULL -- FileSizeMinimum
,2000000 -- FileSizeMaximum
,NULL -- CreateDateFrom
,NULL -- CreateDateTo
,NULL -- ModifyDateFrom
,NULL -- ModifyDateTo
,NULL -- SignatureStatus
))
Jeśli nie zostaną podane wymagane parametry, funkcje zwrócą wartości ujemne:
- -10: brak BusinessDocumentId,
- -20: brak RecordId,
- -30: brak AttachmentCategoryId.
Logi bezpieczeństwa
Do audytu bezpieczeństwa (dane rejestrowane w tabeli core.SecurityAudits) dodano nowe zdarzenia dotyczące przypisywania i anulowania przypisania ról biznesowych, w tym ról w jednostkach, oraz dodawania i usuwania jednostek struktury organizacyjnej. Dla każdego zdarzenie rejestrowana jest informacja o dacie zdarzenia, użytkowniku, który wykonał operację, użytkowniku, którego dotyczyła operacja, rodzaju operacji (dodanie usunięcie) oraz o roli i/lub jednostce organizacyjnej, której dotyczyła operacja.
Administrowanie uprawnieniami ACL
W oknie dialogowym zmiany uprawnień ACL dla dokumentu (wyświetlanym po kliknięciu ikony kluczyka w prawym górnym rogu formularza) dodano możliwość ustawiania uprawnień dla roli globalnej i roli w jednostce organizacyjnej.
W ramach tego zadania utworzono funkcję tabelaryczną CalculateOuPath, która dla podanego identyfikatora jednostki organizacyjnej zwraca pełną ścieżkę jednostki w strukturze organizacyjnej.
Parametry widżetów
W oknie dialogowym parametrów widżetu dodano obsługę pola wyboru daty i czasu (datepicker).
Parametry LocalStorage
W kontekście formularza dodano obsługę wielu parametrów zapisanych w pamięci przeglądarki (LocalStorage). Parametry są wyświetlane kolejno w formie SYS_key: “value”, gdzie key to nazwa parametru, a value to jego wartość.
Wylogowanie po zmianie hasła
W celu podniesienia bezpieczeństwa w aplikacjach FrontSPA i TenantAdminSPA dodano mechanizm, który powoduje, że po zmianie hasła do swojego profilu bieżący użytkownik zostanie wylogowany i będzie musiał zalogować się ponownie, używając zmienionego hasła.
Logi systemu
Poprawiono wydajność wczytywania logów aplikacji oraz dodano animowaną ikonę operacji w toku, wyświetlaną podczas wczytywania logów.
Widok listy, klucz główny źródła
W konfiguracji widoku listy dodano walidację zapytania SQL, która sprawdza czy zapytanie zwraca kolumnę o nazwie podanej w polu Klucz główny (PK)
. W przypadku braku takiej kolumny wyświetlane jest ostrzeżenie z pytaniem czy kontynuować zapis konfiguracji.
Akcja przypisywania ról globalnych do interesariuszy
W akcji dodawania ról globalnych do interesariuszy dodano obsługę błędów w następujących przypadkach:
- użytkownik nie ma uprawnień do aktualizacji dokumentu (U)
- nie znaleziono dokumentu o podanym identyfikatorze
- nie znaleziono roli o podanym identyfikatorze
- nie odnaleziono grupy interesariuszy o podanym identyfikatorze
Akcja importu dokumentów
Działanie akcji importu dokumentów rozszerzono o możliwość importowania dokumentów o statusie docelowym przypisanym na diagramie procesu do bloku oczekiwania.
Limit długości zawartości na serwerze IIS
Dodano obsługę błędu spowodowanego przekroczeniem limitu wielkości żądania na serwerze IIS — ustawienie Maksymalna dozwolona długość zawartości (w bajtach)
. Przyczyną wystąpienia tego błędu może być na przykład próba dodania załącznika o wielkości przekraczającej limit (domyślnie 28,6 MB). W przypadku wystąpienia tego błędu zostanie wyświetlony komunikat „Wystąpił problem z obsługą żądania przesłanego do aplikacji. Rozmiar żądania jest zbyt duży. Skontaktuj się z administratorem systemu”.
W przypadku żądania wysyłanego przez PublicAPI, jeśli to żądanie przekracza limit, ten komunikat nie jest wyświetlany, natomiast zwracany jest błąd 413.
Kontrolka interesariuszy
Dodano obsługę smart numbers dla ról biznesowych w zapytaniu generowanym dla kontrolki interesariuszy. Do tej pory po wskazaniu dla kontrolki wymaganych ról biznesowych, w zapytaniu wstawiane były identyfikatory ról, co mogło powodować problemy podczas migracji. Obecnie zamiast identyfikatorów w zapytaniu jest wstawiane wyrażenie smart numbers.
W przypadku istniejących konfiguracji konieczne jest usunięcie wymaganych ról biznesowych w definicji kontrolki i ponowne ich dodanie, aby ponownie wygenerować zapytanie z wyrażeniem smart numbers.
Audyt w PublicAPI
Dodano obsługę żądań do PublicAPI przez moduł audytów. Dzięki temu tworzenie i zmiana statusu dokumentów przez żądania wysyłane do PublicAPI są objęte audytem.
Parametry w definicji widżetów
W definicji widżetów dodano obsługę parametrów systemowych {@_UserId}, {@_LangId} oraz wartości przechowywanych w LocalStorage. Te parametry i wartości są teraz także obsługiwane w konfiguracji parametrów widżetów typu lista wyboru SQL.
Poprawki i usunięte błędy
Migracja opisów kolumn
Poprawiono migrację opisów kolumn w tabelach użytkownika.
Obszar tekstowy
Zmieniono zachowanie kontrolki Obszar tekstowy wyświetlanej w trybie tylko do odczytu. Obecnie można zmieniać wysokość takiej kontrolki, przewijać jej zawartość i zaznaczać fragmenty zawartości.
Akcje przypisywania do interesariuszy
W oknie dialogowym definiowania akcji przypisywania ról globalnych i ról w jednostkach organizacyjnych do interesariuszy dodano przełącznik Wykonanie warunkowe
.
Uprawnienia formularza
W nagłówkach kolumn z uprawnieniami w oknie dialogowym Uprawnienia dla formularza
dodano podpowiedzi tooltip z kodem i nazwą elementu.
Linki w wiadomościach e-mail eskalatorów
Usunięto problem, który powodował, że w wiadomościach e-mail wysyłanych w funkcjonalności eskalatorów linki do dokumentów były nieprawidłowo sformatowane i nie działały.
Migracja przycisków radio i pozycji słownika
Usunięto błędy, które powodowały, że podczas migracji przycisków radio i słowników zmieniała się kolejność przycisków radio i pozycji słownika.
Prefiksy tenantów w linkach do dokumentów
Poprawiono błędy w linkach wewnętrznych generowanych w panelu powiadomień i wysyłanych wiadomościach e-mail dla nowych zdarzeń i eskalatorów w witrynach drugiego i kolejnych tenantów.
Formularz na ekranie dashboard
Usunięto błędy serializacji logów rejestrowane w konsoli przeglądarki podczas wczytywania formularza na ekranie Dashboard.
Widoczność przycisku
Usunięto błąd, który uniemożliwiał ustawienie widoczności przycisku na formularzu za pomocą instrukcji JavaScript we właściwości Skrypt dla zmiany kontekstu formularza
.
Linki w szablonach e-mail
Usunięto błąd, który powodował, że linki wewnętrzne generowane w akcji e-mail były niepoprawne (brak elementu /front/ w ścieżce). Błąd dotyczył sytuacji, kiedy akcja była wywoływana przez przejście procesu, a zmiana statusu była wywoływana przez PublicAPI.
Zastępstwa - wybór roli
Usunięto błąd w funkcjonalności zastępstw, który uniemożliwiał wskazanie dla osoby zastępowanej tej samej roli jako globalnej i roli w jednostce organizacyjnej.
Funkcja refreshDropDownControl
Usunięto błąd w działaniu akcji JavaSript z użyciem funkcji odświeżania listy rozwijanej (refreshDropDownControl).
Eskalatory
Usunięto błąd funkcji eskalatorów, który powodował, że dla wszystkich dokumentów z terminem wykonania przypadającym w interwale równym wartości ustawienia Częstotliwość sprawdzania listy eskalatorów do wysyłki (w minutach)
(AdminSPA
> Ustawienia systemu
> Eskalatory
) była wysyłana wiadomość e-mail z takim samym numerem dokumentu.
Anulowanie logowania domenowego
Poprawiono zachowanie witryny nAxiom w przypadku, gdy podczas logowania domenowego użytkownik kliknie przycisk Anuluj
. Obecnie spowoduje to wyświetlenie standardowego okna logowania do nAxiom.
Komentarze SQL
Poprawiono nieprawidłową obsługę komentarzy w zapytaniach SQL definiowanych przez konsultantów w aplikacji Admin SPA.
Synchronizacja z LDAP
Poprawiono mechanizm synchronizacji użytkowników z katalogiem LDAP w przypadku, gdy przełożony użytkownika znajduje się w innej jednostce organizacyjnej. Dotychczas w takim przypadku profil użytkownika nie był synchronizowany.
Zapis w kreatorze formularzy (widok drzewa)
Poprawiono działanie funkcji zapisu w kreatorze formularzy (drzewo definicji formularza). Obecnie można wprowadzić wiele zmian w definicji formularza i zapisać je w jednej operacji zapisu.
Flaga Audit: Enabled
Poprawiono działanie flagi Audit: Enabled w pliku appsettings.json serwisu api.
Status podpisu załącznika
Poprawiono błąd, który blokował zmianę statusu podpisu w kolumnie SignatureStatus w tabeli core.Attachments po wykonaniu akcji podpisu eSign na załączniku.
Migracja kolumny varbinary
Poprawiono błąd migratora, który powodował, że kolumna typu varbinary(MAX) po migracji miała typ varbinary(1).
Informacje o wersji (fix) 1.11.2.1 z dn. 17-07-2023
Nowe i zmodernizowane funkcje
Lista wielowyboru
Dodano możliwość zapisania (utrwalenia) wyświetlanych wartości pozycji wybranych na liście wielowyboru. Funkcjonalność wymaga włączenia przełączników: Zapisz w tabeli relacyjnej
oraz Zachowuj wybrane wartości jako ustalone
.
Wartości wyświetlane są zapisywane w kolumnie SelectedValue dodanej do tabeli core.FormFieldEnrollments.
Uprawnienia PBA
Dodano dwa uprawnienia PBA: Podgląd diagramu procesu
i Podgląd modelu danych
. Uprawnienia te kontrolują widoczność systemowych ikon formularza do wyświetlania diagramu procesu i kontekstu formularza. Domyślnie uprawnienia te są wyłączone dla wszystkich użytkowników z wyjątkiem roli systemowej Administrator.
Nowe uprawnienia znajdują się w gałęzi Formularze
, pod gałęzią Użytkowanie wszystkich aplikacji
.
Parametry systemowe
Dodano dwa nowe parametry systemowe:
- @_TenantBaseUrl: adres bazowy aplikacji z uwzględnieniem prefiksu tenanta
- @_TenantId: identyfikator tenanta, w kontekście którego pracuje bieżący użytkownik
Poprawki i usunięte błędy
Synchronizacja z LDAP
Zmodyfikowano działanie funkcji synchronizacji z usługami katalogowymi. Obecnie nazwa jednostki organizacyjnej jest wyszukiwana na podstawie nazwy wyróżniającej (DN) użytkownika.
Akcja raportowania
Dodano obsługę akcji raportów Telerik jako akcji przypisanej do przejścia diagramu procesów (jako akcja przed lub po), w tym do pierwszego przejścia diagramu procesów (zapis nowego dokumentu) oraz przejścia do bloku decyzyjnego, o ile wcześniej zapisano dokument).
Akcje są wyzwalane zarówno przez kliknięcie przycisku Zapisz
lub przycisku zmiany statusu, jak i w przypadku użycia akcji zmiany statusu oraz w przypadku tworzenia dokumentu i zmiany statusu żądaniem do Public API.
Checkbox pojedynczy
Przywrócono wyświetlanie podpowiedzi tooltip dla kontrolki typu checkbox pojedynczy.
Profil użytkownika
Poprawiono treść opisu w profilu użytkownika pod kontrolkami do przypisywania ról biznesowych w jednostkach organizacyjnych. Globalne role biznesowe użytkownika nie mają związku z jego rolami w jednostkach organizacyjnych.
Zachowanie przycisku
Poprawiono pomijanie walidacji formularza w przypadku kliknięcia przycisku, dla którego właściwość Zachowanie
ma wartość Zwykły przycisk
lub Domyślny
, a przycisk nie ma przypisanej akcji zapisu lub akcji SQL.
Informacje o wersji (patch) 1.11.2.0 z dn. 03-07-2023
Ważne informacje
Role w jednostkach organizacyjnych i powiązane zmiany
W nAxiom 1.11.2.0 wprowadzono możliwość przypisywania użytkownikom ról biznesowych w obrębie jednostek struktury organizacyjnej, do których należą ci użytkownicy. Ta zmiana oraz szereg powiązanych zmian pozwala na przypisywanie użytkownikom uprawnień do instancji dokumentów odpowiednio do ich roli w konkretnej jednostce organizacyjnej. Szczegóły zmian opisano w dalszej części tych informacji, poniżej znajduje się tylko skrótowy wykaz tych zmian.
- W profilu użytkownika dodano możliwość przypisywania użytkownikowi roli biznesowej w jednostce organizacyjnej, do której należy użytkownik. W odniesieniu do dotychczasowych ról biznesowych będzie teraz używane określenie „rola globalna”.
-
Informacje o rolach w jednostkach są zapisywane w nowej tabeli core.OUInstanceUserRoles w trzech kolumnach: UserProfileId, OUInstanceId i RoleId. Informacje o globalnych rolach biznesowych pozostają zapisane w tabeli core.UserProfileRoles.
Obecnie role w jednostkach organizacyjnych nie są obsługiwane przez blok akceptacji. Prowadzona jest analiza możliwości wprowadzenia tej obsługi.
- Dodano dwie akcje:
- dodawanie do grup interesariuszy globalnej roli biznesowej
- dodawanie do grup interesariuszy roli biznesowej w jednostce organizacyjnej
-
W szablonach uprawnień ACL dla dokumentu i formularza oraz w uprawnieniach ACL dokumentu (FrontSPA) usunięto możliwość definiowania uprawnień dla roli biznesowej we wskazanej jednostce organizacyjnej.
W związku z tą zmianą nie będzie można edytować istniejących uprawnień dla roli we wskazanej jednostce. Uprawnienia te będą nadal działać i będą widoczne na listach uprawnień. Od tej wersji uprawnienia tego rodzaju można zastąpić odpowiednio skonfigurowanymi uprawnieniami dla grup interesariuszy oraz akcjami dodawania członków do grup interesariuszy.
- Zmieniono sposób walidacji uprawnień w przypadku szablonów definiowanych dla kilku ról biznesowych — obecnie status będzie obowiązywał dla użytkownika, który ma co najmniej jedną z zestawu ról. Do tej pory użytkownik musiał mieć przypisane wszystkie role biznesowe wskazane w szablonie.
Blok Start warunkowy
Planowane jest usunięcie bloku Start warunkowy z edytora diagramów procesów. Obecnie ten blok jest nieobsługiwany.
Nowe i zmodernizowane funkcje
Szablony uprawnień ACL
Zmieniono sposób definiowania uprawnień w definicji dokumentu biznesowego, w uprawnieniach formularza oraz w aplikacji FrontSPA w oknie dialogowym Aktualne uprawnienia dla dokumentu...
(wyświetlanym ikoną kluczyka) w ten sposób, że usunięto możliwość zdefiniowania uprawnienia dla roli ze wskazanej jednostki organizacyjnej (i jej podjednostek). Uprawnienia dla roli we wskazanej jednostce organizacyjnej będą działać jak do tej pory (o ile nie były zdefiniowane dla kilku ról), jednak ich edycja nie będzie możliwa.
Zmieniono sposób walidacji uprawnień przyznawanych użytkownikom z określonym zestawem ról. Do tej pory taki szablon obowiązywał dla użytkowników, którzy mieli przypisane wszystkie wskazane role. Obecnie szablon będzie obowiązywał użytkowników, którzy mają przypisaną co najmniej jedną ze wskazanego zestawu ról.
Profil użytkownika
W profilu użytkownika dodano możliwość przypisania użytkownikowi jednej roli biznesowej w każdej jednostce organizacyjnej, do której należy.
Informacje o rolach użytkownika w jednostkach organizacyjnych są zapisywane w nowej tabeli systemowej [core].[OUInstanceUserRoles]. Zawiera ona trzy kolumny: UserProfileId, OUInstanceId i RoleId.
Dodatkowo zmieniono istniejącą tabelę systemową [core].[OUInstanceUsers] w ten sposób, że usunięto z niej kolumnę Id. Kluczem głównym tej tabeli jest teraz para kolumn UserProfileId i OUInstanceId.
Dotychczasowe przypisania ról biznesowych (nazywanych teraz globalnymi) pozostają bez zmian w tabeli [core].[UserProfileRoles].
Przypisywanie ról w jednostkach jest również objęte uprawnieniem PBA Zmiana ról biznesowych użytkownika
.
Wsadowe przypisywanie ról w jednostkach
W związku z wprowadzeniem nowej tabeli core.OUInstanceUSerRoles opracowano skrypt core.convertGlobalRoleToBusinessRole, który umożliwia zasilenie tej tabeli danymi początkowymi. Parametrem wejściowym skryptu jest identyfikator roli. Skrypt wyszukuje wszystkich użytkowników z tą rolą i jednostki organizacyjne, do których są przypisani ci użytkownicy, a następnie wpisuje w tabeli core.OUInstanceUSerRoles identyfikator użytkownika, identyfikator jednostki organizacyjnej i podany identyfikator roli. Domyślnie skrypt usuwa także podaną rolę z ról globalnych użytkownika (tabela core.UserProfileRoles). Poniżej publikujemy treść skryptu.
CREATE PROCEDURE [core].[convertGlobalRoleToBusinessRole]
@roleId INT,
@remove_global_role BIT = 1
AS
BEGIN
INSERT INTO [core].[OUInstanceUserRoles]
( [UserProfileId], [OUInstanceId], [RoleId] )
SELECT distinct userRoles.UserProfileId,
ouUsers.OUInstanceId, userRoles.RoleId
FROM [core].[UserProfileRoles] userRoles
JOIN [core].[OUInstanceUsers] ouUsers
ON ouUsers.UserProfileId = userRoles.UserProfileId
JOIN [core].[Roles] roles
ON roles.Id = userRoles.RoleId and roles.Type = 1
LEFT JOIN [core].[OUInstanceUserRoles] ouRoles
ON ouRoles.OUInstanceId = ouUsers.OUInstanceId
AND userRoles.UserProfileId = ouRoles.UserProfileId
WHERE userRoles.[RoleId] = @roleId AND ouRoles.RoleId IS NULL;
IF (@remove_global_role = 1)
DELETE FROM [core].[UserProfileRoles]
WHERE [RoleId] = @roleId AND [UserProfileId] IN
(SELECT userRoles.UserProfileId
FROM [core].[UserProfileRoles] userRoles
JOIN [core].[OUInstanceUsers] ouUsers
ON ouUsers.UserProfileId = userRoles.UserProfileId
JOIN [core].[Roles] roles
ON roles.Id = userRoles.RoleId AND roles.Type = 1
WHERE [RoleId] = @roleId)
END;
Akcja dodania roli globalnej do grupy interesariuszy
Dodano akcję dodawania do grupy interesariuszy ról biznesowych (globalnych). Dodanie roli jest równoważne z dodaniem do grupy wszystkich użytkowników z tą rolą globalną. Akcja pozwala również usunąć rolę globalną (wskazaną lub wszystkie) z grupy interesariuszy. Akcja wymaga podania następujących parametrów:
- BusinessDocId: identyfikator definicji dokumentu; jeśli ma wartość null, akcja operuje na bieżącej instancji dokumentu.
- RecordId: identyfikator instancji dokumentu.
- StakeholderId: identyfikator grupy interesariuszy.
- Operation: rodzaj wykonywanej operacji; 0 - dodanie, 1 - usunięcie.
- GlobalRoleId: identyfikator roli biznesowej (globalnej); wymagane, oprócz sytuacji opisanej poniżej.
Ustawienie parametrów GlobalRoleId = null oraz Operation = 1 spowoduje usunięcie wszystkich ról globalnych z grupy interesariuszy dla wskazanej lub bieżącej instancji dokumentu.
Zależnie od konstrukcji zapytania, akcja może zmienić skład grupy interesariuszy dla wielu dokumentów. W zapytaniu obsługiwany jest operator UNION.
Akcja dodania roli w jednostce do grupy interesariuszy
Dodano akcję dodawania do grupy interesariuszy ról biznesowych w jednostkach organizacyjnych. Dodanie roli biznesowej w jednostce organizacyjnej do grupy interesariuszy jest równoważne dodaniu do tej grupy wszystkich użytkowników, którzy mają przypisaną podaną rolę biznesową w podanej jednostce organizacyjnej. Akcja pozwala również usunąć rolę w jednostce z grupy interesariuszy. Akcja wymaga podania następujących parametrów:
- BusinessDocId: identyfikator definicji dokumentu; jeśli ma wartość null, akcja operuje na bieżącej instancji dokumentu.
- RecordId: identyfikator instancji dokumentu.
- StakeholderId: identyfikator grupy interesariuszy.
- Operation: rodzaj wykonywanej operacji; 0 - dodanie, 1 - usunięcie.
- OUId: identyfikator jednostki organizacyjnej; wymagany, oprócz sytuacji opisanej poniżej.
- RoleId: identyfikator roli biznesowej; wymagany, oprócz sytuacji opisanej poniżej.
Ustawienie parametrów RoleId/OUId = null oraz Operation = 1 spowoduje usunięcie wszystkich ról w jednostkach z grupy interesariuszy dla wskazanej lub bieżącej instancji dokumentu.
Zależnie od konstrukcji zapytania, akcja może zmienić skład grupy interesariuszy dla wielu dokumentów. W zapytaniu obsługiwany jest operator UNION.
Kontrolka interesariuszy
Zmodyfikowano kontrolkę interesariuszy. Obecnie prezentuje ona użytkowników, role globalne oraz role w jednostkach organizacyjnych. Z poziomu kontrolki można usunąć rolę globalną lub rolę w jednostce, ale nie można ich dodać (służą do tego nowe akcje przypisywania interesariuszy dodane w tej wersji).
Zmodyfikowano także sposób prezentowania danych kontrolki w kontekście formularza, obecnie wykorzystuje się do tego tablicę StakeholdersData z identyfikatorami obiektów przypisanych do grupy interesariuszy podzielonymi na kategorie: UserIds, GlobalRoleIds i OrgUnitRoleIds.
Dodatkowo poprawiono sposób wyświetlania kontrolki, kiedy na ekranie nie ma miejsca do rozwinięcia listy z użytkownikami.
Funkcja zwracająca id jednostki organizacyjnej
Utworzono funkcję [core].[calculateOUId], która wylicza identyfikator jednostki organizacyjnej na podstawie przekazanych parametrów. Funkcji można używać wszędzie w definicji zapytań SQL w aplikacji AdminSPA. Parametry wejściowe do funkcji to:
- ouRootCode: (wymagany) kod jednostki organizacyjnej odniesienia; określa kontekst wyszukiwania żądanej jednostki organizacyjnej.
- userId: (opcjonalny) identyfikator użytkownika; jeśli jest podany, zwracany jest identyfikator jednostki, do której należy użytkownik.
-
orgUnitLevel: wartość liczbowa określająca poziom struktury organizacyjnej względem jednostki odniesienia; dopuszczalne wartości:
- 0 (lub NULL): funkcja zwraca id jednostki, do której należy użytkownik, w obrębie jednostki odniesienia i jej podjednostek.
- 1: funkcja zwraca id jednostki głównej w strukturze organizacyjnej, w której znajduje się jednostka odniesienia.
- -n (liczba ujemna): zwraca identyfikator jednostki nadrzędnej dla jednostki odniesienia na n-tym poziomie w stronę jednostki głównej; np. dla -1 zwraca identyfikator jednostki nadrzędnej dla jednostki odniesienia na następnym poziomie struktury organizacyjnej.
Funkcja zwraca następujące kody błędów (wartości ujemne):
- -1000: kod jednostki organizacyjnej odniesienia (parametr ouRootCode) nie został podany lub jest pusty.
- -1001: jednostka odniesienia o podanym kodzie nie istnieje lub użytkownik nie jest przypisany do tej jednostki.
- -1002: istnieje więcej niż jedna jednostka o podanym kodzie.
- -2000: użytkownik o podanym identyfikatorze nie istnieje.
- -3000: parametr orgUnitLevel ma nieprawidłową wartość (np. >1).
- -9999: wystąpił nieobsługiwany wyjątek.
Język dla funkcji UserTask_View
W ustawieniach systemu dodano parametr Domyślny język widoku 'Moje zadania'
. Jest on używany, jeśli w wywołaniu funkcji tabelarycznej UserTasks_View nie zostanie podany parametr @LangId. Dodatkowo, w bazie danych utworzono procedurę Refresh_ACLInstanceEntries_TranslateableData, która aktualizuje wersję językową danych zwracanych przez funkcję UserTasks_View (z tabeli ACLInstanceEntries w związku ze zmianami opisanymi w następnym punkcie). Jeśli procedura zostanie wywołana baz parametrów, odświeży dane zgodnie z ustawieniem domyślnym języka. Można ją także wywołać z podaniem identyfikatora języka w celu pobrania do wyświetlenia konkretnej wersji językowej danych.
EXEC [core].[Refresh_ACLInstanceEntries_TranslateableData] @LangId = 1
Lista języków znajduje się w tabeli [core].[Languages].
Tabela ACLInstanceEntries
Definicję tabeli [core].[ACLInstanceEntries] rozszerzono o wybrane kolumny systemowe z tabel dokumentów biznesowych. Tabele te zawierają zduplikowane dane z dokumentów biznesowych i służą do zasilenia funkcji tabelarycznej UserTask_View. Dane w tych kolumnach aktualizują się automatycznie, np. po zmianie statusu instancji dokumentu biznesowego.
W przypadku aktualizacji do bieżącej wersji nAxiom wykonywana jest automatycznie procedura core.Refresh_ACLInstanceEntries_DuplicatedData.
W związku z tymi zmianami zmieniła się definicja funkcji tabelarycznej UserTask_View, ale sposób jej wywołania pozostał taki sam:
SELECT * FROM core.UserTasks_View(@userId, @langId, @aclTemplateType)
gdzie:
- @userId: identyfikator użytkownika, którego zadania mają zostać pobrane;
- @langId: identyfikator języka (może mieć wartość NULL, ale nie można go pominąć);
-
@aclTemplateType: typ szablonu uprawnień;dostępne wartości:
-
Status: uwzględniane są tylko dokumenty, dla których zdefiniowano szablony uprawnień w statusach (karta
Uprawnienia - statusy
) -
Instance: uwzględniane są tylko dokumenty, dla których zdefiniowano ogólne szablony uprawnień (karta
Uprawnienia
) - InstanceWithStatus: uwzględniane są wszystkie dokumenty, dla których zdefiniowano szablony uprawnień, bez względu na ich rodzaj.
-
Status: uwzględniane są tylko dokumenty, dla których zdefiniowano szablony uprawnień w statusach (karta
Przy czym obecnie parametr @langId jest ignorowany (pozostawiono go ze względu na zgodność z wcześniejszymi wersjami). Wersja językowa danych zwracanych przez funkcję UserTask_View zależy od ustawienia systemowego Domyślny język widoku 'Moje zadania'
.
Aby zwrócić inną wersję językową danych, należy użyć nowej funkcji tabelarycznej core.UserTasksMultiLang_View, którą wywołuje się następująco:
SELECT * FROM core.UserTasksMultiLang_View(@userId, @langId, @aclTemplateType);
Ta funkcja zwraca wersję językową danych zgodną z wartością parametru @langId.
Zastępstwa
Funkcjonalność zastępstw rozszerzono o możliwość przypisywania osobie zastępującej ról w jednostkach organizacyjnych osoby zastępowanej. Ponadto zmieniono działanie przełącznika Dostęp do indywidualnych zadań
. Obecnie nie jest wymagane jego włączenie, aby zastępujący miał dostęp do dokumentów, dla których uprawnienia zastępowanego wynikały z bycia twórcą lub przynależności do grupy interesariuszy.
Należy pamiętać, że funkcjonalność zastępstw nie obejmuje uprawnień do akceptacji dokumentów konfigurowanych we właściwościach bloku akceptacji.
Lokalne wdrożenie kontenerów nAxiom
Opracowano skrypt automatyzujący procedurę wdrożenia nAxiom z obrazów dockerowych na komputerze lokalnym w systemie Windows z podsystemem WSL. Sposób użycia skryptu opisano w dodatku do artykułu Wdrożenie nAxiom z obrazów Docker.
Akcje na przejściach diagramu procesów
Dla przejść między blokami zadania ręcznego i decyzyjnym dodano obsługę akcji systemowych we właściwości Akcje uruchamiane przed
.
Podgląd załączników
Zmodyfikowano ustawienia sekcji podglądu załączników, aby umożliwić konfigurowanie zasad wyświetlania załączników w sekcji. Dostępne opcje wyświetlania to:
-
obecnie najnowszy
, -
obecnie najstarszy
, -
nic nie wyświetlaj (zresetuj podgląd)
, -
nie zmieniaj załącznika (zachowaj ostatni wyświetlony…)
.
Te opcje można ustawić osobno dla zdarzeń dodania załącznika, usunięcia załącznika i otwarcia formularza.
Audyt dodania/usunięcia interesariusza
Rozszerzono zapis zdarzenia audytu Interesariusz - usunięcie/dodanie o przypadki usunięcia z grupy interesariuszy wszystkich członków z określonej kategorii (wszystkich użytkowników, wszystkich ról globalnych lub wszystkich ról w jednostkach org.). Obecnie w kolumnie Value w tabeli core.AuditEventLogs dla zdarzenia zapisywany jest obiekt JSON, który zawiera trzy dodatkowe flagi:
{
"Stakeholder": {
"StakeholderId":9,
"OrgUnitRoleIds":[],
"AllOrgUnitRolesDeleted":true,
"AllGlobalRolesDeleted":false,
"AllUsersDeleted":false }
}
Dla zdarzenia usunięcia indywidualnych członków z grupy interesariuszy oraz dla zdarzenia dodania do grupy interesariuszy wszystkie flagi mają wartość false.
Indeksowanie obiektów dodawanych przez Public API
Dodano obsługę indeksowania dokumentów i załączników dodawanych przez interfejs Public API na potrzeby wyszukiwania pełnotekstowego (Elasticsearch).
Korzystanie z tej obsługi wymaga skonfigurowania połączenia z silnikiem Elasticsearch w pliku appsettings.json serwisu public-api, analogicznie jak dla serwisu internal-api.
Poprawki i usunięte błędy
Public API, endpoint /Document/ChangeStatus
Poprawiono działanie endpointa /Document/ChangeStatus w interfejsie Public API w ten sposób, że jeśli w żądaniu jest przekazywany identyfikator formularza, sekcja body żądania może być pusta. W takiej sytuacji inne akcje inicjowane przez to żądanie będą miały dostęp do modelu formularza o podanym identyfikatorze.
Ponadto, w przypadku akcji przypisanych do przejścia wywoływanego żądaniem poprawiono ich dostęp do parametrów BusinessDocId i FormId, jeśli te parametry nie są przesyłane w body żądania tylko pobierane na podstawie parametru FormId.
Należy pamiętać, że jeśli żądanie ma zostać wykonane na podstawie modelu danych przesłanego w body żądania, ten model musi zawierać wszystkie parametry wymagane przez akcje przypisane do przejścia wykonywanego żądaniem /Document/ChangeStatus.
Akcje przejść w podprocesach
Poprawiono dostęp do parametru BusinessDocId w akcjach ze zbioru Akcje wykonywane po
określonego dla pierwszego przejścia w podprocesie.
Widok listy
Poprawiono błąd, który powodował, że klauzula ORDER BY w zapytaniu źródłowym dla widoku listy była ignorowana.
Warunek wyświetlania przycisku
Poprawiono błąd wykonywania zapytania SQL zdefiniowanego w parametrze Warunek wyświetlania przycisku
, który występował, gdy dla określonego statusu na diagramie procesu były dwa przejścia z identycznym warunkiem.
Podgląd załączników PDF
Zmodyfikowano sposób wczytywania podglądu załączników w formacie PDF w celu skrócenia czasu renderowania obrazu w przypadku plików generowanych przez niektóre urządzenia skanujące.
Akcja Usuń rekord
Zmodyfikowano akcję systemową Usuń rekord w ten sposób, że obecnie usuwa ona wpisy dotyczące uprawnień ACL dla usuwanego rekordu.
Odwołania do formularza w widoku listy
Dodano obsługę sytuacji, kiedy w definicji listy (używanej jako źródło danych dla sekcji typu lista na formularzu) używane są odwołania do pól sekcji wskazanej jako zależność od sekcji ({@_Section_KodPola}). Obecnie podczas próby wyświetlenia podglądu rekordów w kreatorze listy wyświetlany jest komunikat z informacją, że wartości parametrów użytych w definicji zapytania są obecnie niedostępne i podgląd nie jest wyświetlany. Należy pamiętać, że w takim przypadku dla sekcji typu lista musi zostać ustawiona właściwość Zależność od sekcji
oraz musi zostać zdefiniowany dowolny warunek dla zależności.
Stronicowanie sekcji typu lista
Poprawiono mechanizm przeliczania rekordów i stronicowania dla listy wyświetlanej w sekcji formularza z włączonym stronicowaniem i filtrowaniem po stronie serwera (server-side) oraz zależnej od innej sekcji. Obecnie, jeśli zmiana parametrów filtrowania spowoduje, że pozostanie na bieżącej stronie nie będzie możliwe, nastąpi przejście do strony nr 1.
Migracja obiektów z różnych modułów
W migratorze poprawiono wykrywanie zależności pomiędzy obiektami, które należą do modułów spoza pliku konfiguracji. Ponadto, dodano informacje o błędach przenoszenia rekordów w tabelach systemowych do raportu z migracji. Taka sytuacja może wystąpić, kiedy na przykład akcje korzystają ze źródła danych, które ma taki sam kod jak źródło w innym module. W takim przypadku nie jest możliwe usunięcie istniejącego źródła i zaimportowanie nowego.
Lista hierarchiczna
Usunięto błąd, który powodował, że identyfikatory rekordów zaznaczonych w sekcji typu lista na liście hierarchicznej nie były dostępne w kontekście formularza. W związku z naprawą zmodyfikowano także działanie kreatora listy dla listy hierarchicznej. Obecnie kolumna klucza głównego ani kolumna hierarchii nie muszą być jawnie dodane w drzewie kolumn listy.
Lista wielowyboru
Poprawiono błąd w treści etykiety opcji zaznacz wszystkie/odznacz wszystkie
dla listy wielowyboru i kontrolki interesariusza.
Podgląd załączników
Poprawiono błędne działanie sekcji podglądu załączników w przypadku, kiedy na formularzu jest kilka sekcji załączników dla różnych kategorii.
Lista rozwijana
Usunięto błąd, który powodował, że dla listy rozwijanej nie można było zapisać wartości klucza 0.
Porównywanie konfiguracji w migratorze
Usunięto błąd, który powodował, że migrator, pomimo wykrycia, że wybrane do porównania konfiguracje nie istnieją, próbował dokonać porównania.
Widoczność przycisku w trybie tylko do odczytu
Usunięto błąd, który powodował, że w przypadku ustawienia walidacji uprawnień formularza Zawężaj uprawnienia formularza ustawieniami dostępności
i ustawieniu dla przycisku sekcji opcji isVisible = 0 oraz isReadOnly = 1, ten przycisk był widoczny w trybie tylko do odczytu.
Słownik edytowalny
Usunięto błąd, który w określonych przypadkach powodował, że w kreatorze formularzy nie zapisywał się stan przełącznika Zezwalaj na wartości spoza listy
w konfiguracji kontrolki słownik edytowalny.
Pola wyboru uprawnień PBA
Poprawiono odświeżanie wyświetlania stanu pól wyboru na liście uprawnień PBA.
Znane problemy
Wtyczka Outlook
Akcje przypisane do przejścia workflow wykonywanego z poziomu wtyczki Outlook nie mają dostępu do parametrów systemowych z kontekstu formularza, to jest: FormCode, FormId, BusinessDocId i AppId. Planowane jest usunięcie problemu w jednym z kolejnych wydań nAxiom.
Informacje o wersji (fix) 1.11.1.1 z dn. 07-06-2023
Poprawki i usunięte błędy
Tenant Admin — połączenie z bazą danych
Wykryto problemu z przekazywaniem niektórych parametrów połączenia z bazą danych w aplikacji TenantAdminSPA. Błąd dotyczył następujących parametrów, dla których Microsoft dodał obsługę synonimów pisanych ze spacjami:
Parametr | Synonim |
---|---|
ApplicationIntent | Application Intent |
ConnectRetryCount | Connect Retry Count |
ConnectRetryInterval | Connect Retry Interval |
PoolBlockingPeriod | Pool Blocking Period |
MultipleActiveResultSets | Multiple Active Result Sets |
MultiSubnetFailover | Multi Subnet Failover |
TransparentNetworkIPResolution | Transparent Network IP Resolution |
TrustServerCertificate | Trust Server Certificate |
Obecna biblioteka przekazuje te parametry w nowym formacie, który nie jest obsługiwany przez wszystkie komponenty nAxiom (np. przez moduł raportów Telerik).
Wprowadzono obejście, które eliminuje ten problem, o ile parametry zostaną wprowadzone w pierwotnym formacie, tj. bez spacji.
Zmiana statusu archiwizacji
Usunięto błąd, który powodował, że akcja zmiany statusu archiwizacji przypisana do przejścia procesu nie wykonywała się, gdy przejście było inicjowane przez akcję zmiany statusu.
Migrator aplikacji
Usunięto błąd migratora, który uniemożliwiał import aplikacji w przypadku, kiedy aktualizowany obiekt miał dodany nowy wpis w tabeli tłumaczeń.
Informacje o wersji (patch) 1.11.1.0 z dn. 26-05-2023
Nowe i zmodernizowane funkcje
Akcja importu dokumentów
Dodano nowy typ akcji Importowanie dokumentów. Akcja pozwala importować dane z tabeli pomocniczej do tabeli dokumentu biznesowego w modelu standardowym lub uproszczonym. W akcji należy zdefiniować zapytanie SQL zwracające dane oraz skonfigurować mapowanie kolumn. Dane zwracane przez zapytanie SQL mogą także zostać użyte do zasilenia kolumn systemowych. Możliwe jest także wypełnienie tych kolumn stałymi wartościami. Zapytanie musi zwrócić kolumnę z identyfikatorem importowanych rekordów na potrzeby raportu z operacji. Jeśli kolumna Status w tabeli docelowej nie zostanie wypełniona, akcja wypełni ją identyfikatorem statusu dla pierwszego kroku wychodzącego z bloku Start.
Wartości statusu dla importowanych dokumentów muszą odpowiadać blokom Zadanie ręczne na diagramie procesu. Statusy innych bloków nie są obsługiwane. Trwają prace nad obsługą importu dla bloku oczekiwania.
Historia importu dokumentów biznesowych jest zapisywana w dwóch nowych tabelach systemowych:
BatchImportHistory:
- BatchProcessId: GUID danego procesu importu
- BatchId: identyfikator zbioru akcji z akcją importu
- ImportedBy: GUID użytkownika wywołującego akcję
- ImportDatetime: czas wywołania akcji
- ImportActionRowGuid: GUID użytej akcji importu dokumentów
- TargetBusinessDocumentGUID: GUID docelowej definicji dokumentu biznesowego
BatchImportHistoryElements:
- Id: klucz główny
- BatchImportHistoryId: GUID danego procesu importu
- SourceRecordId: identyfikator importowanego rekordu; musi być zwracany przez zapytanie SQL
- BatchImportStatus: status importu (wartości: Success, Error, Skip)
- ErrorMessage: komunikat o błędzie
Dodano również zdarzenie audytowe dla dokumentów biznesowych: Dokument - zaimportowanie. Zdarzenie jest domyślnie włączone dla nowych i już istniejących dokumentów.
Import dokumentów może być wykonywany w transakcji na poziomie całej paczki dokumentów albo na poziomie indywidualnego dokumentu.
Akcję można wywołać przyciskiem na formularzu, na przejściu diagramu procesów, przyciskiem w nagłówku listy oraz w zadaniu cyklicznym.
W konfiguracji akcji można korzystać ze składni smart numbers oraz wartości z kontekstu formularza, z którego wykonano akcję.
W związku z wykrytym problemem z wydajnością akcji importu przy włączonej obsłudze ACL zaleca się, aby import dużej ilości dokumentów wykonywać w paczkach jako zadanie cykliczne.
Logi serwisowe
Rozszerzono funkcjonalność logów serwisowych o logowanie komunikatów o błędach wyświetlanych w okienkach wyskakujących (alertify) podczas pracy użytkownika w aplikacji FrontSPA. Logowane są również dodatkowe opisy błędów, o ile występują.
Wtyczka Outlook
Wprowadzono zmiany w działaniu wtyczki nAxiom do Outlooka. Dodano przycisk wylogowania użytkownika oraz obsługę uprawnień ACL. Dodatkowo zmieniono wersję w pliku manifest na 1.1.0.0 oraz poprawiono problemy z korzystaniem z wtyczki w niektórych środowiskach Office365.
Podpis elektroniczny
Dostosowano funkcjonalność podpisu elektronicznego w nAxiom do nowej wersji API systemu eSign. W wyniku aktualizacji zmieniły się dostępne typy podpisów. Nowe typy to: 1 - QUALIFIED, 2 - SEAL, 3 - TRUSTED, 4 - PERSONAL, 5 - INNER, 6 - SEAL_INNER, 7 - SEAL_INNER_TRUSTED, 8 - SEAL_TRUSTED
Wprowadzone zmiany mogą powodować konieczność zmiany zdefiniowanych akcji podpisu elektronicznego.
Konfiguracja widoku listy
Rozszerzono zapisywaną konfigurację widoku listy o zmiany kolejności i szerokości kolumn.
Akcja powiadomień
Dodano obsługę akcji powiadomień dla przejść procesu biznesowego inicjowanych żądaniem do serwisu publicapi.
Logowanie formularzowe
Dodano obejście, które umożliwia zalogowanie się do witryny nAxiom na podstawie loginu i hasła z profilu użytkownika w nAxiom, w przypadku, kiedy skonfigurowano logowanie zewnętrzne z automatycznym przekierowaniem, a użytkownik nie dysponuje odpowiednimi poświadczeniami. W takiej sytuacji wymagane jest wpisanie adresu URL: https://adres_bazowy_naxiom/login
Logi migratora
Zoptymalizowano informacje logowane podczas importu aplikacji w migratorze.
Poprawki i usunięte błędy
Instalator jednoplikowy
W instalatorze jednoplikowym (advinstaller) poprawiono obsługę pola wyboru Uruchom platformę nAxiom po zakończeniu instalacji
wyświetlanego na końcowym ekranie instalatora. Jeśli ta opcja jest zaznaczona, po zakończeniu instalatora w przeglądarce jest wyświetlana strona zainstalowanej witryny nAxiom.
Logi systemowe
Dodano automatyczne filtrowanie wpisów na stronie Logi aplikacji
w aplikacji AdminSPA wg identyfikatora tenanta.
Usuwanie definicji dokumentu
Poprawiono błędne zachowanie podczas usuwania definicji dokumentu biznesowego. Problem dotyczył sytuacji, w której dla jednego modelu danych (tabeli) utworzono dwie definicje dokumentu biznesowego. Usunięcie jednej z tych definicji powodowało usunięcie obu funkcji tabelarycznych tworzonych dla widoku listy.
Migrowanie akcji globalnych/lokalnych
Poprawiono działanie migratora w przypadku, gdy w importowanej aplikacji zmieniono przypisane w formularzu akcje lokalne na akcje globalne o takiej samej nazwie.
Przycisk komentarzy
Poprawiono działanie przełącznika Pole widoczne w wersji mobilnej
dla przycisku komentarzy.
Parametry na podglądzie raportu
Poprawiono działanie sekcji podglądu raportu. Obecnie parametry raportu wyświetlają się poprawnie także w przypadku, kiedy na formularzu jest kilka sekcji podglądu raportu.
Sekcja załączników
Poprawiono działanie sekcji załączników w przypadku próby jednoczesnego dodania wielu załączników.
Akcja interesariuszy
Poprawiono sposób wykonywania akcji przypisywania interesariuszy użytej jako akcja wykonywana po przejściu do pierwszego statusu (podczas pierwszego zapisu nowego dokumentu) w przypadku, gdy dodano jednocześnie użytkowników w kontrolce interesariuszy. Ponadto poprawiono obsługę akcji odświeżania uprawnień używanej na przejściach diagramu procesów razem z innymi akcjami backendowymi (np. akcją przypisywania interesariuszy).
Jeśli akcja przypisywania interesariuszy jest wykonywana jako akcja po zmianie statusu, konieczne jest użycie wraz z nią akcji odświeżania uprawnień, aby użytkownicy przypisani do kategorii interesariuszy mieli odpowiednie uprawnienia.
Log serwisowy
Poprawiono wyświetlanie informacji o rodzaju środowiska w logu serwisowym w aplikacji FrontSPA.
Kolumna Termin
Poprawiono błąd w obliczaniu czasu po upływie terminu wyświetlanego w kolumnie Termin w widoku listy (dla opcji Po terminie
> “[HH:mm] temu”
na karcie Ogólne
).
Akcja otwierania formularza
Zmieniono sposób walidacji zmiennych wskazujących identyfikator instancji dokumentu w akcji otwierania formularza, w ten sposób, że dodano wyjątek dla zmiennych, w których parametr jest pisany małą literą, np. dla zmiennej używanej w sekcji harmonogramu ({@KodSekcjiHarmonogramu_SelectedEvent.id}).
Ponadto dodano wyświetlanie komunikatu o błędzie w przypadku błędu walidacji.
Lista definicji dokumentów
Przywrócono działanie funkcji filtrowania na liście definicji dokumentów biznesowych w AdminSPA.
Akcja komunikatów
Usunięto błąd w akcji komunikatów, powodujący nieprawidłowe wyświetlanie komunikatu, w którego treści lub tytule występował ukośnik (/) lub myślnik (-).
Ustawienia dostępności sekcji
Usunięto błąd w funkcji Ustawienia dostępności sekcji
, który powodował, że zapytanie SQL (Ustawienia zaawansowane
) nie nadpisywało ustawień z sekcji Ustawienia wyświetlania
i Wprowadzanie danych
, gdy przełącznik Sekcja widoczna
był wyłączony.
Zapis wartości ustalonej
Usunięto błąd zapisu wartości ustalonej (listy rozwijane) występujący w przypadku, kiedy akcja zapisu rekordu była uruchamiana w transakcji z innymi akcjami.
Widok listy we FrontSPA
Usunięto błąd, który powodował, że po przeciągnięciu kolumny listy w inne miejsce widok listy przestawał reagować (np. nie można było go odświeżyć).
Kreator formularza (drzewo elementów)
Usunięto błąd, który powodował, że w niektórych sytuacjach nie działał zapis zmian definicji formularza dokonywanych w kreatorze formularza (drzewo elementów).
TaskService
Usunięto problem, który powodował zawieszanie się serwisu taskservice w przypadku niepoprawnej konfiguracji zadań wykonywanych przez ten serwis.
Szablony uprawnień ACL
Usunięto problem, który powodował, że zmiana uprawnionego w szablonie uprawnień z interesariusza na inny rodzaj nie była prawidłowo wykonywana, co skutkowało błędnym działaniem samych uprawnień.
Uprawnienia ACL formularza
Usunięto problemy z zapisem uprawnień formularza w pamięci cache aplikacji, które powodowały, że uprawnienia nie były poprawnie odczytywane w przypadku operacji na formularzu wykonywanych przez żądania do publicapi.
Kreator widoku listy
Zmieniono zachowanie kreatora widoku listy po zapisaniu zmian. Obecnie element widoku, dla którego dokonano zmian, pozostaje po zapisie podświetlony w drzewie elementów listy.
Przyciski na formularzu
Wyłączono mechanizm zamiany przycisków w nagłówku formularza w listę przycisków dla przypadku, kiedy jest tylko jeden przycisk.
Listy hierarchiczne
Zmieniono sposób pobierania danych do widoków list w celu eliminacji problemów z wyświetlaniem list hierarchicznych.
Informacje o wersji (fix) 1.11.0.1 z dn. 17-05-2023
Poprawki i usunięte błędy
Sekcja kalendarza
Poprawiono błąd, który powodował zerowanie kontekstu formularza przy pierwszym wejściu w zdarzenie w sekcji kalendarza. Uniemożliwiało to przekazywanie wartości do formularza zdarzenia z kontrolki na innej sekcji formularza.
Informacje o wersji (wersja) 1.11.0.0 z dn. 09-05-2023
Nowe i zmodernizowane funkcje
Obsługa wielu tenantów
Wprowadzono obsługę trybu multitenancy. W tym trybie z jednej witryny nAxiom może korzystać kilku tenantów (osobnych organizacji).Każdy z tenantów korzysta z własnej instancji bazy danych, co zapewnia separację i bezpieczeństwo. Tenantami zarządza administrator tenantów, używając nowej aplikacji frontonowej TenantAdminSPA dostępnej pod adresem https://bazowy-adres-naxiom/tenantsadmin/.
Tenanci łączą się z witryną nAxiom, używając adresu URL https://przedrostek-tenanta.bazowy-adres-naxiom, gdzie przedrostek-tenanta to definiowany indywidualnie dla każdego tenanta ciąg znaków. Dla pierwszego tenanta ten przedrostek może być pusty.
Podczas instalacji nowej witryny nAxiom tworzony jest login i baza danych administratora tenantów oraz login i baza danych pierwszego tenanta. W przypadku aktualizacji witryny z wersji nAxiom wcześniejszej niż 1.11, pierwszy tenant jest tworzony na podstawie dotychczasowej konfiguracji. Szczegóły instalacji opisano w Przewodniku instalacji dołączonym do niniejszych informacji o wersji.
W związku z wprowadzonymi zmianami nie jest już możliwa konfiguracja witryny, w której poszczególne serwisy nAxiom korzystały z różnych baz danych. Podczas aktualizacji parametry połączenia z bazą danych dla pierwszego tenanta są pobierane z pliku appsettings.json serwisu api.
Z uwagi na specyfikę implementacji funkcjonalności OCR jest ona dostępna tylko dla pierwszego tenanta. Trwają prace nad rozwiązaniem, które zapewni dostęp do tej funkcjonalności wszystkim tenantom.
Obecne wdrożenia produkcyjne nAxiom po aktualizacji do wersji 1.11 mogą działać bez zasadniczych zmian w konfiguracji z jednym tenantem (tryb single tenant).
Obsługa wielu tenantów, w tym aplikacja TenantAdminSPA, zostanie szczegółowo opisana w osobnej dokumentacji, która jest obecnie w trakcie opracowywania.
Modernizacja instalatora
W związku z wprowadzeniem obsługi wielu tenantów zmodernizowano instalator nAxiom. Najważniejsze zmiany to dodanie kroku konfiguracji administratora tenantów oraz kroku konfiguracji pierwszego tenanta. Poza tym w instalatorze uwzględniono zmienione zasady przechowywania plików statycznych (brak możliwości dowolnego definiowania repozytoriów plikowych przez tenantów w nowych instalacjach) oraz szereg innych zmian, które szczegółowo opisano w Przewodniku instalacji dołączonym do niniejszych informacji o wersji.
W przypadku aktualizacji środowiska nAxiom pierwszy tenant jest powoływany automatycznie na podstawie ustawień z plików appsettings.json poszczególnych serwisów. Nie jest obsługiwana aktualizacja witryny, w której poszczególne serwisy korzystały z różnych baz danych.
Obsługa wielu tenantów wymusza użycie certyfikatu typu wildcard, który zabezpieczy domenę główną środowiska nAxiom wraz z poddomenami dla indywidualnych tenantów. Taki certyfikat nie będzie konieczny w przypadku korzystania z nAxiom w trybie single tenant, kiedy przedrostek URL dla tenanta będzie pusty.
Konteneryzacja nAxiom
Zakończono prace nad konteneryzacją platformy nAxiom, Od bieżącej wersji udostępniamy nAxiom jako zestaw obrazów Docker dla systemów Linux. Dzięki temu możliwe jest wdrożenie nAxiom w chmurze jako zestaw kontenerów w klastrze Kubernetes (lub podobnej platformy orkiestracji kontenerów). Konteneryzacja w połączeniu z obsługą wielu tenantów pozwala zaliczyć nAxiom do platform low-code klasy Enterprise.
Z uwagi na specyfikę implementacji niektórych funkcjonalności nie są one dostępne w skonteneryzowanej wersji nAxiom. Są to raporty Crystal Reports, moduł OCR i moduł ePUAP.
Więcej informacji o tej funkcjonalności zawiera artykuł Wdrożenie nAxiom z obrazów Docker załączony do niniejszych informacji o wersji.
Tryb serwisowy
Dodano nową funkcjonalność o nazwie Tryb serwisowy. Umożliwia ona rejestrowanie oraz podgląd zdarzeń wywoływanych w aplikacji FrontSPA w obrębie formularza.
Funkcję może włączyć użytkownik FrontSPA, który będzie miał odpowiednie uprawnienie PBA. Przełącznik Tryb serwisowy
jest dostępny w menu wyświetlanym po kliknięciu nazwy użytkownika. Dodatkowo w menu jest dostępne polecenie Log serwisowy
, które wyświetla okno z zarejestrowanymi zdarzeniami oraz opcjami konfiguracji.
Logowane są trzy kategorie zdarzeń:
- USER: inicjowane przez użytkownika,
- SYSTEM: inicjowane przez system,
- ERROR: błędy.
Obecnie rejestrowane są następujące rodzaje zdarzeń:
- pobranie definicji formularza
- ustawienie kontekstu dla formularza
- wyświetlenie formularza
- odświeżenie formularza
- aktualizacja kontekstu formularza
- uruchomienie skryptu zmiany kontekstu na formularzu
- zdarzenia OnChange, OnClick, OnLeave na kontrolkach
- akcje JavaScript na zdarzeniach OnChange, OnClick, OnLeave
- ustawienie zależności na kontrolkach
- kliknięcie przycisku
- wywołanie akcji
- dodanie, usunięcie i wyświetlenie podglądu załącznika
- kliknięcie pozycji w menu użytkownika
Funkcja rejestruje wyłącznie zdarzenia wyzwalane w aplikacji FrontSPA. Zdarzenia wyzwalane przez żądania API nie są rejestrowane.
Odświeżenie strony w przeglądarce powoduje wyłączenie przełącznika
Tryb serwisowy
.
Uprawnienia PBA dla trybu serwisowego
W związku z dodaniem nowej funkcjonalności Tryb serwisowy, dodano nowe uprawnienia w sekcji Konfiguracja systemu
:
-
Tryb serwisowy
: umożliwia włączanie/wyłączanie trybu serwisowego, -
Tryb serwisowy - podgląd szczegółów
: umożliwia wyświetlanie szczegółów zalogowanych zdarzeń.
Zmiana w instalatorze
Zmodyfikowano działanie instalatora w ten sposób, że obecnie nie zatrzymuje już on serwera IIS podczas instalowania/aktualizacji witryny. Zatrzymywana jest jedynie sama witryna i jej pule aplikacji. Dzięki temu instalacja nAxiom nie wstrzymuje działania innych aplikacji udostępnianych na serwerze IIS.
Ta zmiana nie umożliwia równoległej instalacji kilku witryn nAxiom.
Rozszerzenie zakresu logowania informacji
Rozszerzono zakres logowanych informacji dla serwisów api, publicapi, mobileapi i taskservice. Nowe pola danych w logach to:
-
Użytkownik
: id zalogowanego użytkownika (jeśli dostępne), -
Identyfikator żądania HTTP
: unikalny identyfikator pozwalający łączyć wiele informacji zalogowanych w obrębie jednego żądania obsługiwanego przez system.
Nowe pole w szczegółach wyjątku:
-
Informacje szczegółowe
: dane wejściowe przekazane do wykonania danej operacji, zapisane w formacie JSON (pole uzupełniane wyłącznie dla poziomu ERROR).
Dodatkowo pole Parametry systemowe
będzie uzupełniane w większej liczbie przypadków.
Generator dokumentacji
Zmieniono sposób przechowywania szablonów użytkownika do generowania dokumentacji (AdminSPA > POMOC
> Generator dokumentacji
). Obecnie będą one zapisywane w bazie danych.
Zmiana wymaga ponownego wczytania własnego szablonu dokumentacji. Można to wykonać, klikając w przycisk
Nadpisz
na ekranieGenerator dokumentacji
i wskazując następujący plik:
folder_instalacyjny_naxiom\syncfusion\Assets\word_templates\documentation_template_custom.docx.
Maksymalny rozmiar załącznika
W Przewodniku instalacji i Leksykonie nAxiom dodano informację, o tym, że maksymalny rozmiar załącznika w nAxiom zależy od wartości ustawienia Maksymalna dozwolona długość zawartości (w bajtach)
dostępnego w programie Menedżer internetowych usług informacyjnych (IIS). Aby skonfigurować ten parametr, należy kliknąć dwukrotnie funkcję Filtrowanie żądań
, a następnie kliknąć polecenie Edytuj ustawienia funkcji
w menu z prawej strony. W wyświetlonym oknie dialogowym należy wpisać żądaną wartość parametru. Parametr można zdefiniować dla wszystkich witryn na poziomie serwera (hosta) lub indywidualnie dla każdej witryny.
Poprawki i usunięte błędy
Nagłówek formularza
Zmieniono sposób ładowania danych do komponentu nagłówka formularza, eliminując opóźnione doczytywanie danych po wyświetleniu formularza.
JS dla zmiany kontekstu formularza
Usunięto problem, który powodował, że nie można było zmienić wartości w kontekście formularza za pomocą instrukcji JavaScript w polu Skrypt dla zmiany kontekstu formularza
.
Akcja Zapisz rekord
Poprawiono przeliczanie uprawnień ACL w przypadku zapisu dokumentu za pomocą akcji Zapisz rekord
bez włączonego przełącznika Odśwież formularz po zapisie
. Po zmianach zapisanie dokumentu powoduje przeliczenie uprawnień ACL dla bieżącego dokumentu oraz odświeżenie nagłówka formularza z danymi o statusie i przejściach.
Sekcje załączników i podglądu załączników
Poprawiono działanie sekcji załączników i podglądu załączników. Obecnie dodawane załączniki są ustawiane w sekcji załączników chronologicznie według czasu ich dodania. Prawidłowo działa także przełącznik Pokaż najstarszy
w sekcji podglądu załączników.
Instalator
Wprowadzono zmianę w instalatorze. Obecnie podczas instalacji w pliku appsettings.json serwisu taskservice w sekcji AppConfiguration jest dodawany wpis IdentityServerUrl.
Migracja akcji WebServices
W migratorze aplikacji usunięto problem, który uniemożliwiał powtórny import aplikacji zawierających akcje WebServices.
Migracja procedur składowanych
W migratorze aplikacji dodano funkcję aktualizacji procedury składowanej. W razie wykrycia w bazie docelowej procedury o tej samej nazwie, migrator usunie ją, a następnie utworzy w wersji zaktualizowanej na podstawie definicji ze źródłowej bazy danych.
Style przycisków
Usunięto problem, który mógł powodować niewłaściwe stosowanie styli do przycisków na formularzu. Problem polegał na zduplikowanym identyfikatorze przycisków definiowanych na formularzu i na diagramie procesu.
Import tłumaczeń
Usunięto problem z importem tłumaczeń (AdminSPA > Tłumaczenia i pomoc
> Wczytaj z pliku
).
Dwukrotne logowanie
Usunięto problem który powodował, że w przypadku uwierzytelniania Windows w trybie incognito strona logowania była wyświetlana ponownie.
Zapis formularza
Usunięto błąd, który uniemożliwiał zapisanie definicji formularza po dodaniu kilku list wielowyboru.
Błędy w kontekście formularza
Usunięto błąd, który powodował, że po zmianie typu kontrolki z listy interesariuszy na inny w kontekście formularza pozostawały dane dotyczące interesariuszy i nie można było zapisać rekordu. Ponadto poprawiono angielskojęzyczną wersję komunikatów wyświetlanych przy powodzeniu i niepowodzeniu zapisu definicji formularza.
Sekcja typu prosta lista
Usunięto błąd, który powodował konieczność kilkukrotnego ponowienia próby zapisu ustawień sekcji typu prosta lista w definicji formularza.
Nieaktywny przycisk Zapisz
Usunięto błąd, który powodował dezaktywację przycisku zapisu definicji formularza po wejściu w edycję sekcji typu lista w kreatorze formularzy.
Wylogowanie z nAxiom
Poprawiono zachowanie witryny nAxiom po wylogowaniu w przypadku korzystania z Uwierzytelniania Windows. Obecnie po wylogowaniu jest wyświetlana ponownie strona logowania.
Wyświetlanie sekcji typu lista
Poprawiono wyświetlanie sekcji typu lista w przypadku, gdy w danej kolumnie formularza są dwie takie sekcje i pierwsza z nich jest ukryta przez warunek widoczności.
Eksport do pliku Excel
Poprawiono sposób generowania danych w formacie JSON na potrzeby akcji eksportu do pliku Excel. Obecnie akcja nie powinna obciążać procesora ani powodować zawieszenia działania aplikacji, nawet dla bardzo dużej liczby eksportowanych rekordów.
Zależności kontrolek
Poprawiono działanie funkcji zależności kontrolek. Problem występował, w przypadku, gdy dana kontrolka miała dwie kontrolki nadrzędna (jedna sterująca widocznością i druga filtrująca wartości) — zmiana wartości w kontrolce filtrującej powodowała wyświetlenie kontrolki zależnej. Po zmianach problem ten nie występuje.
Problem z zapisem formularza
Poprawiono błąd, który uniemożliwiał zapisanie definicji formularza po przeciągnięciu kolumny z sekcją typu prosta lista do nowego wiersza formularza.
Informacje o wersji (hotfix) 1.10.1.3 z dn. 19-04-2023
Nowe i zmodernizowane funkcje
Terminy w dniach roboczych
W aplikacji WorkflowSPA, we właściwościach bloków rozbudowano funkcjonalność Termin dla kroku procesu
o możliwość wyliczania daty terminu z uwzględnieniem tylko dni roboczych. Odpowiada za to pozycja Licz tylko dni robocze
dostępna na liście rozwijanej z opcjami wyliczania daty terminu.
Ta sama opcja jest także dostępna w oknie konfiguracji eskalatorów.
Używając dostępnych opcji dla daty terminu i daty eskalatora, konsultant może określić, czy data terminu i data eskalatora może przypadać w dni wolne od pracy, czy tylko w dni robocze. W przypadku, gdy data wypada w dzień wolny można dodatkowo określić, czy ma zostać przeliczona na ostatni dzień roboczy przed dniem wolnym, czy na pierwszy dzień roboczy po dniu wolnym.
Przykładowe kombinacje:
- Termin:
Licz tylko dni robocze
+ Eskalator:Dokładnie w dacie terminu kalendarzowego
- gdy termin wypada w poniedziałek, a eskalator to -P1D, powiadomienie przychodzi w niedzielę
- gdy termin wypada w piątek, a eskalator to P1D, powiadomienie przychodzi w sobotę
- Termin:
Licz tylko dni robocze
+ Eskalator:Licz tylko dni robocze
- gdy termin wypada w poniedziałek, a eskalator to -P1D, powiadomienie przychodzi w piątek
- gdy termin wypada w piątek, a eskalator to P1D, powiadomienie przychodzi w poniedziałek
- Termin:
Dokładnie w dacie terminu kalendarzowego
+ Eskalator:Dokładnie w dacie terminu kalendarzowego
- gdy termin wypada w niedzielę, a eskalator to -P1D, powiadomienie przychodzi w sobotę
- gdy termin wypada w sobotę, a eskalator to P1D, powiadomienie przychodzi w niedzielę
- Termin:
Dokładnie w dacie terminu kalendarzowego
+ Eskalator:Licz tylko dni robocze
- gdy termin wypada w niedzielę, a eskalator to -P1D, powiadomienie przychodzi w piątek
- gdy termin wypada w sobotę, a eskalator to P1D, powiadomienie przychodzi w poniedziałek
Dodatkowo, konsultant może definiować interwał dla terminu lub eskalatora, zależnie od godziny rozpoczęcia odliczania za pomocą SQL. Poniżej przedstawiono przykład:
declare @myDatetime as datetime2
declare @myTime as time
set @myDatetime = '2023-04-16 14:30:00'
-- select @myDatetime as 'myDatetime'
-- select DATEPART(weekday, @myDatetime) as 'weekday'
-- select CONVERT(time, @myDatetime) as 'my custom convert time'
select case
when ( DATEPART(weekday, @myDatetime) between 2 and 6)
and ( ( CONVERT(time, @myDatetime) > (CONVERT(time, '08:00:00'))
and CONVERT(time, @myDatetime) <= CONVERT(time, '15:00:00') ) )
then 'PT2H'
-- W TRYBIE DNI ROBOCZYCH będzie to bieżący dzień roboczy,
-- godz. między 10:00 a 17:00.
when ( DATEPART(weekday, @myDatetime) between 2 and 6)
and ( ( CONVERT(time, @myDatetime) > (CONVERT(time, '15:00:00'))
and CONVERT(time, @myDatetime) < CONVERT(time, '17:00:00') ) )
then 'PT17H'
-- W TRYBIE DNI ROBOCZYCH będzie to następny dzień roboczy,
-- godz. między 8:00 a 10:00.
when ( DATEPART(weekday, @myDatetime) between 2 and 6)
and ( ( CONVERT(time, @myDatetime) > (CONVERT(time, '17:00:00'))
or CONVERT(time, @myDatetime) < CONVERT(time, '08:00:00') ) )
then 'cases after working day and during night'
-- ustawienia co ma się dziać gdy zgłoszenie przechodzi na status w nocy
when ( (DATEPART(weekday, @myDatetime) = 6)
and ( CONVERT(time, @myDatetime) >= (CONVERT(time, '17:00:00'))
and CONVERT(time, @myDatetime) < (CONVERT(time, '18:00:00')) ) )
then 'PT15H'
-- W TRYBIE DNI ROBOCZYCH obsługa końca PIĄTKU
-- i ustawienie czasu na początku kolejnego dnia roboczego
when ( DATEPART(weekday, @myDatetime) = 7 )
then 'weekend - sobota'
-- W TRYBIE DNI ROBOCZYCH obsługa soboty
when ( DATEPART(weekday, @myDatetime) = 1 )
then 'weekend - niedziela'
-- W TRYBIE DNI ROBOCZYCH obsługa niedzieli
end
Listy wielowyboru
W kontrolce listy wielowyboru i kontrolce interesariuszy dodano opcję Zaznacz wszystko
. Opcja jest widoczna u dołu listy, po jej rozwinięciu. Kliknięcie opcji powoduje zaznaczenie wszystkich pozycji na liście wielowyboru. Po kliknięciu opcja zmienia się w opcję Odznacz wszystko
; kliknięcie tej opcji anuluje zaznaczenie wszystkich pozycji na liście wielowyboru.
W kolejnej wersji poprawione zostaną drobne problemy z renderowaniem tej opcji, które jednak nie mają wpływu na działanie kontrolki.
Poprawki i usunięte błędy
Synchronizacja z serwerem LDAP
Usunięto problem z dodawaniem zadania synchronizacji z serwerem LDAP jeśli w pliku konfiguracji appsettings.json serwisu taskservice klucz UserSettings w sekcji OpenLDAPConf był pusty ("UserSettings": null,
lub "UserSettings": [],
).
Informacje o wersji (hotfix) 1.10.1.2 z dn. 14-04-2023
Nowe i zmodernizowane funkcje
Okres eskalatora
W definicji zapytania dla okresu eskalatora dodano obsługę parametrów z kontekstu formularza. W zapytaniach obsługiwane są także parametry “systemowe” (_Id, _FormId, _BusinessDocDefId, _UserId, _LangId, _MobileMode), z wyjątkiem eskalatorów definiowanych dla pierwszego statusu (Utworzony). W przyszłości planowane jest rozszerzenie tej funkcjonalności także na pierwszy status.
Zmieniono także moment, w którym zwrócony przez zapytanie ciąg znaków zgodny z ISO 8601 (np. PT1H15M) jest przeliczany na sekundy. Obecnie odbywa się to w momencie zmiany statusu dokumentu, dzięki czemu jest dostępny kontekst formularza. W związku z tym nie ma obecnie możliwości ostrzeżenia konsultanta, że ustawiony okres eskalatora jest krótszy niż okres sprawdzania eskalatorów (Ustawienia systemu
> Eskalatory
> Częstotliwość sprawdzania listy eskalatorów do wysyłki
), co może spowodować wysłanie eskalatora po wyznaczonym czasie, w szczególnym przypadku wysłanie eskalatora przypominającego o terminie po upływie tego terminu.
Alternatywne identyfikatory LDAP
W konfiguracji integracji z usługami katalogowymi dodano możliwość wskazania atrybutu identyfikującego użytkownika innego niż domyślny (Ustawienia systemu
> LDAP
> Nazwa identyfikatora użytkownika
). Wartości domyśle to sAMAccountName (Typ połączenia LDAP
= ActiveDirectory) albo uid (Typ połączenia LDAP
= OpenLDAP). Zmianę wprowadzono, aby umożliwić korzystanie z innych loginów użytkowników niż w usługach katalogowych oraz zapewnić poufność w przypadku, gdy standardowy login ujawnia dane osobowe, np. PESEL.
Dla wszystkich użytkowników na sewerze LDAP użytkownik musi mieć przypisaną wartość we wskazanym atrybucie i te wartości muszą być unikalne. W przeciwnym razie synchronizacja użytkowników z usługami katalogowymi nie powiedzie się. Także podanie loginu, który jest już używany, podczas dodawania użytkownika w nAxiom spowoduje wyświetlenie komunikatu o błędzie.
Nowe opcje dla daty terminu i eskalatora
Dla terminu kroku procesu oraz eskalatora dodano możliwość uwzględniania sytuacji, kiedy koniec określonego interwału przypada w dzień wolny od pracy. Konsultant może wybrać w takiej sytuacji, że termin zostanie przeliczony na:
- ostatni dzień roboczy przed terminem
- pierwszy dzień roboczy po terminie
- nie będzie przeliczany (ustawienie domyślne)
W związku z tą zmianą dodano tabelę systemową core.NonWorkingDays, w której należy podać daty dni wolnych (kalendarz świąt). Zależnie od decyzji organizacji, utrzymanie kalendarza świąt może odbywać się z użyciem własnej funkcjonalności udostępnionej w aplikacji FrontSPA lub przez bezpośredni import do tabeli w bazie danych. W najbliższej wersji planowane jest dodanie opcji podawania okresów dla terminów i eskalatorów w dniach roboczych.
Usuwanie powiadomień
W panelu powiadomień w aplikacji FrontSPA dodano funkcję usuwania powiadomień przeczytanych.
Poprawki i usunięte błędy
Zapis uprawnień formularza
Zmodyfikowano sposób zapisu zmian uprawnień formularza w celu skrócenia czasu tej operacji. Obecnie w logach bezpieczeństwa dokonywany jest jeden wpis informujący globalnie o zmianach w tabelach core.ACLFormTemplateEntryField i core.ACLFormTemplateEntrySection.
JavaScript dla zmiany kontekstu formularza
Usunięto błąd w działaniu funkcji JavaScript (Formularze
> Edycja
> Akcje formularza
> Skrypt dla zmiany kontekstu formularza
). Błąd powodował, że zmiana atrybutu isActive dla pola lub sekcji z false na true była ignorowana.
Zgodność z SQL Server 2016
Przywrócono kompatybilność nAxiom z SQL Server 2016 i 2017. Problem ze zgodnością pojawił się w wyniku aktualizacji biblioteki Telerik w wersji nAxiom 1.10.1 ze względu na użycie w skryptach SQL opcji wprowadzonej w SQL Server 2019.
Brak uprawnień do dokumentu
Poprawiono zachowanie systemu w przypadku próby otwarcia w formularzu (w trybie dialog lub okno) instancji dokumentu, do którego użytkownik nie ma uprawnień. Obecnie w takiej sytuacji nie jest już wyświetlany pusty formularz, tylko komunikat o braku uprawnień.
Algorytm C# w zadaniach cyklicznych
Poprawiono błąd połączenia z bazą danych z akcji C# występujący w przypadku, gdy jednocześnie wywoływano kilka takich akcji (np. w zadaniach cyklicznych)
Przycisk Pobierz przełożonych z LDAP
Usunięto problem, który powodował, że pomimo posiadania odpowiedniego uprawnienia PBA, przycisk Pobierz przełożonych z LDAP
na liście użytkowników był niewidoczny.
Informacje o wersji (hotfix) 1.10.1.1 z dn. 04-04-2023
Nowe i zmodernizowane funkcje
Akcja interesariuszy
Rozbudowano akcję przypisywania interesariuszy o możliwość przypisania użytkownika do kategorii interesariuszy dla wskazanych instancji dokumentów w ramach dowolnej definicji dokumentu. Obecnie w definicji zapytania SQL dla akcji można określić wartości w kolumnach BusinessDocId i InstanceId. Jeśli zapytanie nie zwróci tych kolumn lub dla obu zwróci wartość null, użytkownik zostanie przypisany do kategorii interesariuszy dla bieżącej instancji dokumentu.
Kategoria interesariuszy musi należeć do wskazanej definicji dokumentu. W przeciwnym razie podczas zapisu zostanie zgłoszony błąd. Podobnie, jeśli tylko jedna z nowych kolumn zwróci wartość null. Akcje zdefiniowane we wcześniejszych wersjach będą działać bez zmian.
Akcji przypisywania interesariuszy można używać na formularzu i na przejściach w diagramie procesu. Aby przeliczyć uprawnienia odpowiednio do zmian interesariuszy, należy użyć akcji odświeżania uprawnień. (System przelicza uprawnienia w trakcie przejścia na diagramie procesu, ale robi to tylko dla bieżącej instancji dokumentu).
Akcja raportowanie, format HTML
W akcji Raportowanie dodano możliwość wyeksportowania raportu w formacie HTML (jeden plik). W tym formacie można eksportować szablony raportów, które nie zawierają obiektów innego typu niż TextBox, HTMLTextBox, Barcode, Table i CrossTab.
Warunek wykonania przejścia
We właściwościach przejść na diagramie procesu dodano przełącznik Uwzględnij także warunek wyświetlania przycisku
. Domyślnie jest on włączony i powoduje, że wykonanie przejścia (w tym akcji przed i po) wymaga spełnienia, zarówno warunku wyświetlania przycisku, jak i warunku wykonania przejścia (odpowiada dotychczasowemu działaniu). Po wyłączeniu przejście może zostać wykonane także wtedy, kiedy warunek wyświetlania przycisku przejścia nie jest spełniony.
Podgląd załącznika
W sekcji podglądu załącznika dodano obsługę formatu tekstowego.
Funkcja RefreshDropDownControl
Rozszerzono działanie funkcji JavaScript RefreshDropDownControl(KodKontrolki) na listy wielowyboru.
Poprawki i usunięte błędy
Usuwanie typu dokumentu
Zmieniono treść komunikatu o błędzie wyświetlanego podczas próby usunięcia typu dokumentu, który został przypisany instancjom tego dokumentu.
Uprawnienia formularza
W uprawnieniach formularza dodano obsługę przycisków umieszczanych w nagłówkach sekcji formularza oraz poprawiono obsługę przycisków umieszczanych w nagłówkach i treści sekcji różnego typu. Zmiany nie dotyczą przycisków do edycji inline w sekcji typu lista.
Sekcja załączników
W sekcji załączników zmieniono sposób wyświetlania informacji o załączonych plikach.
Lista wyboru, wartość ustalona
W funkcji wartości ustalonej dodano obsługę przypadków, kiedy lista wyboru z wartością ustaloną jest filtrowana przez inną listę wyboru przy użyciu funkcji zależności kontrolki. W takim przypadku wartość ustalona będzie wyświetlana także wtedy, kiedy filtrowanie usunie ją ze zbioru wartości listy.
Lista wyboru
Poprawiono zachowanie listy wyboru w sytuacji, kiedy wartość na liście została wybrana po wcześniejszym odfiltrowaniu pozycji listy (przez wpisanie pierwszych znaków żądanej pozycji). Obecnie w takiej sytuacji po ponownym rozwinięciu listy są widoczne wszystkie pozycje.
Eskalatory, konfiguracja adresatów
Poprawiono błąd, który uniemożliwiał zapis zapytania SQL zawierającego zmienną typu {@NazwaPola} w konfiguracji adresatów dla eskalatorów.
Zależności sekcji, tablica Selected
Poprawiono błąd, który powodował, że po zmianie strony w widoku listy zaznaczenie innego rekordu nie powodowało aktualizacji tablicy zaznaczeń w kontekście formularza. Problem dotyczył trybu Pojedyncza selekcja
.
Zależności sekcji, warunek zależności
Poprawiono błąd wyświetlania ikony operacji w toku podczas ładowania sekcji typu lista, zależnej od rekordu zaznaczonego w innej sekcji typu lista.
Migracja tłumaczeń
Usunięto problem z migracją tłumaczeń, który objawiał się tym, że po zaimportowaniu aplikacji, w innych aplikacjach w środowisku docelowym, w aplikacji FrontSPA zamiast nazw w interfejsie użytkownika były wyświetlane identyfikatory GUID.
Migrator aplikacji, porównywanie konfiguracji
Tymczasowo wyłączono funkcję porównywania konfiguracji w migratorze aplikacji ze względu na błędy podczas porównywania. Błędy te nie mają wpływu na sam proces migracji. Funkcja porównywania konfiguracji zostanie poprawiona w kolejnej wersji.
Blok decyzyjny, konstruktor zapytania
Poprawiono błąd w konstruktorze zapytania do wyboru przejścia w bloku decyzyjnym.
Instalator, zmiany konfiguracji IIS
Zwiększono limit czasu dla operacji zapisu zmian wprowadzanych przez instalator na serwerze IIS. Ma to na celu zminimalizowanie ryzyka wystąpienia błędu uniemożliwiającego zapis zmian konfiguracji serwera IIS podczas aktualizacji aplikacji.
Informacje o wersji (patch) 1.10.1 z dn. 21-03-2023
Nowe i zmodernizowane funkcje
Modernizacja funkcji Mail monitor
Rozbudowano funkcję Mail Monitor (menu back office > INTEGRACJE
> Monitoring poczty e-mail
). Wprowadzono następujące zmiany:
- Dodano obsługę skrzynek pocztowych IMAP (Base64), Microsoft Graph (OAuth2.0 ClientCredentials), Microsoft Exchange Service (BasicAuthentication, OAuth2.0 ClientCredentials, OAuth2.0 Password).
- Na liście mail monitorów dodano flagę aktywności poszczególnych konfiguracji.
- Dodano parametr umożliwiający zapisanie wiadomości w formacie eml.
- Dodano możliwość określenia monitorowanego folderu.
- Dodano obsługę akcji Algorytm C# w akcjach na karcie
Postproces
.
Szczegółowy opis nowej funkcjonalności zawiera Leksykon nAxiom.
Wartość domyślna w definicji tabeli
Zmieniono sposób definiowania pól tabeli w kreatorze modeli danych oraz dodano możliwość zdefiniowania wartości domyślnej dla pola. Pozwoli to dodawać nowe pola z włączoną flagą Wymagane
do tabel, które już zawierają dane. Dla istniejących rekordów te pola zostaną wypełnione wartością domyślną.
W przypadku danych typu tekstowego oraz daty i czasu wartości domyślne muszą być ujęte w apostrofy, np. ‘Nie dotyczy’.
Ta funkcja jest niezależna od wartości domyślnej definiowanej w kontrolkach na formularzu. Wartości domyślne z formularza będą wyświetlane na formularzu nowego dokumentu.
Optymalizacja synchronizacji z usługami katalogowymi
Znacząco zoptymalizowano proces synchronizacji kont użytkowników z serwerem usług katalogowych oraz dodano obsługę serwerów OpenLDAP. Ponadto wyeliminowano zakłócenia powodowane przez proces synchronizacji w wysyłce powiadomień e-mail.
W ramach zadania:
- Dodano nowe parametry:
- W konfiguracji połączenia LDAP w
Ustawienia systemu
>LDAP
dodano nowy parametrTyp połączenia LDAP
z dostępnymi wartościamiActiveDirectory
iOpenLDAP
. - W konfiguracji synchronizacji z LDAP dodano parametr LdapType z dostępnymi wartościami ActiveDirectory i OpenLDAP.
- Wartość ActiveDirectory jest wartością domyślną.
- W konfiguracji połączenia LDAP w
- Wyeliminowano konieczność używania przedrostków LDAP:// lub LDAPS:// w parametrze
Ścieżka do serwera LDAP (LDAP Path)
` oraz w parametrze Path w konfiguracji synchronizacji z LDAP. - Zmodyfikowano mechanizm synchronizacji z LDAP w obrębie konfiguracji odstępów czasowych wykonywania synchronizacji. Poprzednio każda konfiguracja synchronizacji użytkowników (UserSettings) i ról (RoleSettings) posiadała własny parametr RepeatInterval podawany w sekundach. Różne odstępy czasu komplikowały ustalenie użytkowników do dezaktywowania. Obecnie parametr RepeatInterval został przeniesiony do sekcji wyżej to znaczy do OpenLDAPConf, co znacznie uprościło synchronizację.
- Dodano mechanizm pozwalający na mapowanie grup domenowych na wskazane role biznesowe. Mechanizm pozwala ograniczyć liczbę ról biznesowych w nAxiom. Mapowanie odbywa się w sekcji konfiguracji GroupsToRoleMapping w pliku appsettings.json usługi TaskService.
Przykład:
{
"OpenLDAPConf": {
(...)
"GroupsToRoleMapping": [
{
"RoleCode": "KIER",
"GroupNames": [
"Kierownik Produkcji",
"Kierownik Magazynu"
]
}
]
}
}
W parametrze RoleCode należy podać kod roli biznesowej nAxiom. W parametrze GroupNames należy podać listę nazw grup domenowych. Mechanizm spowoduje, że podczas synchronizacji nie utworzą się nowe role biznesowe na podstawie skonfigurowanych grup, natomiast użytkownicy przypisani do tych grup otrzymają zmapowaną rolę biznesową.
Zmiana obsługi szablonów
Zmieniono sposób przechowywania szablonów MS Word, MS Excel i Telerik na potrzeby obsługi przyszłych zmian związanych z obsługą wielu tenantów oraz uruchamianiem nAxiom z obrazów Docker. Obecnie szablony są przechowywane w bazie danych w tabelach TemplateFiles, ExcelTemplates, WordTemplates, ReportDefinitions i FileContent (wszystkie w schemacie core). Pliki szablonów zdefiniowane we wcześniejszych wersjach nAxiom są podczas aktualizacji przenoszone do bazy danych (nie dotyczy to zasobów dodanych w module Asset Manager w aplikacji Web Report Designer.
Aby uruchomić migrację szablonów raportów do bazy danych należy otworzyć dowolny szablon raportu w module Web Report Designer (AdminSPA >
NARZĘDZIA
>Szablony
>Szablony raportów
>Designer
). To spowoduje przeniesienie wszystkich szablonów z folderu na dysku do bazy danych. Dopiero wtedy raporty będą dostępne w aplikacji FrontSPA.
W związku z tymi zmianami:
- usunięto parametr
Miejsce zapisu na dysku
z sekcjiZałączniki
w ustawieniach systemowych, - usunięto opcje definiowania lokalizacji szablonów w instalatorze.
W kolejnym etapie planuje się obsługę różnych wersji językowych szablonów.
Ponadto, w ramach zadania zaktualizowano bibliotekę Progress® Telerik® Reporting z wersji R1 2022 SP1 (16.0.22.225) do wersji Reporting R3 2022 SP1 (16.2.22.1109). Opis zmian: https://www.telerik.com/support/whats-new/reporting/release-history. Jedną z nowych funkcjonalności jest wyszukiwarka w aplikacji Web Report Designer.
Uprawnienia interesariuszy
Wprowadzono następujące zmiany dotyczące akcji odświeżania uprawnień:
- akcja usuwa wpisy uprawnień dla użytkowników usuwanych z kategorii interesariuszy; usunięcie użytkownika z kategorii interesariuszy powoduje „odebranie” mu uprawnień przypisanych tej kategorii interesariuszy,
- akcja działa dla kategorii interesariuszy przypisanych do definicji dokumentu w modelu uproszczonym,
- akcja może być używana jako akcja przypisana do przycisków na formularzu oraz jako akcja wykonywana na przejściu workflow.
Należy pamiętać, że uprawnienia dla bieżącej instancji dokumentu są przeliczane zgodnie z bieżącą konfiguracją zarówno przez akcję odświeżania uprawnień, jak i podczas zmiany statusu (dokładnie pomiędzy akcjami wykonywanymi przed i po). Ponadto, przeliczane są tylko uprawnienia określone w szablonie instancji oraz dla bieżącego statusu. nAxiom nie przelicza uprawnień zdefiniowanych w szablonach statusów innych niż bieżący.
Migrowanie załączników do szablonów
Dodano możliwość migrowania załączników do szablonów email przechowywanych w repozytorium bazodanowym.
Pomoc kontekstowa do funkcji Mail monitor
W oknie dialogowym Dodawanie/Edytowanie mail monitora
dodano ikonę pomocy kontekstowej.
Okna edytora Monaco
Zmieniono sposób wyświetlania edytora Monaco (w tym okien edytora SQL) z myślą o optymalizacji obszaru do definiowania konfiguracji.
Poprawki i usunięte błędy
Zastępstwa i uprawnienia interesariuszy
W funkcjonalności zastępstw poprawiono obsługę uprawnień do formularza w przypadku, kiedy osoba zastępowana jest przypisana do kategorii interesariuszy dla danej instancji dokumentu biznesowego.
Zmienne środowiskowe - przykłady
Na karcie Zmienne
(Lista aplikacji
> Edycja definicji aplikacji
> Zmienne
) zaktualizowano przykłady odwołań do zmiennych środowiskowych przy użyciu składni smart numbers.
Tłumaczenia AdminSPA
Dodano tłumaczenie komunikatów wyświetlanych w aplikacji AdminSPA.
Blok HTML jako pole zależne
Poprawiono renderowanie zawartości kontrolki blok HTML ustawionej jako zależne pole formularza w konfiguracji listy wyboru.
Komunikaty w migratorze
Uaktualniono komunikaty wyświetlane podczas zapisu i usuwania pliku konfiguracji w migratorze aplikacji. Usunięto nadmiarowe komunikaty o pobraniu konfiguracji po wybraniu polecenia Importuj do platformy
.
Mail monitor, akcja postprocesu
Usunięto błąd, który powodował, że dodanie akcji na karcie Postproces
w definicji mail monitora powodowało usunięcie akcji zdefiniowanej na karcie Akcje
.
Znaki specjalne w haśle do SQL Server
Usunięto błąd, który uniemożliwiał uruchomienie nAxiom w przypadku, gdy hasło logowania na serwerze bazy danych zawierało niektóre znaki specjalne, np. = lub ;.
Akcje zdarzeń dokumentu
Usunięto błąd, który uniemożliwiał zapis definicji dokumentu biznesowego po dodaniu akcji na karcie Zdarzenia
.
Duplikowanie kluczy obcych podczas migracji
Usunięto problem z duplikowaniem kluczy obcych podczas importu aplikacji po raz kolejny.
Błąd importu aplikacji
Usunięto problem, który powodował wystąpienie błędu z komunikatem Cannot create more than one clustered index on table… podczas importowania aplikacji.
Okno z listą akcji
W aplikacji AdminSPA poprawiono wyświetlanie list akcji każdego rodzaju przy zmianie wielkości okna przeglądarki. Obecnie wszystkie kolumny na listach mają zdefiniowaną szerokość minimalną. Jeśli w oknie przeglądarki nie zmieszczą się wszystkie kolumny, zostanie wyświetlony pasek przewijania.
Refaktor po stronie AdminSPA
W aplikacji AdminSPA usunięto nieużywane funkcje, obiekty i elementy interfejsu, takie jak polecenie Pomoc
w sekcji POMOC
, definicje obiektów systemowych o kodzie ErasedByAppMigration oraz niedziałające ikony pomocy w niektórych oknach dialogowych.
Lista konfiguracji listy we FrontSPA
W aplikacji FrontSPA w oknie dialogowym Konfiguracja listy
dodano pionowy pasek przewijania wyświetlany, kiedy zdefiniowane konfiguracje nie mieszczą się w oknie.
Widoczność kolumn w widoku listy
W definicji widoku listy dodano możliwość sterowania widocznością kolumny dla kolumn dodawanych z menu podręcznego pozycji Kolumny listy
, to jest: Właściciel zadania, Termin, HTML, checkbox oraz Akcje.
Migracja powiązania kategorii załączników
W migratorze aplikacji wprowadzono poprawkę, dzięki której podczas importu nie jest nadpisywane powiązanie kategorii załączników z repozytorium.
Migracja akcji pomocy użytkownika
W migratorze aplikacji wprowadzono poprawkę umożliwiającą eksportowanie i importowanie akcji związanych z pomocą dla użytkownika.
Błąd zapisu formularza
Wyeliminowano losowo występujący błąd, który uniemożliwiał zapisanie definicji formularza, kiedy pamięć podręczna była włączona.
Informacje o wersji (hotfix) 1.10.0.3 z dn. 09-03-2023
Informacje uzupełniające
Migrator aplikacji
Migrator nie tworzy w docelowej bazie danych schematów bazy danych. Jeśli importowana aplikacja korzysta z niestandardowych schematów bazy danych, przed importem konsultant musi utworzyć je w docelowej bazie danych. W przeciwnym razie import nie powiedzie się.
Parametry w akcji otwierania formularza
Akcja otwierania formularza (w trybie dialog) jest wykonywana także podczas odświeżania formularza, który został otwarty przy użyciu tej akcji. Jednak w tym przypadku kontekstem domyślnym jest kontekst formularza docelowego. Dlatego ważne jest odpowiednie skonfigurowanie parametrów odwołujących się do kontekstu formularza źródłowego (tego, z którego jest inicjowana akcja).
Właściwa składnia to {@*KodFormularza.PoleFormularza}. Alternatywnie można skorzystać z funkcji
JSON_VALUE({@OpenedForms},’$[0].PoleFormularza’)
Należy przy tym pamiętać (w obu przypadkach) o konieczności przestawienia trybu pola wprowadzania na SQL.
Zastosowanie zmiennej {@PoleFormularza} spowoduje błąd lub nieoczekiwane zachowanie po odświeżeniu formularza docelowego, ponieważ system będzie szukał wartości takiej zmiennej w kontekście odświeżanego formularza.
Konfiguracja ruchu wewnętrznego w instalatorze
W przewodniku instalacji dodano następującą uwagę dotyczącą konfiguracji ruchu wewnętrznego w instalatorze:
Jeśli na danym hoście jest instalowanych kilka witryn dostępnych z zewnątrz, dla każdej z nich należy skonfigurować inny port dla ruchu wewnętrznego. Użycie tej samej wartości (np. domyślnej) dla wszystkich witryn spowoduje, że możliwe będzie uruchomienie tylko jednej z tych witryn.
Ponadto przed podaniem portu dla ruchu wewnętrznego należy sprawdzić, czy nie jest on już używany przez inne oprogramowanie.
Nowe i zmodernizowane funkcje
Filtrowanie sekcji kalendarza
We właściwościach sekcji kalendarza dodano właściwości Zależność od sekcji
oraz Warunek dla zależności
. Warunek zależności jest stosowany do zapytania zwracającego zdarzenia (Typ sekcji
> Ustawienia
> Źródło danych dla zdarzeń
).
Pola zależne, konfiguracja listy wyboru
W oknie dialogowym konfiguracji list wyboru zamieniono przełącznik Aktualizuj zawsze zależne pole
na listę wyboru Tryb aktualizacji
. Na liście są dostępne następujące pozycje:
-
Zawsze
: każda operacja otwarcia i odświeżenia formularza powoduje aktualizację wartości w polach zależnych. -
Tylko po zmianie na liście wyboru
: aktualizacja wartości w polach zależnych odbywa się tylko po zmianie pozycji w liście rozwijanej (zmiana przez użytkownika lub np. przez akcję). -
Tylko gdy wskazane pole jest puste
: wartości zwrócone przez listę wyboru są przekazywane do pól zależnych tylko wtedy, kiedy są one puste.
Na efekty działania tej funkcji ma wpływ zachowanie nAxiom przy odświeżaniu formularza. Kliknięcie ikony odświeżania w prawym górnym rogu formularza inicjuje działanie zależnie od typu okna formularza:
-
Dialog
: zostaje ponownie wykonana akcja otwierania formularza z użyciem przekazywanych w niej parametrów. -
Link wewnętrzny
: formularz i dane rekordu zostają ponownie wczytane z bazy danych; ewentualne parametry przekazywane w akcji otwierania formularza zostają utracone. Tak samo działa przeładowanie strony w przeglądarce klawiszem F5.
Akcja odświeżenia formularza działa tak samo, niezależnie od typu okna formularza, to jest wczytuje ponownie formularz i dane rekordu z bazy danych. Jeśli formularz został otwarty akcję z przekazaniem parametrów, parametry zostaną utracone.
Nowy tryb aktualizacji
Tylko po zmianie na liście wyboru
ma charakter próbny; jego działanie może zostać w kolejnych wersjach zmodyfikowane, zależnie od opinii użytkowników.
Obsługa wyjątków w akcji zapytań do webserwisów
W akcji zapytań do webserwisów oraz w konfiguracji listy wyboru (WebService) dodano możliwość definiowania własnej procedury obsługi odpowiedzi niezależnie od zwróconego kodu statusu HTTP. Użytkownik ma do wyboru dwa tryby obsługi odpowiedzi:
-
domyślny
: (wybrany domyślnie) procedura obsługi dotyczy odpowiedzi o statusach z zakresu 200-299; dla pozostałych statusów zwracany jest wyjątek. -
własny warunek obsługi odpowiedzi
: w procedurze obsługi możliwa jest obsługa wszystkich odpowiedzi, niezależnie od kodu statusu.
Ponadto, dodano nowe zmienne, których można użyć w instrukcji SQL do obsługi odpowiedzi, są to:
- @_HTTPResponseStatusCode: status odpowiedzi (int) np. 404,
- @_HTTPResponseStatusName: nazwa statusu odpowiedzi np. NotFound dla statusu 404,
- @_HTTPResponseHeader - nagłówki odpowiedzi w formacie JSON o następującej strukturze:
{ "header_1": ["value_1"], "header_2": ["value_2", "value_3"] }
gdzie header_x to nazwa nagłówka odpowiedzi, a value_x to wartość tego nagłówka.
Więcej informacji oraz przykłady zawiera pomoc kontekstowa dostępna w oknie edycji akcji oraz Leksykon nAxiom.
Obsługa wyjątków w akcji algorytmu C#
Wprowadzono poprawki, które umożliwiają obsługę błędów zwracanych przez akcje uruchamiane akcją algorytm C#. Dodatkowo zmieniono sposób logowania błędów: jeśli błąd wystąpi w akcji wykonywanej w algorytmie C#, treść komunikatu zostanie dodana do wyjątku akcji C#.
Przykład obsługi błędów w wykonywanej akcji:
using System;
using CSharpScript.ActionRunner;
string model = @"{
RecordId:1,
DocumentDefinitionId:56,
Model:""{}""
}";
try
{
ActionExecutionResult result =
await CSharpScript.ActionRunner.SqlAction.Instance.RunActionAsync(1, model);
}
catch(ActionExecutionException ex)
{
throw new Exception(ex.ExecutionResult?.ValidationResult?.Errors[0].ErrorMessage);
}
Uwaga: Klucz “Model” w parametrze wywołania akcji model nie może być pusty (NULL) ani nie może być pustym tekstem (”“), może to być natomiast pusty obiekt JSON (”{}”), jeśli przekazanie go do akcji nie jest wymagane.
Poprawki i usunięte błędy
Sekcja kalendarza, tryb tylko do odczytu
Poprawiono działanie ustawienia tylko do odczytu dla sekcji kalendarza.
W trybie tylko do odczytu nie można przeglądać kalendarza, np. przez zmianę miesiąca.
Zaznaczanie pola wymaganego w uprawnieniach formularza
Usunięto błąd, który powodował, że pomimo zaznaczenia pola wyboru Pole wymagane
w oknie dialogowym Uprawnienia dla formularza
, przy ponownym otwarciu tego okna to pole wyświetlało się jako niezaznaczone.
Pole Warunek dla zależności
, właściwości sekcji
Zmieniono sposób wyświetlania podglądu zapytania dla pola Warunek dla zależności
we właściwościach sekcji. Dodano możliwość wykonania zapytania z warunkiem i podglądu zwracanych danych.
Błąd podczas działania instalatora
Usunięto przyczynę błędu w działaniu instalatora, który powodował wyświetlenie komunikatu:
„Wystąpił błąd podczas instalacji aplikacji: Nazwa pliku: \?\C:\WINDOWS\system32\inetsrv\config\applicationHost.config Błąd: Nie można przekazać zmian konfiguracji, ponieważ plik na dysku został zmieniony”.
Odświeżanie kontrolki wielowyboru
Usunięto problem, który powodował, że na liście wielowyboru wciąż były wyświetlane wartości, chociaż w modelu formularza pole tej kontrolki miało wartość NULL (kontrolka była wypełniana przez ustawienie listy wyboru jako pole zależne).
Pole Warunek dla zależności
Poprawiono zachowanie pola Warunek dla zależności
we właściwościach sekcji typu lista. Obecnie w tym polu jest zawsze wyświetlany tylko zdefiniowany warunek.
Instalator, dostęp z Internetu
Poprawiono działanie instalatora nAxiom w przypadku aktualizacji witryny instalowanej na hoście z dostępem z Internetu.
Lista wyboru, wypełnianie pól zależnych
Poprawiono błąd z ustawianiem wartości w polach zależnych dla listy wyboru w przypadku, kiedy kontrolka pola zależnego była w trakcie wczytywania.
Raporty Telerik, parametry daty i czasu
Poprawiono wyświetlanie kontrolki dla parametru typu datetime w sekcji podglądu raportu Telerik.
Raporty Telerik, błędy importu
Usunięto błąd, który blokował wczytywanie szablonów raportów podczas importu aplikacji nAxiom.
Informacje o wersji (hotfix) 1.10.0.2 z dn. 16-02-2023
Informacje uzupełniające
Uprawnienia do bazy danych
Wprowadzono zmiany w procesie tworzenia nowej bazy danych dla instalowanej witryny nAxiom. Eliminują one konieczność korzystania z użytkownika bazy danych z uprawnieniami db_owner podczas pierwszego uruchomienia nowej witryny nAxiom.
W takim przypadku zakłada się, że konsultant instalujący witrynę otrzymuje od administratora serwera bazy danych login i hasło oraz nazwę pustej bazy danych, którą administrator przygotuje zgodnie z opisem w rozdziale Konto z ograniczonymi uprawnieniami w najnowszej wersji Przewodnika instalacji nAxiom.
Poprawki i usunięte błędy
Uprawnienia ACL
Wprowadzono kilka poprawek dotyczących uprawnień ACL, dotyczą one:
- wyświetlania rekordów w widoku listy z włączoną weryfikacją uprawnień,
- wyświetlania pól wyboru do włączania weryfikacji ACL w definicji widoku listy,
- zachowania przy próbie otworzenia formularza dla dokumentu, do którego użytkownik nie ma uprawnienia, w przypadku gdy nie określono zachowania przy braku dostępu — obecnie jest wyświetlany odpowiedni komunikat.
Problem z działaniem ReportsAPI
Usunięto problem, który w określonych przypadkach powodował wystąpienie komunikatu o błędzie połączenia z bazą danych zgłaszanego przez aplikację ReportsAPI (w module Web Report Designer oraz po stronie front-office w sekcji podglądu raportu i w akcji generowania raportu).
Akcja anonimizacji
Usunięto błąd, który uniemożliwiał użycie systemowej akcji anonimizacji.
Akcja przypisywania interesariuszy
Uaktualniono opis w oknie dialogowym akcji przypisywania interesariuszy oraz pomoc kontekstową do tej akcji.
Uprawnienia ACL formularzy
Poprawiono weryfikację uprawnień ACL do sekcji komentarzy.
Podgląd raportu Telerik
Poprawiono problem z wyświetlaniem informacji dodatkowych po wskazaniu elementu wykresu w sekcji podglądu raportu Telerik.
Smart numbers w źródle SQL formularza
Poprawiono obsługę użycia składni smart numbers w zapytaniu źródłowym w definicji formularza. Dodatkowo poprawiono wyświetlanie wartości identyfikatora w komunikacie w przypadku braku instancji dokumentu w bazie danych.
Migracja funkcji tabelarycznych
Poprawiono migrację funkcji tabelarycznych w schemacie innym niż dbo.
Przekierowanie na dashboard
Usunięto problem z przekierowaniem na dashboard w przypadku przejścia do statusu, do którego użytkownik nie ma uprawnień.
Format waluty w widoku listy
Poprawiono błąd, który powodował, że użycie formatu waluty dla kolumny wartości liczbowych w definicji widoku listy powodowało, że aplikacja AdminSPA przestawała reagować, natomiast w aplikacji FrontSPA w konsoli przeglądarki był logowany komunikat o błędzie NoCurrencyRegion.
PublicAPI, metoda Document/Save
Usunięto problem z wykonywaniem metody PublicAPI: Document/Save.
Informacje o wersji (hotfix) 1.10.0.1 z dn. 30-01-2023
Poprawki i usunięte błędy
Przyciski w sekcji typu lista i prosta lista
Zmodyfikowano sposób wyświetlania przycisków dodawanych na formularzu w sekcjach typu lista i prosta lista w designerze formularzy (kreator graficzny). Obecnie w aplikacji FrontSPA przyciski są wyświetlane nad listą lub pod nią, tak jak zostały umieszczone w definicji formularza. Ponadto poprawiono stosowanie zdefiniowanych szerokości i kolejności przycisków.
Ta funkcjonalność nie jest dostępna w kreatorze formularza opartym na drzewie struktury.
Zależności kontrolki i filtrowanie wartości
Poprawiono działanie zależności kontrolki w obszarze filtrowania wartości na liście wyboru przy użyciu nadrzędnej listy wyboru.
Filtrowanie listy wg daty
Usunięto błędy dotyczące filtrowania widoku listy według daty: przycisk radiowy opcji filtrowania nie zmieniał stanu po kliknięciu, po zastosowaniu zapisanego filtra nie były wyświetlane żadne rekordy.
Parametr {@OpenedForms} na formularzu
Usunięto błąd, który uniemożliwiał zapis definicji formularza w przypadku użycia parametru {@OpenedForms} w warunku dostępności pola/sekcji oraz w polu typu wynik zapytania SQL.
Migracja tabel pomocniczych
Usunięto błąd, który powodował, że tabela pomocnicza zawierająca kolumny o nazwach kolumn systemowych w używanych w modelach standardowym i uproszczonym (np. Status, Transition itp.) była podczas migracji kwalifikowana jako uproszczony model danych.
Migracja funkcji tabelarycznych
Poprawiono migrację funkcji tabelarycznych w schemacie innym niż dbo
Pasek narzędzi w sekcji podglądu raportów
Poprawiono wyświetlanie paska narzędzi raportu Telerik w sekcji podglądu raportu na formularzu. Problem występował w przypadku, kiedy sekcja podglądu była jedną z kilku sekcji w danej kolumnie formularza.
Renderowanie sekcji podglądu raportów
Poprawiono renderowanie sekcji podglądu raportu Telerik.
Endpoint ChangeStatus interfejsu PublicAPI
Poprawiono działanie endpointa ChangeStatus w interfejsie PublicAPI. Jeśli w żądaniu zostanie podany tylko identyfikator formularza, endpoint ma dostęp do modelu danych tego formularza. Jeśli zostanie podany identyfikator formularza i model danych, endpoint będzie korzystał z modelu przesłanego w żądaniu. Jeśli identyfikator formularza nie zostanie podany, endpoint zwróci status 400.
Dokumentacja endpointu ChangeStatus zostanie odpowiednio zaktualizowana w najbliższej wersji nAxiom.
Dokumentacja PublicAPI w Swaggerze
Przywrócono dostęp do dokumentacji PublicAPI w narzędziu Swagger. Jest ona dostępna pod adresem: https://[nazwa_witryny:port]/publicapi/ (użycie ukośnika na końcu jest wymagane).
Informacje o wersji (wersja) 1.10.0 z dn. 18-01-2023
Ważne informacje
Obsługa wielu tenantów (multitenancy)
Trwają prace programistyczne nad wprowadzeniem do nAxiom obsługi wielu tenantów - niezależnych organizacji, które będą mogły korzystać ze wspólnej witryny nAxiom i osobnych instancji bazy danych. Każdy tenant będzie miał indywidualny przedrostek w adresie witryny. Do zarządzania tenantami zostanie powołany serwis TenantAdmin.
Wszystkie zmiany związane z tą funkcjonalnością będą kompatybilne wstecz.
UWAGA: W obecnej wersji widoczne są pewne elementy i ustawienia przeznaczone do obsługi tworzonej funkcji, np. nowy moduł TenantsAPI w instalatorze czy nowe sekcje ustawień w plikach appsettings.json. Jednak obecnie nie mają one zastosowania praktycznego i zdecydowanie nie zaleca się dokonywania jakichkolwiek zmian w tych ustawieniach.
Migracja funkcji tabelarycznych
Aby zapewnić poprawną migrację funkcji tabelarycznej, należy uwzględnić w migracji tabelę źródłową tej funkcji.
Nowe i zmodernizowane funkcje
Angielska wersja językowa AdminSPA i WorkflowSPA
Opracowano angielskojęzyczną wersję interfejsu użytkownika komponentów AdminSPA i WorkflowSPA. Jest ona wyświetlana w przypadku, kiedy w profilu użytkownika z rolą systemową Konsultant wybrano język angielski.
Utrwalanie wartości danych zewnętrznych
Dla kontrolek formularza: lista wyboru SQL, asynchroniczna lista wyboru SQL, lista wyboru WebService oraz listy wyboru typu słownik i słownik hierarchiczny dodano nową właściwość Pole wartości ustalonej
. Pozwala ona wybrać (lub utworzyć) pole tabeli źródłowej, w którym będzie przechowywana wartość wyświetlana na liście. Dzięki temu, w danej instancji dokumentu kontrolka będzie zawsze wyświetlała wartość obowiązującą w momencie ostatniego zapisu tej instancji dokumentu, niezależnie od ewentualnej późniejszej zmiany (w tym usunięcia) tej wartości w źródle danych kontrolki.
Pole wartości ustalonej ma charakter techniczny i nie jest dostępne w kontekście formularza, a także nie jest przeznaczone do użycia na formularzu.
Konfiguracja ruchu wewnętrznego w instalatorze
W instalatorze nAxiom dodano możliwość zdefiniowania komunikacji wewnętrznej między komponentami nAxiom. W tym celu, w instalatorze na ekranie Konfiguracja serwera IIS
dodano przyciski opcji Instalacja tylko z dostępem lokalnym
i Instalacja z dostępem z Internetu
. Pierwszy z nich, zaznaczony domyślnie, odpowiada sytuacji, kiedy witryna jest instalowana lokalnie. Po zaznaczeniu drugiego w kolejnym kroku jest wyświetlany dodatkowy ekran, na którym należy podać nazwę hosta/adres IP oraz port, a także wybrać protokół i certyfikat dla ruchu wewnętrznego między komponentami witryny. Określenie tych ustawień spowoduje dodanie na serwerze IIS dodatkowego powiązania witryny.
Nowa akcja Otwieranie listy
Dodano akcję Otwieranie listy, która służy do wyświetlenia listy o wybranym lub zwróconym przez zapytanie SQL identyfikatorze. Lista jest wyświetlana w trybie linku wewnętrznego.
Edytor SQL w warunku zależności sekcji
Dla sekcji typu lista zmieniono komponent do definiowania warunku zależności na edytor SQL. W edytorze obsługiwany jest mechanizm smart numbers. Po kliknięciu przycisku Podgląd zapytania SQL
wyświetlane jest okno dialogowe edytora, w którym można sprawdzić poprawność składni. Aby to było możliwe, w pierwszym wierszu okna wyświetlana jest w trybie tylko do odczytu część zapytania dla zależności w formie:
SELECT * FROM (SELECT * FROM List_View) WHERE
Zadaniem użytkownika jest dopisanie warunku w klauzuli WHERE.
Struktura logów systemowych
Ujednolicono strukturę logów systemowych zapisywanych w plikach log.db3 w tabeli Logs przez wszystkie serwisy witryny nAxiom.
Nowa właściwość przycisku
We właściwościach przycisku na formularzu dodano przełącznik Przycisk zawsze dostępny
. Po jego włączeniu zawsze będzie możliwe kliknięcie przycisku i wykonanie przypisanych do niego akcji, także w przypadku, gdy cały formularz będzie w trybie tylko do odczytu.
Celem tej zmiany jest umożliwienie zamknięcia formularza, który zostanie wyświetlony jako link wewnętrzny w trybie tylko do odczytu. Nie zaleca się stosowania tej funkcjonalności w innych scenariuszach.
Nowa kolumna w kreatorze modeli danych
Zmieniono sposób definiowania typu danych dla kolumn tabel w kreatorze modeli danych, dodając na karcie projektu tabeli kolumnę Zakres
. Obecnie osobno wybiera się typ danych, a osobno rozmiar/precyzję.
Poprawki i usunięte błędy
Zmiany w żądaniach do ReportsAPI
W żądaniach API do serwisu ReportsAPI wyłączono zwracanie listy aktywnych ramek stosu (stack trace).
Sprawdzanie uprawnień dla żądań API
W interfejsie API dodano sprawdzanie uprawnień użytkownika dla żądań:
POST /back/permissions-module/Permissions/GetUserPermissions?userId=ID
Obsługa nagłówka Permissions-Polisy
W celu zwiększenia bezpieczeństwa dodano obsługę nagłówka Permissions-Policy w żądaniach HTTP.
Walidacja nazw tabel
W Kreatorze modeli danych dodano walidację nazwy modelu danych względem listy słów zastrzeżonych SQL zdefiniowanej w ustawieniach systemowych. Walidacja obejmuje także nazwy funkcji tabelarycznych, ale odbywa się na etapie zapisu definicji (po kliknięciu przycisku Zapisz), a nie deklarowania nazwy, jak w przypadku tabel.
Zmiany appsetings.json dla MobileAPI
Usunięto nieużywane właściwości z pliku appsettings.json dla aplikacji mobilnej oraz dostosowano ustawienia do pracy w trybie multi-tenancy (zostanie wprowadzony w przyszłości).
Funkcje agregujące w stopce listy
Zmodyfikowano zasady obliczania funkcji agregujących, których można używać w stopkach widoku listy. Obecnie funkcje te zwracają wartość dla całego zestawu rekordów (z uwzględnieniem filtrowania i sortowania, bez uwzględniania grupowania i paginacji).
Podgląd załącznika w oknie typu pop-up
Usunięto błąd, który powodował, że podgląd załącznika dodanego do formularza wyświetlanego w trybie okna dialogowego był wyświetlany na formularzu głównym, z którego wywołano formularz podrzędny.
Po dodaniu załącznika do nowego rekordu w formularzu jego podgląd będzie widoczny dopiero po zapisaniu rekordu i odświeżeniu formularza.
Przycisk Zapisz
w oknie edycji akcji
Poprawiono wygląd przycisku Zapisz
w oknie dialogowym edycji akcji.
Brakujące przyciski na podglądzie raportu
Usunięto problemy dotyczące podglądu raportu, m.in. przywrócono wyświetlanie wszystkich ikon oraz działanie panelu parametrów.
Wyszukiwanie użytkowników w czacie
Zmodyfikowano funkcję wyszukiwania użytkownika w okienku czatu w aplikacji FrontSPA. Obecnie wpisywany tekst jest dopasowywany do loginu, imienia i nazwiska użytkownika. Ponadto w polu wyszukiwania dodano informację, że niezbędne jest wpisanie co najmniej 3 znaków, aby rozpocząć wyszukiwanie.
Przyciski przejść dla zarchiwizowanych dokumentów
Wprowadzono zmianę, która powoduje zablokowanie przycisków zmiany statusu na formularzu w przypadku, gdy wyświetlana instancja dokumentu biznesowego ma status Zarchiwizowany lub Usunięty.
Migracja szablonów Excel
W podsumowaniu migracji dodano informację o braku ścieżki do szablonów Excel w docelowej bazie danych.
Akcja Raportowanie
Usunięto przyczynę błędu w działaniu akcji generowania raportów w przypadku, kiedy w definicji akcji zaznaczono obie opcje Pobierz wygenerowany plik
i Zapisz wygenerowany plik do załączników
.
Komunikat o błędzie „Nie zaimplementowano metody wykonania akcji”
Usunięto problem, który powodował, że wywołanie akcji otwierania linku zewnętrznego i odświeżenia listy za pomocą przycisku umieszczonego w nagłówku sekcji typu lista na formularzu kończyło się niepowodzeniem z komunikatem o błędzie „Nie zaimplementowano metody wykonania akcji”.
Akcja Odśwież formularz
Usunięto problem, który powodował, że wykonanie akcji Odśwież formularz powodowało wyświetlenie przycisków procesu w kolejności niezgodnej z przypisanymi numerami.
Kopiowanie definicji listy
Usunięto problem, który powodował, że w niektórych przypadkach nie można było skopiować definicji listy w AdminSPA.
Przyciski edycji inline
Usunięto problem występujący podczas kopiowania definicji listy dla której zdefiniowano edycję inline. Problem powodował, że w skopiowanej liście nazwy przycisków do edycji inline były podmieniane na identyfikatory GUID.
Edycja uprawnień roli
Usunięto błąd, który powodował, że po migracji w środowisku docelowym podczas edycji uprawnień ról biznesowych zamiast nazw niektórych pozycji menu były wyświetlane identyfikatory GUID.
Przejście blok decyzyjny -> blok oczekiwania
Usunięto błąd, który powodował, że dodanie nowej akcji na przejściu między blokiem decyzyjnym i blokiem oczekiwania powodowało usunięcie akcji dodanej wcześniej.
Podgląd raportu we FrontSPA
Przywrócono możliwość określania parametrów wykresów Telerik w sekcji podglądu raportu na formularzu w aplikacji FrontSPA.
Lista wielowyboru jako kontrolna zależna
Poprawiono zachowanie kontrolki lista wielowyboru w przypadku, gdy jest ona kontrolką zależną filtrowaną przez nadrzędną listę wyboru oraz gdy wartość w tej kontrolce jest ustawiana wyborem wartości na liście rozwijanej.
Migracja uprawnień ról biznesowych
Poprawiono migrację uprawnień ról biznesowych do sekcji i pozycji menu użytkownika.
Migracja tabel pomocniczych
Poprawiono migrację tabel pomocniczych tworzonych bezpośrednio w bazie danych, bez użycia Kreatora modeli danych.
Migracja szablonu e-mail
Poprawiono migrację szablonów e-mail. Obecnie migrator obsługuje także szablony, do których dodano załącznik.
Migracja kolumn nazwach systemowych
Poprawiono migrację kolumn tabel pomocniczych o takich samych nazwach jak kolumny systemowe. (np. Type1, Type2 itp.).
Logowanie Windows
Poprawiono mechanizm czyszczenia danych w pamięci local storage w przeglądarce w celu zapewnienia poprawnego działania logowania Windows do witryny nAxiom,
Parametry w akcji otwierania formularza
Poprawiono błędy występujące w przypadku, gdy w akcji otwierania formularza przekazywano parametry typu decimal i float z użyciem tablicy OpenedForms.
Migracja sekcji i pozycji menu
Poprawiono błędy w migracji sekcji i pozycji menu.
Przełącznik eskalatorów
Poprawiono błąd, który powodował, że wyłączenie przełącznika Aktywuj eskalatory procesu
było ignorowane.
Opcje w oknie Edycja instancji uprawnienia
Poprawiono błąd, który powodował, że kliknięcie przycisku radiowego Wskazana osoba
lub Uprawnione role
w oknie dialogowym Edycja instancji uprawnienia
we FrontSPA nie powodowało jego zaznaczenia.
Responsywność formularza
Dodano obsługę zmiany rozmiaru okna przeglądarki, która powoduje przełączenie widoku elementów interfejsu graficznego w tryb mobilny. Do tej pory taka zmiana wyzwalała automatyczne odświeżenie formularza, co mogło powodować utratę niezapisanych danych.
Lista wielowyboru, tabela relacyjna
Poprawiono błąd, który powodował, że w określonych przypadkach wartości wybrane na liście wielowyboru nie zapisywały się w tabeli relacyjnej.
Zmienna Environment dla komponentu TaskService
Wprowadzono zmianę w Instalatorze, dzięki której na etapie instalacji do pliku appsettings.json komponentu TaskService dodawany jest parametr Environment.
Migracja aplikacji BaseApp
Usunięto problem dotyczący migratora, który powodował, że migracja aplikacji systemowej BaseApp skutkowała dublowaniem akcji systemowych w środowisku docelowym.
Jeśli aplikacja BaseApp nie zawiera obiektów utworzonych przez użytkownika, jej migracja nie jest konieczna. Ta aplikacja zawsze istnieje w środowisku docelowym migracji.
Środowisko wykonywania akcji
Poprawiono działanie mechanizmu uruchamiania akcji odpowiednio do ustawionego środowiska w sytuacji, kiedy w definicji akcji wszystkie przełączniki Środowisko
były wyłączone.
Porównanie konfiguracji w migratorze
Poprawiono działanie migratora w przypadku porównywania zaimportowanej konfiguracji z konfiguracją źródłową.
Informacje o wersji (hotfix) 1.9.2.1 z dn. 29-12-2022
Poprawki i usunięte błędy
Filtrowanie widoku listy
Dodano nową metodę wyliczania listy wartości w okienku filtrowania: Kreator listy
> (Właściwości kolumny) Ogólne
> Metoda wyliczania listy wartości
> Zapytanie SQL
. Po wybraniu tej opcji jest wyświetlany edytor SQL. Wartości zwracane przez zapytanie SQL są wyświetlane w oknie filtra danej kolumny jako kryteria filtrowania.
Określona w ten sposób lista wartości filtrujących jest stała, to znaczy nie uwzględnia filtrów stosowanych w innych kolumnach.
Drukowanie partii etykiet
Wprowadzono zmianę w akcji Drukowanie ZPL. Obecnie w ramach jednej akcji można wydrukować tyle etykiet, ile rekordów zwróci zapytanie SQL użyte w definicji akcji.
Zmiana nazwy modułu BaseModule
Wprowadzono poprawkę, która umożliwia aktualizację nAxiom w przypadku zmiany nazwy systemowego obiektu BaseModule. Jednak taka zmiana nie jest zalecana i może zostać zablokowana w nowszych wersjach nAxiom.
Kontrolki w trybie tylko do odczytu na formularzu
Poprawiono obsługę trybu tylko do odczytu dla kontrolek na formularzu. Obecnie takie kontrolki są pomijane w kolejności tabulacji. W rezultacie nie jest możliwa zmiana wartości w kontrolkach numerycznych oraz daty i czasu w trybie tylko do odczytu po przejściu do kontrolki przy użyciu klawisza Tab.
Informacje o wersji (patch) 1.9.2 z dn. 16-12-2022
Ważne informacje
Konfiguracja TaskService
Wykryto, że w pliku konfiguracyjnym appsettings.json komponentu TaskService brakuje parametru Environment, co powoduje, że w zadaniach wykonywanych przez ten komponent uwzględniane są tylko wartości zmiennych i akcje dla środowiska deweloperskiego. Odpowiednia poprawka w instalatorze zostanie wprowadzona w kolejnej wersji. Tymczasowym rozwiązaniem jest ręczne dopisanie tego parametru i przypisanie mu wartości zgodnej z bieżącym środowiskiem (Development, Test, Production), np.:
"AppConfiguration": {
"CustomerName": "ACME",
"Environment": "Test"
...
Nowe i zmodernizowane funkcje
Filtrowanie wg aplikacji w AdminSPA
W nagłówku aplikacji AdminSPA dodano listę rozwijaną z aplikacjami zdefiniowanymi w danej witrynie nAxiom. Wybór aplikacji z tej listy spowoduje, że w każdej liście obiektów powiązanych z aplikacjami (np. formularze, listy itp.) zostanie zastosowany filtr odpowiadający wybranej aplikacji. Dodatkowo, każdy tworzony nowy obiekt będzie miał domyślnie ustawioną tę aplikację (oraz moduł — pierwszy w kolejności alfabetycznej wg nazwy).
Ta funkcjonalność ma na celu ułatwienie pracy w witrynie, w której zdefiniowano wiele aplikacji.
Filtr nie ma zastosowania do samej listy definicji aplikacji, na której wyświetlane są wszystkie aplikacje.
Okno dialogowe definicji aplikacji
Zmodyfikowano sposób edycji definicji aplikacji po stronie AdminSPA (ADMINISTRACJA
> Lista aplikacji
). Obecnie po kliknięciu ikony edycji wyświetlane jest okno dialogowe z kartami: Ogólne
, Moduły
, Zmienne
, Uprawnienia
, na których definiuje się odpowiednie ustawienia aplikacji.
Zmienne systemowe a mechanizm SmartNumbers
Dodano nową metodę tworzenia referencji do zmiennych środowiskowych za pomocą funkcji SmartNumbers. Składnia odwołania wygląda następująco:
{&AppCode.AppInlineVariables.VarCode}
W przypadku wartości tekstowych takie odwołania są zastępowane wartością danej zmiennej bez apostrofów, co pozwala ich używać np. w klauzulach FROM zapytań SQL. W szczególności możliwe jest określenie w ten sposób schematu bazy danych, nazwy tabeli lub serwera linked server (po zdefiniowaniu odpowiednich zmiennych środowiskowych).
Generator dokumentacji
Zmodyfikowano funkcjonalność generowania dokumentacji (POMOC
> Generator dokumentacji
). Po zmianie użytkownik może wybrać, format wyjściowy dokumentacji (docx/pdf) oraz szablon dokumentacji. Możliwe jest także wczytanie do programu własnego szablonu dokumentacji i nadpisanie nim formatu domyślnego (w szczególności może to być zmodyfikowany szablon domyślny).
Opcja wyboru języka na razie nie jest obsługiwana.
Podgląd załączników
Zmodyfikowano działanie funkcji podglądu załączników w przypadku, kiedy wyświetlenie załącznika jest niemożliwe (np. plik PDF zabezpieczony hasłem). Obecnie w oknie podglądu jest wyświetlana informacja: „Podgląd załącznika jest niedostępny”.
Migrator: obsługa usunięcia statusu i typu biznesowego
Dodano predefiniowany dokument biznesowy, z którym powiązano:
- status o opisie STATUS USUNIĘTY PRZEZ MIGRACJĘ APLIKACJI i kodzie ErasedByAppMigration
- typ biznesowy o opisie TYP BIZNESOWY USUNIĘTY PRZEZ MIGRACJĘ APLIKACJI i kodzie ErasedByAppMigration
W przypadku, kiedy w importowanej aplikacji usunięto statusy i/lub typy biznesowe, a występują instancje dokumentów, które mają przypisane te atrybuty, w procesie migracji usunięte statusy i typy zostaną zamienione na predefiniowane wartości.
Ponadto dodano mechanizm, który w przypadku usunięcia przejścia na diagramie procesu, zastępuje wystąpienia identyfikatora tego przejścia w kolumnie Transition w tabeli dokumentu biznesowego wartością NULL.
Predefiniowana definicja dokumentu biznesowego, status i typ są widoczne na listach obiektów w aplikacji AdminSPA w trybie tylko do odczytu.
Poprawki i usunięte błędy
Tłumaczenia FrontSPA
Dodano tłumaczenia na język angielski „systemowych” tekstów interfejsu użytkownika wyświetlanych w aplikacji FrontSPA.
Migrator aplikacji
Usunięto znane problemy dotyczące migratora aplikacji w zakresie eksportu następujących elementów:
- akcje przypisane do bloków podprocesu asynchronicznego i decyzyjnego,
- opisy kolumn definiowane w kreatorze modeli danych.
Model danych formularza
Usunięto problem, który powodował, że użycie akcji Odśwież wskazany formularz z poziomu formularza wyświetlanego w trybie okna dialogowego skutkowało nieprawidłowymi danymi w modelu formularza docelowego.
Polecenie Tłumaczenia i pomoc
Usunięto problem, który powodował wyświetlenie komunikatu „Błąd podczas pobierania tłumaczeń” po użyciu polecenia Tłumaczenia i pomoc
po raz pierwszy na nowej bazie danych.
Powiązania sekcji formularza
Usunięto błąd, na skutek którego zmiana typu sekcji na formularzu nie powodowała usunięcia referencji do powiązanego obiektu. Na przykład po zmianie sekcji typu lista pozostawała referencja do listy, a po sekcji typu załączniki lub podgląd załączników, referencja do kategorii załączników.
Zakładki sekcji na formularzu
Usunięto błąd, który powodował, że w przypadku, gdy w kolumnie formularza tylko jedna sekcja była widoczna, w aplikacji FrontSPA ta sekcja była wyświetlana jako karta z nazwą sekcji w zakładce karty. Obecnie w takiej sytuacji nazwa widocznej sekcji jest wyświetlana powyżej sekcji zamiast nazwy kolumny.
Przerwana akcja
Poprawiono zachowanie programu w przypadku, kiedy użytkownik zaniecha/przerwie kontynuowanie rozpoczętej akcji. Obecnie w takiej sytuacji nie jest wyświetlany komunikat o błędzie.
Przyciski na liście widgetów
Poprawiono wyświetlanie przycisku zamknięcia okna dialogowego (X) i przycisku Zamknij
w oknie dialogowym Lista widgetów
w aplikacji FrontSPA.
Przyciski w migratorze aplikacji
Poprawiono sposób wyświetlania przycisków akcji w kolumnie na stronie Migrator aplikacji
.
Polecenie Mój profil, zmiana języka
Usunięto problem z uwzględnieniem zmiany języka użytkownika w oknie dialogowym wyświetlanym poleceniem Mój profil
. Zmiana języka zaczyna obowiązywać po ponownym zalogowaniu użytkownika.
Kolumna HTML na liście hierarchicznej
Poprawiono błąd wyświetlania danych w kolumnie HTML na liście hierarchicznej.
Oczekiwanie na wykonanie przejścia
Dodano blokadę formularza z animowaną ikoną oczekiwania aktywowaną w czasie wykonywania akcji przypisanych do przejść na diagramie procesów.
Wpisy w tabeli tłumaczeń dla sekcji i pozycji menu
Dodano migrację bazy danych, która tworzy wpisy w tabeli tłumaczeń dla wszystkich sekcji i pozycji menu użytkownika zdefiniowanych przed aktualizacją do tej wersji.
Nieobsługiwane funkcjonalności migratora aplikacji
W migratorze aplikacji ukryto przyciski niewspieranych funkcjonalności, to jest: Dodaj szablon eksportu
w procesie tworzenia konfiguracji eksportu oraz Tryb zaawansowany
w procesie importowania konfiguracji.
Funkcje tabelaryczne w kreatorze modeli danych
Poprawiono wyświetlanie listy funkcji tabelarycznych w kreatorze modeli danych. Obecnie wyświetlane są zarówno funkcje utworzone przez użytkownika, jak i funkcje tworzone w procesie generowania danych aplikacji (źródła danych dla widoku listy).
Diagram procesu we FrontSPA
Wprowadzono poprawkę, dzięki której do wyświetlenia diagramu procesu w aplikacji FrontSPA wystarczy uprawnienie PBA Używanie wszystkich aplikacji. Do tej pory wykonanie tej czynności wymagało uprawnienia do podglądu elementów danej aplikacji.
Wyjątki w aplikacji FrontSPA
Wprowadzono zmianę mechanizmu zgłaszania wyjątków w aplikacji FrontSPA. Obecnie w razie wystąpienia niektórych błędów wyświetlany jest komunikat o błędzie. Dotychczas takie błędy były logowane w konsoli przeglądarki i mogły powodować zawieszenie strony w aplikacji nAxiom.
Przenoszenie przycisków między sekcjami
Poprawiono błąd, który powodował, że po przeniesieniu przycisku z jednej sekcji formularza do innej, usunięcie sekcji źródłowej powodowało usunięcie przeniesionego przycisku.
Informacje o wersji (hotfix) 1.9.1.4 z dn. 30-11-2022
Poprawki i usunięte błędy
Akcja zmiany statusu
Poprawiono działanie akcji zmiany statusu. Obecnie akcja powoduje wykonanie wszystkich akcji przypisanych do wskazanego przejścia (to jest akcji przed zmianą i po niej) oraz samą zmianę statusu.
Przejście w definicji akcji może zostać wskazane przy użyciu identyfikatora (int lub GUID) albo nazwy przejścia.
Lista zależności: kolumna — pole formularza
W konfiguracji listy rozwijanej zmieniono sposób ustawiania wartości określany w sekcji Lista zależności: kolumna - pole formularza
. Jeśli dane pole formularza jest listą rozwijaną, sprawdzane jest, czy przekazywana wartość znajduje się w źródle danych tej listy. Jeśli tak nie jest, wartość nie zostanie ustawiona.
Blok oczekiwania
Usunięto błędy w działaniu bloku oczekiwania, w szczególności dotyczące zmiany czasu oczekiwania oraz konfiguracji kilku bloków oczekiwania na diagramie procesu.
Logi bezpieczeństwa
Ograniczono zestaw tabel bazy danych, których zmiany są rejestrowane w logach bezpieczeństwa (core.SecurityAudits). Zmiana wyeliminuje rejestrowanie nadmiarowych wpisów w tabeli logów. W celu usunięcia nadmiarowych wpisów należy uruchomić w bazie danych instrukcję SQL:
DELETE FROM [core].[SecurityAudits]
WHERE EntityType = 'AuditEventLog'
OR EntityType = 'Audit';
Informacje o wersji (hotfix) 1.9.1.3 z dn. 24-11-2022
Poprawki i usunięte błędy
Migrator i schemat tabel systemowych
Usunięto problem powodujący wystąpienie komunikatu o błędzie Invalid object name ‘core.TABLES_TO_EXPORT_CONFIG’ przy próbie eksportu aplikacji z bazy, w której wybrano schemat tabel systemowych inny niż core.
Filtry w widoku listy
Poprawiono zachowanie filtrów w widoku listy. Obecnie unikalne wartości widoczne w oknie filtrowania odpowiadają rekordom wyświetlanym na liście, a nie wszystkim rekordom ze źródła danych listy. Nowe zachowanie dotyczy sytuacji, kiedy rekordy listy zostały wstępnie przefiltrowane według wartości w innej kolumnie lub na podstawie warunku zależności sekcji.
Zaznaczanie rekordów w widoku listy
Poprawiono działanie zaznaczania wszystkich rekordów w widoku listy (pole wyboru w nagłówku kolumny checkbox) w przypadku, gdy dla listy włączono opcję Funkcja server-side
oraz zastosowano filtry.
Akcja otwierania formularza
Poprawiono nieprawidłowe działanie akcji otwierania formularza, która miała otworzyć bieżącą instancję dokumentu w innym formularzu w trybie linku wewnętrznego.
Informacje o wersji (hotfix) 1.9.1.2 z dn. 16-11-2022
Poprawki i usunięte błędy
Migrator aplikacji
Poprawiono błąd migratora aplikacji, który w określonych przypadkach powodował usunięcie danych z tabel biznesowych w procesie importu aplikacji oraz uniemożliwiał tworzenie nowych dokumentów w zaktualizowanej aplikacji.
Synchronizacja grup AD
W funkcjonalności synchronizacji grup AD z rolami biznesowymi nAxiom dodano obsługę znaków specjalnych w nazwie grupy.
Informacje o wersji (hotfix) 1.9.1.1 z dn. 10-11-2022
Poprawki i usunięte błędy
Asynchroniczna lista wyboru
Poprawiono błąd występujący podczas edycji i zapisu rekordu w formularzu z asynchroniczną listą wyboru, dla której kolumna [key] jest typu int.
Liczba wymaganych akceptacji
Usunięto błąd w bloku akceptacji, na skutek którego blok nie działał zgodnie z oczekiwaniami po ustawieniu liczby akceptacji większej niż 1.
Informacje o wersji (patch) 1.9.1 z dn. 07-11-2022
Ważne informacje
Błąd długości parametru podczas migracji
Wykryto, że przyczyną błędu Invalid length parameter passed to the LEFT or SUBSTRING function. występującego niekiedy podczas próby przygotowania pliku eksportu (Migrator aplikacji
> Zapisz aplikacje
) są błędne dane w tabeli AuditColumns. Podobna sytuacja może również wystąpić w przypadku błędów danych w bazie danych witryny docelowej. Problem dotyczy prawdopodobnie baz danych tworzonych w dawnych wersjach nAxiom.
W związku z tym opracowano skrypt, który usuwa ewentualne błędy. Skrypt należy uruchomić w programie MS SQL Server Management Studio.
UPDATE c
SET c.TableName =
CONCAT ('[', sch.name, '].[', c.TableName, ']')
FROM
[database_name].[sys_schema_name].[AuditColumns] c
JOIN sys.tables tab ON tab.name = c.TableName
JOIN sys.schemas sch ON sch.schema_id = tab.schema_id
gdzie database_name to nazwa bazy danych, a sys_schema_name to schemat używany przez tabele systemowe (domyślnie core).
Poprawa migratora aplikacji
Rozwiązano szereg problemów występujących podczas korzystania z migratora aplikacji, w tym:
- problemy z migracją następujących elementów:
- akcja Zmiana statusu dokumentu przypisana do przejścia na diagramie procesów,
- zmienne środowiskowe,
- tabela audytu,
- eskalatory;
- problemy w zakresie eksportu następujących elementów:
- pliki dołączane do szablonów Excel,
- akcje zdefiniowane na karcie
Uprawnienia — brak odczytu
w definicji dokumentu biznesowego, - akcje przypisane do bloków podprocesu asynchronicznego i decyzyjnego,
- ustawienia określone na karcie
Audyt
w definicji dokumentu biznesowego, - kolumny o typach danych innych niż dostępne w Kreatorze modeli danych (z wyjątkiem typów HierarchyId i RowVersion, których obsługa wymaga zmian kreatora modeli danych),
- status bloku oczekiwania,
- zaktualizowana definicja Mail monitora,
- definicje callbacks (błędnie przypisane aplikacje);
- bardzo długi czas trwania migracji,
- błąd występujący podczas nadpisywania migracji,
- nieprzenoszenie atrybutu Identity dla kolumn tabeli pomocniczej; dotyczy tylko sytuacji, w której tabela jest tworzona w docelowej witrynie; nie ma możliwości aktualizacji tego atrybutu w ramach migracji,
- aktualizacja uprawnień do menu (odbieranie uprawnień),
- usuwanie widoków systemowych w docelowej bazie danych,
- wyświetlanie przycisków akcji na liście konfiguracji eksportu/importu,
- błędne przypisywanie definicji Mail monitora do aplikacji po migracji.
Domyślny poziom logowania błędów
Zmieniono domyślny poziom komunikatów zapisywanych w logach systemowych nAxiom na Error. Ma to na celu ograniczenie objętości logów. Dodano także migrację, która przestawia ten parametr w przypadku aktualizacji bazy danych z wcześniejszego poziom domyślnego Info na Error. Jeśli poziom Info był ustawiony świadomie, konieczne będzie przywrócenie tej wartości w ustawieniach systemowych.
Repozytoria załączników na zasobach sieciowych
Plikowe repozytoria załączników mogą znajdować się na zasobach sieciowych. Do określenia lokalizacji repozytorium należy użyć ścieżki sieciowej w formacie \\host\folder (UNC). Nie należy używać litery zmapowanego dysku sieciowego.
Aby można było zapisywać załączniki w sieciowym folderze repozytorium, konieczne jest przypisanie uprawnienia
Modyfikacja
dla grup użytkowników IUSR i IIS_USRS (folder repozytorium >Właściwości
>Zabezpieczenia
).
Endpoint GetFormByRowGuid
Wprowadzono poprawkę bezpieczeństwa likwidującą podatność endpointu GetFormByRowGuid na przechwycenie danych przez nieautoryzowanego użytkownika.
Ta poprawka może wpływać na zdefiniowane sekwencje akcji wykonywanych w ramach obsługi braku uprawnień użytkownika (Edycja definicji dokumentu
> Uprawnienia — brak odczytu
> wyłączony przełącznik Przekieruj na dashboard
), o ile te akcje odwoływały się do modelu danych. Z tego powodu na tej karcie dodano ostrzeżenie: UWAGA: Akcje wywoływane w tej sekwencji nie mają dostępu do modelu danych dokumentu biznesowego.
Nowe i zmodernizowane funkcje
Uprawnienie PBA do projektowania raportów
Dodano uprawnienie PBA umożliwiające dostęp do modułu projektowania raportów. (AdminSPA > ZARZĄDZANIE UPRAWNIENIAMI
> Uprawnienia
> Budowanie aplikacji
> Dostęp do Kreatora raportów Telerik
).
Nowe parametry Mail monitora
W Mail monitorze dodano trzy nowe parametry, które pozwalają odwoływać się do atrybutów odebranej wiadomości email. Są to: {@Email_ReceivedDate} (typu datetime), {@Email_ToRecipients} i {@Email_CcRecipients}.
Poniższe zapytanie pokazuje przykład użycia atrybutów e-mail w zapytaniu SQL wykonywanym w ramach akcji Mail monitora:
INSERT INTO [dbo].[MailMonitorEmailDetails] (
[Content], [Sender], [Title], [ReceivedDate],
[ToRecipients], [CcRecipients])
VALUES ({@Email_Content}, {@Email_Sender},
{@Email_Subject}, {@Email_ReceivedDate},
{@Email_ToRecipients}, {@Email_CcRecipients})
Sortowanie wartości na liście asynchronicznej
Zmodyfikowano sposób konfiguracji asynchronicznej listy wyboru, dodając możliwość wskazania kolumn, po których mają być sortowane wyniki. Dodatkowo użytkownik może wyświetlić podgląd zapytania wynikowego i uruchomić je dla ciągu znaków podanego jako parametr search_param w klauzuli WHERE.
Zależności sekcji typu lista
W zależnościach sekcji na formularzu dodano jako kryterium zależności stan zaznaczenia rekordów na liście nadrzędnej. Dzięki tej zmianie, na liście zależnej można wyświetlić tylko te rekordy, które zostały zaznaczone na liście nadrzędnej. Przykładowa instrukcja w polu Warunek zależności
wygląda następująco:
[Id] IN
(SELECT [value]
FROM
OPENJSON({@_Section_NazwaSekcji_Selected}))
NazwaSekcji to nazwa sekcji nadrzędnej (podanej w polu Zależność od sekcji
).
W odwołaniu @_Section_NazwaSekcji_Selected należy wpisać nazwę sekcji nadrzędnej z wielkiej litery.
Kontekst formularza i JavaScript
Do danych z kontekstu formularza dostępnych w akcjach/skryptach JavaScript dodano informacje o zaznaczonych rekordach w sekcji typu lista. Odwołanie ma postać: formContext.kodSekcji_Selected
(skrypt zmiany kontekstu) lub FormDataContext.kodSekcji_Selected
(akcje JavaScript) i zwraca tablicę z identyfikatorami rekordów zaznaczonych na liście.
Kod sekcji nie może zawierać myślnika (-).
Import grup z AD
Zmodernizowano mechanizm synchronizacji ról biznesowych (grup) z usługami Active Directory w celu obsługi przypadku, kiedy grupy pochodzą z innej domeny niż użytkownicy. Sposób konfiguracji tego mechanizmu zostanie opisany w odrębnym artykule.
Akcja zmiany statusu archiwizacji
Zmieniono zasady działania akcji zmiany statusu archiwizacji (akcja systemowa). Obecnie akcja sprawdza, czy użytkownik, który uruchomił akcję, ma uprawnienia ACL do dokumentu. Do zmian statusu archiwizacji wymagane są następujące uprawnienia:
Zmiana statusu archiwizacji | Uprawnienia ACL |
---|---|
Aktywny (1) > Archiwalny (3) | RU |
Aktywny (1) > Usunięty (2) | RD |
Archiwalny (3) > Usunięty (2) | RDA |
Archiwalny (3) > Aktywny (1) | RA |
Usunięty (2) > Aktywny (1) | RA |
Usunięty (2) > Archiwalny (3) | RA |
Liczba w nawiasach obok nazwy statusu to wartość zapisywana w kolumnie ArchiveStatus w tabeli dokumentu biznesowego.
Do tej pory akcja mogła być wykonywana tylko przez twórcę danego dokumentu.
Poprawki i usunięte błędy
Uzupełnienie tłumaczeń w aplikacji FrontSPA
Wprowadzono poprawki w celu objęcia tłumaczeniami niektórych elementów interfejsu użytkownika w aplikacji FrontSPA, np. sekcji i poleceń menu, opcji w polu filtrowania itp.
Zmiana wartości domyślnych w kreatorze stylów
W celu poprawienia czytelności, w Kreatorze stylów zmieniono wartości domyślne koloru ramki kontrolki w trybie edycji i tylko do odczytu na ciemniejsze.
Powiązanie widżetu z formularzem
Zmieniono sposób powiązania widżetu typu formularz z formularzem. Obecnie kolumna FormDefinitionId w tabeli core.Widgets jest typu int i jest powiązana z kolumną Id w tabeli core.Forms.
Wyłączenie z migracji uprawnień PBA
Z zakresu działania migratora aplikacji wyłączono uprawnienia PBA definiowane dla ról biznesowych.
Funkcje tabelaryczne
W Kreatorze modeli danych zmieniono nazwę grupy Widoki bazodanowe na Funkcje tabelaryczne.
Kopiowanie GUID przejścia
Dodano możliwość zaznaczenia i skopiowania identyfikatora przejścia (GUID) wyświetlanego na w kreatorze diagramów procesów we właściwościach przejścia.
Skrypt dla zmiany kontekstu
Dla funkcji Skrypt dla zmiany kontekstu formularza
(Kreator formularzy
> Akcje formularza
) usunięto flagę funkcjonalności eksperymentalnej.
Wczytywanie rekordów listy
Poprawiono zachowanie platformy podczas wczytywania rekordów w widoku listy w aplikacji FrontSPA. Obecnie w czasie oczekiwania na wczytanie rekordów wyświetlany jest animowany wskaźnik zamiast mylącego komunikatu Brak wyników do wyświetlenia.
Uprawnienia PBA i akcje zdarzeń systemowych
Wprowadzono poprawkę, dzięki której przypisywanie akcji do zdarzeń systemowych w aplikacji FrontSPA nie wymaga posiadania uprawnienia PBA Przeglądanie listy użytkowników.
Powiązanie połączeń callback z aplikacją
W tabeli Callbacks ustawiono atrybut FK dla kolumny ModuleDefinitionId. Brak tego atrybutu powodował błędne powiązanie definicji callback z aplikacją podczas migracji.
Skróty klawiszowe
Przywrócono działanie skrótów klawiszowych dla przycisków na formularzu.
Przekierowanie do formularza w podprocesie
Poprawiono zachowanie przełącznika Przekieruj do formularza podprocesu po zainicjowaniu podprocesu
we właściwościach bloku procesu synchronicznego.
Jeśli pomimo włączenia przełącznika, akcja otworzenia formularza nie zostanie wybrana, po ponownym wyświetleniu właściwości tego bloku przełącznik będzie wyłączony.
Asynchroniczna lista SQL
Poprawiono występujące w niektórych przypadkach błędy w działaniu asynchronicznej listy wyboru po wklejeniu ciągu znaków w pole listy.
Aktualizacja definicji Mail monitora
Poprawiono błąd, w wyniku którego aktualizacja definicji Mail monitora powodowała nadanie nowej wartości w kolumnie RowGuid. To z kolei było przyczyną problemów z migracją zaktualizowanego Mail monitora.
Nieprawidłowe wyświetlanie formularzy
Poprawiono błąd odświeżania sekcji komentarzy w przypadku przełączania się między formularzami.
Modyfikowanie ACL-i we FrontSPA
Poprawiono wyświetlanie okna dialogowego dodawania/edycji uprawnień ACL w aplikacji FrontSPA. W niektórych przypadkach po kliknięciu przycisku Dodaj uprawnienie
okno dialogowe było wyświetlane w tle okna Aktualne uprawnienia dokumentu...
(„pod spodem”).
Atrybut lang dla stron witryny nAxiom
Poprawiono wartość atrybutu lang dla stron witryny nAxiom na zgodną z ustawieniami języka zalogowanego użytkownika.
Dokument biznesowy oparty na tabeli pomocniczej
Dla definicji dokumentu biznesowego opartych na tabelach pomocniczych w oknie dialogowym definicji dokumentu biznesowego usunięto przełącznik Obsługa uprawnień
. W przypadku tabel pomocniczych uprawnienia ACL nie są obsługiwane.
Dodano migrację w bazie danych, która wyłącza to ustawienie w istniejących definicjach takich dokumentów biznesowych.
Informacje o wersji 1.9 z dn. 20-10-2022
Ważne informacje
Aktualizacja środowiska nAxiom do platformy .NET 6
Dostosowano nAxiom do pracy w środowisku opartym na platformie .NET 6. W związku z tym instalator jednoplikowy (oparty na AdvInstaller) sprawdza, czy w systemie jest zainstalowana ta platforma, a jeśli nie, instaluje pakiet .NET Hosting Bundle 6.0.8. Jest to wymagana wersja minimalna.
W przypadku korzystania z tradycyjnego instalatora, należy pobrać plik dotnet-hosting-6.0.8-win.exe ze strony:
https://dotnet.microsoft.com/en-us/download/dotnet/6.0
Link bezpośredni:
Nowa kolumna w core.AuditsLog
W tabeli core.AuditLogs dodano kolumnę StatusId. W tej kolumnie zapisywany jest status dokumentu w chwili zmiany dokumentu. W przypadku tabel w modelu uproszczonym (dawniej tabela katalogu) w tej kolumnie jest wartość NULL.
W przypadku zmiany statusu dokumentu, w polu core.AuditLogs.StatusId zostanie zapisany identyfikator statusu końcowego. W przypadku usunięcia dokumentu, w polu StatusId zostanie zapisany identyfikator statusu, jaki miał dokument w chwili usunięcia.
Wprowadzona zmiana wymaga przebudowania triggerów odpowiedzialnych za audyt danych. W tym celu należy ponownie zapisać definicję dokumentu biznesowego z włączonym audytem danych w kolumnach.
W ramach tego zadania poprawiono również audytowanie zmian w kolumnach w przypadku usunięcia instancji dokumentu biznesowego.
Nowe i zmodernizowane funkcje
Modernizacja uprawnień PBA
Zreorganizowano funkcjonalność uprawnień PBA:
- dodano uprawnienia do struktury organizacyjnej,
- rozbudowano uprawnienia do tworzenia i modyfikowania aplikacji
- dodano uprawnienia do modyfikowania indywidualnych aplikacji (AdminSPA > Lista aplikacji):
- dostęp do definicji aplikacji
- aktualizacja definicji aplikacji oraz tworzenie/aktualizacja obiektów/modułów aplikacji
- usuwanie definicji aplikacji oraz jej obiektów
- rozbudowano zakresy administrowania uprawnieniami
Użytkownik systemowy admin ma domyślne uprawnienia do wyznaczania administratorów w obszarze struktury organizacyjnej i użytkowników oraz w obszarze konfigurowania systemu, a także domyślne uprawnienia do zarządzania strukturą organizacyjną i organizacjami i do konfiguracji systemu. Użytkownik systemowy consultant ma domyślne uprawnienia do wyznaczania administratorów w obszarze użytkowania aplikacji, a ponadto takie same uprawnienia początkowe jak admin.
W przypadku aktualizacji, użytkownik systemowy consultant ma pełne uprawnienia do modyfikowania wszystkich aplikacji.
Zmodyfikowano sposób zapisu zmienionych uprawnień; obecnie konieczne jest zapisanie uprawnień przed przejściem do innego użytkownika/roli.
Szczegółowy opis nowego schematu uprawnień PBA zamieszczono w Leksykonie nAxiom.
Lista hierarchiczna
Dodano nowy tryb wyświetlania listy: listę hierarchiczną (drzewiastą). Jest on przydatny w przypadku, gdy rekordy listy tworzą strukturę hierarchiczną, np. lista pracowników z uwzględnieniem podległości służbowej lub lista jednostek organizacyjnych składających się na strukturę organizacyjną.
Aby można było wyświetlić rekordy listy w formie listy hierarchicznej, źródło danych listy musi zwracać kolumnę klucza głównego oraz dodatkową kolumnę (kolumnę hierarchii), w której dla poszczególnych rekordów będą wskazywane wartości klucza głównego rekordów nadrzędnych (np. kolumnę klucza głównego Id oraz kolumnę hierarchii ParentId). Rekordy nadrzędne najwyższego poziomu mają w kolumnie hierarchii wartość NULL.
W celu skonfigurowania listy hierarchicznej należy włączyć przełącznik Wyświetlaj rekordy jako strukturę hierarchiczną
we właściwościach listy na karcie Ustawienia
. Dodatkowo należy wskazać kolumnę hierarchii.
Kontrolka do wyświetlania listy hierarchicznej nie była optymalizowana pod kątem wyświetlania w aplikacji mobilnej nAxiom.
Nowy rodzaj widżetu — formularz
Dodano nowy rodzaj widżetu — formularz. W oknie dialogowym Nowy widget
, na karcie Ustawienia
należy wskazać formularz, a poniżej wpisać wyrażenie SQL, które zwróci identyfikator rekordu wyświetlanego w formularzu. Domyślnie formularz wyświetlany w widżecie jest pusty. Na karcie Parametry
można definiować parametry, tak jak dla innych widżetów. Korzystanie z tych parametrów wymaga uwzględnienia ich w projekcie formularza.
Nowa funkcja tabelaryczna core.UserTasks_View
W bazie danych utworzono funkcję tabelaryczną UserTasks_View. Ta funkcja zwraca wszystkie dokumenty, do których wskazany użytkownik ma dostęp na podstawie zdefiniowanych szablonów uprawnień. Dokumenty pochodzą z tabel modeli standardowych i uproszczonych, dla których włączono obsługę uprawnień i zdefiniowano szablony uprawnień. Aby pominąć rekordy z określonej tabeli w wyniku działania funkcji, należy wyłączyć przełącznik Pokazuj instancje tego dokumentu na liście zadań użytkownika
w oknie dialogowym edycji odpowiedniego dokumentu biznesowego.
Funkcja jest wywoływana z trzema parametrami:
- identyfikator użytkownika,
- identyfikator języka
- typ szablonu uprawnień; dostępne wartości:
- Status: uwzględniane są tylko dokumenty, dla których zdefiniowano szablony uprawnień w statusach (karta Uprawnienia - statusy)
- Instance: uwzględniane są tylko dokumenty, dla których zdefiniowano ogólne szablony uprawnień (karta Uprawnienia)
- InstanceWithStatus: uwzględniane są wszystkie dokumenty, dla których zdefiniowano szablony uprawnień, bez względu na ich rodzaj.
Przykład wywołania:
SELECT * FROM core.UserTasks_View({@_UserId}, {@_LangId}, 'Status')
Funkcja zwraca następujące kolumny:
- CreateDate: data utworzenia dokumentu
- LastStatusTransitionTime: data zmiany statusu na bieżący
- Deadline: termin dla kroku procesu
- StatusName: status dokumentu
- DaysSinceLastStatusTransitionTime: czas w dniach od ostatniej zmiany statusu (int)
- Code: kod dokumentu
- BusinessDocumentId: identyfikator definicji dokumentu biznesowego
- BusinessDocumentCode: kod definicji dokumentu biznesowego
- BusinessDocumentDescription: opis definicji dokumentu biznesowego
- TaskOwner: identyfikator właściciela zadania
- UserId: identyfikator twórcy dokumentu
- Id: identyfikator dokumentu
- Type1_Name: nazwa typu biznesowego 1
- Type2_Name: nazwa typu biznesowego 2
- Type3_Name: nazwa typu biznesowego 3
-
BusinessDocumentUserTasksFormRowGuid: identyfikator GUID formularza wskazanego na karcie
Formularze
w oknie definicji dokumentu biznesowego - ApplicationDefinitionRowGuid: identyfikator GUID aplikacji powiązanej z definicją dokumentu biznesowego
W przypadku tabel modelu uproszczonego, które nie mają kolumn Status ani BusinessType, funkcja zwróci wartości NULL w odpowiednich polach.
W definicji listy opartej na funkcji tabelarycznej UserTasks_View nie należy wskazywać definicji dokumentu biznesowego (
Kreator listy
>Ogólne
>Dokument biznesowy
).
Nowa karta w oknie definicji dokumentu biznesowego
W oknie definicji dokumentu biznesowego dodano nową kartę Formularze
. Można na niej wskazać formularz, który będzie używany do wyświetlania instancji tego dokumentu biznesowego po kliknięciu przycisku edycji na liście opartej na funkcji tabelarycznej UserTasks_View.
Rozbudowa akcji C#
W akcji Algorytm C# dodano klasę SQLHelper z metodami umożliwiającymi wykonywanie zapytań SQL do systemowej bazy nAxiom oraz do źródeł danych opartych na bazie MS SQL lub Oracle. Klasa zawiera cztery metody:
- ExecuteSqlQueryRowsToDictionary: zwraca wynik zapytania SQL jako List<Dictionary<string, object>,
- ExecuteSqlScalar: zwraca wynik zapytania jako pojedynczy rezultat typu object,
-
ExecuteSqlNonQuery: zwraca wartość true lub false, w zależności od rezultatu zapytania, na przykład zależnie od tego, czy polecenie
UPDATE
pomyślnie zaktualizowało rekord; typ zwracanego wyniku to bool, - ExecuteSqlNonQueryWithOutputParameters: służy do obsługi procedur przyjmujących parametry i zwracających wynik jako Dictionary<string, object>.
Zmiany układu w oknie Uprawnienia dla formularza
Wprowadzono zmiany w oknie Uprawnienia dla formularza
. Obecnie możliwe jest wyświetlanie uprawnień według uprawnionych użytkowników (twórca, rola, interesariusz) lub według statusów. Do zmiany widoku służy przełącznik Widok wg statusów
.
Ponadto dodano kolumnę z polami wyboru, którymi można włączać lub wyłączać uprawnienia zbiorczo dla wszystkich elementów formularza dla uprawnionego w statusie.
Modernizacja listy rozwijanej typu WebService
Zmieniono sposób konfiguracji kontrolki Lista wyboru (WebService). W oknie dialogowym wyświetlanym po kliknięciu przycisku Konfiguracja listy
należy wskazać akcję zapytania do WebService oraz zdefiniować zapytanie SQL, które przetworzy zwróconą odpowiedź i będzie źródłem danych dla listy. Zapytanie obsługuje odpowiedzi zwracane przez usługi REST i SOAP reprezentowane przez zmienną {@Response} (format json dla serwisów REST i xml dla SOAP).
Wywołania WebService w akcji C#
Rozbudowano akcję Algorytm C# o możliwość wykonywania wywołań WebService (typu REST i SOAP). Służą do tego dwa rozszerzenia:
- CSharpScript.WebServiceRunner.RestManager: obsługuje zapytania REST
- CSharpScript.WebServiceRunner.SoapManager: obsługuje zapytania SOAP
Do wykonywania zapytań służy metoda ExecuteRequestAsync.
Obsługa źródeł danych przez SmartNumbers
Do obiektów dostępnych poprzez składnię Smart Numbers dodano źródła danych. W związku z tą zmianą w oknie definicji źródła danych dodano pole Kod
.
Id aplikacji w kontekście formularza
Do kontekstu formularza dodano nowy parametr AppId typu int. Jest to identyfikator aplikacji, do której jest przypisany dany formularz.
Dokumentacja interfejsów API
Uporządkowano wyświetlanie automatycznej dokumentacji dla interfejsów API poszczególnych komponentów. Ta dokumentacja jest dostępna pod następującymi adresami:
- https://nazwa_witryny/publicapi/
- https://nazwa_witryny/mobileapi/
- https://nazwa_witryny/ocrapi/
- https://nazwa_witryny/back/ (dla internal-API)
- https://nazwa_witryny/swagger/ (dla AUTH)
Logowanie zewnętrzne do nAxiom
Zmodyfikowano działanie funkcji logowania do nAxiom z wykorzystaniem zewnętrznego dostawcy tożsamości (SSO). Ta zmiana zapewnia poprawne działanie w przypadku wylogowania użytkownika, zarówno w nAxiom, jak i u dostawcy SSO. W obydwu przypadkach wygaszane są tokeny nAxiom i użytkownik jest przenoszony na stronę wylogowania. Poniżej przykład konfiguracji logowania zewnętrznego Keycloak (szczegółowe wartości poszczególnych parametrów zależą od konfiguracji używanego dostawcy SSO).
"ExternalLogin": {
"UseExternalLogin": true,
"AutomaticRedirect": false,
"AuthenticationScheme": "oidc",
"DisplayName": "Logowanie keycloack",
"SignInScheme": "idsrv.external",
"Authority": "http://localhost:8080/auth/realms/nAxiom",
"ClientId": "naxiom",
"ResponseType": "code id_token",
"ResponseMode": "form_post",
"SaveTokens": true,
"GetClaimsFromUserInfoEndpoint": true,
"UsePkce": true,
"AcrValue": "",
"Scopes": ["openid", "profile", "email", "offline_access"],
"ClaimTypeInExternalToken": "user_email",
"AuthenticateUserByUserName": true,
"AuthenticateUserByUserEmail": false
}
Poprawki i usunięte błędy
Zwiększenie długości żądania dla AUTH
W celu eliminacji przypadków występowania błędu HTTP 404.15 w pliku web.config komponentu AUTH dodano parametr zwiększający długość żądania do 5000 znaków.
<requestLimits maxQueryString="5000" />
Ten wpis jest dodawany przez instalator zarówno podczas instalacji nowej witryny, jak i podczas aktualizacji istniejącej.
Zmiany w aplikacji mobilnej
Wykonano następujące poprawki dotyczące aplikacji mobilnej:
- Zmieniono działanie przycisku
Wstecz
w aplikacji mobilnej. Obecnie w przypadku kliknięcia przycisku wstecz po utworzeniu nowego dokumentu następuje przejście do widoku, z którego zainicjowano tworzenie nowego dokumentu z pominięciem formularza nowego dokumentu. - Poprawiono przewijanie listy wyświetlanej na urządzeniach mobilnych.
- Poprawiono wyświetlanie witryny nAxiom w niektórych przeglądarkach na urządzeniach mobilnych.
- Rozwiązano problem z wpisywaniem liczb ujemnych przy użyciu klawiatury numerycznej na urządzeniach mobilnych.
- Ujednolicono sposób wyświetlanie formularzy w trybie okna i okna dialogowego na urządzeniach mobilnych.
- Zmieniono czcionkę używaną w menu na urządzeniach mobilnych. Zoptymalizowano inne elementy układu graficznego. Zmiany mają na celu poprawienie czytelności.
- Zmieniono wyświetlanie okienka filtrów w widoku listy na urządzeniu mobilnym. Przyciski
Zapisz
iWyczyść
(wcześniejAnuluj
) są obecnie zawsze dostępne u dołu tego okienka bez konieczności przewijania. - Zmodyfikowano układ graficzny nagłówka widoku listy wyświetlanego na urządzeniu mobilnym.
Instalator i reguły UrlRewrite
Zmieniono działanie instalatora podczas aktualizacji witryny. Obecnie instalator zachowuje dodane przez konsultanta reguły UrlRewrite. Bez zmian pozostaje zachowanie dotyczące reguł dodawanych podczas instalacji. Instalator nadpisuje reguły o nazwach: nAxiom Front Routes i nAxiom Admin Routes (lub dodaje je, gdy nie istnieją).
Wersja nAxiom w plikach dll
Wprowadzono poprawkę, dzięki której pliki bibliotek modułu syncfusion (api.syncfusion.dll i apilib.syncfusion.dll) zawierają prawidłowe informacje o wersji nAxiom.
Uprawnienia ACL interesariuszy
Wprowadzono korektę w procesie generowania wpisów ACL do instancji dokumentów dla interesariuszy. Obecnie uwzględniane są również szablony uprawnień do instancji, a nie tylko szablony uprawnień dla statusów.
Instalator i zmiany w raportach Telerik
W plikach appsettings.json komponentów ReportsApi (Telerik) i DocApi (dokumentacja) zmieniono wartość ClientId z internal-api na razorapp. Dodatkowo dla raportów przeniesiono connection string do pliku appsettings-protected.json i zmieniono wartość ustawienia LoadProtectedSettings na true. W związku z tym wprowadzono odpowiednie zmiany w instalatorze.
Logi bezpieczeństwa — zmiany w plikach appsettings.json
W plikach appsettings.json (AUTH i API) dodano flagę UseSqlLite, która pozwala zdecydować, czy wpisy logów bezpieczeństwa mają być zapisywane w plikach log.db3 (wartość true), czy w tabeli core.AuditLogs w systemowej bazie danych (wartość false — domyślna).
Akcja C# w zadaniu cyklicznym
Usunięto problem, który powodował, że pomimo błędu w wykonaniu akcji C# użytej w zadaniu cyklicznym, w historii wykonania zadania była zapisywana informacja o pomyślnym wykonaniu.
Uprawnienia ACL do przycisków sekcji typu lista
Usunięto błąd, w wyniku którego w oknie uprawnień formularza dla listy wyboru interesariuszy nie były widoczne pola wyboru określające uprawnienia do dodawania i usuwania interesariuszy.
Wtyczka nAxiom dla MS Outlook
Usunięto błąd w działaniu wtyczki nAxiom do MS Outlook.
Dodawanie języka
Przywrócono poprawne działanie funkcji dodawania języka w aplikacji AdminSPA.
Akcja JavaScript dla zdarzenia OnLeave
Przywrócono działanie akcji JavaScript wyzwalanej zdarzeniem OnLeave dla kontrolek typu DateTime i Time.
Odświeżanie komentarzy
Poprawiono odświeżanie komentarzy wyświetlanych w panelu bocznym w przypadku przejścia z jednego formularza na inny poprzez link wewnętrzny.
Audyt i zmiany interesariuszy
Poprawiono działanie audytu dla zdarzeń związanych z dodawaniem i usuwaniem interesariuszy.
Akcja odświeżania listy na przycisku w sekcji
Poprawiono działanie akcji odświeżania sekcji formularza. Akcja nie działała prawidłowo, gdy była przypisana do przycisku umieszczonego w nagłówku sekcji typu lista.
Jeśli akcja ma odświeżyć sekcję na bieżącym formularzu, w definicji akcji nie należy podawać kodu formularza.
Akcja zapisu i czyszczenie kontekstu formularza
Poprawiono błędne działanie akcji zapisu rekordu z wyłączonym przełącznikiem Odśwież widok po akcji zapisu
, które polegało na tym, że edycja zapisanego przed chwilą rekordu powodowała wyczyszczenie kontekstu formularza.
Brak kolumny Status w tabeli modelu uproszczonego
Poprawiono błąd, który uniemożliwiał wyświetlenie danych w widoku listy dla uproszczonego modelu danych (dawniej tabela katalogu) z powodu braku kolumny Status. Wprowadzono także zmiany dotyczące uprawnień dla modelu uproszczonego. Obecnie dla takiego modelu można definiować uprawnienia dla interesariuszy. Jednocześnie w oknie definicji dokumentu biznesowego opartego na modelu uproszczonym wyłączono wyświetlanie karty Uprawnienia - statusy
. Ponadto poprawiono akcję odświeżania uprawnień.
Zaznaczanie rekordów na liście
Poprawiono działanie pól wyboru w widoku listy. Obecnie możliwe jest zaznaczenie wszystkich rekordów na liście wyświetlanej w trybie server side oraz bez względu na paginację.
Akcja Algorytm C# na przejściu diagramu procesów
Dodano możliwość przypisywania akcji Algorytm C# na diagramie procesów jako akcji wykonywanych przed zmianą statusu i po niej.
Dostępność pól/sekcji i przekazywane parametry
Poprawiono sprawdzanie warunku dostępności dla sekcji/pól w przypadku parametrów przekazanych do kontekstu formularza akcją Otwórz formularz.
Przyciski w oknie migratora aplikacji
Poprawiono obserwowane sporadycznie niewłaściwe rozmieszczenie przycisków w migratorze aplikacji występujące po zmianie rozmiaru okna przeglądarki.
Cykliczne pobieranie e-maili
Poprawiono działanie przełącznika Exchange — cykliczne pobieranie e-mail
w sekcji Email
w ustawieniach systemowych.
Zamykanie formularza przyciskiem w sekcji
Poprawiono działanie akcji Zamknij formularz w przypadku uruchamiania jej przyciskiem umieszczonym w sekcji typu lista na formularzu.
Zapis treści wiadomości przez Mail Monitor
Poprawiono błąd w działaniu Mail monitora, który polegał na tym, że wiadomość e-mail była zapisywana jako załącznik tyle razy, ile było załączników do tej wiadomości.
Dokumentacja bibliotek API
Poprawiono działanie dokumentacji wywołań API dla poszczególnych komponentów nAxiom. Dokumentacja jest dostępna pod następującymi adresami:
- https://nazwa_witryny/publicapi/
- https://nazwa_witryny/mobileapi/
- https://nazwa_witryny/ocrapi/
- https://nazwa_witryny/back/ (dla Internal-API)
- https://nazwa_witryny/swagger/ (dla *Auth)
Zależności kontrolki — aktualizacja opisu
Uzupełniono pomoc kontekstową i dokumentację nAxiom o opis sposobu definiowania listy i zakresu wartości w funkcji zależności kontrolki.
Mail monitor — zmiana dokumentu biznesowego
Wprowadzono poprawkę, która umożliwia zmianę definicji dokumentu biznesowego w definicji mail monitora.
Odświeżanie formularza w trybie dialog
Poprawiono błąd odświeżania formularza otwieranego w trybie okna dialogowego.
Informacje o wersji (patch) 1.8.5 z dn. 29-09-2022
Poprawki i usunięte błędy
Kody pozycji słownikowych
Poprawiono procedurę migracyjną wykonywaną ze względu na ograniczenie długości kodów pozycji słownikowych wprowadzoną w wersji 1.8.3. Poprawka umożliwia działanie procedury na serwerze SQL Server 2016 bez poprawki SP1.
Przekazywanie parametrów w akcji otwierania formularza
Poprawiono przekazywanie parametrów w akcji Otwórz formularz w przypadku otwierania formularza w trybie linku wewnętrznego.
Informacje o wersji (patch) 1.8.4 z dn. 23-09-2022
Ważne informacje
Zmodernizowany migrator aplikacji
Zmodyfikowano działanie migratora aplikacji nAxiom. Zrezygnowano z odtwarzania kolejnych operacji zarejestrowanych w tabeli SQLBuilderMigrations. Obecnie migrator kopiuje zmodyfikowane obiekty bazy danych, ale nie zastępuje nimi istniejących. Po migracji konsultant ręcznie dokonuje wyboru właściwych obiektów.
Ponadto procesem migracji objęto indeksy i wyzwalacze zdefiniowane dla migrowanych tabel, a także systemowe widoki (funkcje tabelaryczne zdefiniowane dla list) i procedury składowane. Warunkiem migracji widoków i procedur jest przypisanie ich do modułów aplikacji w Kreatorze modelu danych.
Jednocześnie, na rozwiązanie oczekują następujące problemy wykryte podczas wszechstronnych testów migratora:
- nie można zaimportować aplikacji, jeśli usunięto szablony akcji wysyłki e-mail zdefiniowanych w tej aplikacji, dodatkowo, nie przenoszą się załączniki dodane do szablonów e-mail;
- nie są eksportowane pliki dołączane do szablonów Excel;
- nie są eksportowane akcje zdefiniowane na karcie
Uprawnienia — brak odczytu
w definicji dokumentu biznesowego; - nie są eksportowane ustawienia określone na karcie
Audyt
w definicji dokumentu biznesowego; - nie jest możliwy import roli biznesowej o kodzie identycznym z rolą już istniejącą w bazie docelowej, nawet jeśli obie role sa przypisane do różnych aplikacji;
- nie są aktualizowane uprawnienia ról do pozycji menu w sytuacji, kiedy w dotychczasowej wersji aplikacji rola miała uprawnienia, a w importowanej wersji nie ma tych uprawnień;
- na diagramie procesów w zaimportowanej aplikacji bloki oczekiwania nie mają przypisanych statusów;
- występują problemy z eksportem takich właściwości bloków diagramów procesów, jak eskalatory i akcje.
Zgodność aplikacji mobilnej z witrynami nAxiom
Ustalono zasady kompatybilności aplikacji mobilnej i witryny nAxiom. Aplikacja mobilna nAxiom jest zgodna z witrynami nAxiom w wersji co najmniej równej wersji aplikacji. Na przykład aplikacja mobilna w wersji 1.8.0 pozwala zalogować się do witryny nAxiom w wersjach od 1.8.0 do 1.8.4. Natomiast aplikacja mobilna w wersji 1.8.4 może logować się tylko i wyłącznie do witryny nAxiom w wersji 1.8.4.
Nowe i zmodernizowane funkcje
Zmiany w Kreatorze modeli danych
Wprowadzono zmiany w kreatorze modeli danych:
- Dodano nową kategorię obiektów
Procedury składowane
; zawiera ona listę procedur składowanych zdefiniowanych w bazie danych. - W kategorii
Widoki bazodanowe
są widoczne widoki systemowe generowane dla list (nazwa_View).
Powyższe obiekty udostępniono w kreatorze, aby umożliwić przypisanie ich do modułów aplikacji na potrzeby eksportu. W tym celu należy kliknąć nazwę widoku lub procedury prawym przyciskiem myszy i wybrać polecenie Przypisz moduł
.
Edycja tabel systemowych w Kreatorze modeli danych
W kreatorze modeli danych dodano możliwość edycji tabel systemowych core.SyncOUInstances i core.SyncUserProfiles wymaganą w przypadku importu użytkowników i struktury organizacyjnej z systemów zewnętrznych. Aby skorzystać z tej możliwości, należy ustawić wartość true dla parametru CoreTablesModificationEnabled w pliku appsettings.json dla aplikacji API, a następnie ponownie uruchomić tę aplikację.
Automatyczne logowanie w aplikacji mobilnej
W aplikacji mobilnej dodano obsługę automatycznego logowania (bez wyświetlania strony logowania). Jeśli token dostępu jest ważny, użytkownik aplikacji mobilnej nie musi się do niej logować. Funkcja jest aktywna, o ile użytkownik wyrazi na to zgodę podczas pierwszego logowania do aplikacji mobilnej.
Aby zapewnić prawidłowe działanie funkcji szybkiego logowania, po aktualizacji do wersji 1.8.4 użytkownik powinien ustawić w pliku appsettings.json dla aplikacji Auth wartość “RefreshTokenLifetime”: 5184000 w obiekcie “ClientId”: “mobile”.
Logowanie biometryczne w aplikacji mobilnej
W aplikacji mobilnej dodano obsługę mechanizmów uwierzytelniania opartych na danych biometrycznych zdefiniowanych w urządzeniu mobilnym (odcisk palca, rysy twarzy). W razie wykrycia takich danych, użytkownik może zdecydować się na używanie ich do szybkiego logowania do aplikacji.
Logowanie po resecie hasła w aplikacji mobilnej
W aplikacji mobilnej zmieniono zasady logowania się i odświeżania tokenu dostępu w przypadku zresetowania hasła użytkownika. Podczas pierwszego logowania po zmianie hasła konieczne jest podanie nazwy użytkownika i hasła. Następnie można przywrócić logowanie biometryczne. Dodatkowo, po zresetowaniu hasła token dostępu nie zostanie odświeżony automatycznie, tylko nastąpi wylogowanie z systemu.
Przełącznik Dostęp do Mobile API
w profilu użytkownika
W profilu użytkownika dodano przełącznik Dostęp do Mobile API
, który określa możliwość korzystania przez użytkownika z aplikacji mobilnej. Przełącznik jest domyślnie włączony. Wyłączenie spowoduje, że po próbie zalogowania do aplikacji mobilnej zostanie wyświetlony komunikat o braku uprawnień do korzystania z aplikacji.
Przełącznik Dostępna weryfikacja biometryczna
w profilu użytkownika
W profilu użytkownika dodano przełącznik Dostępna weryfikacja biometryczna
. Określa on, czy użytkownik może korzystać w aplikacji mobilnej z metod uwierzytelniania na podstawie danych biometrycznych (odcisk palca, rysy twarzy) zdefiniowanych w urządzeniu mobilnym.
JavaScript w widżecie typu sekcja HTML
W widżecie typu sekcja HTML dodano możliwość korzystania z kodu JavaScript, tak samo jak w sekcji HTML na formularzu.
Dokumentacja Public API
Zaktualizowano dokumentację biblioteki Public API, w tym również uzupełniono brakujące informacje.
Cykliczne sprawdzanie Internal API
Ze względów wydajnościowych w mechanizmie weryfikacji działania InternalAPI wyłączono wysyłanie żądania sprawdzającego co 60 sekund. Takie zapytanie jest wysyłane po zalogowaniu i przekierowaniu do aplikacji FrontSPA, a także po odświeżeniu strony (F5). W przypadku komunikatu 503 o tymczasowej niedostępności serwisu, należy po pewnym czasie samodzielnie odświeżyć stronę, aby sprawdzić, czy aplikacja InternalAPI już została uruchomiona.
Logi systemowe
Zmieniono domyślny poziom logowania z Error na Info (AdminSPA > Ustawienia systemu
> Logi
> Poziom logowania
). W przypadku aktualizacji poziom logowania zostanie zmieniony tylko w przypadku, kiedy użytkownik nie zmienił ustawienia domyślnego.
Na poziomie Info w plikach logów systemowych log.db3 zapisywane są wszystkie żądania wysyłane do endpointów InternalApi, PublicApi, OCRAPI, TaskServices i MobileApi oraz wszystkie odpowiedzi wysyłane z tych endpointów.
Logowane informacje mają umożliwić diagnostykę problemów bez dostępu do systemu klienta i ujawniania danych biznesowych.
Wylogowywanie użytkownika z aplikacji mobilnej
Zmodyfikowano zachowanie aplikacji mobilnej w przypadku przywrócenia po okresie działania w tle. Obecnie użytkownik nie musi się logować, nawet jeśli w czasie w pracy w tle nastąpiła przerwa połączenia z Internetem. Użytkownik będzie musiał zalogować się ponownie tylko wtedy, kiedy podczas pracy w tle token dostępu utracił wartość lub czas ważności tokenu jest bardzo krótki.
Poprawki i usunięte błędy
Wyświetlanie sekcji typu lista na formularzach
Zoptymalizowano wyświetlanie formularzy z sekcjami typu lista (ograniczono puste miejsca).
Import użytkowników z pliku Excel
Poprawiano działanie funkcji importu użytkowników z pliku Excel (ADMINISTRACJA
> Ustawienia systemu
> Import użytkowników
).
Blok Oczekiwanie
Poprawiono działanie bloku Oczekiwanie w sytuacji, kiedy zostanie on użyty bezpośrednio po bloku Start.
Automatyczne wylogowanie
Poprawiono działanie mechanizmu automatycznego wylogowania użytkownika po upływie określonego czasu bezczynności w przypadku przejścia systemu w tryb uśpienia.
Lista ról/użytkowników na stronie uprawnień PBA
Poprawiono sposób wyświetlania listy użytkowników na stronie Administracja uprawnieniami
.
Uprawnienia ACL dla formularza
Usunięto defekty wizualne związane z układem, występujące podczas wyświetlania uprawnień dla formularza w przypadku dużej liczby statusów.
Zakładka Edycja inline
dla kolumny listy
Usunięto błąd, który powodował, że po włączeniu edycji inline w definicji listy i przejściu do właściwości kolumny, karta Edycja inline
nie była wyświetlana. W celu wyświetlenia tej karty konieczne było ponowne kliknięcie kolumny.
Migracja przycisków do edycji inline
Usunięto błąd, który powodował, że podczas migracji aplikacji nie były przenoszone definicje przycisków do edycji inline.
Wybór słownika hierarchicznego w kreatorze modelu danych
Usunięto błąd, który powodował, że w przypadku listy wyboru typu słownik hierarchiczny ta lista nie miała przypisanego słownika wskazanego w kreatorze modeli danych.
Akcje zdarzeń systemowych w aplikacji mobilnej
Usunięto problem, który powodował, że w aplikacji mobilnej po zalogowaniu się użytkownika nie były wykonywane akcje zdarzeń systemowych.
Wykonanie akcji e-mail z załącznikiem
Usunięto problem, który uniemożliwiał ponowne wykonanie akcji e-mail w przypadku, kiedy szablon wiadomości e-mail miał zdefiniowany załącznik.
Akcja przypisania interesariusza wykonywana na workflow
Usunięto problem, który uniemożliwiał użycie akcji interesariuszy jako akcji przypisanej do przejścia na diagramie procesów (Action of type Stakeholder cannot be executed as backend action).
Błąd pobierania wartości do formularza w podprocesach
Usunięto problem, który w zagnieżdżonych podprocesach powodował wystąpienie komunikatu o błędzie:
Podczas pobierania formularza w trakcie uruchamiania przejścia dla bloczku oczekiwania wystąpił błąd. Nie udało się pobrać wartości do formularza. Sprawdź konfigurację formularza.
Wyświetlanie formularza JO w aplikacji FrontSPA
W aplikacji FrontSPA poprawiono wyświetlanie formularza jednostki organizacyjnej.
Automatyczne podświetlanie przycisku w oknie komunikatu
Zablokowano automatyczne ustawianie fokusa na domyślnym przycisku w oknie komunikatów, które objawiało się zmianą koloru przycisku, tak jak w przypadku wskazania kursorem myszy, i mogło być mylące dla użytkownika.
Parametry do audytu
Zmodyfikowano działanie ikony audytu (zegar) w taki sposób, że obecnie jej kliknięcie powoduje przekazanie do wyświetlanego formularza parametrów z formularza źródłowego.
Blok oczekiwania
Naprawiono problem, który powodował, że w określonych przypadkach blok oczekiwania był oznaczany jako zakończony bezpośrednio po wejściu, przed upływem ustawionego czasu oczekiwania.
Informacje o wersji (patch) 1.8.3 z dn. 02-09-2022
Nowe i zmodernizowane funkcje
Akcja odświeżania uprawnień
Dodano nowy rodzaj akcji Odświeżanie uprawnień. Służy ona do aktualizacji uprawnień po zmianie interesariusza. Odświeżanie odbywa się w momencie wykonania akcji i nie wymaga przejścia do kolejnego statusu. Akcja dotyczy wyłącznie uprawnień definiowanych dla konkretnych statusów.
Akcja działa w dwóch trybach wybieranych przełącznikiem Wykonaj dla bieżącej instancji dokumentu
w definicji akcji:
- przełącznik włączony: akcja jest wykonywana dla bieżącego rekordu; w tym trybie akcja musi zostać wywołana przyciskiem na formularzu lub podczas przejścia na diagramie procesu,
- przełącznik wyłączony: akcja zaktualizuje uprawnienia dla rekordów zwróconych przez zapytanie SQL. Takie zapytanie musi zwrócić identyfikator instancji dokumentu biznesowego oraz identyfikator definicji dokumentu biznesowego.
Poniżej podano przykład zapytania dla trybu wsadowego akcji odświeżania uprawnień. Akcja zaktualizuje uprawnienia dla instancji dokumentu biznesowego z tabeli dbo.Reklamacje w określonym statusie oraz dla wszystkich instancji dokumentu biznesowego z tabeli dbo.Zwroty, dodatkowo zwrócony zostanie odpowiedni identyfikator definicji dokumentu biznesowego.
SELECT Id,
(SELECT Id From BusinessDocuments Where [Table] = 'dbo.Reklamacje')
FROM dbo.Reklamacje WHERE Status = {{'{'}}@Status{{ '}' }}
UNION
SELECT Id, 13 FROM dbo.Zwroty
Generowanie aplikacji mobilnej w formacie apk
W skrypcie generatora aplikacji mobilnej dodano możliwość wygenerowania pliku apk, który następnie można zainstalować bezpośrednio na urządzeniu mobilnym (z pominięciem sklepu Google Play).
Wyłączanie powiadomień dla akcji wykonywanych na przejściach
We właściwościach przejść na diagramie procesów dodano sekcję Notyfikacje akcji przejścia
, która zawiera dwa przełączniki: Wyświetlaj pozytywne
i Wyświetlaj negatywne
. Obydwa są domyślnie włączone. Ich wyłączenie spowoduje, że powiadomienia o powodzeniu/niepowodzeniu wykonania akcji przypisanych do przejścia nie będą wyświetlane.
Filtrowanie/sortowanie sekcji typu lista
W ustawieniach sekcji typu lista dodano nowy przełącznik Zapamiętuj tymczasową konfigurację listy
. Domyślnie ten przełącznik jest wyłączony. Włączenie go powoduje, że we front office na bieżąco zapamiętywane są ustawienia sortowania/filtrowania dla sekcji typu lista na formularzu. Bieżące ustawienia są przechowywane do czasu wylogowania się użytkownika.
Sortowanie/filtrowanie listy użytkowników
W aplikacji FrontSPA na liście użytkowników dodano możliwość sortowania, filtrowania oraz wyszukiwania w indywidualnych kolumnach.
Aktualizacja kontekstu formularza
Dodano mechanizm aktualizacji kontekstu formularza po wykonaniu akcji JavaScript przypisanej do sekcji formularza.
Modyfikacja trigerów dla danych audytowych
W celu rozwiązania problemów z logowaniem danych audytowych w przypadku masowej aktualizacji danych w tabeli dokumentu biznesowego zmodyfikowane zostały trigery na tych tabelach.
Aktualizacja do wersji 1.8.3 spowoduje nadpisanie własnych trigerów na tabelach dokumentów biznesowych!
Limit długości kodów i nazw pozycji słownikowych
Wprowadzono ograniczenie długości kodów i nazw pozycji słownikowych. Od tej wersji kod pozycji słownikowej może mieć maksymalnie 50 znaków, a nazwa pozycji słownikowej maksymalnie 255 znaków. Dodatkowo, dozwolone znaki w kodach pozycji słownikowej ograniczono do małych i wielkich liter, cyfr i znaku podkreślenia (a-z, A-Z, 0-9 i _).
Pozycje słownikowe w tabelach [core].[DictionaryValues] i [core].[HierarchicalDictionaryValues] zostaną przetworzone przez procedurę migracyjną, która skróci kody do dozwolonej długości i dokona zmiany nieobsługiwanych znaków: znaki diakrytyczne zostaną zmienione na odpowiadające im litery alfabetu łacińskiego, a inne nieobsługiwane znaki na znak podkreślenia.
Dodatkowo migracja sprawdzi wymóg unikalności kodów i w razie potrzeby doda na końcu nowych numer kolejny (w ramach nowego limitu długości).
Modyfikacja kodów pozycji słownikowych przez skrypt migracyjny może spowodować błędy w aplikacjach biznesowych, dlatego zaleca się samodzielne sprawdzenie przez konsultanta, które kody zostaną zmodyfikowane oraz miejsca ich użycia.
Przykłady zapytań weryfikujących kody podlegające zmianom:
--kody powyżej 50 znaków
SELECT * FROM [core].[DictionaryValues] WHERE len(Code) > 50
--kody ze znakami specjalnymi
SELECT * FROM [core].[DictionaryValues]
WHERE PATINDEX('%[^0-9A-Za-z_]%', Code) > 0
SELECT * FROM [core].[HierarchicalDictionaryValues]
WHERE PATINDEX('%[^0-9A-Za-z_]%', Code) > 0
-- kody zduplikowane po wcześniejszym obcięciu do 50 znaków
-- i zastąpieniu znaków specjalnych
SELECT dv.Code, dv.DictionaryId
FROM core.DictionaryValues dv
LEFT JOIN core.Dictionaries d ON dv.DictionaryId = d.Id
WHERE d.UniqueCodes = 1
GROUP BY dv.Code, dv.DictionaryId
HAVING COUNT(*) > 1
-- do modyfikacji kodów używana jest zmodyfikowana funkcja usuwająca
-- znaki specjalne i diakrytyczne oraz obcinająca kod do 50 znaków
ALTER FUNCTION [core].[Remove_Special_Character_From_Code]
(@input_string nvarchar(max))
RETURNS nvarchar(max)
BEGIN
DECLARE @Temp nvarchar(max), @KeepValues varchar(50);
SET @KeepValues = '%[^0-9A-Za-z_]%'
SET @Temp = CAST(@input_string AS varchar(max))
COLLATE SQL_Latin1_General_Cp1251_CS_AS
WHILE PATINDEX(@KeepValues, @Temp) > 0
SET @Temp = STUFF(@Temp, PATINDEX(@KeepValues, @Temp), 1, '_')
RETURN @Temp
END;
Monitor poczty i wiadomości bez załączników
W oknie dialogowym Dodawanie/Edycja mail monitora
dodano przełącznik Przetwarzaj tylko wiadomości z załącznikami
. Wyłączenie tego przełącznika spowoduje, że funkcja monitora poczty będzie tworzyła nowy dokument dla każdej przychodzącej wiadomości e-mail, niezależnie od tego, czy zawiera ona załączniki.
W istniejących monitorach przełącznik jest włączony, w nowych jest domyślnie wyłączony.
Jeśli przełącznik będzie włączony, wiadomości bez załączników nie będą oznaczane jako przeczytane.
Poprawki i usunięte błędy
Grupowanie rekordów a paginacja listy
Usunięto błąd grupowania rekordów na liście występujący w przypadku, gdy liczba rekordów w grupie była większa niż liczba rekordów na stronie.
Kolumna PK w tabeli pomocniczej
Usunięto błąd, który uniemożliwiał utworzenie tabeli pomocniczej z kolumną klucza głównego (PK) typu innego niż int. Obecnie dostępne typy danych dla kolumny klucza głównego ograniczono do int, uniqueidentifier, varchar, nvarchar oraz datetime. Dodatkowo, dla typu danych int możliwe jest włączenie autoinkrementacji wartości klucza.
Wyświetlanie formularza w trybie okno/dialog
Poprawiono wyświetlanie formularzy w trybie dialogu/okna (brak zaokrąglenia dolnych narożników).
Grupowanie rekordów a edycja inline
Usunięto błąd, który uniemożliwiał edycję w trybie inline po włączeniu grupowania na liście.
Uprawnienia do administrowania uprawnieniami
Usunięto problem, który powodował, że pomimo posiadania uprawnień do administrowania uprawnieniami (A) próba zmiany uprawnień we front-office (po kliknięciu ikony „kluczyka”) powodowała wyświetlanie komunikatu o braku uprawnień.
Ponowne logowanie po przekierowaniu
Wprowadzono poprawkę w zachowaniu systemu w celu wyeliminowania konieczności ponownego zalogowania się podczas wykonywania akcji przekierowania (ePUAP, e-sign, inne). Obecnie, po powrocie z witryny zewnętrznej wyświetlanej w tej samej karcie użytkownik nie musi ponownie logować się do nAxiom.
Uprawnienie PBA Filtry SQL listy
Zmodyfikowano działanie uprawnienia PBA Filtry SQL listy
. Obecnie brak uprawnienia uniemożliwia tworzenie i edytowanie tego rodzaju filtrów, jednak nie blokuje możliwości korzystania z takich filtrów.
Przyciski akcji na liście
Poprawiono działanie kodu ukrywającego przyciski akcji na liście w przypadku nowych wierszy dodany w trybie edycji inline. Na skutek błędu nie były wyświetlane przyciski akcji na listach, które nie zwracały kolumny klucza głównego.
Lista rozwijana do wyboru interesariuszy
Poprawiono wyświetlanie listy wyboru interesariuszy dla większej liczby pozycji na liście.
Synchronizacja JO i TaskService
Usunięto błąd w aplikacji TaskService, który występował podczas próby synchronizacji jednostek organizacyjnych.
Typ DateTime w wynikach zapytania SQL
W funkcji analizującej wynik zapytania SQL pod kątem oczekiwanego typu danych dodano typ DateTime. Jego brak powodował występowanie w niektórych sytuacjach komunikatu o błędzie Niezdefiniowany typ dla ciągu znaków.
Hierarchia pozycji menu
W oknie dialogowym Edycja pozycji menu
ograniczono zawartość listy rozwijanej Menu nadrzędne
do tych pozycji, których wybór nie spowoduje błędu; na liście nie są wyświetlane pozycje podrzędne względem bieżącej ani pozycja bieżąca.
Błąd opisu akcji uprawnień do rekordów
W oknie dialogowym akcji Uprawnienia do rekordów poprawiono błędnie podany w opisie typ parametru AllowChildOrgUnits z bit na int.
Kolejność w sekwencji akcji
Wprowadzono poprawkę w zachowaniu komponentu do przypisywania akcji (w designerze formularzy i na workflow). Obecnie dodanie kolejnej akcji do istniejącej sekwencji akcji nie powoduje zresetowania ustalonej kolejności. Dodawana akcja trafia na koniec sekwencji, skąd można ją przesunąć w żądane miejsce.
Generowanie aplikacji mobilnej dla iOS
Usunięto problem powodujący wystąpienie błędu walidacji podczas generowania aplikacji mobilnej dla systemu iOS w przypadku, gdy w magazynie Keychain jest kilka certyfikatów Apple Worldwide Developer Relations Certification Authority z różnymi datami wygaśnięcia.
Zmiana danych jednostki organizacyjnej
Usunięto błąd, który powodował, że zmiana/aktualizacja danych dodatkowych jednostki organizacyjnej powodowała czyszczenie wartości w kolumnach ExternalRecordId oraz Ouid w tabeli core.OUInstances.
Parametry w zapytaniu dla źródła danych zdarzeń kalendarza
Poprawiono przekazywanie zmiennych z kontekstu formularza w zapytaniu SQL zwracającym źródło danych dla zdarzeń w sekcji kalendarza.
Informacje o wersji (hotfix) 1.8.2.1 z dn. 23-08-2022
Nowe i zmodernizowane funkcje
Klawiatura numeryczna na urządzeniach mobilnych
W aplikacji mobilnej i PWA dodano wywołanie klawiatury numerycznej po przejściu do pola numerycznego na formularzu lub liście (w tym np. pola z numerem strony lub pola w filtrach).
Z powodu znanego błędu implementacji klawiatury numerycznej na urządzeniach mobilnych marki Samsung, klawisz przecinka na tej klawiaturze jest nieaktywny. W celu wprowadzenia przecinka dziesiętnego należy użyć klawisza z kropką.
Archiwizacja logów przez instalator
W instalatorze nAxiom wprowadzono archiwizację plików z rozszerzeniami db3, log, txt zapisanych w folderach instalacyjnych. Podczas aktualizacji plików witryny program dopisuje do nazwy pliku datę i godzinę, a do rozszerzenia przyrostek _arch. Dotychczas instalator usuwał takie pliki.
Poprawki i usunięte błędy
Warunek widoczności kolumny w sekcji typu lista
Poprawiono błąd, który powodował, że warunek wyświetlania kolumny listy ustawiony na karcie Widoczność
w kreatorze list był ignorowany w przypadku listy osadzonej na formularzu w sekcji typu lista.
Wyświetlanie przycisków listy na urządzeniach mobilnych
Usunięto problem, który powodował, że pomimo wyłączenia wyświetlania przycisków dla sekcji typu lista, na urządzeniach mobilnych te przyciski były nadal wyświetlane.
Problemy z Mail Monitorem
Dodano migrację, która przypisuje użytkownikowi system organizację System. Brak przypisanej organizacji uniemożliwiał działanie modułu Mail Monitor.
Informacje o wersji (patch) 1.8.2 z dn. 18-08-2022
Ważne informacje
Ograniczenie długości kodów i nazw pozycji słownikowych
Mechanizm smart numbers umożliwia obecnie tworzenie odwołań do pozycji słownikowych. Jego poprawne działanie wymaga, aby kody pozycji słownikowych spełniały pewne kryteria dotyczące między innymi długości. Z tego powodu w wersji 1.8.3 planowane jest wprowadzenie ograniczenia długości kodu pozycji słownikowej do 50 znaków oraz długości samej pozycji (właściwość Nazwa) do 255 znaków. Dla istniejących pozycji słownikowych zostanie dodany skrypt migracyjny, który skróci kody i nazwy pozycji słownikowych dłuższe niż przyjęte maksimum.
W związku z tą zmianą prosimy o analizę zdefiniowanych pozycji słownikowych oraz ewentualnych referencji do tych pozycji i ich korektę przed aktualizacją do wersji 1.8.3 w celu uniknięcia potencjalnych problemów spowodowanych przez działanie skryptu migracyjnego.
Nowe i zmodernizowane funkcje
Dodanie mechanizmu monitorowania czynności użytkowników w systemie
Uwaga: Opisane zmiany zostaną niebawem wycofane, dlatego nie zaleca się tworzenia żadnych rozwiązań opartych na tym mechanizmie.
W celu podniesienia bezpieczeństwa systemu dodano mechanizm monitorowania czynności wykonywanych przez użytkowników (np. udane/nieudane logowanie użytkownika, zmiana jego uprawnień) oraz monitorowania zmian modelu aplikacji (modyfikacje formularzy, list, akcji etc.). Każdy serwis (internal-api, public-api, mobile-api, task-service, auth) loguje zdarzenia do własnego pliku SQL Lite (SecurityAudit.db3) znajdującego się w katalogu, z którego uruchamiany jest dany serwis.
Struktura logowanych informacji jest następująca:
Timestamp - czas wystąpienia zdarzeniaRequestId - identyfikator żądania HTTPIP - adres IP, z którego wykonano żądanieUserAgent - aplikacja kliencka wysyłająca żądanieUserName - nazwa użytkownika wykonującego operacjęEventCategory - kategoria zdarzeniaEventType - rodzaj zdarzeniaEntityType - jakiego typu obiektu biznesowego dotyczy dana operacja (np. FormDefinition - definicja formularza, Action - akcja), pole jest uzupełniane dla operacji związanych ze zmianą modelu danychTarget - czego dotyczy dane zdarzenie, w przypadku zdarzeń związanych z autoryzacją, np. nieudanej próby zalogowania, będzie to login konta na które próbowano się zalogować. W przypadku zdarzeń związanych ze zmianami w obiektach biznesowych będą to dane identyfikujące daną instancję obiektu: Code, Id, RowGuid lub sam RowGuid dla obiektów nie posiadających kodu.Message - tekstowy opis zdarzeniaDetails - opcjonalne dodatkowe szczegóły, np. zmienione wartości pól dla zdarzenia modyfikacji obiektu biznesowego, wymagane uprawnienia dla zdarzenia braku uprawnień do wykonania operacji
Standaryzacja trybu edycji inline
Ustandaryzowano tryb edycji inline rekordów listy:
- Każdy przycisk jest widoczny i konfigurowalny z poziomu drzewa przycisków kreatora listy.
- Akcja odpowiedzialna za tworzenie i aktualizację rekordu jest definiowana z poziomu konfiguracji przycisku
Zapisz
. - Akcja usuwania rekordu jest definiowana z poziomu przycisku
Usuń
. - Poprawiono logikę sterującą wyświetlaniem przycisków w zależności od wybranego przypadku: dodawania, edycji i usuwania rekordu inline.
- Poprawiono mechanizm drag & drop służący do definiowania kolejności obiektów w drzewie kreatora listy.
- Poprawiono logikę wyświetlającą przyciski inline dla dodawania nowego rekordu (wyświetlane są tylko potrzebne przyciski, bez możliwości wykonywania akcji w kontekście tworzonego i niezapisanego jeszcze rekordu).
Weryfikacja uruchomienia InternalAPI
Dodano mechanizm zabezpieczający uruchomienie głównej aplikacji systemu prezentującej interfejs użytkownika przed uruchomieniem wymaganej aplikacji InternalApi. Jeżeli ta aplikacja nie jest uruchomiona, we FrontSPA wyświetla się komunikat, że serwis jest tymczasowo niedostępny. Gdy aplikacja InternalApi zostanie uruchomiona, FrontSPA wykona automatyczne przekierowanie na stronę główną.
Możliwość przekazania nagłówków w zapytaniu do WebSerwisu
Do akcji Zapytania do WebSerwisów dodano możliwość definiowania nagłówków żądania. Definiowanie odbywa się poprzez nowe pole Nagłówki żądania
obsługujące listę, do której użytkownik może dodawać dowolne nagłówki żądania. Wartość nagłówka może być definiowana poprzez wpisanie tekstu, albo wpisanie zapytania SQL do bazy systemowej.
Dodanie opisów do akcji odśwież listę
W definicji akcji odświeżania list dodano placeholdery do poszczególnych pól w celu ułatwienia zrozumienia funkcjonalności oraz dodano dodatkowy opis informujący o tym, że w przypadku zamierzonego odświeżania bieżącego formularza pole Kod formularza
należy pozostawić puste.
Uwzględnienie kolumny RecordId w procesie migracji
Przywrócono do zakresu danych migrowanych w procesie migracji aplikacji kolumnę RecordId niezbędną do poprawnego budowania logiki zwracającej tłumaczenia dla aplikacji budowanych w starszych wersjach platformy.
Lista zadań cyklicznych - wyświetlanie danych w kolumnie Cron
Dodano wartość wyrażenia Cron do danych wyświetlanych na liście zadań cyklicznych oraz umożliwiono manipulowanie szerokością kolumn w tej liście.
Poprawki i usunięte błędy
Obsługa SQL Server 2016 w wersji 13 w zakresie migracji aplikacji
Poprawiono mechanizm migracji aplikacji w zakresie wykonania procesu migracji, gdy system pracuje na SQL Server 2016 w wersji 13.
Poprawa wyświetlania ostatniego elementu breadcrumbs
Poprawiono mechanizm budowania ścieżki breadcrumbs. Dotychczas system zwracał błędny ostatni element ścieżki.
Brak przypisania akcji do przycisku formularza w środowisku docelowym po migracji aplikacji
Poprawiono błąd, który powodował że akcje przypisane do przycisków formularza migrowanej aplikacji nie były do nich przypisane w aplikacji uruchomionej w środowisku docelowym.
Nadmiarowe role biznesowe po wykonaniu migracji
Zaimplementowano poprawkę usuwającą nadmiarowe role biznesowe po wykonaniu migracji aplikacji.
Zadania cykliczne - Historia wykonywanych zadań - nie działa filtrowanie kolumn
Poprawiono działanie filtrowania historii wykonywania zadań cyklicznych dla kolumn Zadanie, Status i Szczegóły. Dodatkowo włączono możliwość zmiany szerokości kolumn i ustawiono domyślne szerokości.
Nie działa akcja Blokuj dokument
Poprawiono błąd uniemożliwiający poprawne działanie akcji Blokuj dokument
wywoływanej podczas otwierania formularza.
Poprawa zapisu rekordu do tabeli pomocniczej posiadającej kolumnę [Status] przyjmującą wartości NULL
Poprawiono błąd występujący podczas tworzenia nowego rekordu oraz edycji istniejącego, gdy zapis rekordu ma być wykonany do tabeli pomocniczej posiadającej kolumnę [Status] dopuszczającą wartość NULL.
Wyświetlanie klucza FrontSPA.FormHeader.NewEntry zamiast nazwy formularza
Naprawiono błąd polegający na braku wyświetlania tłumaczenia dla nagłówka formularza. Zamiast wartości dla tłumaczenia widoczna była nazwa klucza.
Widoczny stary formularz audytu oraz formularz z akcji audytowych
Poprawiono błąd wyświetlania formularza audytu polegający na wyświetlaniu formularza zdeprecjonowanego oraz zdefiniowanego zgodnie z nową logiką audytu danych biznesowych. Zbędny formularz został usunięty.
Ograniczenie zakresu danych dozwolonych do edycji podczas zapisywania profilu użytkownika
Poprawiono obsługę modyfikacji własnego profilu użytkownika związaną ze zbyt dużym zakresem danych dostępnych do modyfikacji w przypadku korzystania bezpośrednio z API.
Błąd w filtracji logów aplikacji po polu Wiadomość
Poprawiono błąd uniemożliwiający filtrowanie logów systemowych po kolumnie Wiadomość.
Nieprawidłowe działanie stylów przycisków dla widoku mobilnego
Poprawiono błąd stylizacji przycisków systemu tworzonych przez kreatory w AdminSPA i wyświetlanych w aplikacji mobilnej. Obecnie przyciski w aplikacji mobilnej i wersji desktop są stylowane przez system zgodnie z założonym algorytmem.
Błąd wyświetlania logo systemu w przeglądarce Mozilla Firefox
Naprawiono błąd wyświetlania logo systemu w przeglądarce Mozilla Forefox. Dodano informację o wymogach, jakie powinno spełniać logo w formacie wektorowym SVG. Informacja została dodana do narzędzia Kreator stylów.
Błędne wyświetlanie suwaków w niektórych przeglądarkach
Poprawiono wyświetlanie suwaków w przeglądarkach Mozilla Firefox, MS Edge i Google Chrome. Uzupełniono ustawienia specyficzne dla tych przeglądarek.
Pliki z rozszerzeniem bak
Usunięto błąd, który uniemożliwiał dodawanie załączników z rozszerzeniem bak.
Informacje o wersji (patch) 1.8.1 z dn. 29-07-2022
Nowe i zmienione funkcje
Walidacja licencji USER tylko dla aktywnych użytkowników
Zmodyfikowano mechanizm zarządzania licencjami w taki sposób, że nieaktywne profile użytkowników nie są wliczane do puli licencji.
Dostosowanie logiki tworzenia właściwości Kod dla Statusów biznesowych
Dodano walidację kodów statusów pod względem używanych znaków. Obecnie w kodzie statusu można używać tylko wielkich i małych liter, cyfr i znaku podkreślenia. Istniejące kody statusów zostaną odpowiednio zmienione. W przypadku zduplikowanych kodów statusów, do kodu zostanie dodany identyfikator GUID statusu.
Wprowadzenia domyślnego sortowania na liście plików NAX w migratorze aplikacji
Na liście konfiguracji eksportu migratora aplikacji dodano domyślne sortowanie po wartości kolumny Data wgrania
w kolejności malejącej. Dzięki temu konfiguracje na liście są wyświetlane od najnowszej.
Brak możliwości zalogowania się po aktualizacji witryny
Dla aplikacji API został wydłużony limit czasu dla jej uruchomienia do 5 minut. Wcześniej dany limit był ustawiony na dwie minuty, co powodowało problemy przy pierwszym uruchomieniu aplikacji, bądź przy aktualizacji ze starszych wersji.
Ta zmiana wymaga ponownego uruchomienia witryny na serwerze IIS po instalacji nAxiom i pierwszym zalogowaniu użytkownika ze względu na aplikację TaskService, która w przeciwnym razie nie zostanie uruchomiona.
Scalenie procedur migracji bazy danych w ramach procesu aktualizacji systemu
Wersja 1.4.2 jest obecnie wersją krytyczną, od której obecnie wykonywana są wszystkie migracje bazy danych.
Jeżeli planowane jest wykonanie aktualizacji systemu z wersji starszej niż 1.4.2, należy najpierw zaktualizować system do jakiejkolwiek wersji między 1.4.2 a 1.8.0.2, a następnie można aktualizować bezpośrednio do wersji najnowszej.
Poprawki i usunięte błędy
Wycofanie usuwania kolumny RecordId z modelu danych tłumaczeń podczas aktualizacji systemu
W wersji systemu 1.8 wprowadzona została zmiana w modelu danych tłumaczeń polegająca na używaniu innego zestawu kolumn do obliczania tłumaczenia dla wartości tekstowych. Zmiana ta spowodowała usunięcie kolumny RecordId w tabeli tłumaczeń, która mogła być używana przez konsultantów do budowania własnej logiki biznesowej w innych miejscach systemu. Od wersji 1.8.1 zmieniono mechanizm aktualizacji w taki sposób, aby nie usuwał wskazanej kolumny. Jeżeli nie instalowano wersji 1.8 - 1.8.0.2 i aktualizacja jest wykonywana bezpośrednio do 1.8.1 z wersji wcześniejszych, to nie ma potrzeby wykonywania żadnych dodatkowych czynności. W przeciwnym wypadku niezbędne jest wykonanie poniższego SQL, aby przywrócić kolumnę i wypełnić ją danymi automatycznie.
Skrypt SQL:
CREATE PROCEDURE FillTransationDefinitionRecordId
AS
DECLARE @tableName varchar(200)
DECLARE @recordRowGuid varchar(40);
DECLARE @query VARCHAR(MAX) = ''
DECLARE @rowNO int = 0
DECLARE TRANS_CURSOR CURSOR
LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT DISTINCT TableName,
RecordRowGuid FROM [core].[TranslationDefinitions]
OPEN TRANS_CURSOR
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
WHILE @@FETCH_STATUS = 0
BEGIN
SET @rowNO = @rowNO+1;
IF COL_LENGTH('core'+'.'+@tableName, 'Id') IS NOT NULL
BEGIN
IF @rowNO < @@CURSOR_ROWS
SET @query = @query +
'SELECT Id, RowGuid FROM [core].[' +
@TableName +
'] WHERE RowGuid = ' +
'''' + @RecordRowGuid + ''' UNION ALL '
ELSE
SET @query = @query +
'SELECT Id, RowGuid FROM [core].[' +
@TableName + '] WHERE RowGuid = ' +
'''' + @RecordRowGuid + ''''
END
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
END
CLOSE TRANS_CURSOR
DEALLOCATE TRANS_CURSOR
IF OBJECT_ID('tempdb..#TempTable', 'U') IS NOT NULL
BEGIN DROP TABLE #TempTable; END;
CREATE TABLE #TempTable (
Id int NOT NULL,
RowGuid uniqueidentifier NOT NULL
);
DECLARE @insertQuery VARCHAR(MAX)
set @insertQuery = 'INSERT INTO #TempTable ' + @query;
EXEC (@insertQuery);
UPDATE
[core].[TranslationDefinitions]
SET
[RecordId] = temp.Id
FROM
[core].[TranslationDefinitions] td
INNER JOIN
#TempTable temp
ON
td.RecordRowGuid = temp.RowGuid;
EXEC [dbo].[FillTransationDefinitionRecordId];
Przekroczenie limitu czasu podczas migracji aplikacji
Usunięto problem, który powodował niepowodzenie procesu zapisu konfiguracji aplikacji w Migratorze spowodowane przekroczeniem limitu czasu.
Usuwanie widoków bazodanowych
Usunięto problem, który uniemożliwiał usunięcie funkcji tabelarycznej utworzonej przez użytkownika w kreatorze modeli danych.
Błąd aktualizacji systemu po zmianie adresu email systemowego użytkownika consultant
Poprawiono błąd, który uniemożliwiał aktualizację bazy danych w przypadku zmiany adresu e-mail dla systemowego profilu użytkownika consultant.
Identyfikatory GUID jednostek organizacyjnych w uprawnieniach dla formularza
Usunięto błąd, który powodował, że w miejscach definiowania uprawnień (dla indywidualnych dokumentów we front office, w szablonach uprawnień, w uprawnieniach formularza) zamiast nazw jednostek organizacyjnych wyświetlane były identyfikatory GUID.
Błędy w obszarze designera formularzy
- Poprawiono błąd z usuwaniem przenoszonego elementu z usuniętej sekcji.
- Poprawiono błąd z brakiem aktualizacji kolejności dla kolumn czy wierzy w przypadku ich usuwania.
- Poprawiono ustawienie szerokości dla domyślnie wygenerowanej kolumny z flow w kreatorze modeli danych.
Brak domyślnego typu dokumentu dla dokumentu biznesowego
Usunięto błąd, który powodował, że po wygenerowany automatycznie typ dokumentu biznesowego nie był dostępny w kontrolce typu biznesowego na formularzu.
Na FrontSPA po zmianie listy na inną listę z menu pokazywane jest błędne Id listy
Usunięto błąd, który powodował, że jeśli we front office użytkownik wybierał z menu kolejno kilka list, identyfikatory tych list wyświetlane w ścieżce breadcrumbs były nieprawidłowe.
Brak przycisków w kontrolce numerycznej, słownikach i listach wyboru
Usunięto problem z poprawnym wyświetlaniem kontrolek, m. in. pól numerycznych, sygnalizowany w Informacjach do wersji 1.8.
Nie działa Styl pola dla przycisków
Poprawiono problemy występujący w przypadku użycia własnego stylu dla kontrolki na formularzu (właściwość Styl pola
).
W przypadku przycisków nie należy używać przedrostków podanych we wskazówce (np. .label, .input), tylko wprost definicji stylu. Np. zamiast .label.font-size=18px; użyć font-size=18px;
Zmiana wyświetlania kontekstu błędu walidacji akcji Sprawdzanie przed zapisem
W akcji sprawdzania przed zapisem zmieniono sposób wyświetlania komunikatu definiowanego przez użytkownika. Obecnie ten komunikat nie jest poprzedzany komunikatem systemowym o błędzie podczas wykonywania akcji, tylko jest wyświetlany bezpośrednio.
Zmiana rozmiaru czcionki portalu nie działa
Przywrócono działanie funkcji zmiany wielkości czcionki w aplikacji FrontSPA (AAA).
Akcja generowania PDF - problem z generowaniem pliku w tym samym/zbliżonym czasie przez kilku użytkowników
Usunięto błąd, który uniemożliwiał jednoczesne generowanie pliku PDF przez więcej niż jednego użytkownika.
Wartość danego pola w kolumnie w bazie danych z wstawionym znakiem enter nie jest wczytywana do formularza np. dla kontrolki typu lista wyboru SQL
System przed wyrenderowaniem listy wyboru wycina z danych pobranych z bazy danych wszystkie znaki specjalne (enter, tabulator, znak nowej linii itd). Dane w kontrolkach typu lista prezentowane są w taki sposób, że jeżeli szerokość tekstu jest za długa, tekst jest skracany wraz z dopisaniem na końcu znaku „…”. Po najechaniu kursorem myszy na kontrolkę typu lista, która ma wybraną wartość i tekst wybranej wartości jest dłuższy niż szerokość kontrolki pojawia się tooltip z pełną wartością bez przycinania.
Brak przeniesienia tabeli powiązanej ze strukturą organizacyjną
Usunięto problem, który powodował, że Migrator aplikacji pomijał tabelę zdefiniowaną dla struktury organizacyjnej.
Informacje o wersji (hotfix) 1.8.0.2 z dn. 25-07-2022
Poprawki i usunięte błędy
Indeksowanie tekstu po OCR
Rozszerzono indeksowanie tekstu po procedurze OCR na całą warstwę tekstową zwracaną przez OCR. Do tej pory indeksowane były tylko fragmenty, które zostały pomyślnie dopasowane do pól określonych w szablonie. Obecnie do indeksu wyszukiwania dodawany jest cały tekst rozpoznany podczas OCR załącznika, w związku z czym treść dopasowana do pól szablonu nie jest indeksowana osobno.
Przywrócenie kolumny RecordId w tabeli tłumaczeń
Dodano możliwość przywrócenia kolumny RecordId (int) w tabeli core.TranslationDefinitions. W wersjach nAxiom przed 1.8 służyła ona do wiązania tłumaczonego rekordu z jego tłumaczeniem. W wersji 1.8 platformy tę kolumnę zastąpiła kolumna RecordRowGuid (uniqueidentifier), co spowodowało konieczność aktualizacji widoków, a w konsekwencji wyrażeń SQL używanych np. do filtrowania list. Niniejsza poprawka eliminuje tę konieczność.
Aby móc korzystać z dotychczasowego rozwiązania (sprzed 1.8) należy:
- Zaktualizować bazę do wersji 1.8.
Po aktualizacji nie wykonywać aktualizacji widoków!
- Zaktualizować bazę do wersji 1.8.0.2; zostanie przywrócona kolumna RecordId w tabeli TranslationDefinitions z wartościami null.
- Uruchomić załączony poniżej skrypt w celu utworzenia procedury
FillTransationDefinitionRecordId
, która posłuży do wypełnienia kolumny RecordId wartościami. - W osobnym zapytaniu uruchomić utworzoną procedurę:
EXEC [dbo].[FillTransationDefinitionRecordId]
Poniższy skrypt jest przygotowany dla schematu [core] W przypadku bazy danych z innym schematem należy odpowiednio zaktualizować skrypt.
CREATE PROCEDURE FillTransationDefinitionRecordId
AS
DECLARE @tableName varchar(200)
DECLARE @recordRowGuid varchar(40);
DECLARE @query VARCHAR(MAX) = ''
DECLARE @rowNO int = 0
DECLARE TRANS_CURSOR CURSOR
LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT DISTINCT TableName, RecordRowGuid
FROM [core].[TranslationDefinitions]
OPEN TRANS_CURSOR
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
WHILE @@FETCH_STATUS = 0
BEGIN
SET @rowNO = @rowNO+1;
IF COL_LENGTH('core'+'.'+@tableName, 'Id') IS NOT NULL
BEGIN
IF @rowNO < @@CURSOR_ROWS
SET @query = @query + 'SELECT Id,
RowGuid
FROM [core].[' + @TableName + ']
WHERE RowGuid = ' + ''''
+ @RecordRowGuid
+ ''' UNION ALL '
ELSE
SET @query = @query + 'SELECT Id,
RowGuid
FROM [core].[' + @TableName + ']
WHERE RowGuid = ' + ''''
+ @RecordRowGuid + ''''
END
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
END
CLOSE TRANS_CURSOR
DEALLOCATE TRANS_CURSOR
IF OBJECT_ID('tempdb..#TempTable', 'U') IS NOT NULL
BEGIN DROP TABLE #TempTable; END;
CREATE TABLE #TempTable (
Id int NOT NULL,
RowGuid uniqueidentifier NOT NULL
);
DECLARE @insertQuery VARCHAR(MAX)
set @insertQuery = 'INSERT INTO #TempTable ' + @query;
EXEC (@insertQuery);
UPDATE
[core].[TranslationDefinitions]
SET
[RecordId] = temp.Id
FROM
[core].[TranslationDefinitions] td
INNER JOIN
#TempTable temp
ON
td.RecordRowGuid = temp.RowGuid;
Informacje o wersji 1.8 z dn. 15-07-2022
Nowe i zmodernizowane funkcje
Autoryzacja oparta na uprawnieniach (PBA)
Zaimplementowano model uprawnień Permissions Based Authorization (autoryzacja oparta na uprawnieniach), który pozwala kontrolować dostęp użytkowników do wykonywania określonych czynności w systemie na podstawie posiadanych przez nich uprawnień. Proces przyznawania uprawnień odbywa się po stronie front-office (w aplikacji FrontSPA).
Uprawnienia podzielono na dwa obszary uprawnień: zarządzanie użytkownikami oraz globalne ustawienia aplikacji. Pierwszy obszar dotyczy różnych czynności związanych z zarządzaniem profilami użytkowników, drugi korzystania z aplikacji oraz tworzenia aplikacji. Osobna kategoria to uprawnienia do wyznaczania administratorów uprawnień, czyli użytkowników, którzy będą mogli przyznawać uprawnienia innym użytkownikom.
- Uprawnienia mogą być przyznawane rolom biznesowym oraz indywidualnym użytkownikom.
- Uprawnienia wynikowe każdego użytkownika stanowią logiczną sumę uprawnień przypisanych w ramach każdej jego roli oraz indywidualnie jego profilowi; to znaczy, że aby pozbawić użytkownika danego uprawnienia, należy je wyłączyć zarówno w jego profilu, jak i we wszystkich jego rolach.
- Weryfikacja uprawnień odbywa się podczas logowania użytkownika (zmiana uprawnień zaczyna obowiązywać po ponownym zalogowaniu użytkownika).
W celu zainicjowania modelu PBA należy skorzystać z predefiniowanego profilu użytkownika superuser (domyślne hasło !Q2w3e4r%T). Ten profil odgrywa rolę superadministratora uprawnień, to znaczy może wyznaczać użytkowników (w tym siebie) jako administratorów uprawnień. Temu użytkownikowi nie można odebrać uprawnień do administracji uprawnieniami.
- Uprawnienia PBA są weryfikowane podczas logowania użytkownika, dlatego każda zmiana uprawnień zalogowanego użytkownika zacznie obowiązywać dopiero po jego wylogowaniu i ponownym zalogowaniu.
- Bez uprawnienia
Używanie wszystkich aplikacji
(Uprawnienia systemowe
>Globalne uprawnienia aplikacji
) inne posiadane przez użytkownika uprawnienia będą nieskuteczne, z wyjątkiem uprawnieniaZmiana własnego hasła
.- Niezależnie od uprawnień PBA, użytkownikom, którzy mają zarządzać profilami użytkowników, należy przypisać rolę biznesową z dostępem do polecenia
Lista użytkowników
(ewentualnieDrzewo listy użytkowników
.- Analogicznie, administratorzy uprawnień będą mieli dostęp do obszarów uprawnień po przypisaniu im ról biznesowych z włączonym dostępem do menu
Zarządzanie uprawnieniami
>Systemowe
; domyślnie to menu jest dostępne tylko dla posiadaczy roli systemowejAdministrator
.- Czynności związane z tworzeniem i edytowaniem profili użytkownika są dostępne tylko dla użytkowników z przypisaną rolą systemową Administrator.
- Dostęp do back-office (zarządzanie definicjami aplikacji, rozbudowa aplikacji) wymaga posiadania roli Konsultant
- Jeśli podczas instalowania witryny nie zostanie wskazana licencja, użytkownik systemowy consultant ma uprawnienia do zaimportowania licencji podczas pierwszego uruchomienia. Dopiero wtedy można będzie zalogować się na konto superuser i zarządzać uprawnieniami.
- Użytkownik superuser ma na stałe przypisane uprawnienie do wyznaczania administratorów uprawnień (pole wyboru
Dostęp do administracji uprawnieniami
) i nie można tego zmienić. Po zainicjowaniu uprawnień PBA ten profil można dezaktywować.
Wsparcie dla obsługi środowiska deweloperskiego, testowego i produkcyjnego
Dodano możliwość definiowania środowisk: deweloperskiego, testowego i produkcyjnego. Wyboru rodzaju środowiska dokonuje się podczas instalacji nAxiom. Środowisko deweloperskie i testowe jest oznaczone kolorowym paskiem z odpowiednim tekstem w górnej części okna przeglądarki. Środowisko produkcyjne nie ma takiego oznaczenia. Dodatkowe funkcjonalności wspierające model trzech środowisk to możliwość definiowania osobnych akcji dla każdego środowiska oraz możliwość definiowania zmiennych przyjmujących różne wartości w różnych środowiskach.
W przypadku akcji w oknie definicji dodano trzy przełączniki do ustawiania środowisk, w których akcja ma być wykonywana (w przypadku istniejących definicji wszystkie przełączniki są domyślnie włączone).
Zmienne definiuje się na liście definicji aplikacji. Odwołanie do zmiennej wymaga użycia składni {&NazwaAplikacji.AppVariables.KodZmiennej}. Zmienne mogą być używane jako parametry akcji (np. adres serwera dla źródła danych), w edytorze HTML, w szablonie e-mail, w szablonach oraz w edytorze SQL. W tym ostatnim przypadku jest dostępny mechanizm asysty SmartNumbers.
Dodatkowo w środowisku deweloperskim użytkownik ma możliwość przełączenia wartości zmiennych oraz akcji na takie jak dla środowiska testowego, a w środowisku testowym na wartości zmiennych i akcje dla środowiska deweloperskiego.
Odpowiednie ustawienia dotyczące rodzaju środowiska są zapisywane w plikach appsettings.json dla aplikacji API i Auth w kluczu Environment. Obsługiwane wartości to Development, Test, Production.
W przypadku witryn aktualizowanych z wcześniejszej wersji nAxiom, domyślnie ustawiane jest środowisko deweloperskie. Tę wartość można zmienić w obu plikach, jednak w celu zastosowania zmiany konieczne jest restartowanie aplikacji.
Kreator filtrów dla list
W widoku list w aplikacji FrontSPA dodano kreator filtrów, w którym można definiować kryteria filtrowania bez użycia SQL. Kreator oferuje predefiniowane operatory oraz umożliwia łączenie warunków filtrowania operatorami logicznymi AND i OR. Możliwe jest także grupowanie warunków i łączenie grup operatorami logicznymi.
Filtry zdefiniowane we wcześniejszych wersjach pozostają dostępne, jednak do ich edycji wymagane jest odpowiednie uprawnienie w modelu PBA. Ponadto zmodernizowano edytor filtrów SQL.
Wszystkie filtry są dostępne tylko dla ich twórców.
Pomoc w aplikacjach biznesowych nAxiom
Dodano funkcjonalność wyświetlania treści pomoc dotyczącej formularzy, list, definicji dokumentów biznesowych oraz statusów w aplikacjach biznesowych nAxiom. Treść pomocy jest wyświetlana w zdefiniowanym przez konsultanta formularzu, kiedy użytkownik kliknie ikonę koła ratunkowego
. Ikona pomocy jest wyświetlana w obszarze ikon systemowych (np. kontekst, audyt, odśwież) na formularzu i w widoku listy (także w sekcji typu lista).Przykładowy scenariusz konfigurowania pomocy dla użytkownika może wyglądać następująco:
- Dodać treść pomocy do elementów aplikacji — przycisk
Tłumaczenia i pomoc
w oknach kreatora listy i formularzy, w oknie definicji dokumentu biznesowego oraz na diagramie procesu. - Zdefiniować formularz do wyświetlania pomocy.
- Zdefiniować akcje otwierania formularza z przekazywaniem identyfikatora formularza/statusu i listy.
- Przypisać akcje wykonywane po kliknięciu przycisku pomocy:
- w ustawieniach systemowych (
ADMINISTRACJA
>Ustawienia systemu
>Pomoc i dokumentacja
) - indywidualnie dla dokumentu biznesowego (
PROCESY BIZNESOWE
>Dokumenty biznesowe
> ‘Edycja’ > kartaPomoc dla użytkownika
)
- w ustawieniach systemowych (
- Skonfigurować opcje wyświetlania przycisku pomocy dla list i formularzy (
INTERFEJS UŻYTKOWNIKA
>Formularze/Listy
>Edycja
> kartaPomoc dla użytkownika
).
Formatowanie warunkowe kolumny HTML
Dodano możliwości formatowania warunkowego kolumny HTML. Odpowiednie ustawienia znajdują się na karcie Formatowanie warunkowe
w oknie dialogowym właściwości kolumny HTML. Ta karta zawiera dwie karty podrzędne:
-
Warunki formatowania
: służy do określenia warunków zastosowania stylu do elementu HTML z kolumny HTML. W wyrażeniu należy odwoływać się do elementów kolekcji RowHtmlElements, które w definicji HTML są określane przez użycie atrybutu rowHtmlElement o wartości odpowiadającej nazwie tego elementu (dla tych elementów jest dostępna asysta Smart Numbers). Wartości kolumn z rekordu listy są dostępne jako elementy kolekcji RowDataContext. -
Stylizacja
: pozwala określić style CSS używane do formatowania wartości w kolumnie HTML. Obsługiwane są selektory CSS z bibliotek Bootstrap 5 (https://getbootstrap.com/docs/5.0/).
Nazwy elementów kolekcji RowHtmlElements mogą zawierać wyłącznie małe i wielkie litery (bez znaków diakrytycznych).
Przykład:
HTML:
<table>
<tr>
<td>Nr reklamacji:</td>
<td><a rowHtmlElement="MyLink" ><code>{@Code}</code></a></td>
</tr>
<tr>
<td>Status:</td>
<td><i rowHtmlElement="StatusIcon" ></i>
<p>{@StatusName}</p></td>
</tr>
<tr>
<td>Dni od zgłoszenia:</td>
<td rowHtmlElement="MyCell"></td>
</tr>
</table>
Warunek formatowania:
switch (RowDataContext.Status) {
case 1:
RowHtmlElements.StatusIcon.className = 'fas fa-pen fa-2x text-success';
break;
case 30:
RowHtmlElements.StatusIcon.className = 'fas fa-pen fa-2x text-success';
break;
case 2:
RowHtmlElements.StatusIcon.className = 'fas fa-hourglass fa-2x text-info';
break;
case 3:
RowHtmlElements.StatusIcon.className = 'far fa-hourglass fa-2x text-warning';
break;
case 4:
RowHtmlElements.StatusIcon.className = 'fas fa-check fa-2x text-success';
break;
case 5:
RowHtmlElements.StatusIcon.className = 'fas fa-ban fa-2x text-danger';
break;
case 6:
RowHtmlElements.StatusIcon.className = 'fas fa-ban fa-2x';
break;
case 7:
RowHtmlElements.StatusIcon.className = 'fas fa-check fa-2x';
};
var anchor = 'http://localhost:4200/front/form/59CEB6A4-0DAD-4E0D-9C0D-E017357CDE12/'
+ RowDataContext.Id
RowHtmlElements.MyLink.href = anchor;
var dzisiaj = new Date();
var utworzono = new Date(RowDataContext.CreateDate).setHours(0);
var dni = Math.floor(Math.abs(dzisiaj-utworzono)/(1000 * 3600 * 24));
RowHtmlElements.MyCell.innerHTML = dni;
if (dni > 14 ) {
RowHtmlElements.MyCell.className = 'warn14';
}
Stylizacja:
td:nth-child(odd) {
background-color: #85cc98;
text-align: right;
vertical-align: top;
}
td:nth-child(even) {
background-color: #a7d9b4;
text-align: center;
column-width: 200px;
max-width: 200px;
}
.warn14 {
color: orangered;
font-size: 1.4rem;
}
Rezultat:

Nowe filtry logów aplikacji
Zmodyfikowano obsługę filtrowania logów aplikacji. Można ustawić zakres dat, tylko datę początkową lub tylko datę końcową. Osobno dodano predefiniowane filtry dla ostatnich 15/30 i 60 minut. Na liście widoczne są obecnie tylko kolumny z datą, poziomem logowania i komunikatem o błędzie. Pozostałe informacje są dostępne po kliknięciu przycisku Szczegóły
.
Dane są filtrowane i stronicowane po stronie serwera. Odfiltrowane wpisy — łącznie ze szczegółami — można wyeksportować do arkusza Excel (z ograniczeniami narzucanymi przez program Excel: maks. liczba wierszy 1048576, maks. liczba znaków w komórce 32767)
Zmiany funkcji tłumaczeń
Wprowadzono zmiany w obsłudze tłumaczeń. Zmieniono sposób powiązania definicji tłumaczenia z tłumaczonym rekordem. Obecnie jest do tego używana kolumna RowGuid z tabeli rekordu (np. FormFields.RowGuid) i kolumna RecordRowGuid z definicji tłumaczenia (TranslationDefinitions.RecordRowGuid).
Ponadto zmodyfikowano wygląd list tłumaczeń wyświetlanych poleceniem Tłumaczenia i pomoc
w menu ADMINISTRACJA
oraz przyciskami Tłumaczenia i pomoc
w kreatorach list i formularzy. Dodano także możliwości grupowania i filtrowania rekordów.
W związku z tą zmianą konieczne jest odświeżenie funkcji tabelarycznych (widoków) używanych jako źródła danych dla list generowanych automatycznie. W tym celu w Kreatorze modeli danych dodano polecenie Aktualizacja widoków
, które opisano poniżej. Jeśli widoki nie zostaną odświeżone, podczas otwierania list będą występować błędy:
Invalid column name 'RecordId'.
...
...
...
Could not use view or function 'dbo.OutgoingCorrespondence_View' because of binding errors.
Konieczna może być również ręczna modyfikacja istniejących zapytań, które odwołują się do definicji tłumaczeń.
Aktualizacja widoków
W Kreatorze modeli danych dodano polecenie Aktualizacja widoków
, które umożliwia wsadową aktualizację widoków ([KodDokBiz_View]) używanych jako źródła danych dla list. Po kliknięciu przycisku polecenia wyświetlana jest lista tabel (z modeli standardowych i uproszczonych) z polami wyboru. Użytkownik może wybrać tabele, dla których chce odświeżyć widoki. Poza tym polecenie działa tak samo, jak przycisk odświeżania dostępny indywidualnie dla tabel.
Aktualizacja obejmuje wyłącznie widoki tworzone automatycznie podczas generowania elementów aplikacji.
Nowy sposób definiowania przycisków do edycji inline
Zmodyfikowano sposób definiowania przycisków do edycji inline na liście. Obecnie włączenie przełącznika operacji edycji inline (edycja, dodawanie, usuwanie) powoduje dodanie przycisku w strukturze drzewa listy. Na przykład włączenie edycji inline powoduje dodanie przycisku do edycji, dla którego jednocześnie definiuje się wygląd i akcję wykonywaną w celu zapisania zmian oraz wygląd przycisku do anulowania zmian. Domyślnie przyciski do edycji inline mają w nazwie człon [inline].

Ta modyfikacja umożliwia zmiany kolejności wyświetlania przycisków do edycji inline.
Zidentyfikowano problem ze stylem przycisków: po wskazaniu kursorem myszy lub kliknięciu przycisk „znika”. Ten problem zostanie poprawiony w pierwszym patchu do wersji 1.8. Tymczasowym obejściem jest wybranie koloru wypełnienia przycisku i zapisanie zmiany.
Przebudowany komponent wyboru akcji
Przebudowano selektor akcji oraz listę akcji wywoływanych dla konkretnej czynności użytkownika. Obecnie możliwe jest dodawanie akcji bezpośrednio z listy wszystkich akcji. Ta lista ma wszystkie standardowe funkcjonalności widoku listowego oraz informację o włączonym warunkowym wykonywaniu akcji i dostępności akcji dla konkretnego środowiska. Z poziomu selektora oraz listy wszystkich akcji możliwe jest szybsze tworzenie nowych akcji wybranego typu.
Zmiana domyślnego ustawienia właściwości Preload enabled
Wprowadzono zmianę, która powoduje, że obecnie instalator ustawia wartość true dla właściwości Włączono wstępne ładowanie
(Preload enabled
) dla aplikacji API (back na serwerze IIS). Ta zmiana wyeliminuje problemy w działaniu zadań cyklicznych.
Właściwość Kod
w definicji akcji
W definicjach akcji dodano pole Kod
. Kod akcji może zawierać małe i wielkie litery (bez znaków diakrytycznych), cyfry oraz znaki podkreślenia. Kod musi być unikalny w obrębie aplikacji. Dla istniejących definicji kody generowane są automatycznie na podstawie nazwy akcji (obsługiwane są także przypadki, kiedy automatycznie utworzony kod już istnieje). Dla akcji systemowych kodem jest wartość z kolumny Command w tabeli core.Actions.
Dzięki tej zmianie w akcji Algorytm C# można będzie odwoływać się do innych akcji, używając asysty Smart Numbers.
„Globalne” wartości parametrów widżetów na pulpicie
Dodano możliwość określania globalnej wartości dla parametrów powtarzających się w widżetach na pulpicie. Jeśli dla kilku widżetów zostanie zdefiniowany parametr o takiej samej nazwie i zostanie dla niego zaznaczone pole wyboru Globalny
. Zmiana wartości parametru w jednym widżecie spowoduje aktualizację danych wyświetlanych w pozostałych widżetach.

Rozbudowa akcji Algorytm C#
Rozbudowano możliwości akcji Algorytm C#. Obecnie w tej akcji można wykonywać następujące rodzaje akcji:
- Akcje SQL
- Akcje e-mail
- Akcje WebServices
- Akcje algorytm C#
Do wykonania akcji służy funkcja RunActionAsync, która działa asynchronicznie, dlatego należy dodać słowo kluczowe await, aby akcje wykonywały się synchronicznie. Funkcja przyjmuję dwa parametry: identyfikator wykonywanej akcji oraz model w formacie JSON. Identyfikator akcji można podać, używając składni SmartNumbers ({&BaseApp.Actions.BaseModule.KodAkcji}).
Modele danych dla akcji przedstawiono poniżej, jeśli nie trzeba przekazywać parametrów, można wstawić wartość *NULL lub pusty ciąg znaków.
Funkcja RunActionAsync
zwraca obiekt o typie danych ActionExecutionResult
, który jest zbudowany następująco:
public class ActionExecutionResult
{
public string Result { get; set; }
public bool IsValid { get; set; }
public ValidationResult ValidationResult { get; set; }
public List<ResponseMessage> ResponseMessages { get; set; }
}
Result
: zmienna z obiektem JSON odpowiedzi z wykonywanej akcji, w większości wypadków będzie to bool.
IsValid
: flaga poprawności wykonania akcji.
ValidationResult
: lista błędów, które wystąpiły w czasie wykonania akcji. Jest to klasa pochodząca z biblioteki .FluentValidation, a dokładnie *FluentValidation.Results.ValidationResult.
ResponseMessages – jest to klasa która może przenosić komunikaty sqlowe. Struktura:
public class ResponseMessage
{
public string Message { get; set; }
public ResponseMessageType Type { get; set; }
public IList<object> Arguments { get; set; }
public bool ShowImmediately { get; set; }
}
Błędy, które wystąpią w akcjach, zostaną zalogowane i zwrócone w akcji akcji Algorytm C#, gdzie można będzie je obsłużyć (w bloku try catch
). Błędy są zwracane jako Exception typu ActionExecutionException. Wyjątek zawiera właściwość ExecutionResult typu ActionExecutionResult, w której jest przechowywany wynik wykonanej akcji:
public ActionExecutionResult ExecutionResult { get; set; }
- Wykonanie akcji SQL:
await CSharpScript.ActionRunner.SqlAction.Instance.RunActionAsync(id, model);
Struktura modelu:
{ "RecordId": "string", "Model": "model JSON dla wykonywanej akcji, te parametry mogą być wykorzystane jako parametry np. w zapytaniu sql", "UserId": "00000000-0000-0000-0000-000000000000", "GridId": null, "FormDefinitionId": null, "BusinessDocumentId": null }
- Akcja e-mail:
await CSharpScript.ActionRunner. EmailAction.Instance.RunActionAsync(id, model);
Struktura modelu:
{ "RecordId": "string", "Model": "model JSON dla wykonywanej akcji, te parametry mogą być wykorzystane jako parametry np. w zapytaniu sql", "UserId": "00000000-0000-0000-0000-000000000000", "GridId": null, "FormDefinitionId": null, "BusinessDocumentId": null, "ExtraEmailsToSend": [ "string", "string" ] }
- Akcja WebServices:
await CSharpScript.ActionRunner. WebServiceAction.Instance.RunActionAsync(id, model);
Struktura modelu:
{ "RecordId": "string", "Model": "model JSON dla wykonywanej akcji, te parametry mogą być wykorzystane jako parametry np. w zapytaniu sql", "UserId": "00000000-0000-0000-0000-000000000000", "GridId": null, "FormDefinitionId": null, "BusinessDocumentId": null }
- Akcja algorytm C#:
await CSharpScript.ActionRunner. CSharpScriptAction.Instance.RunActionAsync(id, model);
Struktura modelu:
{ "RecordId": "string", "Model": "model JSON dla wykonywanej akcji, te parametry mogą być wykorzystane jako parametry np. w zapytaniu sql", "UserId": "00000000-0000-0000-0000-000000000000", "GridId": null, "FormDefinitionId": null, "BusinessDocumentId": null }
W zmiennej ActionExecutionResult.Result zwracany jest obiekt JSON:
{
"ExecutedSuccessfully": true,
"ReturnValue": "",
}
Dodatkowe informacje w logach aplikacji
Rozszerzono możliwości diagnostyki błędów rejestrowanych w logach nAxiom. W tym celu do tabeli w pliku log.db3 dodano kolumny CustomParamModel oraz QueryModel, w których zapisywane są (w formacie JSON) wartości parametrów używanych podczas wykonywania kodu SQL przy wywołaniu akcji.
Logowane wartości są prezentowane w okienku szczegółów, w którym dodano pole tekstowe z parametrami systemowymi, okno do prezentacji SQL oraz tabelkę z wartościami parametrów zapytania.
Ponadto w ustawieniach systemowych w sekcji Logi
dodano przełącznik Ukryj wartości parametrów w logowanym zapytaniu SQL
. Przełącznik jest domyślnie wyłączony, po włączeniu wartości parametrów nie są rejestrowane.
Obsługa akcji algorytm C# przez funkcję zadań cyklicznych
W funkcji zadań cyklicznych dodano możliwość cyklicznego wykonywania akcji typu Algorytm C#.
Obsługa procedur callback
Rozbudowano pakiet funkcjonalności pozwalający na wywołanie przekierowania wraz z przekazaniem danych wejściowych z systemu nAxiom do innego systemu oraz obsługę w tym ciągu zdarzeń powrotnego przekierowania do systemu nAxiom i dalszą obsługę procesu biznesowego w zależności od danych otrzymanych z zewnętrznego systemu. Ten pakiet funkcjonalności wspiera takie procesy jak obsługa podpisów elektronicznych lub zakupy online z obsługą płatności.
W ramach tego zadania dodano nowy rodzaj akcji: Inicjowanie przekierowania HTTP. W tej akcji definiuje się, czy token jest jednorazowy, czas ważności tokena, procedurę callback (wybierana z listy), dwa adresy URL — dla poprawnej odpowiedzi (ResponseType=OnSuccess) oraz dla błędnej odpowiedzi (ResponseType=OnError). Od wartości parametru ResponseType zależą akcje wykonywane w ramach procedury callback. Obydwa adresy URL muszą mieć parametr Token={@_Token}. Parametr {@_Token} jest to parametr zwracany przez zapytanie SQL (SQL dla zapisu parametrów
), oprócz niego zapytanie zwraca wartości {@_OnSuccessUrl} i {@_OnErrorUrl}.
Indeksowanie warstwy tekstowej z OCR
W konfiguracji wyszukiwarki pełnotekstowej dodano obsługę wyszukiwania w treści załączników przetworzonych przez OCR. W wynikach wyszukiwania zwracane są dane dokumentu biznesowego i nazwa załącznika.
Warunek wyświetlania kolumny w widoku listy
W kreatorze list, w oknie właściwości kolumny źródła danych dodano kartę Widoczność
. Na tej karcie można zdefiniować warunek SQL wyświetlania tej kolumny. Funkcjonalność powstała z myślą o umożliwieniu ukrywania kolumn na listach w przypadku obsługi witryny nAxiom w aplikacji mobilnej.
Warunek musi zwrócić wartość liczbową (0 — kolumna zostaje ukryta). W warunku można używać szeregu parametrów systemowych ({@_Nazwa}), w tym parametru {@_MobileMode}. Ten parametr pozwala wykrywać, czy użytkownik pracuje w aplikacji mobilnej, i w takiej sytuacji ukrywać kolumny. W przypadku aplikacji mobilnej (instalowanej ze sklepu, nie dotyczy trybu PWA) ten parametr przyjmuje wartość FLUTTER.
Dostęp do struktury organizacyjnej w FrontSPA
Dodano możliwość wyboru formularza ze strukturą organizacyjną podczas tworzenia pozycji menu użytkownika. Na liście wyświetlanej po kliknięciu przycisku Utwórz
dla kodu formatki formularz struktury znajduje się na ostatnim miejscu.
Instalowanie witryn nAxiom w systemie Windows Server 2022 DataCenter
Wprowadzono poprawki umożliwiające uruchamianie instalatora jednoplikowego w systemie Windows Server 2022 DataCenter.
Definiowanie akcji dla przycisku audytu
Dodano możliwość definiowania akcji uruchamianych kliknięciem przycisku audytu (ikona zegara) na formularzu wyświetlanym we front-office. Widoczność przycisku i jego akcje można definiować globalnie w ustawieniach (ADMINISTRACJA
> Ustawienia systemowe
> Audyt
) oraz indywidualnie dla definicji dokumentu biznesowego (okno Edycja definicji dokumentu
> karta Audyt
).
Akcja skanowania kodów kodów kreskowych i QR
Dodano akcję Skaner kodów QR/BC
, która umożliwia wczytywanie danych z kodów kreskowych/QR w aplikacji mobilnej nAxiom. Akcja zwraca obiekt JSON o strukturze
{
"codeFormat": "ean-13",
"code": "1234567"
}
Ten obiekt można przetworzyć w zapytaniu SQL definiowanym dla akcji w celu wyodrębnienia danych.
Dodatkowo użytkownik może zdefiniować standard obsługiwanych kodów kreskowych i QR, rozmiar i położenie obszaru skanowania, jego proporcje, atrybuty stylu oraz opcje dodatkowe, m.in. włączanie latarki podczas skanowania.
Określanie typu MIME w akcji WebService
W definicji akcji Webservice dodano właściwość Typ zawartości (MIME type)
, w którym można określić rodzaj zwracanych danych. Do tej pory ten parametr miał stałą wartość text/xml;charset=”utf-8. Obecnie jest to wartość domyślna, w związku z czym nie ma potrzeby zmiany istniejących akcji.
Pole tej właściwości jest dostępne tylko w przypadku wyboru źródła danych typu API/SOAP.
Nowy wygląd menu szybkich akcji
Zmieniono wygląd menu szybkich akcji w widoku mobilnym.
Lokalizacja elementów natywnych aplikacji mobilnej
Dodano mechanizm obsługi tłumaczeń nazw elementów natywnych aplikacji mobilnej. W pliku konfiguracyjnym aplikacji mobilnej dodano klucz localization. Obsługiwane wartości tego klucza to pl i en.
Wskaźnik operacji w toku dla ekranu logowania
Dodano wskaźnik operacji w toku do ekranu logowania do aplikacji mobilnej.
Nowy wygląd przycisków do filtrowania listy w widoku mobilnym
Zmodyfikowano wygląd przycisków używanych do filtrowania i sortowania wartości w widoku listy w przypadku wyświetlania witryny nAxiom na urządzeniu mobilnym.
Poprawki i usunięte błędy
Modernizacja bloku Oczekiwanie
Zmodyfikowano właściwości i sposób działania bloku Oczekiwanie na diagramie procesów. Obecnie ten blok wymaga przypisania statusu.
W związku z tą zmianą po aktualizacji konieczne jest uzupełnienie statusu w istniejących diagramach procesów, w których używany jest ten blok.
Ponadto do bloku można teraz przypisać akcje wykonywane po przejściu. W ramach modyfikacji dodano sekcję Procesy biznesowe
w ustawieniach systemowych. Zawiera ona ustawienie Interwał powtarzania uruchamiania oczekujących procesów (s)
. Określa ono interwał sprawdzania, czy ustawiony czas oczekiwania upłynął. Wartość domyślna 0 wyłącza to sprawdzanie. W takiej sytuacji proces zatrzyma się w statusie przypisanym do bloku Oczekiwanie. Zmiana ustawienia wymaga restartowania aplikacji taskservice.
Uprawnienia formularza i kontrolka checkbox
Dodano walidowanie wymagalności dla kontrolek CheckBox (pojedynczy) oraz Checkbox (grupa). Ponadto wyłączono możliwość ustawienia wymagalności dla kontrolki CheckBox (pojedynczy typu switch).
Funkcje agregacyjne w stopce listy
Usunięto problem z wyświetlaniem funkcji agregującej w stopce widoku listy w przypadku, gdy nazwa kolumny zawierała znak podkreślenia.
Akcja powiadomień w podprocesie
Zmodyfikowano obsługę akcji wysyłania powiadomień w taki sposób, aby mogła być wykonywana w operacjach „backendowych”, to jest jako akcja wykonywana przed lub po przejściu kroku na diagramie procesu.
Ustawianie daty za pomocą SQL
Poprawiono błąd z ustawianiem daty dla kontrolek Datapicker oraz Datapicker i pole czasu w przypadku gdy ustawiane wartość jest zwracana zapytaniem SQL SELECT GetDate() dla polskich ustawień narodowych (dd.MM.yyyy).
Widżet z podglądem raportu Telerik
Usunięto problemy występujące w przypadku wyświetlania raportu Telerik w widgecie na pulpicie w aplikacji FrontSPA.
Zależności kontroli — zbiór wartości oraz przedział
Poprawiono działanie funkcji zależności kontrolki. Obecnie możliwe jest określenie zbioru oraz przedziału wartości, na podstawie których będzie wyświetlana kontrolka zależna. W celu podania zbioru wartości należy wybrać operator zawiera się w, a w kolumnie Wartość
wpisać wyrażenie [14, 18] — odpowiada wartościom 14 i 18. W celu zdefiniowania zakresu, należy użyć składni <14;18> — odpowiada wartościom od 14 do 18 włącznie.
Zmienne w nagłówku szablonu Word
Usunięto problem, który powodował, że niektóre zmienne używane w nagłówku szablonu Word nie renderowały się poprawnie.
Ustawianie daty strzałkami
Dla kontrolki Pole daty poprawiono funkcję zmiany daty przyciskami strzałek z prawej strony pola.
Walidacja wyrażeń regularnych w kontrolkach
W kontrolkach formularza poprawiono obsługę walidacji wyrażeń regularnych i wyświetlanie komunikatu użytkownika.
Generowanie PDF jako akcja po
Usunięto problem z wykonywaniem akcji generowania pliku PDF jako akcji po zmianie statusu. Aby jednak taka akcja była wykonywana poprawnie, musi mieć włączony przełącznik Zapisz wygenerowany plik do załączników
.
Anonimizacja danych liczbowych
W akcji anonimizacji, dodano obsługę danych typu liczba zmiennoprzecinkowa. ponadto poprawiono anonimizację danych typu liczba dziesiętna z liczbą miejsc przed przecinkiem mniejszą niż 7.
Kontrolki Pole czasu oraz Datapicker i pole czasu
Poprawiono style dla kontrolek Pole czasu oraz Datapicker i pole czasu
Akcja Ustaw dane formularza
Poprawiono ustawianie wartości przy użyciu akcji Ustaw dane formularza w przypadku, gdy docelową kontrolką była Lista wyboru SQL (async).
Automatyczne wylogowanie
Do komponentów systemu wykorzystujących element iframe dodano kontener, w którym jest śledzona aktywność użytkownika. Dzięki temu wyeliminowane zostaną sytuacje, w których użytkownik aktywnie korzystający z nAxiom zostaje wylogowany z powodu bezczynności. Te komponenty to: podgląd raportów Telerik, podgląd formularza w designerze formularzy w aplikacji AdminSPA, sekcja załączników, sekcja OCR, okno dokumentacji, widżety w aplikacji FrontSPA.
Szablon Word
Usunięto błąd, który umożliwiał zapis szablonu Word, pomimo braku odpowiedniego folderu na dysku. Usunięto błąd, którego skutkiem był wielokrotny zapis tego samego szablonu Word, także w przypadku błędów w modelu JSON.
Kaskadowe zależności kontrolki
Poprawiono działanie funkcji zależności kontrolki w przypadku zależności kaskadowych (kontrolka zależna jest jednocześnie kontrolką nadrzędną dla innej kontrolki).
Komponent wyboru akcji we FrontSPA
Poprawiono działanie komponentu do wyboru akcji dostępnego w aplikacji FrontSPA (Akcje zdarzeń systemowych
).
Okno logowania w widoku mobilnym
Dostosowane okno dialogowe zmiany hasła użytkownika do wyświetlania w widoku mobilnym.
Synchronizacja z Active Directory
Usunięto błędy występujące w procesie synchronizacji użytkowników i ról biznesowych z usługą Active Directory
Uprawnienia formularza a przyciski sekcji
Usunięto błąd, który powodował, że przycisk umieszczony w nagłówku sekcji nie był widoczny w uprawnieniach formularza.
Nadpisywanie appsetings.json
Usunięto błąd, który powodował nadpisywanie przez instalator ustawień dotyczących ElasticSearch w pliku appsettings.json.
Akcje po dla zapętlonego przejścia
Poprawiono wykonywanie akcji po w przypadku przejścia, które wracało do swojego statusu początkowego (pętla).
Migracja w przypadku zmiany nazwy modelu/kolumny
Poprawiono działanie migratora aplikacji w przypadku zmian nazwy modelu i/lub kolumn. Modyfikacja obejmuje tylko zmiany, które zostaną wprowadzone w tej wersji nAxiom.
W przypadku zmian wprowadzonych w poprzednich wersjach konieczne jest ręczna poprawa wpisów w tabeli [core.SqlBuilderMigrations]. W przeciwnym razie migrowane są modele/kolumny przed zmianą i po zmianie.
Kontrolka wyboru interesariuszy
Poprawiono działanie kontrolki wyboru interesariuszy w przypadku wybierania użytkowników przez wpisywanie ich nazw (filtrowanie). Błąd powodował, że w takim przypadku użytkownicy wybrani wcześniej byli usuwani.
GUID-y na formularzach
Poprawiono sposób obsługi tłumaczeń w celu wyeliminowania sytuacji, kiedy na formularzu zamiast etykiet wyświetlane były identyfikatory GUID.
Synchronizacja z Active Directory
Usunięto błędy występujące w procesie synchronizacji użytkowników i ról biznesowych z usługą Active Directory.
Kończenie sesji po zamknięciu karty
Poprawiono mechanizm zarządzania sesją użytkownika w taki sposób, że po zamknięciu stron witryny nAxiom, próba przywrócenia takiej strony z historii wymaga ponownego zalogowania się.
Brak szablonu Excell
W akcji eksportu do pliku Excel dodano sprawdzanie, czy wskazany w definicji akcji szablon istnieje oraz sprawdzanie podczas próby usunięcia szablonu, czy nie jest on używany w żadnej akcji.
Zadanie cykliczne, opis właściwości Cron
Zmieniono opis do pola Cron
w oknie dialogowym definiowania zadania cyklicznego. Zwrócono uwagę, że przykłady podane na stronie walidatora online, nie są obsługiwane przez nAxiom (składają się z pięciu elementów, podczas gdy wyrażenia cron w nAxiom muszą mieć 6 części).
Akcja Otwórz formularz
Poprawiono wykonywanie akcji globalnej Otwórz formularz w przypadku, gdy identyfikator otwieranego formularza jest zwracany zapytaniem SQL.
Modernizacje Kreatora modeli danych
Dodano udogodnienia w obsłudze Kreatora modeli danych, w tym wyszukiwanie tabel na liście, przechodzenie do projektu tabeli po dwukrotnym kliknięciu nazwy tabeli oraz domyślne ustawianie schematu dbo dla nowej tabeli.
Własne style CSS
Przywrócono działanie funkcjonalności własnych stylów CSS (Ustawienia systemu
> Ogólne
> Własny CSS
).
Aktualizacja do bieżącej wersji może wymagać dokonania zmian w zdefiniowanych stylach z powodu zmiany struktury selektorów CSS, m. in. na potrzeby obsługi wersji desktopowej i mobilnej.
Przykład: dotychczasowa deklaracja zmiany koloru nagłówka
nax-header > nav.navbar { background: red!important; }
nie będzie działać ze względu na zmianę struktury paska nawigacyjnego. Poprawne będą następujące deklaracje:
nav.navbar { background: red!important; }
nax-header > nax-header-desktop > nav.navbar { background: red!important; }
nax-header > nax-header-mobile > nav.navbar { background: red!important; }
Informacje uzupełniające
Migrator aplikacji
Wprowadzono szereg poprawek do funkcjonalności migratora aplikacji. Od strony użytkowej funkcjonalność nie zmieniła się, jednak korzystając z niej należy mieć na uwadze następujące kwestie:
-
Przed przystąpieniem do migracji zawsze wykonać kopię zapasową bazy danych, która ma zostać zaktualizowana.
-
Podczas migracji odtwarzane są wszystkie operacje wykonywane w Kreatorze modeli danych (zapisane w tabeli SQLBuilderMigrations). Może to prowadzić do sytuacji, w której operacja niezamierzonego usunięcia kolumny, a następnie jej odtworzenia przez konsultanta, zostanie powtórzona w środowisku docelowym, co doprowadzi do utraty danych.
-
Poprawiono działanie migratora aplikacji w przypadku zmian nazwy modelu i/lub kolumn. Modyfikacja obejmuje tylko zmiany, które zostaną wprowadzone w tej wersji nAxiom.
W przypadku zmian wprowadzonych w poprzednich wersjach konieczne jest ręczna poprawa wpisów w tabeli [core.SqlBuilderMigrations]. W przeciwnym razie modele/kolumny są migrowane dwukrotnie, przed zmianą i po.
Brak strzałek przy polach numerycznych
Wykryto błąd polegający na tym, że nie są wyświetlane strzałki do zmiany wartości w polach numerycznych. Ten błąd zostanie naprawiony w pierwszym patchu do tej wersji.
Akcje po akcji zapisu OCR
Wykryto możliwe problemy związane z wykonywaniem akcji uruchamianych po akcji zapisu danych OCR. Aby te błędy nie występowały, akcja SQL zapisu danych musi zwracać identyfikator rekordu w klauzuli OUTPUT INSERTED.Id. Na przykład:
UPDATE [dbo].[Faktury]
SET Data = {@Data},
Nazwa = {@Nazwa},
Kwota = {@Kwota}
OUTPUT INSERTED.Id
WHERE Id = {@_Id}
Filtrowanie zależnej listy wyboru
W obecnej wersji nie potwierdzono zgłoszonego problemu z filtrowaniem zależnej listy wyboru, kiedy wartość wybierana w liście nadrzędnej jest typu unikalny identyfikator (funkcja zależności kontrolki).
Informacje o wersji (patch) 1.7.4 z dn. 22-06-2022
Znane błędy
Problemy z akcją Odśwież wskazany formularz
Akcja Odśwież wskazany formularz
może w niektórych przypadkach powodować błędną aktualizację kontekstu formularza. Trwają prace nad usunięciem tych błędów. Obecnie nie zaleca się korzystania z tej akcji.
Nowe i zmodernizowane funkcje
Obsługa kolekcji użytkowników w akcjach uprawnień i interesariuszy
Obie akcje obsługują przypadki, kiedy zapytanie SQL zwraca zestawy rekordów, to jest zawiera operator UNION i/lub klauzulę FROM/WHERE/JOIN. W takiej sytuacji akcja jest wykonywana dla każdego rekordu w zestawie.
Na przykład użycie poniższego zapytania w akcji Uprawnienia do rekordów
spowoduje przypisanie uprawnień RD bieżącemu użytkownikowi oraz uprawnień RUD użytkownikom wybranym zapytaniem z tabeli core.UserProfiles:
SELECT
'RD' AS PermissionTypes,
{@_UserId} as SelectedUserGUID,
NULL AS BusinessRolesId,
NULL AS SelectedOrgUnits,
NULL AS AllowChildOrgUnits,
NULL AS Stakeholder,
NULL AS BusinessDocumentSchema,
NULL AS InstanceId
UNION
SELECT
'RUD' AS PermissionTypes,
Id AS SelectedUserGUID,
NULL AS BusinessRolesId,
NULL AS SelectedOrgUnits,
NULL AS AllowChildOrgUnits,
NULL AS Stakeholder,
NULL AS BusinessDocumentSchema,
NULL AS InstanceId
FROM core.UserProfiles
WHERE LEFT(FirstName,1) IN ('a', 's')
Poniższe zapytanie SQL użyte w akcji Przypisywanie interesariuszy
spowoduje przypisanie bieżącego użytkownika do kategorii interesariuszy o id 5 i jednocześnie usunie użytkowników zwróconych przez drugie zapytanie z kategorii interesariuszy o id 3:
SELECT
{@_UserId} AS UserId,
5 AS StakeholderId,
CAST(0 AS BIT) AS IsRemoval
UNION
SELECT
Id AS UserId,
3 AS StakeholderId,
CAST(1 AS BIT) AS IsRemoval
FROM core.UserProfiles
WHERE LEFT(FirstName,1) IN ('a', 's')
Obie akcje obsługują także kolekcję użytkowników w formie listy identyfikatorów rozdzielanych przecinkami, jednak ta metoda nie jest zalecana i nie będzie wspierana. W przypadku konieczności obsługi listy wielowyboru, zaleca się skorzystanie z przełącznika Zapisz w tabeli relacyjnej
i zbudowanie zapytania, które zwróci zestaw rekordów dla akcji.
Poprawki i usunięte błędy
Konwersja typu danych parametru {@Nazwa} w SQL
Zmodyfikowano sprawdzanie możliwości konwersji na datę wartości zwracanej w zapytaniu SQL dla zmiennych typu {@Nazwa}. Używany do tej pory mechanizm powodował błędy w przypadku, gdy zwracana wartość miała np. format kodu pocztowego.
Brak wyszarzenia pola typu maska
Poprawiono styl dla kontrolki typu maska z ustawionym atrybutem tylko do odczytu. Obecnie taka kontrolka ma wyszarzone tło, tak jak inne kontrolki tylko do odczytu.
Inicjowanie pustego pola numerycznego
Zmieniono proces inicjowania kontrolki pole numeryczne w ten sposób, że obecnie taka kontrolka w nowym rekordzie jest inicjowana jako pusta (NULL). Do tej pory takie kontrolki były inicjowane z wartością 0, co powodowało problemy z prawidłową walidacją atrybutu wymagalności.
W celu zachowania kompatybilności wstecznej we właściwościach pola numerycznego dodano przełącznik Wstaw 0 zamiast NULL dla pustej wartości
. Ten przełącznik dla istniejących kontrolek jest domyślnie włączony, dzięki czemu są one inicjowane z wartością 0, tak jak do tej pory. Dla nowych kontrolek przełącznik jest domyślnie wyłączony.
Zapis i odczyt uprawnień ACL formularza
Zmodyfikowano mechanizm zapisu i odczytu uprawnień ACL dla formularza w celu eliminacji możliwych błędów z prawidłowym egzekwowaniem ustawień. Aby modyfikacja zaczęła obowiązywać w przypadku istniejących aplikacji, konieczne jest wejście w ustawienia uprawnień formularza, dokonanie dowolnej zmiany i zapisanie ustawień.
Odświeżanie po zamknięciu formularza
Poprawiono błąd, który powodował, że w szczególnych przypadkach opcja Odśwież widok wyświetlany po zamknięciu formularza
w akcji zamknięcia formularza była nieskuteczna.
Ikona przycisku przejścia na diagramie procesu
Dodano możliwość wyboru ikony dla przycisku przejścia na diagramie procesu.
Zapis zmian projektu formularza i listy
Usunięto błąd, który uniemożliwiał powtórne zapisanie zmian danych na karcie Ogólne
w projekcie formularza lub listy w danej sesji edycji.
Informacje o wersji (patch) 1.7.3 z dn. 03-06-2022
Obejścia znanych błędów
Problem z zadaniami cyklicznymi
Wykryto problem z wykonywaniem zadań cyklicznych po upływie dłuższego czasu bezczynności. Tymczasowym obejściem jest włączenie wstępnego ładowania dla aplikacji API w danej witrynie nAxiom. W tym celu należy uruchomić program Menedżer IIS, rozwinąć daną witrynę nAxiom i kliknąć aplikację back (API) prawym przyciskiem myszy. Następnie należy wybrać kolejno Zarządzaj aplikacją
i Ustawienia zaawansowane
.

W wyświetlonym oknie dialogowym należy zmienić wartość ustawienia Wstępne ładowanie włączone
(Preload Enabled) na true.

Ten problem zostanie rozwiązany w kolejnych wersjach.
Poprawki i usunięte błędy
Kaskadowe otwieranie/zamykanie formularz — problemy z kontekstem
Usunięto problem występujący w określonych przypadkach, gdy z formularza głównego otwierano inny formularz w trybie okna dialogowego. Jeśli do filtrowania wyników w otwieranym formularzu używano asynchronicznej listy wyboru o bardzo dużej liczbie pozycji, zamknięcie tego formularza powodowało błędy aktualizacji kontekstu aktywnego formularza.
Dodatkowo zmodernizowano asynchroniczną listę wyboru, aby poprawić jej działanie. Zakres zmian:
- Domyślnie dla listy jest pobierane 50 rekordów; tę wartość można zmieniać w zakresie od 1 do 5000 przy użyciu nowej właściwości kontrolki
Maksymalna liczba elementów
; na dole listy dodano informację, że na liście wyświetlanych jest m z n elementów. - Wpisywanie kolejnych znaków (powyżej limitu
Wypełnij po
) powoduje zawężanie liczby elementów na liście. - Zapytania do źródła danych listy są wysyłane po upływie 1000 ms od wpisania kolejnego znaku; wprowadzone opóźnienie ma na celu ograniczenie liczby zapytań.
„Brak” stycznia w kontrolce kalendarza
Zmodyfikowano kontrolkę kalendarza w taki sposób, że na pionowym pasku lat i miesięcy z lewej strony dodano skrót sty po numerze roku. Wcześniej wyświetlenie stycznia na kalendarzu wymagało kliknięcia roku, co mogło powodować niejasności.

Wyświetlanie przycisków przejść z innego formularza
Usunięto błąd, który powodował, że po zamknięciu formularza otworzonego z innego formularza jako link wewnętrzny, na formularzu głównym były wyświetlane przyciski diagramu procesów z zamkniętego formularza.
Nie można zapisać diagramu procesu po usunięciu przejścia
Poprawiono błąd uniemożliwiający zapis diagramu procesów po usunięciu przejścia.
Informacje o wersji (hotfix) 1.7.2.1 z dn. 30-05-2022
Poprawki i usunięte błędy
Dodawanie kilku użytkowników do kategorii interesariuszy
Usunięto błąd, który powodował, że w przypadku dodania kilku użytkowników do kategorii interesariuszy dla danej instancji dokumentu uprawnienia wynikające z szablonu uprawnień dla tej kategorii były przypisywane tylko ostatniemu z tych użytkowników.
Informacje o wersji (patch) 1.7.2 z dn. 25-05-2022
Znane problemy
Migracja baz danych z wersji 1.2.x
W przypadku aktualizacji aplikacji utworzonych w nAxiom w wersjach 1.2.x konieczne jest dokonanie ręcznych modyfikacji.
Pierwsza wynika z tego, że wszystkie tabele migrowanej bazy danych korzystają ze schematu dbo. W związku z tym zachodzi potrzeba dostosowania konfiguracji nowej wersji nAxiom w zakresie ustawień schematu bazy danych. Wymaga to wprowadzenia następujących zmian w plikach appsetings.json:
- w komponencie AUTH
"AppConfiguration": { "DefaultSchema": "dbo", "DefaultCoreSchema": "dbo" }
- w komponencie API
"AppConfiguration": { "SchemaSettings": { "DefaultCoreSchema": "dbo", "DefaultUserSchemas": [ "*" ] }
W przypadku starszych wersji nAxiom te wpisy należy dodać ręcznie. Następnie należy ponownie uruchomić witrynę w programie Menedżer IIS.
Jeśli na potrzeby aktualizacji instalowana jest nowa witryna nAxiom, ustawienia schematów możne zmienić w instalatorze.
Problem drugi, to pusta kolumna BusinessDocumentId w tabeli core.Grids. Konieczne jest samodzielne uzupełnienie wartości w tej kolumnie, chociaż ich brak nie uniemożliwia korzystania z list.
Problemy z akcją uprawnień dla interesariuszy
Stwierdzono występowanie problemów w przypadku nadawania uprawnień dla interesariusz przy użyciu akcji uprawnień. Problem ten zostanie rozwiązany w kolejnych wydaniach nAxiom. Poniżej kilka informacji, które mogą pomóc w korzystaniu z tej funkcjonalności.
- Tymczasowo, aby skorzystać z akcji uprawnień dla interesariuszy należy podać identyfikator kategorii interesariuszy i identyfikator użytkownika (można używać podzapytań). Planowane jest opracowanie osobnej akcji nadawania uprawnień dla interesariuszy, w której wystarczy podanie identyfikatora kategorii interesariuszy.
- Uprawnienia będą działać tylko wtedy, gdy wskazany użytkownik zostanie dodany do danej kategorii interesariuszy przy użyciu kontrolki na formularzu lub akcją interesariuszy (można używać podzapytań). Planuje się modyfikację akcji interesariuszy w taki sposób, aby umożliwiała dodawanie więcej niż jednego użytkownika do kategorii interesariuszy.
Dodawanie użytkowników do kategorii interesariuszy akcją SQL nie jest wspierane, podobnie jak inne manipulacje na danych w tabelach systemowych (instrukcje INSERT, UPDATE, DELETE i MERGE).
Poprawki i usunięte błędy
Jednoznakowe kody jednostek organizacyjnych
Dodano możliwość definiowania jednoznakowych kodów dla jednostek organizacyjnych. Kody jedno- i dwuznakowe mogą składać się wyłącznie ze znaków alfanumerycznych. W kodach składających się z większej liczby znaków można stosować dozwolone znaki specjalne, tj. kropkę (.), podkreślenie (_), myślnik (-) i ukośnik (/).
Uprawnienia do dodawania/usuwania załączników przez Public API
Poprawiono weryfikację uprawnień do dodawania i usuwania załączników przy użyciu żądań Public API. Obecnie weryfikowane są zarówno uprawnienia do dokumentu biznesowego, jak i uprawnienia w indywidualnych statusach.
W interfejsie Public API nie są sprawdzane uprawnienia formularzy. Poprawne dodawanie/usuwanie załączników tą metodą wymaga jedynie posiadania uprawnień ACL na poziomie dokumentu biznesowego.
Wyświetlanie własnego logo
Poprawiono skalowanie własnego pliku logo dodawanego poleceniem Kreator stylów systemu
.
Aby można było wyświetlać logo w formacie SVG, należy dodać rozszerzenie svg do listy obsługiwanych formatów plików w ustawieniach systemu.
Instrukcja SQL zwracająca NULL dla wartości domyślnej
Usunięto problem, który powodował wystąpienie błędu w sytuacji, kiedy w zapytaniu SQL dla wartości domyślnej występowało odwołanie do pola z wartością null.
Uprawnienia formularzy w pamięci podręcznej
Poprawiono działanie mechanizmu zapisującego uprawnienia formularzy w pamięci podręcznej w przypadku zmian statusu na formularzu i zmian statusu dokumentu.
Działanie linków w sekcji prosta lista
Poprawiono działanie akcji otwierania formularza używanej do obsługi linków w sekcji typu prosta lista w przypadku wyboru formularza poprzez zapytanie SQL.
Wprowadzona zmiana wymaga odświeżenia istniejących konfiguracji. W tym celu należy kliknąć przycisk
Ustawienia
na sekcji typu prosta lista, zamknąć okno dialogowe i zapisać formularz.
Zmiana uprawnień domyślnych do dodawania/usuwania interesariuszy i załączników
Usunięto problem, który powodował, że po dodaniu listy wyboru interesariuszy do projektu formularza, dla którego zdefiniowane były uprawnienia ACL, użytkownik nie mógł dodawać interesariuszy, chociaż w oknie dialogowym Uprawnienia formularzy
odpowiednie pola wyboru dla tej kontrolki były zaznaczone.
Obecnie, dla dodawanej kontrolki uprawnienia do dodawania i usuwania interesariuszy są domyślnie wyłączone i należy je odpowiednio poustawiać w zdefiniowanych szablonach uprawnień. Taka sama zmiana dotyczy również uprawnień do dodawania i usuwania załączników w sekcji załączników.
Mogą wystąpić problemy z aktualizacją uprawnień w przypadku, gdy odświeżenie formularza trwa na tyle długo, że podczas weryfikacji uprawnień dla sekcji załączników dokument będzie już miał nowy status, w którym dany użytkownik może nie mieć uprawnień. Ten problem rozwiążemy w kolejnych wydaniach.
Dodawanie interesariuszy w nowym dokumencie
Poprawiono weryfikację uprawnień do dodawania interesariuszy w nowym dokumencie.
Informacje o wersji (patch) 1.7.1 z dn. 11-05-2022
Nowe i zmodernizowane funkcje
Nowy instalator
Opracowano nowy instalator nAxiom przy użyciu narzędzia Advanced Installer firmy Caphyon. Obecnie pakiet instalacyjny ma postać jednego pliku, a podczas instalacji są instalowane komponenty wymagane przez nAxiom, takie jak MS SQL Server, IIS i środowisko .NET Core (instalatory tych komponentów są pobierane z Internetu, instalacja odbywa się w trybie quiet — w przypadku .NET Framework 4.8 instalacja kończy się natychmiastowym restartem komputera, przed rozpoczęciem instalacji instalator wyświetla stosowne ostrzeżenie).
MS SQL Server jest traktowany jako komponent opcjonalny, zamiast instancji lokalnej, można skonfigurować połączenie z instancją zdalną. Program MS SQL Server Management Studio nie wchodzi w zakres instalacji.
Dostępne są dwa tryby instalacji: podstawowy — automatyczny — i zaawansowany. Tryb podstawowy jest dostępny w dwóch przypadkach:
- instalacja pierwszej witryny nAxiom w danym środowisku; instalacja obejmuje:
- automatyczne utworzenie certyfikatu nAxiom SSL Localhost i dodanie do odpowiedniego magazynu
- automatyczne skonfigurowanie połączenia z bazą danych
- ustawienie nazwy klucza licencji (dotychczas nazwa klienta) i zainstalowanie licencji (dla klucza nAxiom licencja jest wgrywana automatycznie, dla innej nazwy należy wskazać plik licencji); plik licencji można także wgrać samodzielnie później, po zalogowaniu na konto konsultanta.
- aktualizacja witryny nAxiom (jeśli w danym systemie jest tylko jedna witryna); aktualizacja obejmuje wtedy tylko pliki aplikacji nAxiom, które były już zainstalowane; aktualizacja konfiguracji witryny nie jest możliwa w tym trybie.
Tryb zaawansowany należy wybrać, aby użyć niestandardowej konfiguracji witryny, zainstalować kolejną witrynę lub zaktualizować istniejącą witrynę. W tym trybie uruchamiany jest dotychczasowy instalator nAxiom. Tryb zaawansowany należy także wybrać, aby doinstalować opcjonalny komponent, który został pominięty podczas oryginalnej instalacji, a także w przypadku aktualizacji, kiedy nowa wersja nAxiom zawiera nowe komponenty. W trybie szybkiej instalacji takie komponent zostaną pominięte.
W razie wystąpienia błędu podczas instalacji, użytkownik ma możliwość pobrania pliku z logami przed wyjściem z instalatora. Jeśli instalacja zakończy się poprawnie jest dostępna opcja przejścia do witryny nAxiom pod adres https://localhost (jeśli podano port inny niż niż domyślny 443, należy go ręcznie dopisać w polu adresu).
Nowy instalator jest przeznaczony tylko dla systemów w architekturze x64.
Zaktualizowano Przewodnik instalacji nAxiom odpowiednio do wprowadzonych zmian.
Dodatkowo wprowadzono zmiany w dotychczasowym instalatorze:
- ograniczono obsługiwane protokoły do https.
- zmieniono reguły sprawdzania wymaganych bibliotek .NET: do działania instalatora wymagany jest pakiet .Net SDK 5 albo pakiety ASP.NET Core Runtime 5 i .Net Runtime 5 (nowy instalator sprawdza tylko, czy zainstalowane są oba pakiety runtime i w razie potrzeby instaluje je).
- dodano automatyczną instalację licencji; licencje są wgrywane podczas pierwszego uruchomienia witryny i muszą znajdować się w katalogu api\InstallationConfiguration (nowy instalator umieszcza w tym katalogu plik licencji).
- rozszerzenie URL Rewrite 2 oznaczono jako wymagane.
- dodano opcjonalny komponent mobileTools.zip; podczas instalacji w ścieżce instalacji jest tworzony folder MobileTools, który zawiera pliki generatorów aplikacji mobilnych oraz instrukcję.
- dodano instalowany domyślnie komponent mobileApi, który służy do obsługi aplikacji nAxiom w wersji mobilnej.
Karta Interesariusze
w oknie definicji dokumentu biznesowego
W oknie definicji dokumentu biznesowego dodano kartę Interesariusze
z listą kategorii interesariuszy zdefiniowanych dla tego dokumentu. Dla każdej kategorii są dostępne przyciski Edytuj
i Usuń
.
Poprawki i usunięte błędy
Powtarzające się kody wpisów w słownikach
Dodano wymóg unikalności kodów słowników (w całej bazie danych) Ponadto, dodano obsługę sytuacji, w której słownik zawiera wpisy o identycznych kodach. Odwołanie do takiego zwróci ostatnią przypisaną mu wartość. Do tej pory takie odwołanie powodowało wyjątek, który skutkował brakiem możliwości otwarcia formularza w aplikacji FrontSPA.
Uprawnienia formularzy
Wprowadzono kilka poprawek dotyczących uprawnień formularzy. W szczególności:
- Dodano obsługę sytuacji, w której z tą samą definicją dokumentu biznesowego są powiązane formularze z różnymi szablonami uprawnień ACL.
- Poprawiono błąd pobierania uprawnień formularzy dla interesariuszy.
- Zmieniono zachowanie ustawień pól i sekcji formularza, włączenie możliwości edycji pola w sekcji tylko do odczytu przełączy tę sekcję w tryb edycji, ale pozostałe pola w tej sekcji pozostaną tylko do odczytu.
- Poprawiono weryfikację uprawnień dla sekcji załączników i komentarzy.
Powiązanie formularza z definicją dokumentu biznesowego
Usunięto błąd, który powodował, że w losowych przypadkach podczas zapisu formularza dochodziło do usunięcia informacji o definicji dokumentu biznesowego przypisanej do formularza.
Aby naprawić formularz uszkodzony na skutek tego błędu, należy w kolumnie [BusinessDocumentId] tabeli [core].[Forms] ponownie wpisać identyfikator definicji dokumentu biznesowego.
Weryfikacja uprawnień dla formularzy
Poprawiono działanie weryfikacji uprawnień ACL określonych dla ról z uwzględnieniem organizacji. Ponadto zmieniono treść komunikatu wyświetlanego w przypadku braku dostępu do sekcji załączników. Wcześniej wyświetlany był komunikat „Nie masz dostępu do strony”.
Przekierowanie na dashboard w razie braku uprawnień
Usunięto problem, który powodował, że w niektórych przypadkach nie działał przełącznik Przekieruj na dashboard
na karcie Uprawnienia — brak odczytu
w oknie definicji dokumentu biznesowego.
Wklejanie wartości do asynchronicznej listy wyboru
Poprawiono działanie asynchronicznej listy wyboru. Obecnie wklejenie w pole listy wartości ze schowka, która przekracza minimalną liczbę znaków, spowoduje wysłanie zapytania do bazy danych.
Wskazanie formularza na widżecie prosta lista
Usunięto problem, który powodował, że w widżecie typu prosta lista nie można było wskazać formularza w zapytaniu SQL ani nie można było ręcznie skonfigurować linku w celu wyświetlenia rekordu w formularzu.
Walidacja kodów dla jednostek organizacyjnych
Zmodyfikowano zasady tworzenia kodów dla jednostek organizacyjnych. Obecnie w tych kodach można używać następujących znaków specjalnych: kropka (.), podkreślenie (_), myślnik (-) i ukośnik (/).
Informacje o wersji (fix) 1.7.0.1 z dn. 28-04-2022
Informacje uzupełniające
Zmiany w Public API — Uzupełnienie
W metodach Public API zmieniono kody odpowiedzi na 200 w przypadku powodzenia i 400 w przypadku zwrócenia wyjątku/błędu.
Zmieniono także strukturę odpowiedzi, odpowiednio do kodu. Odpowiedzi dla kodu 200 są podane w narzędziu Swagger UI (naxiomURL/publicapi). Dla kodów 400 odpowiedź ma strukturę zgodną ze schematem ValidationFailure, a w rzadkich przypadkach ResponseMessage.


Wprowadzone zmiany wymagają aktualizacji zapytań do Public API używanych w aplikacjach nAxiom.
Poprawki i usunięte błędy
Błąd kontrolki słownikowej na formularzu
Usunięto błąd, który uniemożliwiał dodanie kontrolki typu Lista wyboru (Słownik) na formularzu.
Poprawki w warunku wykonania przejścia na diagramie procesów
Usunięto problem dotyczący przejść na diagramie procesu, który powodował, że po wybraniu opcji Warunek wykonania przejścia
> Ustaw warunek
i zdefiniowaniu warunku SQL, stan opcji nie zapisywał się (po zapisie zaznaczona była opcja Bez warunku
), chociaż sam warunek był zapisywany.
Ponadto zmieniono opis w oknie edytora SQL i podano poprawny przykład. W ogólności zapytanie dla warunku wykonania przejścia musi zwracać wartość 0 lub 1 typu int.
Zależności kontrolki
Poprawiono działanie funkcji zależności kontrolki w taki sposób, aby zależności ustawione dla ukrytej listy wyboru nie były wykonywane.
Informacje o wersji wersja 1.7 z dn. 19-04-2022
Obejścia znanych błędów
Dane dodatkowe użytkownika
Wykryto problem uniemożliwiający zapisanie danych w profilu użytkownika w przypadku użycia zwykłej tabeli (pomocniczej) na dane dodatkowe użytkownika. Tymczasowym obejściem jest dodanie kolumny Status do tabeli i do formularza danych dodatkowych.
Nowe i zmodyfikowane funkcje
Aplikacje mobilne
Opracowano metodologię generowania aplikacji mobilnej przeznaczonej do pracy z wskazaną witryną nAxiom (w aplikacji FrontSPA). Dostępne są skrypty generowania aplikacji dla systemów Android i iOS. Skrypty umożliwiają brandowanie aplikacji w zakresie nazwy, opisu, ikon, ekranu startowego i logo.
Wygenerowane pakiety aplikacji można dystrybuować za pomocą sklepów Google Play i AppStore. Procedurę generowania aplikacji mobilnej opisano w instrukcji dołączonej do niniejszych informacji o wersji. Skrypty wraz z instrukcją będą dostępne w pakiecie instalacyjnym, począwszy od następnego wydania nAxiom.
Zmiany na potrzeby wyświetlania na urządzeniach mobilnych (RWD)
Zmodernizowano wygląd i zachowanie głównych elementów witryny nAxiom (front) pod kątem wyświetlania na urządzeniach z ekranami o rozdzielczości poniżej 992 px. Zmiany dotyczą widoku pulpitu, listy i formularza wyświetlanego jako link wewnętrzny. W przypadku pulpitu wyświetlane są tylko widżety oraz ikony menu, powiadomień i czatu. W menu, oprócz poleceń aplikacji, są dostępne dane zalogowanego użytkownika oraz polecenia zmiany ustawień profilu i wylogowania.
W widoku listy zmniejszono znacznie nagłówki kolumn, a powyżej listy umieszczono w formie przycisków nazwy tych kolumn, dla których włączono opcje filtrowania i sortowania. Domyślnie wyświetlany jest przycisk dodania nowego dokumentu, a ewentualne inne przyciski są dostępne w menu rozwijanym po kliknięciu ikony z pionowym wielokropkiem.
W widoku formularza wyświetlany jest tylko jeden przycisk — Zapisz
lub przycisk kroku procesu — pozostałe przyciski są dostępne w rozwijanym menu.

Kolumna HTML
W konfiguratorze listy dodano możliwość dodania do listy kolumny HTML. Odpowiednie polecenie (Dodaj kolumnę HTML
) znajduje się w menu kontekstowym pozycji Kolumny listy
w Kreatorze list. Kolumna tego rodzaju umożliwia prezentację danych z bieżącego rekordu podobnie jak w sekcji HTML na formularzu. W kodzie HTML można odwoływać się do wartości z pozostałych kolumn, używając składni {@nazwakolumny}. Funkcje sortowania, filtrowania i grupowania dla listy HTML wymagają podania nazwy kolumny źródłowej (tylko jednej), której wartości będą uwzględniane.
Kolumna jest dostępna w trybie desktop i mobile.
Współpraca z platformą ePUAP
Dodano integrację z platformą ePUAP, która pozwala wymieniać korespondencję z jednostkami administracji publicznej. Za integrację odpowiada usługa NAX.Modules.ePUAP.Service, którą należy zainstalować i uruchomić. Wcześniej należy określić ustawienia konfiguracyjne w pliku appsettings.json. W ramach funkcjonalności dodano następujące akcje:
- ePUAP utwórz dokument
- ePUAP podpisz dokument
- ePUAP pobierz podpisany dokument
- ePUAP weryfikujpodpisany dokument
- ePUAP wyślij dokument Służą one do wysyłki korespondencji. Korespondencja przychodząca jest obsługiwana przez usługę ePUAP.Service w taki sposób, że metadane pisma przychodzącego są zapisywane jako rekordy w tabeli standardowego modelu danych wskazanego w konfiguracji, a samo pismo, jego załączniki i podpis są zapisywane jako załączniki do tych rekordów. Dodatkowo usługa pozwala skonfigurować cykliczną aktualizację książki adresowej ePUAP. Instrukcję konfiguracji funkcjonalności dołączono do niniejszej informacji o wersji.
Obsługa pieczęci i podpisów elektronicznych (integracja z eSIGN)
Dodano integrację z systemami podpisów i pieczęci elektronicznych, która umożliwia podpisywanie załączników z aplikacji nAxiom za pomocą elektronicznych podpisów i pieczęci. Korzystanie z podpisów elektronicznych w nAxiom wymaga skonfigurowania ustawień (ADMINISTRACJA
> Ustawienia systemu
> eSign
), takich jak podstawowy adres API, adres URL uwierzytelniania, identyfikator i hasło dostępu do API (ClientId i ClientSecret).
Ponadto dodano trzy akcje do obsługi podpisywania dokumentów, weryfikacji podpisu oraz sprawdzania statusu operacji. Obsługiwane rodzaje podpisu to INNER, PERSONAL, SEAL, SEAL_INNER, SEAL_CLOUD, TRUSTED, QUALIFIED.
Public API — zmiana kodów odpowiedzi
W metodach Public API zmieniono kody odpowiedzi na 200 w przypadku powodzenia i 400 w przypadku zwrócenia wyjątku/błędu.
Zmieniono także strukturę odpowiedzi, odpowiednio do kodu. Odpowiedzi dla kodu 200 są podane w narzędziu Swagger UI (naxiomURL/publicapi). Dla kodów 400 odpowiedź ma strukturę zgodną ze schematem ValidationFailure, a w rzadkich przypadkach ResponseMessage.


Wprowadzone zmiany wymagają aktualizacji zapytań do Public API używanych w aplikacjach nAxiom.
Formularz otwierany w trybie Okno
Zmodyfikowano zachowanie formularza otwieranego w trybie Okno
, wprowadzając następujące zmiany:
- poprawiono ustawianie parametru z-index dla formularzy otwieranych w trybach
Okno
iDialog
; dzięki temu kolejne formularze podrzędne są zawsze wyświetlane na pierwszym planie - dla formularza otwieranego w trybie
Okno
dodano warstwę nakładki (overlay), blokującą dostęp do interfejsu „pod” formularzem - ustawiono domyślny rozmiar formularza otwieranego w trybie okno na 80% szerokości i 90% wysokości ekranu
Wylogowanie w wyniku nieaktywności użytkownika
W ustawieniach systemu (ADMINISTRACJA
> Ustawienia systemu
) dodano sekcję Czas pracy użytkownika
z dwoma ustawieniami określającymi czas nieaktywności, po upływie którego zostanie wyświetlone ostrzeżenie o wylogowaniu (domyślnie 30 minut) oraz czas wyświetlania ostrzeżenia, po upływie którego następuje wylogowanie (domyślnie 180 sekund). Dotychczasowy licznik czasu sesji użytkownika został usunięty.
Logując się, użytkownik otrzymuje token dostępowy, którego czas ważności wynosi 15 minut i który jest automatycznie odnawiany; wylogowanie powoduje unieważnienie tokenu.
Automatyczne wylogowanie działa w aplikacjach AdminSPA i FrontSpa (w tej aplikacji zauważono problem z wylogowaniem, gdy jest wyświetlany widżet z podglądem raportu Telerik; problem zostanie rozwiązany w kolejnej wersji).
Dynamiczne generowanie uprawnień formularza dla dokumentów
Zrezygnowano z zapisywania uprawnień formularza dla indywidualnych dokumentów biznesowych w tabelach bazy danych (core.ACLFormInstanceEntries oraz core.ACLFormInstanceEntryRoles). Uprawnienia są generowane w momencie utworzenia instancji dokumentu lub zmiany jego statusu na podstawie szablonów zdefiniowanych dla formularza i zapisywane w pamięci podręcznej. W momencie otwarcia formularza uprawnienia są pobierane z cache, a jeśli ich tam nie ma, są ponownie generowane na podstawie szablonów ACL.
Logika zapisu rekordu i odświeżania formularza w nAxiom
Uporządkowano logikę systemu sterującą zapisem rekordu i odświeżaniem formularza prezentującego dane o tym rekordzie:
- W definicji dokumentu biznesowego dostępne są teraz dwa przełączniki sterujące domyślnym zachowaniem systemu dla przejść statusów:
Dodaj akcję systemową "Zapisz rekord" do "Akcji przed"
orazDodaj akcję systemową "Odśwież formularz" do "Akcji po"
. System dla nowo generowanych dokumentów biznesowych ustawia oba przełączniki do pozycji ON. Dla istniejących dokumentów biznesowych nie modyfikowano stanu parametru o zapisie rekordu a nowy parametr dotyczący odświeżeń jest w pozycji OFF. - Wyłączono automatyczne odświeżanie formularza po wykonaniu przejścia statusu, ponieważ to odświeżenie nie powodowało odświeżenia całego formularza, a jedynie jego nagłówka.
- Akcję systemową
Zapisz rekord
rozbudowano o nowy przełącznikOdśwież widok po zapisie
, który pozwala na wykonanie odświeżenia formularza bezpośrednio po wykonaniu akcji zapisu. Przełącznik ten:- dla akcji dodawanych domyślnie do przejść statusów jest w pozycji OFF
- dla akcji dodawanych ręcznie z action pickera zarówno do elementów formularza jak i przejść statusów jest w pozycji OFF
- dla przycisku Zapisz w formularzu nowo wygenerowanym z poziomu Kreatora modeli danych jest w pozycji ON
- dla już dodanych akcji zapisu rekordu do elementów formularza system wykonuje migrację ustawiającą przełącznik do pozycji ON, aby zachować możliwość odświeżenia formularza bezpośrednio po utworzeniu i aktualizacji rekordu
Zalecenia do używania systemu
- Zaleca się nie wyłączać opisanych przełączników w definicji dokumentu biznesowego.
- Akcja zapisz rekord w przejściu statusu powinna być używana jako pierwsza lub jedna z pierwszych w zbiorze akcji PRZED, a akcja odświeżenia formularza jako ostatnia lub jedna z ostatnich w zbiorze akcji PO.
- Należy pamiętać, że każda nowo dodana akcja zapisu będzie posiadała przełącznik odświeżania ustawiony w pozycji OFF.
- Zbiór akcji wywoływanych na przycisku Zapisz w formularzu powinien zawierać akcję odśwież formularz lub przełącznik odświeżania w akcji zapisz rekord ustawiony w pozycji ON, aby po zapisie użytkownik pracował na nowo utworzonej instancji dokumentu.
Akcja Algorytm C#
Dodano nowy rodzaj akcji Algorytm C#
(ponieważ to zadanie zostało zrealizowane jako proof of concept, akcja jest dostępna po włączeniu funkcjonalności eksperymentalnych). Akcja pozwala użytkownikowi przygotować skrypt w języku C# z referencjami do innych bibliotek (o ile są potrzebne). Akcję można przypisać do przycisku na formularzu i wykonywać w aplikacji FrontSPA.
W skrypcie można odwoływać się do bibliotek DLL (dyrektywa using
) dostępnych w folderze komponentu API (oprócz wyboru z listy, można wpisać nazwę pliku).
Ponadto w skrypcie można odwoływać się do wartości reprezentowanych przez zmienne Model (model formularza w formacie JSON), RecordId, FormDefinitionId, BusinessDocumentId i UserId.
Użytkownik może sprawdzić poprawność skryptu przyciskiem Sprawdź składnię/skompiluj algorytm
. Informacje o ewentualnych błędach zostaną wyświetlone poniżej skryptu. Akcję można zapisać dopiero wtedy, gdy skrypt kompiluje się bez błędów.
W przypadku błędów wykonania skryptu, użytkownik w aplikacji FrontSPA widzi jedynie standardowy komunikat o niepowodzeniu, a szczegóły błędu są zapisywane w logach aplikacji.
Pomoc kontekstowa w oknie definicji akcji zostanie dodana w wersji 1.7.
Warunek widoczności przycisku przejścia
We właściwościach przycisków na diagramie procesów dodano możliwość określenia warunku widoczności przycisku przejścia za pomocą instrukcji SQL. Użytkownik może wybrać, czy chce określać widoczność przycisku przejścia na podstawie roli użytkownika, czy za pomocą SQL.
Zapytanie musi zwrócić wartość logiczną typu bit; 1 — przycisk będzie widoczny, 0 — przycisk będzie niewidoczny.
Ponadto zmieniono kontrolkę do definiowania warunku wykonania przejścia na edytor SQL wyświetlany po kliknięciu przycisku.
Formatowanie typu datetime2
Dodano możliwość formatowania kolumn listy, które mają typ danych datetime2.
Poprawki i usunięte błędy
Akcja JavaScript i pole numeryczne
Poprawiono działanie akcji JavaScript dla pola numerycznego.
Przekazywanie parametrów do formularza
Usunięto problem, który uniemożliwiał przekazanie pustej wartości w parametrach akcji Otwórz formularz
dla nowego dokumentu.
Akcje systemowe dla bloków Synchronizator i Proces synchroniczny
Dodano możliwość ustawienia akcji systemowych we właściwości Akcje uruchamiane po
dla przejść wychodzących z bloczków Synchronizator
i Proces synchroniczny
.
Odświeżanie listy wielowyboru
Usunięto problem, który powodował, że odświeżenie formularza (także w przypadku zapisu) otwartego jako link wewnętrzny powodowało nadpisanie wartości wybranych na liście wielowyboru przez wartości przekazywane podczas otwierania formularza.
Dane dodatkowe jednostki organizacyjnej
Usunięto problem powodujący nadpisywanie wartości w kolumnach [OuidSource], [ExternalRecordId] i [FormDefinitionId] w tabeli [core].[OUInstances] po edycji danych dodatkowych jednostki organizacyjnej.
Przekazywanie parametrów do formularza
Poprawiono ustawianie typu danych dla wartości przekazywanych w akcji Otwórz formularz
w przypadku, gdy przekazywana wartość nie była powiązana z polem na formularzu.
Przekazywanie parametrów i lista wielowyboru
Usunięto problem, który powodował, że nie można było usunąć wartości z listy wielowyboru przekazanej jako parametr w akcji Otwórz formularz
.
Odświeżanie danych dodatkowych użytkownika
Usunięto problem z zawieszaniem się strony po kliknięciu przycisku Odśwież
na karcie danych dodatkowych użytkownika.
Walidacja wymagalności kontrolek
Poprawiono walidacje wymagalności dla niektórych kontrolek na formularzu, w szczególności dla kontrolki Datepicker i czas, w tym także w trybie tylko do odczytu.
Akcja komunikatów na przyciskach edycji inline
Dodano poprawkę umożliwiającą korzystanie z akcji komunikatów na przyciskach edycji inline w widoku listy.
Zmiany definicji dokumentu biznesowego
Usunięto problem powodujący wystąpienie komunikatu o błędzie przy ponownym zapisie zmian definicji dokumentu biznesowego.
Otwieranie formularza z harmonogramu
Naprawiono błąd, który uniemożliwiał otwarcie formularza z komórki harmonogramu. W ramach zadania poprawiono także walidację parametrów {@parametr} w adresie URL formularza. W przypadku występowania w parametrze kodu sekcji zaczynającego się od małej litery, nie można było zapisać akcji. Obecnie kod sekcji formularza w parametrze może zaczynać się zarówno od wielkiej, jak i od małej litery. Ponadto poprawiono zduplikowane wyświetlanie właściwości Akcje dla zdarzeń
.
Parametry w akcji Procedura
W akcji Procedura bazodanowa zmodyfikowano sposób ustawiania właściwości Parametry procedury
w taki sposób, że obecnie po wpisaniu nazwy w kolumnie Wartość z formularza
nie trzeba przenosić focusa, aby wartość została zapisana.
Nazwy pól formularza w kolumnie
Wartość z formularza
należy wpisywać bez żadnych dodatkowych znaków, np Id, Code, Status itp.
Anonimizacja dat
Naprawiono błąd maksymalnej wartości, jaką można ustawić w kontrolce typu Data, który uniemożliwiał zapis dokumentu po anonimizacji.
Walidacja warości w polach formularza
Poprawiono działanie walidacji wartości w polach formularza wykonywaną po kliknięciu przycisku typu Zatwierdź formularz
. W razie niepoprawnych wartości, zostanie wyświetlony komunikat o błędzie i nastąpi powrót do edycji formularza. Akcje przypisane do tego przycisku nie zostaną wykonane.
Sekwencja akcji JavaScript i Zapisz rekord
Zmodyfikowano mechanizm przekazywania bieżącego kontekstu formularza do akcji wykonywanych sekwencyjnie. W ten sposób usunięto problem, który powodował, że po zmianie wartości w modelu akcją JavaScript, kolejna akcja nie uwzględniała tych zmian.
Informacje o wersji (pre-release) 1.7 fix 1 (pre) z dn. 12-04-2022
Obejścia znanych problemów
Tryb link wewnętrzny
Zgłoszono kilka problemów występujących w przypadku formularzy otwieranych w trybie linku wewnętrznego. Dotyczy to sytuacji, kiedy ten tryb jest używany w akcji Otwórz formularz
i jednocześnie w tej akcji do otwieranego formularza są przekazywane parametry. Zgłoszenia dotyczą:
- „błędnego” adresu URL do otwieranego formularza
- nieoczekiwanego zachowania otwartego formularza w przypadku odświeżenia strony
- nieoczekiwanych efektów w przypadku zamknięcia formularza
Powyższe problemy wynikają ze sposobu działania trybu link wewnętrzny. Dla formularza otwieranego w tym trybie nie jest tworzona tablica OpenedForms z kontekstem formularza źródłowego. Referencje do kontrolki i parametrów akcji są przekazywane w zmodyfikowanym adresie URL. W przypadku odświeżenia strony (klawiszem F5, przyciskiem Wstecz
lub w inny sposób) następuje utrata dostępu do kontekstu formularza, z którego uruchomiono tę akcję.
Ponadto w przypadku formularza otwartego w trybie linku wewnętrznego akcja Zamknij formularz
jest realizowana tak jak działanie przycisku Wstecz
w przeglądarce, to znaczy, że również powoduje utratę dostępu do kontekstu formularza źródłowego. To zagadnienie będzie przedmiotem analiz i ewentualnych zmian w przyszłości. Do czasu opracowania rozwiązania tych problemów zaleca się, aby zamiast akcji Zamknij formularz
używać akcji Otwórz formularz
ze wskazaniem formularza docelowego.
Poprawki i usunięte błędy
Odświeżanie sekcji HTML
Usunięto problem z odświeżaniem sekcji HTML w sytuacji, kiedy zapytanie źródłowe sekcji nie zwracało rekordów.
Informacje o wersji (pre-release) 1.7 (pre) z dn. 07-04-2022
Nowe i zmodyfikowane funkcje
Wyszukiwanie w treści załączników
W konfiguracji wyszukiwarki pełnotekstowej dodano obsługę wyszukiwania w treści załączników przetworzonych przez OCR. W wynikach wyszukiwania zwracane są dane dokumentu biznesowego i nazwa załącznika.
Opis instalacji oprogramowania ElasticSearch i konfiguracji funkcjonalności zostanie dołączony do wydania wersji 1.7.
Wylogowanie w wyniku nieaktywności użytkownika
W ustawieniach systemu (ADMINISTRACJA
> Ustawienia systemu
) dodano sekcję Czas pracy użytkownika
z dwoma ustawieniami określającymi czas nieaktywności, po upływie którego zostanie wyświetlone ostrzeżenie o wylogowaniu (domyślnie 30 minut) oraz czas wyświetlania ostrzeżenia, po upływie którego następuje wylogowanie (domyślnie 180 sekund). Dotychczasowy licznik czasu sesji użytkownika został usunięty.
Logując się, użytkownik otrzymuje token dostępowy, którego czas ważności wynosi 15 minut i który jest automatycznie odnawiany; wylogowanie powoduje unieważnienie tokenu.
Automatyczne wylogowanie działa w aplikacjach AdminSPA i FrontSpa (w tej aplikacji zauważono problem z wylogowaniem, gdy jest wyświetlany widżet z podglądem raportu Telerik; problem zostanie rozwiązany w kolejnej wersji).
Dynamiczne generowanie uprawnień formularza dla dokumentów
Zrezygnowano z zapisywania uprawnień formularza dla indywidualnych dokumentów biznesowych w tabelach bazy danych (core.ACLFormInstanceEntries oraz core.ACLFormInstanceEntryRoles). Uprawnienia są generowane w momencie utworzenia instancji dokumentu lub zmiany jego statusu na podstawie szablonów zdefiniowanych dla formularza i zapisywane w pamięci podręcznej. W momencie otwarcia formularza uprawnienia są pobierane z cache, a jeśli ich tam nie ma, są ponownie generowane na podstawie szablonów ACL.
Logika zapisu rekordu i odświeżania formularza w nAxiom
Uporządkowano logikę systemu sterującą zapisem rekordu i odświeżaniem formularza prezentującego dane o tym rekordzie:
- W definicji dokumentu biznesowego dostępne są teraz dwa przełączniki sterujące domyślnym zachowaniem systemu dla przejść statusów:
Dodaj akcję systemową "Zapisz rekord" do "Akcji przed"
orazDodaj akcję systemową "Odśwież formularz" do "Akcji po"
. System dla nowo generowanych dokumentów biznesowych ustawia oba przełączniki do pozycji ON. Dla istniejących dokumentów biznesowych nie modyfikowano stanu parametru o zapisie rekordu a nowy parametr dotyczący odświeżeń jest w pozycji OFF. - Wyłączono automatyczne odświeżanie formularza po wykonaniu przejścia statusu, ponieważ to odświeżenie nie powodowało odświeżenia całego formularza, a jedynie jego nagłówka.
- Akcję systemową
Zapisz rekord
rozbudowano o nowy przełącznikOdśwież widok po zapisie
, który pozwala na wykonanie odświeżenia formularza bezpośrednio po wykonaniu akcji zapisu. Przełącznik ten:- dla akcji dodawanych domyślnie do przejść statusów jest w pozycji OFF
- dla akcji dodawanych ręcznie z action pickera zarówno do elementów formularza jak i przejść statusów jest w pozycji OFF
- dla przycisku Zapisz w formularzu nowo wygenerowanym z poziomu Kreatora modeli danych jest w pozycji ON
- dla już dodanych akcji zapisu rekordu do elementów formularza system wykonuje migrację ustawiającą przełącznik do pozycji ON, aby zachować możliwość odświeżenia formularza bezpośrednio po utworzeniu i aktualizacji rekordu
Zalecenia do używania systemu
- Zaleca się nie wyłączać opisanych przełączników w definicji dokumentu biznesowego.
- Akcja zapisz rekord w przejściu statusu powinna być używana jako pierwsza lub jedna z pierwszych w zbiorze akcji PRZED, a akcja odświeżenia formularza jako ostatnia lub jedna z ostatnich w zbiorze akcji PO.
- Należy pamiętać, że każda nowo dodana akcja zapisu będzie posiadała przełącznik odświeżania ustawiony w pozycji OFF.
- Zbiór akcji wywoływanych na przycisku Zapisz w formularzu powinien zawierać akcję odśwież formularz lub przełącznik odświeżania w akcji zapisz rekord ustawiony w pozycji ON, aby po zapisie użytkownik pracował na nowo utworzonej instancji dokumentu.
Akcja Algorytm C#
Dodano nowy rodzaj akcji Algorytm C#
(ponieważ to zadanie zostało zrealizowane jako proof of concept, akcja jest dostępna po włączeniu funkcjonalności eksperymentalnych). Akcja pozwala użytkownikowi przygotować skrypt w języku C# z referencjami do innych bibliotek (o ile są potrzebne). Akcję można przypisać do przycisku na formularzu i wykonywać w aplikacji FrontSPA.
W skrypcie można odwoływać się do bibliotek DLL (dyrektywa using
) dostępnych w folderze komponentu API (oprócz wyboru z listy, można wpisać nazwę pliku).
Ponadto w skrypcie można odwoływać się do wartości reprezentowanych przez zmienne Model (model formularza w formacie JSON), RecordId, FormDefinitionId, BusinessDocumentId i UserId.
Użytkownik może sprawdzić poprawność skryptu przyciskiem Sprawdź składnię/skompiluj algorytm
. Informacje o ewentualnych błędach zostaną wyświetlone poniżej skryptu. Akcję można zapisać dopiero wtedy, gdy skrypt kompiluje się bez błędów.
W przypadku błędów wykonania skryptu, użytkownik w aplikacji FrontSPA widzi jedynie standardowy komunikat o niepowodzeniu, a szczegóły błędu są zapisywane w logach aplikacji.
Pomoc kontekstowa w oknie definicji akcji zostanie dodana w wersji 1.7.
Warunek widoczności przycisku przejścia
We właściwościach przycisków na diagramie procesów dodano możliwość określenia warunku widoczności przycisku przejścia za pomocą instrukcji SQL. Użytkownik może wybrać, czy chce określać widoczność przycisku przejścia na podstawie roli użytkownika, czy za pomocą SQL.
Zapytanie musi zwrócić wartość logiczną typu bit; 1 — przycisk będzie widoczny, 0 — przycisk będzie niewidoczny.
Ponadto zmieniono kontrolkę do definiowania warunku wykonania przejścia na edytor SQL wyświetlany po kliknięciu przycisku.
Formatowanie typu datetime2
Dodano możliwość formatowania kolumn listy, które mają typ danych datetime2.
Informacje o wersji (patch) 1.6.2 z dn. 31-03-2022
Ważne zmiany
Usunięcie kolumny FormDefinitionId z tabeli core.Attachments
Z tabeli core.Attachments usunięto kolumnę FormDefinitionId. Obecnie załączniki są przypisywane do dokumentów biznesowych na podstawie wartości z kolumn RecordId (identyfikator dokumentu) i BusinessDocumentId (identyfikator definicji dokumentu biznesowego). Parametr FormDefinitionId usunięto także z żądań dotyczących załączników w bibliotece Public API.
Ta zmiana może wymagać aktualizacji zapytań odwołujących się do załączników z użyciem wartości FormDefinitionId.
Nowe i zmodyfikowane funkcje
Zmiany funkcji smart numbers
Funkcję smart numbers rozszerzono na role i interesariuszy. Ponadto opisy elementów aplikacji zmieniono na angielskie.

Dodano także możliwość wyświetlenia pełnego kodu elementu aplikacji po naciśnięciu skrótu Ctrl + spacja lub kliknięciu danej pozycji.
Dodanie kodu w definicji interesariuszy
W okienku definiowania interesariuszy dodano pole Kod
. Pozwala to odwoływać się do interesariuszy przez kod, a nie tylko przez nazwę.
Dane audytu
Zmodernizowano prezentację danych audytu w ten sposób, że dla dokumentu, dla którego zarejestrowano zmiany, wyświetlane są tylko te pola, w których wartość została zmieniona.
Przycisk Komentarze
W kreatorze/designerze formularzy dodano przycisk Komentarze
w nagłówku formularza, obok przycisków Zapisz
i Anuluj
. Ten przycisk wyświetla panel komentarzy. Dla przycisku można skonfigurować standardowe ustawienia dostępności oraz uprawnienia formularzy. Po aktualizacji nAxiom ten przycisk będzie widoczny na wszystkich formularzach.
Dostępne na panelu właściwości ustawienie
Skrót klawiszowy
nie jest na razie obsługiwane.
Poprawki i usunięte błędy
Obsługa słowników hierarchicznych w Kreatorze modeli danych
Usunięto znany problem z wersji 1.6, który uniemożliwiał przypisywanie słowników hierarchicznych do kolumn tabel definiowanej w Kreatorze modeli danych.
Odstępy między przyciskami przejść procesu
Ustawiono wartość odstępu między przyciskami przejść procesu taką samą jak dla przycisków akcji w nagłówku formularza.
Uwierzytelnianie oAUth2 dla źródła REST API
Poprawiono działanie uwierzytelniania oAuth2 dla źródła danych REST API; obecnie są ustawiane poprawne wartości parametrów content-type (x-www-form-urlencoded) i grant_type.
Wartości grupy checkbox w widoku listy
W kreatorze listy, we właściwościach kolumny, na karcie Ogólne
dodano przełącznik Wyświetlaj dane jako zbiór wartości
. Służy on do zmiany sposobu wyświetlania wartości ustawianych za pomocą kontrolki Checkbox (grupa). Po włączeniu w kolumnie są wyświetlane wartości rozdzielane przecinkami bez symbolu $.
Endpoint Document/ChangeStatus w Public API
Zmodyfikowano działanie punktu końcowego Public API Document/ChangeStatus. Obecnie żądanie zmiany statusu dokumentu biznesowego powoduje wykonanie wszystkich przypisanych akcji przed i po przejściu. Żądanie ma postać:
https://nazwahosta:port/Document/ChangeStatus?documentDefinitionId=x&recordId=y&transitionId=z&formId=-1
Wartość domyślną parametru formId można zmienić. Żądanie przyjmuje element body w formacie string. Istniejący dotychczas punkt końcowy Document/ChangeFormStatus został usunięty z biblioteki Public API.
Przekazywanie wartości z sekcji typu lista do otwieranego formularza
Poprawiono błąd przekazywania wartości z rekordu sekcji typu lista do formularza otwieranego z poziomu tego rekordu. Zależnie od obiektu źródłowego, z którego wykonywana jest akcja Otwórz formularza
, odwołania do wartości z tego obiektu powinny wyglądać jak w poniższej tabelce.
Obiekt źródłowy | Odwołanie | Przekazywana wartość |
---|---|---|
Formularz | {@PoleFormularza} | Kontekst formularza źródłowego |
Widok listy | {@KolumnaListy} | Przecięcie kolumny z wierszem, z którego wywołano akcję |
Sekcja Lista | {@KolumnaListy} | Przecięcie kolumny z wierszem, z którego wywołano akcję |
{@*KodFormularza.PoleFormularza} | Kontekst formularza o podanym kodzie z tablicy OpenedForms | |
Sekcja Harmonogram | {@KodSekcjiHarmonogramu_SelectedEvent.Id} | Identyfikator zdarzenia harmonogramu, z którego jest otwierany formularz |
Nazwy kontenerów przycisków w nagłówku formularza
W oknie dialogowym Uprawnienia formularza
zmieniono dotychczasowe nazwy kontenerów przycisków w nagłówku formularza na zgodne z designerem formularzy, to jest Przyciski standardowe
(np. Zapisz
, Anuluj
) i Przyciski akcji
.
Przełącznik Edytor SQL Query
w oknie definicji widżetu Sekcja HTML
Usunięto błąd, który uniemożliwiał wyłączenie przełącznika Edytor SQL Query
w oknie definicji widżetu Sekcja HTML
.
Warunkowe wykonanie akcji Generowanie PDF z Word
Usunięto przyczynę wyświetlania komunikatu o błędzie w przypadku niespełnienia warunku wykonania akcji Generowanie PDF z Word.
Styl ikony przycisku
Poprawiono stosowanie stylu przycisku w przypadku trybu wyświetlania Tylko ikona
.
Import użytkowników z pliku Excel
Funkcję importu użytkowników z pliku Excel rozszerzono o automatyczne włączanie dostępu do wewnętrznego interfejsu API dla zaimportowanych użytkowników.
Błędne wyświetlanie licznika paginacji
Usunięto problem z wyświetlaniem licznika paginacji na kartach uprawnień w oknie definicji dokumentu biznesowego.
Informacje o wersji patch 1.6.1 z dn. 16-03-2022
Nowe funkcje
Nowy endpoint DownloadAttachment w interfejsie Public API
W interfejsie Public API dodano nowy endpoint DownloadAttachment, który umożliwia pobranie załącznika o podanym identyfikatorze. Składnia żądania jest następująca:
https://naxiomhost:port/Attachment/DownloadAttachment?id=n
Użytkownik wysyłający żądanie musi mieć włączony dostęp do Public API w swoim profilu.
Akcja generowania tabel i elementów aplikacji
Dodano nową akcję: Akcja generowania tabeli i elementów aplikacji, która umożliwia zautomatyzowane utworzenie tabeli i wygenerowanie na jej podstawie elementów aplikacji, czyli modelu procesu biznesowego (dawniej polecenie Utwórz flow
). Generowanie elementów aplikacji jest opcjonalne, a generowane obiekty zależą od wybranego rodzaju tabeli. Wszystkie potrzebne parametry są przekazywane w formacie JSON.
Blokowanie konta użytkownika
Wprowadzono funkcję, która trwale blokuje konto użytkownika po określonej liczbie nieudanych prób zalogowania się do witryny nAxiom. Liczbę niepowodzeń można skonfigurować w pliku appsettings.json dla modułu Auth w kluczu AppConfiguration/Security/MaxFailedAccessAttempts. Wartość domyślna to 3. Zmiana wartości tego ustawienia wymaga zrestartowania modułu Auth.
Licznik niepowodzeń ([auth].[AspNetUsers].[AccessFailedCount]) jest zerowany po wprowadzeniu prawidłowego hasła (przed zablokowaniem konta) oraz po zmianie hasła.
Po zablokowaniu konta wyświetlany jest taki sam komunikat jak w przypadku błędnego logowania: „Nieprawidłowy login lub hasło”.
Odblokowanie konta wymaga ustawienia nowego hasła przez administratora użytkowników lub przy użyciu funkcjonalności resetowania hasła.
Pomoc kontekstowa w oknach definiowania akcji
W oknach definiowania akcji dodano pomoc kontekstową.
Uprawnienia dla przycisków w nagłówkach sekcji
Możliwość definiowania uprawnień formularza rozszerzono na przyciski w nagłówku sekcji. Dodatkowo poprawiono działanie ustawień dostępności dla tych przycisków oraz dla przycisków umieszczonych w sekcji typu lista.
Poprawki i usunięte błędy
Definiowanie typów biznesowych
W oknie tworzenia typu dokumentu biznesowego na liście definicji dokumentu biznesowego są obecnie wyświetlane tylko definicje oparte na modelu standardowym, dla których można zdefiniować typ biznesowy.
Uwierzytelnianie w żądaniach API
Poprawiono walidację hasła użytkownika dla żądań API.
Zapis formularza bez definicji dokumentu biznesowego
Wprowadzono poprawkę eliminującą sytuacje, w których po wyczyszczeniu pamięci podręcznej przeglądarki lub aplikacji w AdminSPA możliwe było zapisanie formularza bez definicji dokumentu biznesowego. Obecnie w takiej sytuacji zostanie wyświetlony komunikat o błędzie i konieczne będzie ponowne powiązanie formularza z definicją dokumentu biznesowego.
Obsługa zmiany lokalizacji szablonów Word
Usunięto znany problem z nieskuteczną zmianą ścieżki do szablonów Word. Obecnie ścieżka do pliku szablonu o podanej nazwie jest pobierana z ustawień.
Błąd odświeżania listy po usunięciu rekordu
Usunięto znany problem, który powodował wystąpienie komunikatu o błędzie po wykonaniu akcji Usuń rekord
w formularzu wyświetlonym w trybie dialog z widoku listy. Ponadto zmieniono nazwę przełącznika w oknie definicji akcji Zamknij formularz
na Odśwież widok wyświetlany po zamknięciu formularza
.
Zmiana nazwy tabeli a powiązane elementy aplikacji
Usunięto znany błąd, który uniemożliwiał dodanie pola w kreatorze formularzy, jeśli nazwa tabeli źródłowej formularza została zmieniona.
Foldery dla funkcji OCR
Wprowadzono poprawkę w instalatorze, dzięki której w folderze Output są tworzone podfoldery niezbędne do działania funkcji OCR. Był to znany problem z wersji 1.6.
Zastępstwa i uprawnienia ACL
Zmodernizowano działanie funkcjonalności uprawnień ACL w taki sposób, że obecnie uwzględnia ona również uprawnienia osoby zastępowanej przez danego użytkownika.
Zmiana nazwy audytowanej kolumny
Wprowadzono poprawkę aktualizującą informacje o audytowanych kolumnach w przypadku, kiedy nazwa kolumny, która podlegała audytowi, zostanie zmieniona.
Globalna dostępność formularza
Poprawiono obsługę globalnej dostępności dla formularza (Kreator formularza
> zakładka Dostępność
), rozszerzając działanie atrybutu tylko do odczytu na sekcje komentarzy i załączników.
Przekazywanie parametrów do otwieranego formularza
Poprawiono działanie akcji Otwórz formularz
. Obecnie do otwieranego formularza przekazywane są wszystkie zmapowane wartości, niezależnie od tego, czy są one reprezentowane przez kontrolki na tym formularzu.
Wtyczka do MS Outlook
Wprowadzono poprawkę instalatora dotyczącą aktualizacji ustawień konfiguracyjnych wtyczki nAxiom do MS Outlook.
Anonimizacja pól audytowanych
Usunięto problem, który powodował wystąpienie błędu w przypadku użycia akcji anonimizacji w odniesieniu do wartości z pól audytowanych.
Odświeżanie po akcjach Usuń rekord i zamknij formularz
Usunięto przyczynę komunikatu o błędzie występującego w przypadku, kiedy zostaną użyte kolejno akcje Usuń rekord
i Zamknij formularz
z włączonym przełącznikiem Po zamknięciu odśwież aktywny formularz
(obecnie Odśwież widok wyświetlany po zamknięciu formularza
).
Zmiany nazewnictwa
Uspójniono zmiany nazewnictwa wprowadzone w wersji 1.6.
Lista wyboru WebService bez akcji
Zmieniono treść komunikatu wyświetlanego w przypadku próby zapisania formularza z listą wyboru WebService, dla której nie wskazano akcji WebService.
Zależności kontrolki dla słownika
Poprawiono działanie funkcji zależności kontrolki, gdy kontrolka nadrzędna to lista wyboru typu słownik.
Informacje o wersji 1.6 z dn. 03-03-2022
Zmiany wymagające ręcznej aktualizacji istniejących aplikacji
Aktualizacja do wersji 1.6 powoduje błąd w harmonogramie (błąd konwersji na bigint)
Zgłaszany błąd konwersji danych wymaga modyfikacji zapytania źródłowego harmonogramu przez konwersję zmiennej {@Rok} do typu varchar(100):
CAST({@Rok} as varchar(100))
Dodatkowo, w ramach tego zgłoszenia odblokowano pole kodu formularza, aby można było zmienić kod (nieobsługiwane znaki) i zapisać formularz.
Modernizacja instalatora
W instalatorze zmieniono sposób konfigurowania połączeń z bazą danych oraz dodano krok konfigurowania lokalizacji zasobów systemu (plików używanych przez aplikacje).
Użytkownik może wybrać konfigurację podstawową połączenia z bazą danych, w której definiuje się połączenie z tą samą bazą dla wszystkich aplikacji. W konfiguracji zaawansowanej można jak dotychczas skonfigurować połączenia z różnymi bazami dla różnych aplikacji.
W trakcie przebiegu instalacji dodano krok Lokalizacja zasobów systemu
, w którym można określić miejsce zapisu plików używanych przez aplikacje (załączniki, e-maile, szablony, rozpoznane pliki OCR). Użytkownik może wskazać jako miejsce zapisu folder instalacyjny nAxiom lub wybrany folder, a w przypadku wiadomości e-mail i załączników także repozytorium bazodanowe.\
W przypadku aktualizacji środowiska do nowej wersji konieczne jest wskazanie dotychczasowej lokalizacji zasobów; w przeciwnym razie zasoby będą niedostępne.
Wprowadzone zmiany zostały opisano w zaktualizowanym Przewodniku instalacji nAxiom, który jest dystrybuowany wraz z tym dokumentem.
Dodatkowo, poprawiono działanie testu połączenia z bazą danych w przypadku wyboru tożsamości puli aplikacji Specific User (nazwa użytkownika i hasła) oraz wybraniu zintegrowanego połączenia do bazy danych.
Modyfikacje mechanizmu licencjonowania nAxiom
Zmodyfikowano strukturę licencji nAxiom oraz zachowanie związane z jej weryfikowaniem.

W aplikacji AdminSPA polecenia menu korzystające z funkcji, dla których nie ma licencji, są ukryte. Ponadto próba skorzystania z funkcjonalności, dla której nie ma ważnej licencji, powoduje wyświetlenie komunikatu „Brak ważnej licencji dla tego modułu. Skontaktuj się z operatorem systemu w Twojej instytucji”. W aplikacji FrontSPA brak licencji na moduł BASE powoduje wyświetlenie komunikatu jak wyżej. Użytkownik nie może wykonać żadnej czynności.
Ta zmiana wymaga wygenerowania nowych licencji.
Asysta smart numbers
Dodano mechanizm smart numbers — asysty w określaniu wartości identyfikatora dla statusu dokumentu, typu biznesowego oraz pozycji ze słownika. Asysta jest dostępna w polach edycji SQL.

Aby użyć asysty, wpisz nawias klamrowy otwierający ({) i symbol ampersand (&) co spowoduje wyświetlenie listy aplikacji zdefiniowanych w systemie. W niektórych przypadkach jest test dostępna pozycja PARENT, która oznacza aplikację macierzystą dla bieżącego formularza. Po wybraniu aplikacji wpisz kropkę, aby wyświetlić listę obiektów, dla których jest dostępna asysta. Obecnie są to: słownik, status i typ biznesowy. Dla statusu i typu biznesowego w kolejnym kroku należy wybrać definicję dokumentu, a następnie typ lub status (wg kodu). W przypadku słownika należy wybrać słownik i kod pozycji ze słownika. Przykładowa składnia reprezentująca wartość identyfikatora dla statusu Odrzucono to:
‘{&Reklamacje34.STATUS.rklRjs.rklRjs_odrzucono}’
W momencie wywołania zapytania ta składnia jest zmieniana w konkretną wartość.
Aby mechanizm asysty działał poprawnie, końcowe wartości kodów nie mogą zawierać znaków diakrytycznych.
Aby aplikacje nAxiom zaimportowane do innej witryny działały poprawnie, konieczne jest zastąpienie wszystkich odwołań do identyfikatorów składnią smart numbers; dotyczy to wyrażeń SQL w definicji akcji, zależności, wartości domyślnych itp.
W przypadku dodania nowego elementu (pozycji słownika, statusu, typu biznesowego) lista asysty zaktualizuje się po przelogowaniu konsultanta lub po wyczyszczeniu pamięci podręcznej (ADMINISTRACJA
> Ustawienia systemowe
> Cache
> Monaco
).
Modernizacja migratora aplikacji
Funkcjonalność migratora aplikacji przechodzi gruntowną modernizację. Obejmuje ona między innymi zmianę formatu pliku konfiguracji eksportu z formatu tekstowego do formatu archiwum. W związku z tą zmianą pliki konfiguracji utworzone w poprzednich wersjach nie będą działać. Obecnie plik konfiguracji zawiera opis zmian w bazie danych, wprowadzone dane oraz pliki szablonów.
Repozytoria załączników nie są migrowane. Kategorie załączników, które były przypisane do innego repozytorium niż domyślne, po wgraniu konfiguracji na nowe środowisko zostaną przypisane do domyślnego repozytorium. W takim wypadku może być konieczna edycja definicji kategorii w celu przypisania jej do odpowiedniego repozytorium.
Aby umożliwić migrację zaawansowanych aplikacji rozwijanych od wielu wersji nAxiom, zaleca się wykonanie szeregu czynności przygotowawczych przed eksportem aplikacji oraz po jej zaimportowaniu do nowego środowiska.
Przed eksportem aplikacji:
- Zastąpić odwołania do identyfikatorów obiektów (np. statusów, typów biznesowych, słowników) składnią typu smart numbers lub innymi wywołaniami. Dotyczy to w szczególności akcji, zależności na listach, konfiguracjach list, zależności kontrolek.
- Przypisać moduły aplikacji tabelom (
Kreator modeli danych
, kartaModuły
). - Dodać do eksportowanej konfiguracji aplikację BaseApp z uwagi na definicje akcji systemowych powiązanych z formularzami w innych aplikacjach.
- Sprawdzić, czy schematy tabel w aplikacji są zgodne ze schematami w bazie danych. Odpowiednie dane zawiera np. tabela [core].[SqlBuilderMigrations]. W tabeli tej są informacje o wszystkich zmianach na modelach danych: utworzenie, konfiguracja kolumn, zmiany na kolumnach, powiązania z innymi tabelami itd.
Dla niektórych modeli danych w bazie są błędne dane. Są przypadki, w których tabela związana z modelem danych, np. tabela utworzona w schemacie dbo zostaje przeniesiona do schematu glo.
W takim przypadku migrator nie poradzi sobie z importem aplikacji. Tabela w schemacie dbo już nie istnieje, zatem wszystkie odwołania do tej tabeli powodują błąd. To z kolei powoduje setki wpisów w logu aplikacji oraz niepowodzenie importu.
Aby temu zapobiec, przed zapisem i eksportem konfiguracji została dodana walidacja. W tej chwili, jeżeli w tabeli [core].[SqlBuilderMigrations] są jakieś tabele bez informacji o tym, kiedy i wg jakiej konfiguracji zostały utworzone, pojawia się błąd.Treść błędu: „Błąd danych w bazie. Tabela [core].[SqlBuilderMigrations] nie posiada danych potrzebnych do utworzenia modeli danych: dbo.Employees”.
Gdy pojawi się taki błąd, jedynym wyjściem jest ręczne naprawienie danych w tabeli [core].[SqlBuilderMigrations]. Na przykład dla tabeli dbo.Employees trzeba sprawdzić, jakie dane powiązane z tą tabelą są przechowywane w bazie. Aby to zrobić można posłużyć się poniższym zapytaniemSELECT [CreatedAt],[ExecutedAt],[SqlSchema],[SqlTable],[UpAction],[UpModel] FROM [core].[SqlBuilderMigrations] WHERE [SqlTable] = '%Employees%' OR [UpModel] like '%Employees%' ORDER BY [CreatedAt]
W przypadku rozbieżności, wykonać odpowiedni skrypt aktualizujący.
- Sprawdzić, czy definicje dokumentów biznesowych, formularze i listy są powiązane z odpowiednimi aplikacjami i modułami. Obecnie istnieje możliwość zmiany aplikacji i modułu w definicji takich obiektów. Migrator uwzględni tylko obiekty powiązane z modułami uwzględnionymi w konfiguracji.
Po zaimportowaniu pliku .nax do nowego środowiska:
- W przypadku czystej bazy danych ustawić ścieżki do załączników, szablonów Word i Excel oraz ustawień e-mail jak w środowisku źródłowym.
- Wyczyścić pamięć podręczną.
- Ustawić ścieżki w repozytoriach załączników. W przeciwnym razie utracone zostaną informacje o kategoriach załączników, zgodnie z uwagą powyżej.
- Przywrócić utracone przypisania szablonów raportów w akcjach generowania raportu i widgetach.
- Dodać przywrócić uprawnienia ról.
- Restartować komponent Taskservice.
Modernizacja migratora aplikacji jest w toku. O jej postępach będziemy informować wraz z kolejnymi wersjami.
Zmiana typu wartości pobieranych z kontekstu formularza
Zmieniono sposób przekazywania zmiennych {@Nazwa} używanych w zapytaniach SQL. Dotyczy to odwołań do kontekstu formularza i parametrów systemowych. Dotychczas wartości tych parametrów były przekazywane jako ciągi znaków (nvarchar). Obecnie są one przekazywane z typem danych właściwym dla kolumny tabeli, w której są zapisywane.
W związku z koniecznością zapewnienia kompatybilności wstecznej tę zmianę można wyłączyć przełącznikiem w ustawieniach: ADMINISTRACJA
> Ustawienia systemu
> Ogólne
> Nie konwertuj zmiennych {@Nazwa} na nvarchar
. Ta czynność może jednak spowodować konieczność aktualizacji zapytań SQL definiowanych w akcjach. I tak w akcji przypisywania zadań kolumna UserId była obsługiwana jako typ nvarchar, a obecnie jest obsługiwana jako typ uniqueidentifier. Przykładowa modyfikacja zapytania dla takiej akcji wyglądałaby następująco:
do tej pory:
SELECT {@_UserId} as UserId, CAST(1 AS BIT)
w wersji 1.6 wg „starego” podejścia (konwersja na nvarchar):
SELECT convert(uniqueidentifier, {@_UserId}) as UserId, CAST(1 AS BIT)
Analogicznie wygląda sytuacja z kolumną SelectedUserGUID w akcji uprawnień oraz UserId w akcji interesariuszy.
Parametr systemowy {@_id} prezentuje wartość z kolumny klucza głównego dla bieżącego rekordu wyświetlanego w formularzu, w przypadku tabel w modelu standardowym (dokumentu biznesowego) jest to kolumna Id typu int, jednak w przypadku tabeli pomocniczej (zwykła tabela) może to być kolumna innego typu, dlatego wartość parametru {@_id} jest w dalszym ciągu przekazywana z typem nvarchar.
Znane problemy, do poprawy w kolejnym wydaniu
Kolumna ze słownikiem hierarchicznym
Przy dodawaniu/edycji kolumn w tabeli (kreator modeli danych, dodawanie kolumn z poziomu drzewka sql i definicji formularza) nie można wybrać słownika hierarchicznego. Ten problem zostanie rozwiązany w kolejnym wydaniu, tymczasowo wyłączono wyświetlanie słowników hierarchicznych na liście słowników.
Nieskuteczna zmiana ścieżki do szablonów Word
Pomimo zmiany ścieżki do szablonów Word (Ustawienia
> Szablony Word
) i przeniesienia do niej plików, nAxiom odwołuje się do lokalizacji zdefiniowanej wcześniej.
Po wykonaniu przejścia workflow nie odświeża się status
Przypisanie akcji do przejścia workflow powoduje wyłączenie automatycznego odświeżania formularza, co powoduje, że nie są aktualizowane informacje o statusie w nagłówku formularza. Obejściem jest dodanie akcji odświeżania formularza do przejścia workflow.
Instalator nie tworzy podfolderów potrzebnych dla OCR
Instalator tworzy folder Output, ale nie tworzy podfolderów Error, Success, Templates i Unidentified potrzebnych do korzystania funkcji OCR.
Dodana jednostka organizacyjna wyświetla się dopiero po odświeżeniu
Wyświetlenie nowo dodanej jednostki organizacyjnej w strukturze wymaga odświeżenia.
Usunięcie rekordu w formularzu popup powoduje komunikat o błędzie
Usunięcie bieżącego rekordu akcją Usuń rekord
w formularzu wyświetlonym w trybie dialog z widoku listy powoduje komunikat o błędzie i wymaga dodatkowego odświeżenia listy.
Po zmianie nazwy tabeli w kreatorze formularzy nie można dodać pola
Po zmianie nazwy tabeli, dla której wcześniej wygenerowano formularz, nie można w kreatorze formularzy dodać pola do tej tabeli.
Nowe i zmodernizowane funkcjonalności
Zmieniono organizację menu w aplikacji AdminSPA
Zmieniono organizację menu w aplikacji AdminSPA. Niektóre pozycje są dostępne pod nowymi nazwami.
Modernizacja komponentu SQL Builder
Istotnie zmodernizowano komponent SQL Builder
, wprowadzono również szereg zmian nazewnictwa. Obecnie ten komponent nazywa się Kreator modeli danych
i umożliwia definiowanie trzech rodzajów modeli danych:
-
standardowy
: dawniej tabela dokumentu biznesowego -
uproszczony
: dawniej tabela dokumentu katalogu -
tabela pomocnicza
: dawniej zwykła tabela
W ramach zmian zastąpiono nazwy typów danych polskimi odpowiednikami, np. int przez Liczby całkowite.
Dodano możliwość resetowania hasła
Dodano funkcjonalność resetowania hasła. Polega ona na przesłanie użytkownikowi e-maila z linkiem do strony pozwalającej na zdefiniowanie nowego hasła. W celu skonfigurowania tej funkcjonalności należy zdefiniować wymienione poniżej ustawienia w sekcji Polityka resetowania hasła
(ADMINISTRACJA
> Ustawienia systemu
).
-
Pozwól na reset hasła przez niezalogowanych użytkowników nAxiom
: domyślnie wyłączone; po włączeniu umożliwia zmianę hasła. -
Pozwól na zmianę hasła przez zalogowanych użytkowników nAxiom
: domyślnie włączone. -
Termin (w minutach) ważności linku do resetu hasła
: czas, po upływie którego, wysłany w e-mailu link do zresetowania hasła traci ważność. -
Wskazanie akcji email dla powiadomienia o resecie hasła
: zdefiniowana akcja e-mail, która zostanie wykonana, kiedy użytkownik podejmie próbę zresetowania hasła.
Nie można w ten sposób resetować haseł z AD.
Nowe uprawnienia formularzy
W uprawnieniach formularza dodano dodatkowe uprawnienia: Możliwość usuwania
i Możliwość dodawania
. Są one dostępne dla sekcji załączników oraz dla listy wyboru interesariuszy i decydują o możliwości dodawania i usuwania załączników i interesariuszy.
Te dodatkowe uprawnienia nie są obsługiwane dla sekcji załączników na formularzu nowego dokumentu (przed zapisem). Aby dodane do nowego dokumentu załączniki były widoczne po jego zapisaniu, w szablonie uprawnień dla statusu
Nowy dokument
, dla sekcji załączników muszą być włączone uprawnieniaPole widoczne
iPole edytowalne
, a w szablonie dla statusuUtworzony
musi być włączone uprawnienieMożliwość dodawania
.
Nowe funkcje filtrowania list we FrontSPA
W widokach listy w aplikacji FrontSPA dodano nowe funkcje filtrowania odpowiednie dla typów danych. Możliwe jest między innymi wybieranie konkretnych wartości i określanie zakresów wartości, w tym dla dat predefiniowanych okresów typu ten tydzień, ten miesiąc itp.
Wyzwalanie akcji zdarzeniami dokumentu biznesowego
Dodano możliwość przypisywania akcji do zdarzeń dokumentu biznesowego. Dostępne są następujące zdarzenia:
- dokumenty: utworzenie, zapis, usunięcie, zmiana statusu archiwizacji, przejście kroku workflow,
- załączniki: dodanie nowego, dodanie nowej wersji, nadpisanie, usunięcie, usunięcie wersji,
- właściciel zadania: przypisanie właściciela, zwrócenie zadania do puli,
- interesariusze: dodanie nowego, usunięcie
- RODO: akcja anonimizacji danych
- eskalatory: wysyłka
- komentarze: dodanie
Konfigurowanie akcji dla zdarzeń odbywa się na karcie Zdarzenia
w oknie Edycja definicji dokumentu
.
Panel powiadomień w aplikacji FrontSPA
Dodano nowy komponent — panel powiadomień. Panel jest wyświetlany po kliknięciu ikony dzwonka w aplikacji FrontSPA. W panelu są wyświetlane powiadomienia o dokumentach oczekujących do akceptacji, powiadomienia wysyłane przez eskalatory oraz powiadomienia wysyłane akcją powiadomień.
Dotychczasowe powiadomienia nie są zachowywane.
Akcja wysyłania powiadomień
Dodano akcję powiadomień (NARZĘDZIA
> Akcje
> Wysyłanie powiadomień
), która umożliwia konfigurowanie powiadomień wysyłanych do wybranych użytkowników aplikacji nAxiom. W celu zdefiniowania akcji należy określić:
- odbiorców powiadomienia za pomocą zapytania SQL,
- nagłówek powiadomienia; jako tekst lub zapytanie SQL; w nagłówku można odwoływać się do zmiennych {@PoleFormularza},
- treść powiadomienia; jako tekst z markupem HTML z możliwością wstawiania w tekście wyników zapytania SQL; w treści można także używać linków do dokumentów w widoku formularza lub do widoku listy.
Akcja tworzenia pliku tekstowego
Dodano nowy rodzaj akcji. Akcja tworzenia pliku tekstowego umożliwia wygenerowanie pliku tekstowego o dowolnej strukturze na podstawie danych zwróconych przez zapytanie SQL oraz wartości zmiennych typu {@nazwa}. Akcja wymaga określenia szablonu generującego dane tekstowe z wykorzystaniem składni języka Razor(patrz opis w www.w3schools.com) oraz zapytania zwracającego dane źródłowe. Wygenerowany plik jest automatycznie zapisywany w folderze pobierania przeglądarki.
Import użytkowników z arkusza Excel
Dodano możliwość importu użytkowników z arkusza Excel. W ustawieniach systemu (ADMINISTRACJA
> Ustawienia systemu
) dodano sekcję Import użytkowników
. W tej sekcji można wskazać plik z danymi użytkowników, które zostaną zaimportowane do odpowiednich tabel w bazie danych. Dodatkowo, przycisk Eksportuj szablon Excel
pozwala wyeksportować pusty arkusz do wypełnienia danymi.
Nowe zdarzenie dokumentu biznesowego Dodanie komentarza
Do listy zdarzeń dokumentu biznesowego dodano zdarzenie Dodanie komentarza. Zdarzenie to jest obsługiwane przez funkcję audytu (Edycja dokumentu biznesowego
> karta Audyt
) i przez funkcję przypisywania akcji do zdarzeń (Edycja dokumentu biznesowego
> karta Zdarzenia
).
Zmiana działania przycisku Zapisz
w oknie definicji dokumentu biznesowego
W oknie Edycja definicji dokumentu
zmieniono zachowanie po kliknięciu przycisku Zapisz
. Obecnie zapisanie zmian nie powoduje przejścia na kartę Ogólne
. Dodano także przycisk Zapisz i zamknij
, który zapisuje zmiany i zamyka bieżące okno.
Warunkowe wykonywanie akcji
Dodano możliwość warunkowego wykonywania akcji. W oknie definicji akcji dodano przełącznik Warunkowe wykonanie
, który po włączeniu pozwala zdefiniować warunek wykonania akcji w formie zapytania SQL; kiedy zapytanie zwróci wartość 1, akcja zostanie wykonana; w przeciwnym razie akcja nie zostanie wykonana, ale zostanie zwrócony status pomyślnego wykonania — kolejne akcje zostaną wykonane; aby przerwać wykonywanie sekwencji akcji, zapytanie musi zwrócić błąd, np. za pomocą funkcji RAISERROR.
Zmienna isDIsabled w skryptach zmiany kontekstu
Zmieniono opis skryptu zmiany kontekstu (INTERFEJS UŻYTKOWNIKA
> Formularze
> Edycja
> karta Akcje formularza
) — zamiast zmiennej isReadOnly, jak podano w opisie, w skryptach należy używać zmiennej isDisabled.
Lista zdefiniowanych akcji
W aplikacji AdminSPA w sekcji Narzędzia
> Akcje
dodano pozycję Lista utworzonych akcji
. Wyświetla ona listę wszystkich akcji zdefiniowanych w nAxiom wraz z następującymi atrybutami: Aplikacja, Moduł, Dokument biznesowy, Typ akcji, Nazwa i Miejsce utworzenia (globalna, nazwa formularza, workflow).
Akcja zmiany statusu zestawu dokumentów
Dodano akcję zmiany statusu dla zestawu dokumentów biznesowych. Akcja zmiany statusu dokumentów (NARZĘDZIA
> Akcje
> Zmiana statusu dokumentów
) umożliwia zautomatyzowane wykonanie wskazanego przejścia na diagramie procesu dla zestawu dokumentów biznesowych wybranych zapytaniem SQL. Akcja, wykonując przejście, uwzględnia wszystkie jego elementy, w tym akcje wykonywane przed i po zmianie statusu oraz zmianę statusu. Funkcjonalnie akcja zmiany statusu jest tożsama z kliknięciem przycisku reprezentującego dane przejście dla pojedynczego dokumentu.
Akcja otwierania linku zewnętrznego
Dodano akcję otwierania linku zewnętrznego. W akcji można skonfigurować link jako tekst ze zmiennymi {@Nazwa} lub jako SQL. Ponadto można określić, czy link ma zostać otwarty w bieżącej karcie, w nowej karcie, czy w nowym oknie.
Akcja anonimizacji danych
Dodano systemową akcję anonimizacji danych. Akcja działa na kolumnach tabel dokumentu biznesowego, dla których w definicji zaznaczono pole wyboru RODO. Akcja wymaga zdefiniowania zapytania SQL, które zwróci identyfikator definicji dokumentu biznesowego oraz identyfikator konkretnego dokumentu.

Dla podanego dokumentu akcja zamienia wartości w polach objętych anonimizacją na tekst zanonimizowano lub wartość 999999999. Dodatkowo ustawia status anonimizacji ([IsAnonimized]). Wykonanie tej akcji powoduje zapisanie w danych audytu informacji o użytkowniku, który wykonał akcję, czasu wykonania tej akcji oraz nazw pól, z których wartości zostały zanonimizowane.
Animowana ikona podczas wczytywania załącznika
W sekcji załączników dodano animowaną ikonę operacji w toku wyświetlaną podczas wczytywania załącznika.
Renderowanie kolumn listy zależnie od ich szerokości
Poprawiono renderowanie kolumn w widoku listy w zależności od ich szerokości ustawionych w konfiguracji. Kolumna akcji ma teraz zawsze stałą szerokość określoną w konfiguracji. W przypadku włączenia dla kolumny przełącznika Szerokość automatyczna
, wartość podana w polu Szerokość
będzie traktowana jako szerokość minimalna. W przeciwnym razie kolumna będzie miała dokładnie taką szerokość. Użytkownik może zmieniać szerokość kolumn w aplikacji FrontSPA, przeciągając krawędzie kolumn.
Dodawanie linku do pluginu MSO w szablonie e-mail
W oknie definiowania szablonu e-mail dodano przycisk Wklej łącze do wtyczki nAxiom dla MS Outlook
. Przycisk pozwala umieścić w treści szablonu link, który zostanie rozpoznany przez wtyczkę nAxiom dla MS Outlook.
Wtyczka MS Outlook rozpoznaje wiadomości bez odpowiedniego linku
Zmieniono zachowanie wtyczki nAxiom do MS Outlook w przypadku wybrania wiadomości e-mail, w której nie ma odpowiedniego linku. W takiej sytuacji zostanie wyświetlona informacja o konieczności kliknięcia innej wiadomości.
Nowy widżet z raportem Telerik
Dodano nowy typ widżetu (raport), pozwalający na wyświetlenie na pulpicie użytkownika raportu Telerik (parametryzowanego identycznie jak w sekcji raportu na formularzu).
Konfigurowanie pierwszego węzła breadcrumbs
W ustawieniach systemu (ADMINISTRACJA
> Ustawienia systemu
) w sekcji Breadcrumbs
dodano parametr Pokazuj jako pierwszy węzeł
, który pozwala określić element wyświetlany na początku ścieżki breadcrumb; dostępne wartości to Nazwa aplikacji
i Opis aplikacji
.
Informacja o aktywnych uprawnieniach formularza
W designerze formularzy dodano komunikat informujący konsultanta o włączeniu uprawnień dla formularzy, ustawionym typie walidacji i konieczności dostosowania ustawień kontrolek w celu zapewnienia pożądanego działania.
Obsługa logo w kreatorze stylów
W Kreatorze stylów dodano sekcję Logo
, w której można dodać dwa warianty obrazu, który będzie wyświetlany w aplikacji FrontSPA zamiast logo nAxiom. Usunięcie logo wymaga usunięcia wartości z kolumn Logo i MiniLogo z tabeli core.StyleDesignerDefinitions. Informacje o plikach logo są zapisywane w tabeli core.SystemAttachments.
Odwołania do zmiennych zwracanych przez SQL w edytorze JavaScript
W Edytorze JavaScript używanym w ustawieniach sekcji HTML na formularzu, widżetu Sekcja HTML i kontrolki Blok HTML dodano możliwość odwoływania się do zmiennych zwracanych zapytaniem SQL. Składnia odwołań jest taka sama, jak w oknie Edytor HTML
, tzn. {@Query_NazwaKolumny}, gdzie NazwaKolumny to nazwa kolumny zwróconej przez zapytanie SQL.
Przekierowanie użytkownika w razie braku dostępu do dokumentu
Wprowadzono obsługę przekierowania użytkownika w przypadku braku dostępu do dokumentu. W oknie definicji dokumentu biznesowego dodano kartę Uprawnienia — brak odczytu
, na której znajduje się przełącznik Przekieruj na dashboard
.
Mapowanie kolumn systemowych w akcji Otwórz formularz
W akcji otwarcia formularza, w oknie wyboru parametrów dodano następujące kolumny systemowe z tabeli źródłowej formularza, z którego ma być uruchamiana akcja. Są to: Type1/2/3, UserId, ArchiveStatus, Blocked, BlockUser oraz IsAnonimized.
Parametry FormId i BusinessDocId w kontekście formularza
Do kontekstu formularza dodano parametry FormId oraz BusinessDocId.
Zmienione statusy zadań cyklicznych w historii
Zmieniono nazwy statusów zadań cyklicznych na liście Historia wykonania zadań
. Zapisane zadanie cykliczne, które ma pierwszy termin wykonania w przyszłości, ma teraz status Dodano do harmonogramu
. Po pierwszym wykonaniu zadania status zmienia się na Rozpoczęto
.
Parametry typów danych w projekcie formularza
W definicji formularza rozszerzono informacje o typie danych wyświetlane we właściwości Typ danych
. Dla typów Tekst varchar i Tekst nvarchar wyświetlana jest długość, a dla typu Liczby dziesiętne precyzja i skala.
Zmiana statusu bez uprawnień
Dodano obsługę sytuacji, w której użytkownik bez wymaganych uprawnień ACL próbuje zmienić status dokumentu. Do tej pory wyświetlany był komunikat o poprawnym wykonaniu, ale status nie zmieniał się. Obecnie jest wyświetlany odpowiedni komunikat.
Obsługa parametrów {@Nazwa} w SQL dla terminu
Dodano obsługę parametrów {@Nazwa} w zapytaniach SQL dla terminu wykonania zadania. Przykład:
IF {@Prop} = 1
SELECT 'PT3M'
ELSE
SELECT 'PT6M'
Generowanie raportów z widoku listowego
Dodano możliwość wykonywania akcji generowania raportu z listy.
Taka akcja nie może mieć włączonego zapisywania do załączników.
Poprawki i usunięte błędy
Pobieranie danych do listy
W kontrolkach opartych na liście wyboru dodano animowaną ikonę operacji w toku (spinner), która jest wyświetlana w czasie pobierania danych do listy. Do tej pory w takiej sytuacji był wyświetlany dezinformujący komunikat Brak danych.
Informacja o dokumencie biznesowym dla komentarzy
W tabeli core.Comments dodano nową kolumnę BusinessDocumentId typu int, w której dla każdego komentarza zapisywany jest identyfikator definicji dokumentu biznesowego.
Optymalizacja zapytań do appsettings
Zoptymalizowano zapytania o ustawienia AppSettings w celu poprawy wydajności. W związku z tym zmiana ustawień nAxiom (AdminSPA > Administracja
> Ustawienia systemu
) zostanie zastosowana w aplikacji FrontSPA dopiero po ponownym uruchomieniu aplikacji (odświeżeniu strony).
Zarządzanie wersjami w sekcji załączników tylko do odczytu
Ukryto przyciski do zarządzania wersjami załączników w przypadku, gdy dla sekcji ustawiono atrybut „tylko do odczytu”.
Akcja Zamknij rekord
zamyka formularz
Zmodyfikowano akcję Usuń rekord
w taki sposób, że jej wykonanie nie powoduje obecnie zamknięcia formularza. Zamknięcie formularza wymaga zastosowania do obsługi przycisku osobnej akcji Zamknij formularza
. Dla istniejących przycisków z akcją Usuń rekord
akcja Zamknij formularz
jest dodawana automatycznie.
Okno SQL w konstruktorze zapytań na workflow
W konstruktorze zapytania (Diagramy procesów
> Edytuj
> Blok decyzyjny
> Kierunek przejścia
wyszarzono obszar zapytania SQL, aby wskazać, że jest on tylko do odczytu. Odpowiednie zapytanie konstruuje się korzystając z rozwijanych list z prawej strony okna. Aby wygodniej definiować warunki wyboru przejścia, należy zmniejszyć obszar zapytania.
Przycisk wybierz z listy
w akcji otwierania formularza
Usunięto błąd w działaniu przycisku wybierz z listy
w akcji otwierania formularza.
Kod formatki dla pozycji menu
Poprawiono działanie zapisu i anulowania podczas tworzenia linku do formularza lub listy dla pozycji menu.
Tłumaczenia statusów i typów tworzonych na diagramie procesów
Poprawiono obsługę tłumaczeń statusów oraz typów tworzonych podczas generowania diagramu procesów.
Szyfrowanie i kategoria załączników
Poprawiono błąd akcji szyfrowania plików, który powodował, że zaszyfrowany plik był przenoszony do kategorii domyślnej.
Format godziny kontrolki Datepicker i pole czasu
Dla kontrolki Datepicker i pole czasu zmieniono domyślny format wyświetlania czasu z 12h na 24h.
Kontrolka dla pola typu Data i czas
Obecnie dla pola typu datetime w kreatorze formularza jest domyślnie dodawana kontrolka Datepicker i pole czasu.
Kontrolka dla pola typu Czas
Zmieniono działanie generatora formularzy. Obecnie dla pola typu Czas
na formularzu tworzona jest kontrolka Pole czasu
.
Sekwencja akcji Zamknij formularz
i Odśwież formularz
Poprawiono działanie akcji odświeżania wskazanego formularza w przypadku, gdy formularz docelowy był jednocześnie formularzem, z którego uruchomiono tę akcję.
Grupowanie przycisków
Wyłączono wyświetlanie przycisku rozwijanego Więcej
w przypadku gdy dla wszystkich przycisków w nagłówku formularza wyłączono grupowanie.
Kolor sekcji
Poprawiono stosowanie koloru dla sekcji formularza.
Akcje dla kontrolki Lista wyboru (WebService)
Usunięto problem, który powodował, że dla kontrolki Lista wyboru (WebService)
nie wyświetlały się akcje typu WebService zdefiniowane w aplikacji.
Zmiana lokalizacji repozytorium załączników
Usunięto problem ze zmianą lokalizacji repozytoriów załączników.
Zmiana nadrzędnej pozycji menu
Usunięto błąd, który uniemożliwiał zmianę nadrzędnej pozycji menu (INTERFEJS UŻYTKOWNIKA
> Menu Użytkownika
).
Funkcje SQL FIRST/LAST w stopce listy
Usunięto problem uniemożliwiający użycie funkcji agregujących SQL FIRST i LAST w stopce widoku listy.
Blok workflow bez przejścia „wejściowego”
Usunięto przyczynę komunikatu o błędzie „Wystąpił problem podczas wczytywania konfiguracji z powodu błędnego schematu układu kontrolek na obszarze roboczym” w przypadku, gdy na diagramie procesów występuje blok bez przejścia na wejściu (z innego bloku lub z bloku Start).
Tryb link wewnętrzny i przekazywanie parametrów
Wprowadzono zmiany zapewniające dostęp do wartości z kontekstu formularza, z którego wywołano akcję otwierania formularza w trybie Link wewnętrzny
. Dodatkowo, jeśli wartość parametru nie zostanie znaleziona, nazwa parametru nie będzie już wyświetlana w polu.
Odświeżenie przeglądarki po otwarciu formularza w trybie linku wewnętrznego spowoduje utratę parametrów przekazanych z formularza bazowego.
Typ undefined po wyczyszczeniu kontrolki głównej
Poprawiono działanie zależności kontrolki, Obecnie usunięcie wartości z kontrolki sterującej powoduje ustawienie wartości NULL w kontrolkach zależnych.
ACL dla dokumentów tworzonych w trybie inline
Poprawiono działanie szablonów uprawnień ACL w przypadku dokumentów tworzonych w widoku listy w trybie edycji inline.
Właściwości sekcji kalendarz w kreatorze formularzy
W Kreatorze formularzy uzupełniono brakujące właściwości sekcji kalendarza (dostępne w Designerze formularzy).
Wyświetlanie karty Web Report Designer
Usunięto problem z wyświetlaniem nazw na panelu Explorer
w module Web Report Designer
.
Nadpisywanie akcji globalnych
Naprawiono błędne działanie nadpisywania akcji globalnej na formularzu.
Linki w e-mailach z eskalatorów
Naprawiono błędy w wysyłce linków w wiadomościach e-mail wysyłanych jako eskalatory.
Walidacja pól w akcji generowania pliku PDF
W oknie definiowania akcji generowania PDF z Word poprawiono sprawdzanie wymagalności pól Szablon Word
i SQL szablonu
w zależności od wybranego rodzaju szablonu.
Brak rekordów w sekcji HTML
Naprawiono renderowanie sekcji HTML w przypadku kiedy zapytanie SQL nie zwraca żadnych rekordów lub dla niektórych kolumn zwraca wartość NULL.
Błędy kontrolki czasu
Usunięto błąd, który powodował wyświetlanie znaków NaN:NaN w kontrolce czasu.
Zmiana układu widżetów na dashboardzie
Usunięto błąd występujący podczas zapisu dashboardu po zmianie położenia lub układu widżetów.
Zapis formularza z listą wyboru WebService
Usunięto problem, który uniemożliwiał zapis formularza po dodaniu do niego kontrolki Lista wyboru (WebService).
Domyślna organizacja System
Dodano domyślną organizację System i przypisano do niej użytkownika consultant (consultant-llcd). Ponadto zmieniono komunikat o błędzie w razie braku ustawień dla struktury organizacyjnej (id formularza i dokumentu biznesowego).
Akcja szyfrowania zestawu załączników
Zmodyfikowano działanie akcji szyfrowania dla zestawu załączników w formacie PDF. Jeśli w zestawie są pliki już zaszyfrowane, nie będą one szyfrowane ponownie. Dodatkowo, usunięto problem z zapisem stanu przełącznika Składanie dokumentów
.
Nadpisywanie konfiguracji Taskservice
Zmieniono działanie instalatora w taki sposób, że obecnie nie są nadpisywane ustawienia w sekcji OpenLDAPConf w pliku appsettings.json dla komponentu Taskservice.
Resetowanie ustawień filtrowania po zmianie sekcji
Zmieniono sposób zapisu konfiguracji widoku listy używanej w sekcji typu lista na formularza. Obecnie ta konfiguracja zapisuje się również na poziomie sekcji.
Zmiana kategorii domyślnej załączników
Usunięto błąd, który powodował, że po zapisaniu domyślnej kategorii załączników dla definicji dokumentu biznesowego, w bazie danych flaga IsDefault dla tej kategorii zmieniała wartość z true na false.
Grupowanie w sekcji kalendarza
Wyłączono walidację grupowania zdarzeń w sekcji kalendarza w przypadku gdy przełącznik grupowania jest wyłączony. Poprawiono działanie pola numerycznego do ustawiania liczby wyświetlanych dni tygodnia.
Zbyt długi kod formularza
Dodano walidację kodu formularza pod kątem użycia spacji jako znaku niedozwolonego.
Przyciski w nagłówku formularza
Usunięto problem który powodował, że w przypadku gdy przyciski na formularzu były zwinięte, zapisanie rekordu powodowało, że przyciski nie wyświetlały się.
Zduplikowany przedrostek dla elementów aplikacji
Usunięto błąd, który powodował zawieszenie polecenia Utwórz flow
(obecnie Generuj elementy aplikacji
) w przypadku podania przedrostka, który już jest używany. Obecnie zostanie wyświetlony komunikat z informacją, że przedrostek już istnieje i użytkownik będzie mógł podać inny.
Pusty kod formularza
Dodano sprawdzanie pustych wartości w polu kodu formularza. Obecnie nie można utworzyć formularza z pustym kodem.
Informacje uzupełniające
Zmiana typu kolumny z wartościami słownikowymi
W przypadku zmiany typu kolumny z wartościami słownikowymi zaleca się wykonanie następującej procedury w celu uniknięcia błędów:
- Przejdź do definicji tabeli w Kreatorze modeli danych i usuń słownik z odpowiedniej kolumny, a następnie zmień typ danych i kliknij żółtą ikonę aktualizacji.
- Przejdź do edycji widoku listy zbudowanego na tej tabeli i kliknij przycisk
Waliduj kolumny listy
na karcieOgólne
. - Odśwież typ danych dla kolumny zaznaczonej na czerwono na panelu z lewej strony, w tym celu na karcie
Ogólne
dla tej kolumny kliknij żółtą ikonę odświeżania obok polaTyp danych
.
Nowa wersja środowiska Telerik Reporting
Zaktualizowano środowisko definiowania i wyświetlania raportów Telerik:
- AdminSPA: Telerik.Reporting do wersji 16.0.22.119
- FrontSPA @progress/telerik-angular-report-viewer do wersji 15.22.119
Informacje o wersji patch 1.5.6 z dn. 28-02-2022
Poprawki i usunięte błędy
Przekazywanie wartości parametrów z sekcji zależnej i z Local Storage
Poprawiono sposób przekazywania wartości parametrów z sekcji zależnej do warunku zależności dla sekcji typu lista. Do tej pory wartości widoczne w kontekście formularza jako NULL były przekazywane do warunku zapytania jako pusty string. Po zmianie takie parametry w zapytaniu SQL będą faktycznie miały wartość NULL.
Dodatkowo poprawiono przekazywanie parametrów z LocalStorage dla list z wyłączonym przełącznikiem Funkcja server-side
.
Przekazywanie parametrów do formularza otwieranego w trybie linku wewnętrznego
Wprowadzono zmiany zapewniające dostęp do wartości z kontekstu formularza, z którego wywołano akcję otwierania formularza w trybie Link wewnętrzny
. Dodatkowo, jeśli wartość parametru nie zostanie znaleziona, nazwa parametru nie będzie już wyświetlana w polu.
Odświeżenie przeglądarki po otwarciu formularza w trybie linku wewnętrznego spowoduje utratę parametrów przekazanych z formularza bazowego
Przekazywanie parametrów Local Storage
Poprawiono przekazywanie parametrów z LocalStorage do kontekstu formularza.
Błąd podczas przenoszenia przycisku między sekcjami
Usunięto błąd, który uniemożliwiał zapisanie formularza po przeniesieniu przycisku z nagłówka jednej sekcji do nagłówka innej sekcji. Wykryto problem z zachowaniem stylu przycisku w przypadku kilkukrotnego kopiowania. Ten problem zostanie rozwiązany w kolejnym wydaniu nAxiom.
Przekazywanie parametrów z użyciem funkcji JSON_VALUE
Usunięto problem z przekazywaniem parametrów w akcji Otwórz formularz
w przypadku użycia funkcji SQL JSON_VALUE.
Wyczyszczenie kontrolki sterującej nie wpływa na kontrolki zależne.
Poprawiono działanie zależności kontrolek. Obecnie wyczyszczenie wartości kontrolki sterującej powoduje wyczyszczenie kontrolek zależnych. Wykryto problem w przypadku użycia zależności do filtrowania list zależnych. ten problem zostanie usunięty w kolejnym wydaniu nAxiom.
Nie działa akcja systemowa Wyloguj
Usunięto problem z wywołaniem akcji systemowej Wyloguj
.
Informacje o wersji patch 1.5.5 z dn. 22-02-2022
Poprawki i usunięte błędy
Nie można używać zmiennych {@Nazwa} w parametrach akcji otwierania formularza
Usunięto problem, który powodował, że w definicji akcji otwierania formularza, w oknie dialogowym parametry nie działało przekazywanie wartości przez zmienne typu {@Nazwa}, zarówno w trybie TXT, jak i SQL.
Parametry akcji Otwórz formularz nie zapisują się
Usunięto problem, który powodował, że ustawione parametry akcji otwierania formularza nie zapisywały się.
Błąd FrontSPA.NoPermission.NoAccess przy wyjściu z podprocesu synchronicznego
Wyłączono weryfikację uprawnień ACL dla automatycznej zmiany statusu dokumentu wyzwalanej zakończeniem podprocesu synchronicznego. Do tej pory dla tego przejścia sprawdzane były uprawnienia użytkownika, który kończył podproces, co w niektórych przypadkach mogło powodować błąd braku dostępu. Obecnie użytkownik, który wykonuje zadanie w podprocesie nie musi mieć uprawnień do aktualizacji dokumentu w procesie głównym.
Błędne przekierowanie po akcji Zamknij formularz
Poprawiono działanie akcji systemowej Zamknij formularz
. Obecnie wykonanie akcji powoduje przekierowanie użytkownika do widoku listy, z której wywołano formularz. W przypadku formularza wyświetlonego bezpośrednio z menu użytkownika, po jego zamknięciu wyświetlana jest strona wyświetlana przed otwarciem formularza.
Nie można przypisać właściciela zadania do nowo tworzonego dokumentu
Poprawiono wykonywanie akcji wywoływanych po akcji zapisu rekordu oraz sprawdzanie uprawnień ACL dla akcji przypisywania zadań.
Problem z anonimizacją w niektórych polach
Poprawiono błąd akcji anonimizacji dla kolumn z zadeklarowaną długością mniejszą niż literał anonimizacji ([zanonimizowano]). W takich kolumnach będzie wstawiany tekst odpowiednio przycięty. Na przykład dla kolumny z danymi typu varchar(6) zostanie wstawiony fragment [zanon.
Warość domyślna ustawiona w polach formularza nie wyświetla się
Usunięto problem, który powodował, że w niektórych przypadkach wartość domyślna ustawiona dla pól formularza nie wyświetlała się.
GUID zamiast nazw statusów
Rozwiązano problem, który powodował, że w niektórych przypadkach w uprawnieniach formularza zamiast nazw statusów wyświetlane były identyfikatory GUID.
Zapis danych przyciskiem workflow nie wywołuje walidacji pól formularza
Zmodyfikowano sposób działania przycisku typu Domyślny
. Obecnie jeśli do takiego przycisku jest przypisana sekwencja akcji, w której znajduje się akcja systemowa Zapisz rekord
lub akcja SQL zapisu danych, kliknięcie przycisku wywołuje walidację pól formularza. Do tej pory walidacja była wykonywana tylko w przypadku, gdy akcja zapisu była wykonywana jako pierwsza. Dotyczy to przycisków formularza i przycisków workflow.
W uzupełnieniu podajemy informacje dotyczące atrybutu Zachowanie
przycisku formularza. Dostępne ustawienia działają w następujący sposób:
-
Domyślny
: (ustawienie domyślne) jeśli do przycisku jest przypisana akcja SQL zapisu danych lub akcja systemowaZapisz rekord
, ten przycisk zmienia typ naZatwierdź formularz
, w przeciwnym razie naZwykły przycisk
. -
Zatwierdź formularz
: kliknięcie przycisku wywołuje walidację pól formularza (wyświetlane są ewentualne błędy) i wyzwala wykonanie przypisanych akcji. -
Zwykły przycisk
: kliknięcie przycisku nie wywołuje walidacji pól formularza, tylko wyzwala wykonanie przypisanych akcji.
Brak walidacji atrybutu Pole wymagane (uprawnienia formularza)
Usunięto problem braku walidacji pola tekstowego, dla którego w uprawnieniach formularza ustawiono atrybut wymagalności.
Sortowanie szablonów uprawnień formularza
Zmodyfikowano wyświetlanie szablonów uprawnień formularza, dodając ich sortowanie według kodu statusu.
Błąd „The instance of entity type ‘Grid’ cannot be tracked…”
Usunięto przyczynę wyświetlania komunikatu o błędzie „The instance of entity type ‘Grid’ cannot be tracked because another instance with the same key value for {‘Id’} is already being tracked…” podczas wyświetlania definicji listy.
Akcja anonimizacji nie działa dla obszernych formularzy
Rozwiązano problem z akcją anonimizacji formularza, którego przyczyną był zbyt długi adres URL żądania ze względu na parametry akcji. Obecnie parametry są przesyłane w elemencie body żądania.
Akcja Otwórz formularz nie przekazuje parametrów
Usunięto błąd, który powodował, że podczas wykonywania niesystemowej akcji otwierania formularza nie były przekazywane parametry do otwieranego formularza.
Wszystkie formularze dokumentu biznesowego mają te same uprawnienia
Wprowadzono zmiany dotyczące definiowania uprawnień formularza. Obecnie uprawnienia są zapisywane osobno dla każdego formularza powiązanego z daną definicją dokumentu biznesowego, a nie jak do tej pory dla definicji dokumentu. Pozwala to definiować różne schematy uprawnień formularza dla różnych formularzy powiązanych z tą samą definicją dokumentu biznesowego.
Z uwagi na migracje bazy danych, które modyfikują istniejące konfiguracje uprawnień, przed aktualizacją do tej wersji zaleca się wykonanie kopii zapasowej bazy danych.
Znane problemy
Można edytować pole dodane do sekcji read only
Pole dodane do sekcji, która w uprawnieniach formularza ma wyłączony atrybut Pole edytowalne
, ma ten atrybut włączony. Ten problem zostanie usunięty w przyszłości. W tym patchu usunięto błąd, który powodował, że wyłączenie atrybutu Pole edytowalne
dla nowego pola powodowało włączenie go dla całej sekcji.
Informacje uzupełniające
Zmiany globalnej akcji odświeżania listy
W uzupełnieniu informacji o zmianach akcji odświeżania listy (patch 1.5.4) informujemy, że wskazanie formularza w akcji odświeżania listy jest opcjonalne.
Informacje o wersji patch 1.5.4 z dn. 11-02-2022
Zmiany istniejących funkcji
Zmiany tabeli core.Emails
Dodano nowe kolumny do tabeli core.Emails, umożliwiające identyfikacje obiektu, z którego wywołano akcje e-mail.
Nazwa / Typ | Opis | Wartości |
---|---|---|
SourceType (int)
|
Typ obiektu, z którego wywołano akcję e-mail
|
0: (Grid) akcja email wywołana przyciskiem z listy
1: (Form) akcja email wywołana przyciskiem z formularza 2: (WorkflowSystem) akcja email wywołana zmianą statusu dokumentu (przycisk workflow) 3: (WorkflowPublicApi) akcja email wywołana zmianą statusu dokumentu (Public API) 4: (TaskScheduler) akcja email wywołana zadaniem cyklicznym. |
SourceId (int) | Identyfikator obiektu źródłowego | identyfikator listy, formularza, przejścia workflow lub zdarzenia cyklicznego |
BussinessDocumentId (int) | Identyfikator definicji dokumentu biznesowego | W przypadku akcji wywołanej przez zadanie cykliczne NULL |
RecordId (nvarchar(MAX)) | Identyfikator dokumentu, dla którego wywołano akcję | W przypadku akcji wywołanej przez przycisk listy lub zadanie cykliczne NULL |
Zmiany globalnej akcji odświeżania listy
Wprowadzono zmiany w akcji odświeżania listy. Dodano możliwość wyboru formularza oraz wskazania sekcji typu lista, która ma zostać odświeżona (przez podanie kodu). Dodano pomoc kontekstową w oknie definiowania akcji.
Poprawki i usunięte błędy
Akcje wykonywane po na przejściu Start > Utworzony
Naprawiono błąd blokujący wywoływanie akcji wykonywanych po na przejściu workflow między blokami Start -> Utworzony. Naprawa umożliwia użycie na tym przejściu m.in. akcji zmiany statusu dokumentu, dzięki czemu system pozwala na automatyzację hierarchicznego wywoływania podprocesów. Możliwe jest np. zdefiniowanie kilku workflow z blokami podprocesów synchronicznych i tworzenie dokumentów w tych podprocesach automatycznie po przejściu do podprocesu z poziomu procesu głównego.
Przewijanie formularza podczas przejścia statusu
Usunięto błąd, który powodował, że wykonanie akcji odświeżania formularza powodowało przewinięcie formularza do sekcji typu lista.
Akcja odśwież formularz nie odświeża nagłówka formularza
Usunięto problemy z odświeżaniem informacji w nagłówku formularza po wykonaniu akcji odśwież formularz.
Błąd wykonywania sekwencji akcji
W oknie definicji akcji SQL do bazy systemowej i akcji procedur bazodanowych dodano przełącznik Wykonuj w transakcji
. Sekwencje akcji, dla których ten przełącznik jest włączony są wykonywane w ramach jednej transakcji — niepowodzenie akcji w sekwencji spowoduje wycofanie zmian wprowadzonych przez wcześniejsze akcje. Jeśli przełącznik będzie wyłączony, akcje są wykonywane kolejno, a niepowodzenie jednej akcji powoduje przerwanie wykonywania sekwencji, ale nie wycofuje zmian wprowadzonych przez wcześniejsze akcje.
Zidentyfikowano problem z transakcyjnym wykonaniem procedury, która poprzez funkcjonalność linked server uruchamia transakcję na serwerze bazy danych Oracle; dla takiej procedury zaleca się wyłączenie przełącznika
Wykonuj w transakcji
.
Błąd skryptu zmiany kontekstu dla formularza
Usunięto problem który powodował zgłaszanie błędu wykonania skryptu zmiany kontekstu formularza (Formularze
> Edytuj
> Akcje formularza
> Skrypt dla zmiany kontekstu formularza
) w przypadku nagłego zamknięcia formularza.
Ta zmiana pociąga za sobą konieczność modyfikacji zapytań dla wartości domyślnej w kontrolkach ukrywanych przez skrypt. Dotyczy to tylko przypadków, kiedy zapytanie odwołuje się do zmiennej {@nazwa} i polega na użyciu funkcji CAST w celu przypisania wartości zmiennej właściwego typu, np.
SELECT CAST({@_UserId} AS uniqueidentifier)
To obejście przestanie być konieczne w wersji 1.6, w której zostanie zmieniony sposób przekazywania wartości zmiennych typu {@nazwa}.
Błąd „Nie zdefiniowano danych dla formularza o kodzie ‘{{code}}’”
Usunięto problem, który powodował, że warunek dostępności formularza z odwołaniem do pola na innym formularzu zwracał komunikat o błędzie: „Nie zdefiniowano danych dla formularza o kodzie ‘{{code}}‘”.
Problemy z konfiguracją wyświetlania widoku listy
Naprawiono funkcjonalność zapisu konfiguracji widoku listy, w tym definiowania konfiguracji systemowej. Konfiguracja systemowa jest zapisywana podczas konfigurowania widoku listy w aplikacji AdminSPA. O ile lista nie ma ustawionej innej konfiguracji jako domyślnej, konfiguracja systemowa jest ustawiana jako domyślna. Zmiany konfiguracji systemowej w aplikacji AdminSPA są uwzględniane w aplikacji FrontSPA po wylogowaniu i ponownym zalogowaniu użytkownika lub po wybraniu konfiguracji systemowej jako domyślnej. W czasie sesji użytkownika lista jest wyświetlana zgodnie z konfiguracją sesji — tymczasową konfiguracją tworzoną przy pierwszym wyświetleniu listy w danej sesji. Konfiguracja sesji zapamiętuje wszelkie zmiany wprowadzone przez użytkownika i nie jest resetowana przejściem do innej listy/formularza. Można ją zresetować tylko wybierając inną konfigurację.
Błędy zapisu akcji modyfikowanych z poziomu formularza
Naprawiono błędne działanie zapisu akcji kopiowanej lokalnie na formularzu.
Informacje o wersji (hotfix) 1.5.3.1 z dn. 04-02-2022
Poprawki i usunięte błędy
Systemowa konfiguracja widoku listy
Naprawiono funkcjonalność konfiguracji widoku listy, w tym problemy występujące po zdefiniowaniu konfiguracji systemowej.
Informacje o wersji (patch) 1.5.3 z dn. 27-01-2022
Poprawki i usunięte błędy
Kopiowanie formularza pomija kolory
Usunięto błąd, który powodował, że w operacji kopiowania formularza pomijane były ustawienia kolorów w sekcji Toolbar
.
Błąd związany z grupowaniem
Usunięto błąd, w wyniku którego dodanie grupowania do jednego widoku listy mogło powodować dodawanie filtrów do innych widoków list.
Modyfikacje konfiguracji wyświetlania list
Dodano możliwość określania domyślnej konfiguracji wyświetlania widoku listy (grupowanie i sortowanie) w kreatorze listy. W celu określenia domyślnego grupowania należy włączyć przełączniki grupowania dla całej listy i dla indywidualnych kolumn, a następnie przeciągnąć nagłówki kolumn do obszaru grupowania na podglądzie listy w kreatorze. Domyślna konfiguracja jest zapisywana pod nazwą systemowa i jest wybierana podczas tworzenia pozycji menu dla danej listy. Użytkownik końcowy może zmieniać konfigurację w aplikacji FrontSPA. Wprowadzone zmiany rozwiązały znane problemy dotyczące konfiguracji wyświetlania.
Brak karty Ustawienia dla przycisków
w sekcji typu lista
Usunięto błąd, który powodował, że w niektórych formularzach w ustawieniach dostępności sekcji typu lista nie była wyświetlana karta Ustawienia dla przycisków
.
Błędy akceptacji dokumentu z podprocesu
Usunięto błąd, który powodował wystąpienie komunikatu o błędzie The operation is not valid for the state of the transaction przy próbie odrzucenia lub akceptacji dokumentu wygenerowanego w podprocesie.
Informacje o wersji (patch) 1.5.2 z dn. 19-01-2022
Poprawki i usunięte błędy
Zamknięcie formularza podrzędnego czyści dane w formularzu nadrzędnym
Usunięto błąd, który powodował, że po zamknięciu formularza otwartego w trybie dialog lub okno dane w formularzu głównym (otwartym w trybie link wewnętrzny) były czyszczone.
Błąd zapisu danych w formularzu
Usunięto przyczynę występowania komunikatu o błędzie konwersji typu string do typu uniqueidentifier podczas zapisu danych w formularzu wyświetlonym w trybie dialog lub okno.
Nie działa akcja konwersji doc do pdf
Przywrócono działanie akcji konwersji pliku przypisanej do przycisku na przejściu workflow. Korzystając z tej akcji, należy pamiętać o zadeklarowaniu dozwolonych typów plików w definicji kategorii załączników. Dodatkowo w przypadku akcji na przejściu workflow, przed wykonaniem tej akcji należy użyć akcji systemowej Zapisz rekord
.
Nie można zapisać formularza dla schematu innego niż core
Usunięto błąd uniemożliwiający zapis formularza w przypadku użycia dla tabel systemowych schematu innego niż core.
Problem z migracjami bazy danych po aktualizacji do wersji 1.5
Usunięto błąd, który powodował, że po aktualizacji do wersji 1.5 nie wyświetlała się strona aplikacji.
Zwinięte kolumny w sekcji formularza
Usunięto problem, który powodował, że w niektórych przypadkach kolumny na sekcji typu lista były zwinięte i trzeba było je ręcznie rozwijać.
Nie działa lista asynchroniczna korzystająca ze zdefiniowanej kontrolki
Usunięto problem, który powodował, że nie działała kontrolka typu Lista wyboru SQL (Async), w której konfiguracji użyto zdefiniowanej kontrolki.
Informacje o wersji (patch) 1.5.1 z dn. 17-01-2022
Nowe funkcje
Konfiguracja listy użytkowników w strukturze organizacyjnej
Dodano możliwość konfigurowania kolumn listy użytkowników wyświetlanej na karcie Użytkownicy
w formularzu Edycja jednostki organizacyjnej
(KONFIGURACJA
> Struktura organizacyjna
).
Funkcjonalność wymaga określenia następujących ustawień (SYSTEM
> Ustawienia
> Struktura organizacyjna
):
-
Włącz własne ustawienia listy użytkowników
: przełącznik włączający funkcjonalność. -
Własne zapytanie dla dostępnych użytkowników
: zapytanie źródłowe dla listy użytkowników dodanych do jednostki organizacyjnej wyświetlanej na karcieUżytkownicy
-
Własne zapytanie dla użytkowników w jednostce organizacyjnej
: zapytanie źródłowe dla listy wyświetlanej po kliknięciu przyciskuDodaj użytkownika
.
Akcja Odśwież listę
Dodano nową akcję systemową Odśwież listę
. Akcja jest dostępna tylko dla przycisków widoku listy (Konfigurator list
> Edycja listy
> Przyciski listy
), a jej wykonanie powoduje odświeżenie rekordów wyświetlanych w widoku listy.
Uprawnienia ACL formularza dla tabeli katalogu
Dodano możliwość definiowania uprawnień ACL dla formularzy, dla których tabelą źródłową jest tabela katalogu.
Weryfikacja rozszerzenia nazwy pliku przez Public API
Dodano weryfikację rozszerzenia nazwy pliku dodawanego jako załącznik w metodach interfejsu Public API.
Poprawki i usunięte błędy
Zadanie cykliczne — pomoc kontekstowa
Dodano pomoc kontekstową w oknie definiowania zadania cyklicznego.
Sekcja Kalendarz — pomoc kontekstowa
Dodano pomoc kontekstową do sekcji typu kalendarz.
Eliminacja znaków diakrytycznych z kodów pól i sekcji
Ze względu na problemy w działaniu zależności wyeliminowano możliwość stosowania znaków diakrytycznych w kodach sekcji i pól formularza. Dozwolone znaki to: a-z, A-Z, 0-9, _ (podkreślenie) oraz - (myślnik). W związku z powyższym wprowadzono następujące zmiany:
- generowane przez system kody sekcji nie będą zawierać znaków diakrytycznych,
- podczas wprowadzania kodu znaki diakrytyczne są automatycznie zamieniane na odpowiadające im znaki alfabetu łacińskiego,
- dodano skrypt zmieniający w bazie danych wszystkie wystąpienia ciągu _Sekcja_Pola_Użytkownika na _Sekcja_Pola_Uzytkownika.
W istniejących formularzach konieczna jest ręczna zmiana kodów zawierających znaki spoza dozwolonego zestawu. Zmiana nazwy może się wiązać z koniecznością aktualizacji wszelkich referencji do danego kodu, np. w zależnościach.
Identyfikatory GUID w kolumnie Description
Wprowadzono modyfikację zapisu wartości w kolumnie [Description] tabeli [core].[BusinessStatuses]. Od tej pory w tej kolumnie będą zapisywane wyłącznie identyfikatory z kolumny [Guid] w tabeli [core].[TranslationDefinitions]. Zmiana dotyczy tylko wpisów dodawanych po aktualizacji do bieżącej wersji.
Obsługa wielkich liter w nazwach kolumn zapytania listy rozwijanej
Wprowadzono modyfikację kontrolki typu lista rozwijana, która zapewnia obsługę wielkich liter w nazwach kolumn zwracanych przez zapytanie źródłowe listy rozwijanej. Dotyczy to konfiguracji list wyboru na formularzu oraz w menu Kontrolki
.
Odświeżanie aktywnego formularza po akcji Zamknij formularz
Do akcji systemowej Zamknij formularz
dodano przełącznik Po zamknięciu odśwież aktywny formularz
. Jego włączenie powoduje, że po zamknięciu formularza wyświetlanego w trybie Dialog
lub Okno
odświeżany jest formularz/widok listy, z którego otwarto zamykany formularz.
Wyświetlanie formularza w trybie dialog
Wprowadzono poprawkę eliminującą problemy z wyświetlaniem formularza w trybie dialog bezpośrednio po uruchomieniu aplikacji.
Zależność kolumna-pole formularza dla listy interesariuszy
Poprawiono błąd, który powodował, że po zamknięciu okna konfiguracji listy wyboru była czyszczona ustawiona wcześniej zależność kolumna-pole formularza w przypadku, gdy pole formularza było kontrolką interesariuszy.
Przewijanie formularza po zmianie sekcji
Usunięto przyczynę przewijania formularza po kliknięciu zakładki sekcji na formularzu.
Oczekiwanie na zakończenie akcji zapisu
Wyeliminowano sytuację, w której próba wykonania innej czynności przed ukończeniem akcji zapisu kończyła się komunikatem o modyfikacji dokumentu przez innego użytkownika. Obecnie do chwili ukończenia zapisu użytkownik nie może podejmować innych czynności.
Wartość domyślna dla słownika hierarchicznego
Poprawiono błąd uniemożliwiający ustawianie wartości domyślnej dla kontrolki słownika hierarchicznego w przypadku, gdy wybrana wartość nie była hasłem pierwszego poziomu słownika.
Zmiany menu systemowego i menu użytkownika
Wprowadzono następujące modyfikacje menu użytkownika:
- Sekcja
Zdarzenia systemowe
nie jest już domyślnie wyświetlana na liście sekcji menu (AdminSPA >APLIKACJA
>Menu użytkownika
. - W aplikacji FrontSPA wyłączono podświetlanie pozycji menu, której nie przypisano formularza ani widoku listy.
Kolumna ArchiveStatus w systemowej funkcji tabelarycznej
Poprawiono definicję funkcji tabelarycznej używanej przez polecenie Utwórz flow
do definiowania źródła danych dla widoku listy (domyślna nazwa: NazwaTabeli_View). Obecnie ta funkcja uwzględnia kolumnę ArchiveStatus
z tabeli dokumentu biznesowego.
W przypadku funkcji tabelarycznych zdefiniowanych we wcześniejszych wersjach, konieczna jest ich samodzielna aktualizacja. W tym celu należy odnaleźć definicję funkcji w bazie danych (MS SQL Management Studio > Databases > baza_danych > Programmability
> Functions
> Table-valued Functions
> nazwa_funkcji), kliknąć ją prawym przyciskiem myszy i wybrać polecenie Modify
. Następnie należy dopisać d.[ArchiveStatus] po kolumnie d.[ACLId].

Wartość domyślna kontrolki Pole wyboru
Zmodyfikowano ustawianie wartości domyślnej w kontrolce Pole wyboru
. Zarówno w przypadku zapytania SQL, jak i literału tekstowego obsługiwane są wartości true, false, 0 i 1, w tym również ujęte w apostrofy (np. ‘false’) i cudzysłowy (np. “false”).
Jeśli wartość domyślna nie zostanie ustawiona, pole wyboru w nowym dokumencie ma domyślnie wartość false.
Dodawanie/przenoszenie kontrolek do nowej sekcji
Usunięto błąd występujący podczas dodawania i przenoszenia kontrolek do nowo utworzonej sekcji.
Akcja Import Excel
Usunięto błąd, który powodował, że podczas próby uruchomienia akcji typu Import Excel
był wyświetlany komunikat o błędzie Wybrana akcja nie istnieje w systemie
.
Transakcyjne wykonywanie akcji
Usunięto problem, który powodował, że umieszczenie akcji Odśwież formularz
w sekwencji akcji wykonywanych transakcyjnie nie zawsze powodowało podział tej sekwencji na osobne transakcje.
Akcja Zmiana statusu dokumentu
Usunięto błąd, który uniemożliwiał edycję akcji Zmiana statusu dokumentu
z poziomu okna wyboru akcji.
Akcja Zamknij formularz
Usunięto błąd akcji zamykania formularza, który powodował zawieszanie się aplikacji.
Kopiowanie formularza
Usunięto błąd, który powodował, że w operacji kopiowania formularza pomijane były ustawienia kolorów w sekcji Toolbar
.
Sekcja typu Lista
Usunięto problem, który powodował, że domyślnie zwinięta sekcja typu lista była po rozwinięciu zwężona i wymagała ręcznego rozszerzenia.
Kontrolka Blok HTML
Usunięto problem z wyświetlaniem kontrolki Blok HTML
, dla której nie zdefiniowano ustawień.
Funkcja agregująca w stopce widoku listy
Usunięto błąd, który powodował, że po włączeniu grupowania widoku listy wartość funkcji agregującej w stopce nie wyświetlała się.
Lista wyboru SQL
Usunięto błąd, który powodował, że po zapisaniu rekordu w formularzu nie wyświetlała się wartość wybrana z listy rozwijanej, gdy klucz listy był typu uniqueidentifier.
Akcja uprawnień
Usunięto błąd walidacji zapytania SQL dla akcji uprawnień, który powodował, że kolumny BusinessDocumentSchema i InstanceId były traktowane jako wymagane.
Akcja Odśwież stronę
Usunięto błąd akcji Odśwież stronę
, który występował w przypadku wywoływania tej akcji z formularza otworzonego w trybie Dialog
.
Akcja interesariuszy
Usunięto błąd akcji interesariuszy. Obecnie wykonanie akcji dla przejścia workflow powoduje poprawne przypisanie użytkownika do listy interesariuszy.
Obejścia znanych błędów
Błąd rejestracji kontrolki podglądu raportu Telerik
Wykryto problem z użyciem sekcji podglądu raportu w przypadku jednoczesnego korzystania z kilku lokalnych instalacji nAxiom. Problem powoduje wyświetlenie w sekcji podglądu komunikatu o błędzie rejestracji kontrolki podglądu w związku z brakiem dostępu do określonej ścieżki. Problem ten zostanie rozwiązany w kolejnej wersji nAxiom. Doraźnym rozwiązaniem jest zatrzymanie puli aplikacji reportsapi instancji, która blokuje kontrolkę i restartowanie tej samej puli w używanej instancji.
Zapowiedzi nowych funkcjonalności
Modernizacja modułu SQL Builder
Wykryto problem z użyciem sekcji podglądu raportu w przypadku jednoczesnego korzystania z kilku lokalnych instalacji nAxiom. Problem powoduje wyświetlenie w sekcji podglądu komunikatu o błędzie rejestracji kontrolki podglądu w związku z brakiem dostępu do określonej ścieżki. Problem ten zostanie rozwiązany w kolejnej wersji nAxiom. Doraźnym rozwiązaniem jest zatrzymanie puli aplikacji reportsapi instancji, która blokuje kontrolkę i restartowanie tej samej puli w używanej instancji.
Informacje o wersji 1.5 z dn. 21-12-2021
Nowe funkcje
Sekcja typu Kalendarz
Dodano nowy typ sekcji: Kalendarz
. Korzystając z tej sekcji, można wyświetlać na formularzu dane w jednym z kilku widoków kalendarza: miesięcznym, tygodniowym, dziennym i osi czasu. Dane wyświetlane w kalendarzu mogą pochodzić z dowolnej tabeli, a zapytanie SQL do tej tabeli musi zwrócić pięć kolumn: [id], [start] (data i godzina rozpoczęcia), [end] (data i godzina zakończenia), [title] (opis zdarzenia wyświetlany w kalendarzu) oraz [isAllDay] (flaga bitowa dla zdarzeń trwających cały dzień).
Dla kalendarza konieczne jest także wskazanie formularza do edycji zdarzeń oraz akcji aktualizacji i usuwania zdarzeń do obsługi zdarzeń kalendarza przy użyciu myszy.

Opis konfiguracji sekcji typu kalendarz załączono do niniejszych informacji o wersji jako dodatek. W kolejnej wersji będzie on dostępny w nAxiom jako pomoc kontekstowa do panelu właściwości sekcji.
Słowniki hierarchiczne
Dodano nowy rodzaj słownika — słownik hierarchiczny — który umożliwia tworzenie słowników o strukturze wielopoziomowego drzewa. W celu umożliwienia korzystania z tej funkcjonalności dodano nową kontrolkę formularza Lista wyboru (Słownik hierarchiczny)
.
Definicja słowników hierarchicznych wymaga określenia opcji dotyczących unikalności wpisów do słownika. Warunki unikalności są walidowane według wartości z kolumny systemowej Kod
słownika.

Ze względu na kontynuowane prace programistyczne ta funkcjonalność ma charakter eksperymentalny, jednak nie jest ona objęta działaniem przełącznika
Pokaż funkcje eksperymentalne
w ustawieniach nAxiom.
Automatyczne wyświetlanie dokumentu podprocesu
Dodano możliwość zautomatyzowania wyświetlania formularza dokumentu tworzonego w podprocesie z formularza procesu głównego. W ustawieniach bloku Podproces synchroniczny
dodano przełącznik Przekieruj do formularza podprocesu po zainicjowaniu podprocesu
. Jego włączenie powoduje wyświetlenie listy rozwijanej Akcja otwarcia formularza
, z której należy wybrać odpowiednią akcję. W konfiguracji akcji należy użyć opcji wskazany dokument
i wpisać {@Id} w pole obok tej opcji. Jeśli w tej akcji będą przekazywane jakieś wartości do formularza, zostaną one zignorowane.
Dostęp do pól sekcji niewidocznej
W oknie Ustawienia dostępności...
dla sekcji formularza dodano przełącznik Pole dostępne w przeglądarce, nawet gdy niewidoczne
, którego włączenie umożliwia wykonywanie operacji na wartościach pól w sekcji niewidocznej na formularzu. W przypadku aktualizacji aplikacji do bieżącej wersji, przełącznik jest wyłączony, dla nowo tworzonych sekcji przełącznik jest domyślnie włączony.
Ponadto dodano funkcję setSectionAsHidden(kod-sekcji), której można używać w akcjach JavaScript do ukrywania sekcji z zachowaniem możliwości dostępu do kontrolek w tej sekcji.
Przyciski w nagłówku sekcji
Dodano możliwość umieszczania przycisków w nagłówku sekcji formularza. Dodano również powiązane ustawienia we właściwościach sekcji: Wyrównanie przycisków w nagłówku sekcji
(do lewej, wyśrodkuj i do prawej) oraz Kolejność elementów w nagłówku sekcji
(Najpierw etykieta
albo Najpierw przyciski
).

Edycja inline — wartości domyślne
Dodano funkcję ustawiania wartości domyślnej dla pól w widoku listy po włączeniu edycji inline. Podobnie jak w przypadku pól formularzy, wartość domyślna pól widoku listy może być określona przez podanie stałej wartości lub zwrócona zapytaniem SQL.
Styl przycisku
Dodano właściwości określające wygląd przycisków na formularzach, zarówno przycisków akcji, jak i przycisków workflow oraz w widokach listy. Obecnie można zdefiniować:
- kolor czcionki i ikony na przycisku (taki sam)
- kolor wypełnienia przycisku
- kolor obramowania przycisku
- grubość obramowania przycisku (od 0 do 5 px)
Ponadto dodano efekt wyróżnienia przycisku po wskazaniu kursorem myszy przez zamianę kolorów czcionki i wypełnienia.
Eksport do szablonu Excel
W akcji eksportu do formatu Excel dodano możliwość dopisywania eksportowanych danych do istniejącego pliku — szablonu Excel. W takim wypadku należy określić, oprócz nazwy pliku szablonu i arkusza, adres lewej, górnej komórki zakresu danych. Akcja dopisze wyeksportowane dane we wskazanym pliku i zapisze go pod podaną nazwą w folderze pobierania lub wyświetli w programie Excel, zależnie od ustawień przeglądarki.
Jeśli szablon zawiera kolumny ukryte, akcje wpisze dane również w tych kolumnach.

Aby dopisywanie eksportowanych danych do istniejącego pliku działało, po wyzwoleniu akcji w aplikacji FrontSPA użytkownik musi wybrać format xlsx, w przeciwnym razie dane zostaną wyeksportowane do nowego pliku w formacie CSV.
W związku z tą modyfikacją dodano menu Szablony Excel
do sekcji APLIKACJA
. Służy ono do załączania plików Excel, które będą dostępne w akcji eksportu Excel. Dodawanie szablonów wymaga wskazania folderu ich przechowywania. Służy do tego nowe ustawienie Miejsce zapisu na dysku szablonów Excel
(SYSTEM
> Ustawienia
> Szablony plików
). Nowa sekcja Szablony plików
w ustawieniach zawiera także dotychczasowe ustawienie Miejsce zapisu na dysku szablonów Word
.
Transakcyjne przetwarzanie akcji
Dodano transakcyjne przetwarzanie sekwencji akcji. Takie sekwencje mogą obejmować:
- Akcję systemową
Zapisz rekord
- Akcje SQL
- Procedury
Jeśli w sekwencji wystąpi akcja innego rodzaju, sekwencja zostanie podzielona na kilka transakcji.
W przypadku wystąpienia błędu w akcji wykonywanej w ramach transakcji, zmiany dokonane przez wszystkie wcześniejsze akcje, w tym przez akcję Zapisz rekord
, zostaną wycofane.
Przetwarzanie transakcyjne nie obsługuje akcji zapisu (
APLIKACJA
>Akcje
>Akcje zapisu
); obsługa tych akcji jest planowana w kolejnych wersjach.
Wysyłka e-mail — pole DW i UDW
Zmodyfikowano działanie akcji wysyłki e-mail w taki sposób, że obecnie można wybrać, czy wiadomość ma zostać wysłana osobno do każdego adresata określonego w polu Wyślij do
. Ponadto dodano możliwość określenia adresatów w polach Do wiadomości
i Ukryte do wiadomości
.
W przypadku włączenia opcji osobnego wysyłania wiadomości i określenia adresatów w polach
Do wiadomości
iUkryte do wiadomości
, każdy adresat określony w tych polach otrzyma tyle kopii wiadomości, ilu jest adresatów w poluWyślij do
.
Modyfikacja API — pobieranie i zapisywanie danych użytkownika
Zdefiniowano osobne punkty końcowe API dla żądań pobierania i zapisywania danych użytkownika:
-
UserProfiles/GetById
: pobieranie danych użytkownika z listy użytkowników; dostępny tylko dla administratora. -
UserProfiles/SaveUser
: zapis danych użytkownika na liście użytkowników; dostępny tylko dla administratora. -
UserProfiles/Get
: pobieranie danych zalogowanego użytkownika; dostępny dla każdego zalogowanego użytkownika. -
UserProfiles/Save
: zapis danych zalogowanego użytkownika; dostępny dla każdego zalogowanego użytkownika.
Modyfikacja API — weryfikacja użytkownika
W punktach końcowych API dodano weryfikację roli systemowej użytkownika wysyłającego żądanie.
Akcje systemowe na workflow
W edytorze workflow dodano możliwość użycia akcji systemowych w ustawieniach Akcje uruchamiane przed
i Akcje uruchamiane po
.
Poprawki i usunięte błędy
PublicAPI — kategorie załączników
Zmodyfikowano obsługę załączników w interfejsie Public API. Obecnie parametr attachmentCategoryId może mieć wartość NULL. W takiej sytuacji załącznikowi zostanie przypisana kategoria domyślna według definicji dokumentu biznesowego.
Widok listy — zachowywanie ustawień
Ustawienia grupowania, filtrowania i sortowania określone przez użytkownika są obecnie zapamiętywane przez nAxiom na czas trwania sesji użytkownika. Do tej pory były one resetowane zawsze po wyjściu z widoku listy do innego widoku lub formularza.
Pola zależne od listy wyboru
Zmieniono działanie zależności pól formularza od kolumn listy rozwijanej definiowanych w oknie dialogowym Konfiguracja listy wyboru
w taki sposób, że obecnie można wybierać zależne pola z całego formularza. Do tej pory dostępne były tylko pola z bieżącego wiersza formularza.
Poprawiono działanie zależności pól formularza od kolumn listy rozwijanej typu uniqueidentifier.
Lista asynchroniczna
W oknie dialogowym Konfiguracja listy wyboru
dla kontrolki Lista wyboru (SQL - Async) dodano informację, że wartość kolumny [key] zwracana przez zapytanie źródłowe dla listy musi być typu tekstowego.
Pole numeryczne
Zablokowano możliwość zmiany przy użyciu kółka myszy wartości w polu numerycznym, kiedy strzałki do zmiany wartości (spinner) są wyłączone.
Przekierowywanie użytkownika w aplikacji FrontSPA
Wprowadzono zmianę w aplikacji FrontSPA, która powoduje, że obecnie po zamknięciu formularza użytkownik jest przekierowywany do obiektu, z poziomu którego ten formularz został otwarty. W szczególności, po otwarciu formularza z widoku listy, a następnie zamknięciu tego formularza, wyświetlany jest ponownie widok listy.
Nieaktualne wpisy w OpenedForms
Usunięto błąd, który powodował że pomimo zamknięcia formularza wyświetlonego w trybie okna dialogowego, w tabeli OpenedForms pozostawały wpisy dotyczące tego formularza.
Zapytania do Linked Servers
Usunięto problem z zapisem formularza w przypadku użycia w definicji kontrolek zapytań SQL kierowanych do serwerów połączonych (Linked Servers).
Załączniki w formacie docx
Usunięto błąd, który uniemożliwiał pobieranie załączników w formacie docx.
Przycisk eksportu do Excel
Usunięto błąd, który powodował, że nie można było wyłączyć wyświetlania przycisku eksportu w formacie Excel w widoku listy.
Ustawienia dostępności przycisków
Usunięto błąd powodujący problemy z wyświetlaniem przycisku, dla którego skonfigurowano ustawienia dostępności za pomocą zapytania SQL.
Przenoszenie przycisku między sekcjami
Usunięto błąd, który powodował, że po przeniesieniu przycisku z jednej sekcji do innej, podczas zapisu formularza był wyświetlany komunikat „The instance of entity type ‘FormFieldParameter’ cannot be tracked because another instance with the same key value for {‘Id’} is already being tracked…”.
Mapowanie NULL do podprocesów
Usunięto błędy w mapowaniu wartości NULL do podprocesów dla wszystkich obsługiwanych typów danych. Obecnie taka wartość jest mapowana do podprocesu jako NULL.
Odświeżanie formularza
Poprawiono błąd, który powodował, że odświeżenie formularza z danymi zapisanego dokumentu biznesowego wyświetlanego w trybie okna dialogowego, powodowało wyczyszczenie wartości z pól tego formularza.
Usunięto błąd akcji Odśwież formularz
, który mógł powodować, że mimo włączenia atrybutu widoczności po wykonaniu akcji przycisk w nagłówku formularza nie wyświetlał się.
Błąd trybu tylko do odczytu dla listy rozwijanej
Usunięto błąd w działaniu kontrolki typu lista rozwijana, który mógł powodować, że była ona wyświetlana w trybie tylko do odczytu, chociaż jej atrybut isReadOnly nie był nigdzie modyfikowany.
Nieaktualne wpisy w kontekście formularza
Poprawiono błąd, który powodował, że pomimo wyłączenia zaznaczenia pozycji w sekcji typu lista, wartości dla tych pozycji nadal były przechowywane w kontekście formularza.
Dublowanie filtrów na liście
Poprawiono błąd, który powodował dublowanie zapisanych filtrów na liście Filtry
w widoku listy.
Edycja inline — datepicker
Poprawiono błąd w działaniu kontrolki datepicker w trybie edycji inline.
Akcja Otwórz formularz
na workflow
Poprawiono błędne działanie przekazywania do formularza wartości określonych w akcji Otwórz formularz
. Problem dotyczył sytuacji, kiedy ta akcja była używana we właściwościach bloku workflow Akcje uruchamiane przed
i Akcje uruchamiane po
.
Konfiguracja edycji inline
Usunięto błąd, który mógł w określonych okolicznościach powodować usuwanie akcji zapisu z konfiguracji edycji inline dla widoku listy.
PublicAPI — załączniki
Usunięto błędy w metodach API dotyczących załączników.
Informacje uzupełniające i sprostowania
Warunki obsługi ACL dla widoków listy
W celu zapewnienie prawidłowego działania uprawnień ACL dla widoków list, konfiguracja listy musi spełniać następujące warunki:
- Na karcie
Ogólne
musi zostać zaznaczone co najmniej jedno pole wyboru w grupieWeryfikacja uprawnień
(Według szablonu instancji
i/lubWedług szablonu statusu
) - Zapytanie źródłowe dla widoku listy musi zwracać kolumny [ACLId] i [Status]
- Na karcie
Ustawienia listy
muszą być włączone przełącznikiStronicowanie
iFunkcja server-side
W przypadku widoków list generowanych poleceniem Utwórz flow
dwa ostatnie warunki są spełnione domyślnie, Dla widoków tworzonych samodzielnie, konsultant musi dopilnować, aby zostały one spełnione.
SQL RAISERROR
W Informacjach do patcha 1.4.2.4 podano błędny zakres poziomu istotności dla ostrzeżeń wyświetlanych przy użyciu metody SQL RAISERROR. Poprawny zakres wynosi od 6 do 10.
W Informacjach do wersji 1.4.2.1 podano błędny przykład użycia przedrostka [MSG] w celu wyłączenia komunikatów systemowych (Wykonano poprawnie
/Wystąpił błąd
). W celu prawidłowego działania ten przedrostek musi zostać umieszczony na początku treści komunikatu, np:
RAISERROR(
'[MSG]Wartość jest nieprawidłowa.', -- tekst komunikatu
10, -- poziom istotności
1 -- stan)
Kontrolka Pole czasu
Kontrolka Pole czasu
obsługuje tylko typ danych datetime i zapisuje w bazie danych wartości w formacie:
1900-01-01 *godz*:*min*:02.000
gdzie godz i min to wartość godziny i minuty ustawiona przy użyciu kontrolki. sekundy i milisekundy nie są obsługiwane. Aby prawidłowo wyświetlać czas w tej kontrolce należy użyć formatu HH:mm
.