Migration 7.3 to 7.3.1

Performance Improvements for Case and Task Queries

Exceptionally a system database migration is needed with this Update Release to improve the performance of Case and Task queries.

Migration 7.2 to 7.3

Rich Dialog (ULC) Technology removed

Rich Dialog (ULC) technology has been removed completely. Axon.ivy 7.0 LTS is the last version where Rich Dialogs (ULC) are fully supported.

You must convert Rich Dialogs (ULC) to HTML Dialogs (JSF) in all your projects or stay with version 7.0 LTS. For this reason the ULC based Admin UI was replaced with the web based Engine Cockpit.

Portal Application

The engine deploys the Axon.ivy Portal to an application that is called DemoPortal if the engine runs in demo mode only.

In older versions the Axon.ivy Portal was deployed to an application called Portal, not only in demo mode but in production mode also. If you migrate from an older version, you will still have the application Portal but the Axon.ivy Portal projects are now missing. If you did not use the Portal application, you are safe to delete it. If you used the Portal application for productive workflows, you need to migrate it.


To migrate the Portal application, you need to do the following steps:

  1. Reconfigure the file directory of the Portal application. This can be done by writing an app-Portal.yaml file to the [[newEngineDir]/configuration directory and set the Data.FileDirectory property. See below.
  2. Copy all files of the Portal application from directory [[oldEngineDir]]/system/applications/Portal to the new file directory of the application [[newEngineDir]]/applications/Portal.
  3. Copy the PortalConnector from directory [[oldEngineDir]]/system/applications/System/PortalConnector to the new location at [[newEngineDir]]/system/application/PortalConnector.

Example app_Portal.yaml file:

    FileDirectory: applications/Portal

Removed Libraries from Project Classpath

We removed libraries from Axon.ivy Classpath container and therefore they can no longer be used in Axon.ivy projects. Removed were the classpath scanning library reflections-0.9.8.jar and the findbugs library annotations-2.0.3.jar.

If you have used these libraries in your project, you must add them to your projects manually. Afterwards a re-deployment of the updated projects is required to avoid NoClassDefFoundErrors at runtime.

Admin UI features

Many engine configuration aspects were hitherto stored in the system database and managed by the Admin UI. During the system database conversion many configurations will be ported from the database into the ivy.yaml file.

After the database conversion, the configuration files should be reviewed manually for their correctness. Most configurations in these files can be configured using the new Engine Cockpit UI.


Removed Properties from System Database

System-, Application- & Cluster-Properties are now read directly from the yaml configuration files. The properties of your system database are written to your ivy.yaml or ivy.cache.properties file during the database conversion. Only a few internal properties will stay stored in the database. Cluster Properties are not supported any longer. For cluster usage you need to define a separate ivy.yaml file for every node.

Please check the ivy.yaml file if the converted values are valid.

Removed Security System Configuration from System Database

The security system configuration is now read directly from the yaml configuration files. The configuration in your system database is written to your ivy.yaml file during database conversion.

Please check the ivy.yaml file if the converted values are valid.

Workflow API

Many APIs and database tables have changed through the introduction of the new Custom Fields features on Tasks and Cases.

Consequently, many APIs have been deprecated and should no longer be used. However, to keep your application operating no adjustments should be required. We kept the legacy APIs functional and running. As system administrator you should verify that the newly introduced database tables are included in your regular backups.


Some ITask and ICase API was deprecated The numbered custom fields on ITask and ICase have been deprecated e.g.:

  • ITask.setCustomVarCharField1(String)
  • ITask.getCustomVarCharField1()
  • ITask.setCustomDecimalField1(Number)
  • ...

The same for the business fields on ITask and ICase:

  • ICase.setBusinessCreatorUser(String)
  • ICase.getBusinessCreatorUser()
  • ...

And for the categorization fields on ITask and ICase:

  • ICase.setProcessCategory(String, String)
  • ICase.getProcessCategoryCode()
  • ICase.getProcessCategoryName()
  • ...

Use the new Custom Fields instead.

To categorize your Tasks and Cases you should still use ICase.setCategoryPath(String) and ITask.setCategoryPath(String).

Database Tables

The corresponding columns have been removed from the system database tables (IWA_Task, IWA_Case). The data stored in those columns gets migrated to the new Custom Field tables (IWA_TaskCustom*Field, IWA_CaseCustom*Field). The deprecated setter and getter methods on ITask and ICase still work but now read and write data to the new Custom Field tables.


Note that the CaseQuery and TaskQuery API are backwards compatible. If you have used the recordset API ch.ivyteam.ivy.persistence.query.IFluentQueryExecutor.recordset() to read Cases and Tasks then be aware of that these columns will not be part of the recordset anymore.

The inscription mask tab for the numbered custom fields, business information fields and categorization fields were removed. You can find your old inscriptions now in the new custom field inscription mask table.


Until now, you could use macros for the categorization fields; they are now converted to ivy scripts. There is one special case that won't be supported anymore: Macro expansion within macro expansion. For example: The macro <%= ivy.co("/pathInCms") %> reads the content from the specified cms path. If there is a macro in the specified cms path, this macro will not be expanded anymore.

Additional Property API deprecated

Additional Properties have been deprecated:

  • Interface ch.ivyteam.ivy.workflow.IAdditionalPropertyable implemented by ITask and ICase
  • ch.ivyteam.ivy.workflow.IWorkflowContext.findTask(String, String, ...)
  • ch.ivyteam.ivy.workflow.IWorkflowContext.findCase(String, String, ...)
  • ch.ivyteam.ivy.workflow.query.TaskQuery.create().where().additionalProperty(String)
  • ch.ivyteam.ivy.workflow.query.CaseQuery.create().where().additionalProperty(String)

Use the new Custom Fields instead.

Database Tables

The tables used to store Additional Properties for Tasks and Cases (IWA_AdditionalProperty, IWA_TaskAdditionalProperty, IWA_CaseAdditionalProperty) have been removed from the system database. The data stored in those tables is migrated to IWA_TaskCustomTextField and IWA_CaseCustomTextField during the system database conversion. The deprecated Additional Properties API still works but now reads and writes data to the new Custom Field tables.

Note that search performance for Text Custom Fields is worse than those of the other Custom Field types. Consider using String, Number or Timestamp Custom Fields instead of Text Custom Fields.

Business Calendar Name

All inscribed business calendar names on case and task tab will be automatically converted to the newly introduced script fields. ivy.cal in task inscription is not mapped anymore to the business calendar name that has been inscribed in this tab.