What Is New 9.0

What Is New in yuuvis® RAD 9.0

yuuvis® RAD 9.0 is the newest major version of our rapid application development tool for content-centric applications. It brings several new functions and technical improvements. 

Technical Improvements

We updated the WildFly application service as the basis of our core-service to version 27.

We updated the current drivers of the supported databases:

  • Microsoft® JDBC Driver 10.2.1 for SQL Server 2019 and former versions
  • PostgreSQL JDBC Driver 42.5.1 for PostgreSQL 15 and former versions
  • ORACLEDB JDBC Driver 21.8.0.0 and former versions

We updated the search-service, index-service, and structure-service for Elasticsearch version 7.17.8 and the IntraFind Linguistik-Plugin 17.6.2. The installed Elasticsearch must be updated as well. 

We updated all microservices to SpringBoot 2.5.8 version with SpringDoc and Swagger-UI, and adapted all services including the admin-service. In the future, we will waive the OS look and feel of the corresponding user interfaces here.
The name and icon of the service-manager executable are changed now.

New Features

Please refer to the Technical Release Notes for a detailed overview of all new features of this major release.

Breaking Changes 9.0

  • Version 9.0 introduces a new field type: Sets of elements. In previous versions, the Set functionality was provided by single-column tables. When updating to version 9.0, the single-column tables will be automatically converted to sets, both for in-server schema and object instances. 
    Please note that just as in the previous major version updates, locally saved projects are not automatically updated when installing yuuvis® RAD designer 9.0 (we prefer to give users full control over versions of the projects kept locally on disc). So, in order to obtain the new schema definition for further use in yuuvis® RAD designer, the core-service needs to be updated to version 9.0 and then a new snapshot has to be created in yuuvis® RAD designer 9.
  • A bug fix (internal: ERA-9302) corrected the previous behavior in endpoints for project management and model information. Previously, if endpoints would be invoked with unknown API parameters, they were silently ignored, leading API users to the conclusion that they have an effect in the call. Beginning with version 9.0, this behavior was corrected and the server will respond with the message '400 Bad Request' if the request contains unknown parameters. 
  • A bug fix (internal: ERA-9303) corrected the behavior of endpoints for suspending (POST bpm/process/<processId>/suspend), resuming (POST bpm/process/<processId>/resume), and terminating (POST bpm/process/<processId>/terminate) of a process instance. Previously it was returning the number of affected processes (this was always one). From version 9.0, no payload is returned and instead the HTTP codes communicate the outcome of the operation: 404 if process not found, 409 if process in illegal state for the operation, 200 if operation was successful.
  • A bug fix (internal: ERA-8889) GET /processes and GET processes/<processId>/history return a 200 with empty list if no processes / no history entries for a process are found, to make it consistent with remainder of API. Previously, a 204 NO CONTENT was returned.
  • A bug fix (internal: ERA-8888) was implemented so that returned HTTP response codes and error codes are consistent with the remainder of the API. We recommend our customers to doublecheck whether their custom components or scripts are affected by these changes.
     Detailed list of changes
    BpmProcessService


    GET <processId>/activity (getProcessActivities)
    Use case: Process not found
    up to 8.16LTS: 404 BPM_PROCESSACTIVITIES_NOT_FOUND
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND


    GET <processId>/activity/<activityId>/datafield (getDataFields)
    PUT <processId>/activity/<activityId>/datafield (setDataFields)
    Use case: Process or activity not found
    up to 8.16LTS: 404 BPM_DATAFIELDS_NOT_FOUND
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND oder 404 BPM_PROCESS_ACTIVITY_NOT_FOUND


    GET <processId>/activity/<activityId>/performer (getProcessActivityPerformer)
    PUT <processId>/activity/<activityId>/performer (setProcessActivityPerformer)
    Use case: Ressource not found
    up to 8.16LTS: 404 BPM_PERFORMER_CONFIG_NOT_FOUND
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND oder 404 BPM_PROCESS_ACTIVITY_NOT_FOUND; 404 BPM_PERFORMER_CONFIG_NOT_FOUND if a process cannot have perfomers due to its status (for instance, process was completed)


    PUT <processId>/activity/<activityId>/performer (setProcessActivityPerformer)
    Use case: User(s) that shall be set as performers do not exist in system
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 ORGANIZATIONOBJECT_BY_NAME_NOT_FOUND


    GET <processId>/history (getProcessHistory)
    Use case: Ressource not found
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND, 404 BPM_PROCESS_PERIOD_NOT_FOUND
    Use case: process with the provided ID exists, but there are no history entries that match the filter criteria
    up to 8.16LTS: 204 NO CONTENT
    starting from 9.0: 200 with empty list


    POST <processId>/resume (resumeProcess)
    Use case: Process not found
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND


    POST <processId>/suspend (suspendProcess)
    POST <processId>/terminate (terminateProcess)
    Use case: Process not found
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND


    GET / (getProcesses)
    Use case: no processes are found that match the filter criteria
    up to 8.16LTS: 204 NO CONTENT
    starting from 9.0: 200 with empty list


    DELETE / (deleteProcesses)
    Use case: Process cannot be deleted due to its current state
    up to 8.16LTS: 403 FORBIDDEN
    starting from 9.0: 409 BPM_PROCESS_ILLEGAL_STATE


    GET <processId>/period (getPeriod)
    Use case: Process not found
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND


    POST <processId>/period/<periodId>/fire (firePeriod)
    POST <processId>/period/<periodId>/fire (stopPeriod)
    Use case: Process or process period not found
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND oder 404 BPM_PROCESS_PERIOD_NOT_FOUND


    GET <processId>/<activityId> (getWorkItem)
    PUT <processId>/<activityId>/lock (lockWorkItem)
    Use case: Process or activity not found
    up to 8.16LTS: 409 BPM_CANNOT_PERSONALIZE_WORKITEM
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND, 404 BPM_PROCESS_ACTIVITY_NOT_FOUND


    POST <processId>/<activityId>/save (saveWorkItem)
    Use case: Process or activity not found
    up to 8.16LTS: 410 GONE
    starting from 9.0: 404 BPM_PROCESS_NOT_FOUND oder 404 BPM_PROCESS_ACTIVITY_NOT_FOUND)


    BpmManagementService:


    DELETE /project/<projectId> (deleteProject)
    Use case: Process does not exist
    up to 8.16LTS: 404 BPM_PROJECT_NOT_FOUND
    starting from 9.0: 200 OK


    GET /model/<modelId>/contents/events/<eventName> (getModelEventScript)
    POST /model/<modelId>/contents/events/<eventName> (setModelEventScript)
    DELETE /model/<modelId>/contents/events/<eventName> (deleteModelEventScript)
    Use case: Event is not supported (does not exist for the provided component)
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 409 BPM_EVENT_NOT_SUPPORTED


    DELETE /model/<modelId>/contents/events/<eventName> (deleteModelEventScript)
    Use case: Event is not supported (does not exist for the provided component)
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 409 BPM_EVENT_NOT_SUPPORTED


    GET /model/<modelId>/contents/xpdl/activities/<activityId> (getModelActivity)
    Use case: Activity does not exist in the model
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_ACTIVITY_BY_ID_NOT_FOUND


    GET /model/<modelId>/contents/xpdl/activities/<activityId>/datafields (getDataFields)
    GET /model/<modelId>/contents/xpdl/activities/<activityId>/datafields/<variableName> (getDataField)
    Use case: Activity with provided ID does not exist
    up to 8.16LTS: 404 NOT FOUND
    starting from 9.0: 404 BPM_ACTIVITY_BY_ID_NOT_FOUND


    GET /model/<modelId>/contents/xpdl/activities/<activityId>/datafields/<variableName> (getDataField)
    Use case: Datafield with provided name does not exist
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_DATAFIELD_BY_ID_NOT_FOUND


    GET /model/<modelId>/contents/forms (getModelForm)
    Use case: Workitem with provided ID does not exist
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 BPM_WORKITEM_BY_ID_NOT_FOUND
    Use case: No form defined for the requested component
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 BPM_FORM_NOT_FOUND


    POST /model/<modelId>/contents/forms (setModelForm)
    Use case: Workitem with provided id does not exist in the model
    up to 8.16LTS: 500 INTERNAL_SERVER_ERROR
    starting from 9.0: 404 BPM_WORKITEM_BY_ID_NOT_FOUND


    GET /model/<modelId>/contents/forms/info (getModelFormInfo)
    Use case: No form defined for the requested component
    up to 8.16LTS: 200 OK
    starting from 9.0: 404 BPM_FORM_NOT_FOUND