New and Noteworthy for Axon.ivy Designer 6.0 (Säntis)

This document describes all new and noteworthy features of the Axon.ivy Designer 6.0 (Säntis) release.

Only a brief overview of important new features is provided here. It is recommended that you consult the respective sections of the updated Designer Guide (via Help > Help Contents > Axon.ivy Designer Guide) if you desire more detailed information about individual new features.

If you are interested in features introduced in the previous release have a look at the Axon.ivy Designer 5.1 New and Noteworthy

The contents of this file have been grouped into different sections with related content:

MIGRATION OF 5.1 PROJECTS

5.1 projects (and older) need to be converted for Axon.ivy 6.0!

See the separate Migration Notes to learn about what needs to be done to get your projects running with Axon.ivy 6.0 (Säntis).

Selected Features

Error Handling


Error Handling Concept

There is a new section in the designer guide that explains the Error Handling Concept.

See Help > Designer Guide > Concepts > Error Handling


Error Boundary Event

There is a new Error Boundary Event process element that can be attached to any Activity process element including Script Step, Program Interface, Embedded Subprocess, Subprocess Call, etc. The Error Boundary Event catches errors that appear inside of the Activity. The error can be handled by connecting an error handling process to the Error Boundary Event.

See Help > Designer Guide > Process Modeling > Process Elements Reference > Error Boundary Event for more information.


Error End Event

The new Error End Event can be used to leave the happy path of a process by throwing an error (e.g. if there is not enough stock). It can also be used to rethrow previously catched errors.

See Help > Designer Guide > Process Modeling > Process Elements Reference > Error End Event for more information.


Error End Event in Html Dialog

With the new Error End Event it is possible to exit an Html Dialog by an Error End process element. This is useful to leave the happy path of the calling business process.

See Help > Designer Guide > Process Modeling > Process Elements Reference > Error End Event for more information.


Error Start Event

The former Exception Element is now called Error Start Event. It can be used to catch errors which were thrown in the same process or inside a subprocess if the configured Error Code matches the occurred error.

See Help > Designer Guide > Process Modeling > Process Elements Reference > Error Start Event


Project Error Process

A project error process catches errors from the whole project. The name of a global error process must start with Error and can contain one or more Error Start Events.

See Help > Designer Guide > Concepts > Error Handling > Project Error Process


Error Object

There is a new error object available at the Error Intermediate Boundary and Error Start Event process element. The object provides information about the error that occurred, like:

  • Unique Error ID
  • Error Code
  • Technical Cause (Java Exception)
  • Throwing process element
  • Throwing process call stack
  • User defined error attributes

See Public API ch.ivyteam.ivy.bpm.error.BpmError for more information.


New Default Error Page

The new default error page provides a lot more information about the error:

  • Error Id
  • Error Code
  • Error Message
  • Process element and process callstack where the error happened
  • Additional error attributes
  • Technical error stack trace
  • etc


Customizable Error Pages

The content and appearance of the ivy error page for the Designer can be customized the same way as for the Engine.

It is possible to adjust the default error page webapps/ivy/ivy-error-page.xhtml. Alternatively custom error pages can be defined in webapps/ivy/WEB-INF/web.xml.

See also the chapter Configuration -> Configure Tomcat -> web.xml in the Engine Guide.


Enhanced Error Messages and Status Codes

The responses and corresponding HTTP status codes have been enhanced for task-resume requests. Now, the following status codes are returned in case of failure:

  • 403 - FORBIDDEN: The user is not allowed to work on the task.
  • 404 - NOT FOUND:
    • The task does not exist.
    • The task is in an unavailable state.
    • The task was finished and the user was not allowed to work on it.
  • 409 - CONFLICT: The user is allowed to work on the task but:
    • The task was finished by another user.
    • Another user is currently working on the task.
The error message for 409 - CONFLICT will additionally mention the user that has finished or is currently working on the task.

Boundary Event Icons

For documentation reason the icon of an error boundary event can be changed:

