Informacje o wersji 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 ikonai 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 SQLnaMaksymalizuj edytorprzy 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.