Version 3.2 patchlevel 04 release note


Module definition


The object ModuleLink has been added to the project configuration. It explains 2 modules dependency:

For example the ALMTest module has dependencies with the translations modules:

Design and controls


A new Model template ModelModule can design the modules dependencies. For instance, the system hierarchy looks like this:


Let's have 2 modules

If the module link is set to:

And the designer can not add a reference to the Invoice in the Client.

Field operations on list

The field operations (sum, avg, min, max) are now made during the object search (in the getCount method). So the displayed total on the list bottom is no more restricted to the paginated lines, but calculated with the filters.


The field translation has been released to set optionally a HTML placeholder. This placeholder is used by the runtime only on textual fields.


History button

The old list has been replaced with a dropdown clock button.

Group translation and Service to register


User registration

The registration has been release to support the Group translation.


Script errors - Logger

Debugging scripts is often hard when lots of scripts are loaded.

To help designers, the internal logger can now join the script name and the code part that contains compilation errors (javascript syntax...) or runtime faults (null pointer, unknown function...).

If the websocket is open, the error is also displayed in the browser console:

Vector/Hashtable deprecated

Vector and Hashtable have been replaced by ArrayList and HashMap in the runtime and hooks And all java method signature have been replaced by List and Map.

It is strongly recommanded to change the application scripts.

Vector and Hashtable implement the same interface as ArrayList and HashMap, so it should work if scripts use them (get, add, put...) but it will generate runtime errors if they use specific ones (elementAt, insertElementAt...)

ANT tasks


The new target dbdrop drops everything in the database. It is called during a fulluninstall on Oracle, MySQL and PostgreSQL.


The new target fullupgrade allows to upgrade the platform from any version 3.x.y to the current one. It works like a fullinstall except deletions:

Before processing:

During task:

After processing:

upgrade and applysystempatches

The task applysystempatches has been reworked to pass automatically new patches. All patches already passed patches are saved on a new property files

So you don't have to worry anymore about which maintenance patches has been passed or not.

When a new minor version is available just launch the upgrade ant task. Stop and start your server when asked by the task.

To pass a specific patch twice, remove it from files (db and conf properties) and launch applysinglesystempatch.

API tester

A new standalone servlet has been created to test the APIs.

A simple preview can be displayed when content-type is supported:

nota: in this version only REST services are implemented in the tester.


This new hook is called before a user logout to add specific code/script: