Changelog 9.16 (LTS)

Key

SubjectDescription
ERA-8610All endpoints in BpmProcessService use consistent paths

As a developer, I would like to use consistent API in order to work more efficiently.

All but four of endpoints in BpmProcessService use the path in form of /process/{processId}/activity/{activityId}, but four endpoints omit "activity". This should be changed to make the whole API more consistent.

Acceptance criteria:

  • The following endpoints of in BpmProcessService should be consistent with other endpoints in service
    • GET /process/{processId}/{activityId} > GET /process/{processId}/activity/{activityId}/inboxitem
    • PUT /process/{processId}/{activityId}/lock > PUT /process/{processId}/activity/{activityId}/inboxitem/lock
    • DELETE /process/{processId}/{activityId}/lock > DELETE /process/{processId}/activity/{activityId}/inboxitem/lock
    • POST /process/{processId}/{activityId}/save > POST /process/{processId}/activity/{activityId}/inboxitem/save
  • Existing endpoints remain functional, new endpoints are added
  • Existing endpoints are marked as deprecated in release notes
ERA-8822BPM script API provides a class "HttpResponse"

As a workflow developer, I would like that HttpRequest:execute() returns an instance of HttpResponse instead of Object (as it is done at the moment), in order to have a better understanding of the scripting API.

Acceptance criteria:

  • An instance of HttpResponse class is returned from method HttpRequest:execute()
  • HttpResponse class has the following members:
    • status -> The status code
    • reason -> The reason phrase (also known as status text)
    • data -> The response body, may be null
  • API-Documentation is updated
  • Tutorials are updated
ERA-9094Creation and deletion of model groups requires functional privilege MANAGE_MODELS

As an administrator, I would like to control who can create and delete model groups in a yuuvis RAD system.

Acceptance criteria:

  • The following endpoint inside BpmManagementService should be accessible only to users with privilege 'MANAGE_MODELS':
    • POST bpm/management/project (create model group)
    • POST bpm/management/project/<projectId>/subproject (create model group within model group)
    • DELETE bpm/management/project/<projectId> (delete model group)
ERA-9628Email subject- and message-length limit is visible

As a modeler, I would like to be informed if the length of notification email subject and message is larger than allowed, in order to know what is allowed by the system.

Acceptance criteria:

  • If user enters more than 2000 characters in message or subject of an email notification, user is visually informed that this is not allowed/it is not possible to enter more than 2000 characters
  • There is a tooltip that explains the allowed length / issue to the user
ERA-9663Warning is issued if a catalog contains duplicate data-values

As a modeler, I would like to be informed if a catalog in schema contains duplicate data values, in order to avoid ambiguity that can occur on client side. For instance, client-side scripts cannot differentiate between multiple entries that contain the same data value, resulting in a possibly erroneous execution.

Acceptance criteria:

  • Validation issues a warning if a catalog contains duplicate data value
  • The warning contains name of catalog and unique names of all data duplicates present in the catalog 
ERA-9672designer shows technical name of a column in Set type

As administrator, I would like to know the technical name of the column in Set type, in order to be able to write correct clauses in the rights system. Currently, the Sets that were created by converting single-table columns use previously defined column name, that is no longer visible, so it is not possible to write correct clause in such cases.

Acceptance criteria:

  • Technical name of column can be seen in designer
TUK-2186It is possible to store the locally saved client settings also to the server and reload them from here

As a user, I want to be able to save my current locally saved settings centrally so that I can use them on another workstation as well.

Many users are working on virtual sessions that are always reset overnight so the users are losing their local settings.

Acceptance criteria:

  • In the settings
    • the topic 'Local settings' with the buttons 'Save to system' and 'Load from system'.
    • After clicking 'Save to system' all locally saved settings are saved in the user service.
    • After clicking 'Load from system' the settings are read from the user service and are saved locally.
    • If no local settings are available the existing ones are always loaded from the user service and saved locally?
    • The settings are saved in a separate section for the user.
TUK-2498There is a new operation 'Synchronize retention' that synchronizes the retention times

As an administrator, I want to be supported by an operation that checks a given retention time t and that it corrects incorrect ones.