Only the visual icon is changed, the behavior of the error boundary event is still the same.

New Html Dialog Editor


New Html Dialog Editor

The graphical part of the Html Dialog Editor has been rewritten completely. We now provide a 95% realistic preview of Html Dialogs. It supports the most often used PrimeFaces and JSF elements. Hence, for most dialogs, you now see how they will look like at runtime.

Realistic preview in the graphical part of the Html Dialog Editor
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Template visible

The template part of the dialog is now visible too. But you cannot edit it directly. Just open the template in its own editor and edit it there.


See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Display composite components

The new editor can display components in the graphical part. You cannot edit the component in place but with a double click you can open it in a new editor window and edit there.

Ivy components are now displayed in the editor
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Visual Markers for CMS, Data and Logic

You can now see with one look if your forms are properly translated and bound to data. See the overlay markers for Primefaces components.

Visual markers for CMS, data and logic
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Default action for Primefaces components

Double click on a Primefaces component in the graphical part to edit the most important attributes of the component directly. For Ivy Component Dialogs the double click opens the component in its own editor window.

Double click to open the default action for Primefaces elements
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Simplified palette

We only have the most important Primefaces component in the palette so that novice users find the components they need.

Simplified palette
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Select tab to see its children

Click on a tab in the graphical part of the Html Dialog Editor to see and edit its children.

Second tab selected to see its children Select the third tab to see and edit its children

See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Preferences for the Html Dialog Editor

You can now define which view mode you prefer and use it as default. You can turn on/off the visual markers for data binding, logic mapping and CMS use too.

Preferences for the Html Dialog Editor
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

Icon browser

You can now select your icons for buttons in a visual way. Double click on the button to start the default action and open the icon browser to choose your icon.

Icon Browser to select icons
See Help > Designer Guide > User Dialogs > Html Dialogs > Html Dialog Editor for more information.

User Task, Offline Dialog (Offline Tasks) and Mobile App


User Task element

The User Task element is used to call a User Dialog in a new task. Thus it combines a Task Switch Event and an Html Dialog.

The dialog can either be a normal Html Dialog or an Offline Dialog. An Offline Dialog is an Html Dialog that is designed to be capable of running offline on a mobile device.


Offline Dialog

The User Task element can be defined to call a normal Html Dialog or an Offline Dialog. The goal of using an Offline Dialog is that the task can be processed offline by a user on a mobile device.


Offline Task Concept

There is a new section in the designer guide that explains the Offline Task Concept.

See Help > Designer Guide > Concepts > Offline Tasks


Mobile App

Soon we will have a new Axon.ivy App for iOS devices available in the App store. The app provides a list of all your Axon.ivy tasks and you will be able to work on your offline tasks when the device is offline.


Documents


Document API

There is a new API available that allows you to manage documents and to attach them to workflow cases.

Examples:

Attach a new document to a case:
IDocument document = ivy.case.documents().add(new Path("Offers/FirstOffer.txt")).write().withContentFrom("Offer: 1 Axon.ivy License for 10000 CHF");

Get all documents that are attached to a case:
List<IDocument> documents = ivy.case.documents().getAll();

Get all documents of an application that are stored below a certain path:
List<IDocument> templates = ivy.wf.documents().getAllBelow(new Path("/Templates));

See Public API ch.ivyteam.ivy.workflow.document.IDocumentService for more information.


Document User Interfaces

Documents can be managed using the following user interfaces:

  • RIA File Manager from the IvyAddOns project
  • RIA Workflow UI
  • Axon.ivy Portal
  • Axon.ivy Mobile App


Continuous Integration


Maven Build Plugin

Ivy Projects are now designed to be built with Maven, so that Ivy Projects can be built on a continuous integration (CI) server like Jenkins with minimal configuration effort.
Therefore the project deployment descriptor is now stored as a Maven pom.xml and pre-configured to build the Ivy Project with the new Maven Plugin com.axonivy.ivy.ci:project-build-plugin.

The Maven Build plugin provides the following main features:

  • Compilation of Ivy Projects
  • Packaging of built Ivy Projects as IAR (ivy archive) artifacts
  • Installation of IAR artifacts into the local Maven repository
  • Deployment of IAR artifacts to a remote Maven repository

The Designer Guide chapter Concepts -> Continuous Integration provides more detailed informations.


Project Graph

The dependencies of Projects in the Designer workspace can now be visualized with a graph. The new 'Project Graph' view comes with auto layout functionality and allows quick navigation to the Deployment Descriptor editor by double click on a node.

The Project Graph can be opened with the menu Window -> Show View -> Other -> Axon.ivy -> Project Graph
or with the new toolbar button within the Project Deployment Descriptor Editor.


New Process Engine


New Process Engine

Completely new and rewritten process engine. Based on the latest available technologies.


100% Java

100% implemented in Java.
IvyScript is no longer used in the engine itself.
Completely new Java based execution model. There is no longer a PetriNet model used to execute your processes.


Improved Debugging

While debugging its now possible to ...

  • Jump into a callable or embedded process
  • Jump over a callable or embedded process (or process element)
  • Return from inside a callable or embedded process to the caller process

Additional simulation options

Two new simulation options have been added to the Engine Preferences. One of them doesn't simulate user dialog logic. The other allows simulating only top level business processes.

Improved Performance

The new process engine is 20% faster. This really boosts your processes.

The building of the engine model is about 50% faster.


User Dialog


PrimeFaces 5.3

Upgraded PrimeFaces to a newer version. The new version includes several fixes, improvements and new components like diagrams and steps.

The steps component is an indicator for the different steps in a workflow, it's optimized for responsive design.


PrimeFaces Extensions 4.0.0

Upgraded PrimeFaces Extensions to a newer version. The new version includes new components like gravatar and analogClock.


Faces Validator support

Ivy projects can now declare and use their own FacesValidator implementations. So you can easily write a custom validator for Html Dialog attributes in your project.

Custom Validator in HtmlDialogDemos - FormDemo View

New certificate

The client libraries for the Rich Dialog technology in this release are signed with a new certificate. The certificate is now issued to AXON IVY AG. ivyTeam the former provider company of Axon.ivy Designer and Engine was merged into this new company. All users of Rich Dialog UI's will see a security warning dialog the first time they start the process/application on a new Designer/Engine.

See also the official information on the Java website for more information.


Session timeout

You can define now a session timeout for rich dialogs if you want to close a Rich Dialog application and to log out the user after a configurable period of time. Go to the configuration folder in your installation and edit the file jnlpconfig.any to turn the feature on.


Look and Feel support

We dropped support for the Nimbus, JGoodies and Java default Look and Feels. We now support only Synthetica Look and Feels and the Xpert.Line Look And Feel (which is based on Synthetica).

See also the Q&A entry Which Look and Feels are supported for Rich Dialogs for more information.


Editor Improvements


Start Process in process editor

A process can now be started directly on the Request Start element.


Copy Process as Image to Clipboard in process editor

The copy command (via shortcut <ctrl>+c or via editor menu) now copies the complete process or the current selection as image to the clipboard. The image clipboard content can then be pasted into other programs like MS Word.


Jump to Data Class from process editor

Use the new Jump to Data Class command (via shortcut c or via process editor context menu) to navigate from a process to the associated data class editor.


Improved data class field input in data class editor

If you configure the name of a data class field you can use the format fieldName : fieldType to specify not only the name but also the type of the data class field in one step.


If only one type matches the entered simple type name then the matching one is choosen.

If more than one matches then the type browser is displayed with the simple name as predefined filter.

More concrete fitlers can be used.

  • java.u.List for java.util.List.
  • List<Calendar> for List<java.util.Calendar>.

Orphan removal support in entity class editor

JPA entity class fields, which reference another entity class, now support the orphanRemoval option. This reduces the code needed to remove an associated entity.
The new option can be enabled in the association column of the entity class editor.


Add co from URL in CMS view

You can add a co now directly from an URL. Just copy the URL and use it for the import.


Multi select in CMS view

You can select multiple content objects in the view and perform the same action to that selection. For example you can now delete multiple content objects at once.


New Web Service configuration editor

The new Web Service Configuration editor has a cleaned up and more intuitive user interface. Many bugs that the old editor was suffering from are solved with the new editor.


NTLM Authentication in web service configuration editor

NTLM authentication can now be configured in the Web Service Configuration editor. Until now NTLM authentication was only available at the web service process element directly.


Miscellaneous


REST API

There is a REST API available that uses HTTP, JSON (application/json) as content type and HTTP basic as authentication method. Over this interface the following services are available:
  • HTTP GET /ivy/api/{application name}/engine/info - Returns the version and the name of the engine.
  • HTTP GET /ivy/api/{application name}/workflow/task/{taskId} - Returns the task with the given task identifier.
  • HTTP GET /ivy/api/{application name}/workflow/tasks - Returns the tasks the authenticated user can work on.
  • HTTP GET /ivy/api/{application name}/workflow/tasks/count - Returns the number of tasks the authenticated user can work on.
  • HTTP GET /ivy/api/{application name}/workflow/case/{caseId}/document/{documentId} - Returns the content of the document.

Custom Properties API

There is a new API available to store custom specific data. This can be used in projects to store small project specific information without the overhead of using an own database.

ivy.wf.getApplication().customProperties().property("hrm.user.showDetails").setValue(true);

boolean showDetails = ivy.wf.getApplication().customProperties().property("hrm.user.showDetails").getBooleanValue();

List<ICustomProperty> properties = ivy.wf.getApplication().customProperties().findAllStartingWith("hrm.user.");


New Eclipse Platform Version

Axon.ivy Designer is now based on the Eclipse platform version 4.4.2 (Luna).

Java 8

Axon.ivy Designer is now bundled with the Java 8 JRE. You can now use new Java 8 features like Lambda expressions or the stream API.

If you use Rich Dialogs in your project, then you and your users must use Java 8.


Disable Permission Checks in Script Step

Added new possibility in Script Step to disable security permission checks (Execute Script Step as System). With this option enabled the scripts from the Output and Code Tab runs without security permission checks. The execution of the scripts will never throw any PermissionDeniedException.

Jump to Process Element out of an Engine log

Engine log file analyzation has become simpler. Logs can now be posted into the JavaStackTrace console. Process Element Ids (PIDs) within these logs will be linked so that the navigation into the log throwing element is instantly possible.

Log Web Service Message

Web service SOAP HTTP messages that are sent and received to the remote web service are logged into the Designer Runtime Log or the Server log file if the web service runtime log level is set to DEBUG. This helps debug web service problems.
Web Service Element: Call to http://test-webservices.ivyteam.io:8080/axis2/services/Version.VersionHttpSoap11Endpoint/ (Operation /name=getVersion /port=VersionHttpSoap11Endpoint /parameters=[]) successfully executed in 17598 milli seconds!

*** SOAP Request ***
POST /axis2/services/Version.VersionHttpSoap11Endpoint/ HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: "urn:getVersion"
User-Agent: Axis2
Host: test-webservices.ivyteam.io:8080
Content-Length: 233

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns1:getVersion xmlns:ns1="http://axisversion.sample"></ns1:getVersion></soapenv:Body></soapenv:Envelope>

*** SOAP Response ***
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 30 Sep 2015 15:23:01 GMT
12c
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns:getVersionResponse xmlns:ns="http://axisversion.sample"><ns:return>Hi - the Axis2 version is 1.6.1</ns:return></ns:getVersionResponse></soapenv:Body></soapenv:Envelope>
0

Task/Case Query API Improvement

The task and case query API now supports to search tasks and cases that contain or do not contain a certain text in the task or case description.
TaskQuery.create().where().description().isLike("%John Smith%");
CaseQuery.create().where().description().isNotLike("%Peter Q. Public%");