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.