Version 3.2 patchlevel 04 release note
ModuleLink has been added to the project configuration. It explains 2 modules dependency:
- Cascade delete: all children modules are deleted
- Restricted / Impossible if referred: the parent module can't be removed when the child module has references to it
- Null / Unset references: child references to the parent are set to NULL
For example the ALMTest module has dependencies with the translations modules:
Design and controls
- Cycles are detected during the design: now it is impossible to save a definition introducing a cycle of dependences in the business model.
- When modules links are set, it is impossible to reference an object which belongs to a child module.
- The core-system modules are in a read-only mode, a designer with ADMIN responsibility must also have the parameter
ADMIN_SYSTEM=yesto update the core modules.
A new Model template
ModelModule can design the modules dependencies. For instance, the system hierarchy looks like this:
Let's have 2 modules
- Module Customer with one object Client
- Module Billing with one object Invoice which references the Client
If the module link is set to:
- Restricted: the designer will not be able to delete the Customer module
- Cascade: if the designer deletes the Customer module, the Billing will be also deleted
- Null: Customer module can be removed, but the Invoice will loose the reference to the Client
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.
- Designer can now set an icon to a shortcut
- Each user can choose its always visible shortcuts (click on the eyes)
- The others are hidden behind a dropdown star button (on top/right)
The old list has been replaced with a dropdown clock button.
Group translation and Service to register
- In this release, Groups support translations
- And can be set to a service to register
- This service is often a profile with sub-groups with objects rights
The registration has been release to support the Group translation.
- Logon page displays a "Register" button when the
publicuser has services in its responsibilities
- The registration form will create a pending user to be activated, changed or rejected by an administrator
- A simple captcha controls the human access
- with 3 groups displayed as services
- the user john will be created with 2 responsibilities (the selected groups)
Script errors - Logger
Debugging scripts is often hard when lots of scripts are loaded.
If the websocket is open, the error is also displayed in the browser console:
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...)
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:
- alter the core DB, import all core modules and system patches
- keep all business data (documents, users and rights, users data...)
- but reinit the designer password to the default one (designer)
- backup the platform
- stop the server
- ant saveall (checks the db properties to use your SQL utilities)
- save the full project directory
- save the ear/war archives
- replace all platform libs
- replace the build-core.xml and its properties
- checks the properties (server host/port, database credentials..)
- restart the server
- for technical reasons logs may contain errors and warnings (ex: column already exists, object unknown...)
- it depends on the current version and they are not fatal errors
- at the end the repository will be properly synchronized
- the designer password has to be changed
- custom/business modules have to be re-imported especially if they change the definition of system components
upgrade and applysystempatches
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
patches.properties files (db and conf properties) and launch
A new standalone servlet has been created to test the APIs.
- Access thru URL http://\
- Credentials, method and options are on the left side
- The full URL is automatically build with all parameters
- The response on the right side contains:
- the response status and call time
- the full response / header and body
A simple preview can be displayed when content-type is supported:
- JSON in a tree
- HTML in a popup
- Markdown in HTML
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:
- release specific locks on object
- store specific user's preferences
- specific statistics, etc.