Acceptance criteria:

  • In the management studio, a new operation 'Synchronize retention periods'/'Aufbewahrungsfristen synchronisieren' is available that checks the retention period that is given on the selected storage with the retention period in the database and adjusts the database one.
    • The general configuration of the operation is in general the same as for others, but the storage can be selected that should be affected, and an additional action can be set: 'No cation, test run only.'/'Keine Aktion, nur Testlauf.' (see screenshot in sub-task: https://jira.optimal-systems.de/browse/TUK-2538)
    • The number of objects that were adjusted is reported.
    • The operation offers a storage selection besides the usual parameters.
TUK-2856Users can change the just new selected object type for a bundle of files in the in-tray

As a user, I want to be able to change the just new selected object type for a bundle of files in the in-tray so that I can correct my wrong selection.

Acceptance criteria:

  • In the dialog that is opened after the object type selection a button 'Reset object type'/'Objektyp zurücksetzen' is offered in the dialog with the form.
  • After pushing this button the rest endpoint ../prepare/id/dms:sysobject is called to reset the object type for this prepare object and the former dialog is opened again and a different object type can be selected.
TUK-2857Performing a saved search from the dashbord needs less clicks

As a user, I want to be able to start one of my saved searches with one mouse click or by keyboard shortcut so that I do not have to click and move the mouse around.

Acceptance criteria:

  • A click on the glass starts the search without opening the form. Strg + click opens the result view in a new browser tab.
  • Hovering over the glass shows the tooltip 'Perform search'/'Suche ausführen' and the icon background becomes dark gray
TUK-3001In a chart widget, it is possible to aggregate a date property with a histogram type 'Standard','Day','Week', 'Month' or 'Year'

As a user, I want to be able to configure a chart for a property of type datetime that shows the number of objects per day, week, month, or year, or as given in the standard so that I get a necessary overview for trends.

Acceptance criteria:

  • The search API offers a new attribute 'histogram' that can be set to day, week, month, and year.
  • For a property of type datetime the configuration form of the chart widget offers a new field 'Histogram'/'Histogram' with a selection list showing 'Standard', 'Day'/'Tag', 'Week'/Woch', 'Month'/'Monat', 'Year'/'Jahr', default is standard. A description is given: 'Determine the interval for the partial values.'/'Legen Sie das Intervall für die Teilwerte fest.'
  • Depending on the selection the search API is called for aggregation with the selected histogram and the corresponding buckets are shown on the x-axis days:
    • for standard show the current buckets
    • for days show the labels in the format that comes from Elasticsearch: yyyy-MM-dd
    • for weeks show the labels in the format that comes from Elasticsearch: yyyy-ww
    • for months show the labels in the format that comes from Elasticsearch: yyyy-MM
    • for years show the labels in the format that comes from Elasticsearch: yyyy
TUK-3004It is possible to configure a widget 'Chart' that allows to present specific data in diagrams based on existing partial values

As a user, I want to be able to configure a widget 'Chart' on my selected workspace so that I am informed about my daily work when I open my workspace.

Acceptance criteria:

  • An item 'Chart'/'Diagramm' is offered in the widget selection menu.
  • A click on it opens a dialog where the following can be configured:
    • A 'Chart type'/'Diagrammtyp' can be selected from a list with 'Bar', 'Pie', 'Ring' / 'Balken', 'Kuchen', 'Ring', Default is 'Pie'
    • The 'Saved search'/'Gespeicherte Suche' is used for the search of relevant objects.
      • The list of the saved searches is the latest when starting editing of a dashboard
    • The 'Property for aggregation'/'Attribut für Aggregation' has to be selected. The following properties are offered:
      • The default value is 'Created'.
      • In the case, no specific object type is selected or more than one only these properties of 'sysdocument' are listed: 'Created', 'Edited', 'File class', 'File size', 'Type'
        • The currently available metrics (buckets) for these properties are shown in the diagram.
          • for 'File class': pdf, word, excel, ...
          • for 'File size':  
            • Without file
              • Small (< 1MB)
              • Medium (1 - 10 MB)
              • Large (10 -100 MB)
              • Very large (> 100 MB)
          • for 'Created' and 'Edited:  'Today', 'Yesterday', 'This week', 'Last week', 'This month', 'Last month', 'This year', and 'Last year'
          • for 'Type' all affected object types
      • If only one object type is used for the search these properties are listed
        • Those of type 'organization' with 'Lastname, first name'
        • Those of type 'date' (datetime & date) with the standard metric  (buckets) for 'Today', 'Yesterday', 'This week', 'Last week', 'This month', 'Last month', 'This year', and 'Last year'
        • Catalogs with their values
        • Strings with their values
        • Integers with their values
        • Booleans with 0 shows empty checkbox, with 1 a checked checkbox (NULL can not be responded by Elasticsearch)?
        • Not offered: Decimals
    • The preview area shows
      • a title bar in gray with the name of the selected saved search centered.
      • a refresh icon in the widget header offers to reload the widget area.
      • an icon that allows you to open the saved search in the hitlist with a left mouse click in the same browser tab and with ctrl plus a left mouse click in a new browser tab
    • If one of the form fields is empty the preview area shows a glas image and the text 'Configure the widget first'/'Konfigurieren Sie zuerst das Widget'.
    • If no aggregation data exist the preview shows a glas image and the text "No data was found"/"Es wurden keine Daten gefunden"
TUK-3358It is possible to enter form table data by importing a CSV file

As a user, I want to be able to upload data from a CSV file that I got as an export from an external data source and import its data into the form table so that I don't have to enter it manually.

Acceptance criteria:

  • Prerequisites:
    • The column separator in the CSV file has to be the semicolon ';'.
    • The sequence of the columns must be the same as in the schema, which means that their types must match.
      • The column names can differ. 
      • The CSV file can have more or less columns than are in the table. 
    • The decimal separator must be that of the set definition language.
    • The catalog value must be in the set definition language.
    • In the case of an organization field, the user name must be the login name.
    • A date must be in the ISO format for example the 1st of December 2023 -> 2023-12-01.
    • An id-reference must be 32 characters long.
  • There is an icon for uploading a file.
    • A tooltip shows 'Imports table data from a CSV file'/'Importiert Tabellendaten aus einer CSV-Datei'.
    • The dialog shows only files in the CSV-format.
    • If more than 5.000 rows are contained an error message is given:
      EN: "The import is not possible because the file contains more than the allowed 5.000 rows.
      DE: "Der Import ist nicht möglich, da die Datei mehr als 5.000 Zeilen enthält."
  • If this is clicked a dialog for selecting a CSV file is opened. One file can be applied.
  • The rows read are appended. Data from a column is copied to a column in the same sequence.
    • All field types are supported, and special validations are given as described below. 
      • integer only allows digits
      • decimals need to be formatted in the definition language that is set for the user of the client
      • date and datetime must be in ISO format, for example, September 27, 2022 at 6 p.m. is represented as 2022-09-27 18:00:00.000
      • catalog values must be in the definition language that is set for the user of the client
      • reference values must contain 32 characters
      • organization: login name of a user or the name of an organization is accepted.
  • After the import the following is reported:
    • The number of rows that were added. Cells that could not be imported are listed:
      EN: 'Incorrect values which cannot be imported:'
      DE: 'Inkorrekte Werte, die nicht importiert werden können:'
    • Row number, CSV column name, table column name, and the incorrect value that is not taken over.
  • The table shows the imported values and the form offers the save.
    • The table data can be edited.
  • The data can be saved.
TUK-3442For a hit list and chart grid on the dashboard, it is possible to open the saved search in the search dialog

As a user, I want to be able to have a look or edit the selected saved search in the widget configuration area so that I know what the saved search is about.

Acceptance, criteria:

  • There is an icon in the widget header that opens the search dialog with the saved search like it is possible to the saved search on the dashboard.
    • tooltip: 'Open in the search dialog'/'Im Suchdialog öffnen'
  • The icon for the saved search is used in the list header of the saved search view as well
  • In the header of 'Your search' area the icon for the saved search is shown on the left as well. 


TUK-3534The messaging-service is upgraded to Spring Boot 3.1.5

As the system-responsible, I want the messaging-service to be updated to Spring Bott 3.1.5 to keep the service infrastructure future-proofed.

Acceptance criteria:

  • The following dependency is set for the messaging service and with this, the service works as before.
<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-broker -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-broker</artifactId>
    <version>6.0.0</version>
</dependency>
TUK-3546A guideline supports to update a custom client to the current version

As a programmer, I want to be supported by a guideline that helps me to update my custom client that is based on version 8.16.

Acceptance criteria:

  • There is a guideline on the developer portal that describes the steps to update a custom client thas is based on 8.16
TUK-3574The index, and OCR-services are based on Spring Boot 3.1.5 and CAMEL 4.1.0 (Step 5)

As the system responsible, I want all microservices to be based on Spring Boot 3.1.3 and CAMEL 4.0.0 so that we get support during the next 12 months.

Acceptance criteria:

  • Tukan-Team
    • index-service, CAMEL
    • search-service, CAMEL
    • OCR-service, CAMEL
    • extraction-service, CAMEL
    • message-service (waiting for updates here)
TUK-3642The database drivers are updated and postgreSQL 16 is supported as well

As the system-responsible, I want the system to use the current ORACLE DB, Micrososft SQL Server, and postgreSQL driver to keep the system secure.

Acceptance criteria:

  • The core-service uses the current drivers for
    DatabaseDriver-JarVersionDate released
    ms-sqlmssql-jdbc-12.4.2.jre11.jar12.4.227th Oct 2023
    postgrespostgresql-42.6.0.jar42.6.018th Mar 2023
    oracleojdbc11-23.3.0.23.09.jar23.3.0.23.092nd Oct 2023


TUK-3646An additional application 'Uptime list' is available that shows the uptime of a service and a restart action symbol

As an administrator, I want to be supported by a custom application list in the service-manager that let me see the uptime if a service again and offers me to directly restart a service.

Reason: Breaking change in Spring Boot 3.0.x where the uptime is no longer shown in the list 'Applications' but only on the wallboard.

Acceptance criteria:

  • In the appbar of service-manager interface there is a new button 'Uptime list) that offers the uptime in the application list as well as the restart icon.


TUK-3713The admin-service is based on Spring Boot 3.1.3 (Step 3)

As the system responsible, I want all microservices to be based on Spring Boot 3.1.3 and CAMEL 4.0.0 so that we get support during the next 12 months.

Acceptance criteria:

  • Tukan-Team
    • admin-service supports both custom links to the restart of the service and the Swagger-UI.
    • The uptime can be seen on the wall board instead on the list of apps.
TUK-3714In a chart widget, it is possible to determine the number of partial values (de: Teilwerte)

As a user, I want to be able to determine the partial values of my charts so that I can differ from the default of 10 if necessary.

Acceptance criteria:

  • In the hitlist and char configuration there is the field 'Parts'/'Teil' with the description 'Determine the maximum number of partial values for the chart'/'Legen sie die maximale Anzahl Teilwerte des Diagramms fest'. The default is 10, also if no value is entered, the minimum is 3, the maximum is 20, in case of an error this info is shown:
    EN: "Enter a valid number between 3 and 20"
    DE: "Geben sie eine valide Anzahl zwischen 3 und 20 ein"
  • The value of this field is used for the parameter "size" in the aggregation request
TUK-3779The synchronize storage operation is optimized for more performance

As an administrator, I want the synchronize storage operation to run a factor 10 shorter reach a better time, and to keep the database stable.

Acceptance criteria:

  • The synchronize storage operation currently operates by fetching chunks of 10k objects from the database, processing them, and fetching the next 10k objects from the database. Therefore an expensive query with sorting on the ID field is necessary. This is optimized by changing to a single unsorted query and using a cursor to iterate over the results.
TUK-3782The aggregation buckets for codesystems return the localized value instead of the technical value

As a programmer, I want the search-service API aggregation buckets for codesystems to return the localized value instead of the technical value as it is supported by the core-system API so that the users will see the labels in their language.

Acceptance criteria:

  • The reported aggregation bucket-keys for codesystem keys and 'types' are in the language of the requesting user.
    • The charts in the client are showing the localized labels for the selected codesystem (catalog) property and the 'Type'.
TUK-3795The parameter "size" of the search API that determines the number of partial values (buckets) can be used in an "histogram" aggregation as well

As a user, I want to be able to determine the number of partial values in the context of a histogram aggregation as it is possible for the standard aggregation.

Acceptance criteria:

  • In the case of a histogram with a size the request has to be like this:
{
    "aggs": {
        "personalakte.einstellungsdatum": {
            "histogram": {
                "calendar_interval" : "day",
                "format" : "yyyy-MM-dd",
                "size":8
            }
        }
    }
}

And if so the expected number of buckets is responded in the API and the client shows them as well

TUK-3814The extraction- and search--services are based on Spring Boot 3.1.5 and CAMEL 4.0.1 (Step 4)

As the system responsible, I want all microservices to be based on Spring Boot 3.1.3 and CAMEL 4.0.0 so that we get support during the next 12 months.

Acceptance criteria:

  • Tukan-Team
    • search-service, CAMEL
    • extraction-service, CAMEL
TUK-3858The custom client boilerplate is available for the client component version 10.x.x

As a programmer, I want to be able to build a new custom client 9.16 LTS project which is based on a boilerplate and client-CLI ready for Angular 15.

Acceptance criteria:

  • The create a custom client process works as it was possible until yuuvis RAD 9.6 
TUK-4340The agent retries longer to re-establish a connection when starting up

As a user, I would like the agent to take longer to try to activate the connection on startup so that I do not have to manually establish a connection after a longer period of time that my workstation needs to start up