The 3.9 update for the Platform products is being rolled out.
Today, the RC version has become available for the Platform products - Architect, Generator & Framework.
RC means Release Candidate and when we do not receive any important bug reports this version will become the stable version.
In this post we first give some important upgrade notices after which we explain where to the get the new versions.
This will be followed by the release notes for the Architect, Framework and Generator.
Important upgrade notices
- When your application contains Novulo Instructies M4813, make sure it is least at revision 438 before integrating with Architect 3.9.
- When upgrading the Novulo Instructions component some test configuration which has been stored within the application may be found that cannot be directly converted to the new structure. In such cases, you will be provided with a back-up file containing the original test configuration.
- Opening and saving a component with Architect 3.9 will perform a one way conversion of the model. As a result, you can no longer edit or integrate that component with 3.8 or lower without losing data. Therefore, components that are used in applications that are not yet ready to be upgraded to 3.9, should not be edited with 3.9.
- Applications that are integrated with Architect 3.9 must also be generated with Generator 3.9 and deployed with the 3.9 Framework.
- When editing or integrating a model with Architect 3.9, model errors that went unnoticed in 3.8 may now be detected. This is expected. In most cases, these errors can be corrected using Architect 3.8, which is what we advise you to do. In this community post it is explained how the errors can be fixed in the 3.8 (Chapter 5)
Where to get the new versions
Architect: select 3.9-RC in the Architect starter or use 3.9-RC in deployment for your order
Generator: use generator_3_9_rc in deployment
Framework: deploy your application after generating with the 3.9-RC generator and use the embedded Framework (or a newer 3.9-NB framework, should they become available)
Novulo Instructions (M4813): select revision 438 (or higher) in the composer
Headless Test Runner 1.6.1.0: download here
Release notes
Architect (3.9-RC.C13203)
Business and test processes
The following new features are added to the business and test processes compared to the last CTP release (see this post for more information).
Chapter 5 of the community post Business and test processes, now contains information how the fix the Documentation and test errors in the 3.8.
The term descriptive process is the collective name of the business processes, business (sub)activities, test processes and test sets.
- When dropping a new business process or business (sub)activity in a descriptive process the properties panel is opened automatically. The title editor is automatically selected as well so you can type in the title directly.
- The right mouse button context menu for normal and descriptive processes also has been extended:
- When business activities are used in test processes, but also when using process components in other process components, it is now possible to automatically generate new parameters in the process and set these as parameters as values in the called activities or process components.
For a business task the following two options will be available:- Set âtest valueâ with new parameter: if the task enters a value in a field, this value can automatically be added as a parameter to the business activity
- Set âsearch valueâ with new parameter: when for the task also a search value can be set (for example when clicking on a grid row or when setting a value in a search link), this option will add the search value as a parameter to the business activity.
- With the component properties option you can now directly open the properties of the called business process or process component.
- The properties of a descriptive process or normal process can now also be opened directly via the context menu.
- When business activities are used in test processes, but also when using process components in other process components, it is now possible to automatically generate new parameters in the process and set these as parameters as values in the called activities or process components.
- When creating your business activity you have the page editor on the right side. It is now not possible anymore to create accidental changes on the page there.
- The known issue in CTP3 âCreate a test process for a consumed superclassâ has been resolved and it is now possible to create business and test process for consumed superclasses, such as N_Contact.
- It is not possible anymore to paste actions from normal processes to descriptive processes and vice versa.
- The properties dialog of a process component or descriptive process now also contains the tab with the parameters, this could first only be accessed via the properties of the trigger / starting point of a process.
- When you have a descriptive process opened the type is also shown in the panel title name:
Other Features
These are the new features when compared to the last CTP update (for those features see this community post).
PI39646 - Specific icon for cached functions in NovuloTree
Cached functions now have a dark blue icon:
PI40344 - Quick add/set predefined subsystems and modules
In the right mouse context menu in the explorer tree functionality has been added to easily add the subsystems as defined in KB630:
This sets the correct name, sequence number & domain.
Subsystems which donât conform to the KB630 have the option to convert them:
The module Application maintenance has the option to easily add the modules as defined in KB630:
Modules of Application maintenance which do not conform to KB630 also have a convert option.
When a settings module is added, a page with the same name is added as well including a tabbed panel.
When a subsystem or module is added, it will check if the other subsystems or modules are placed according to the sequence number. If not you get the question if you want to continue, because the functionality will sort them.
The problem visitor checks if the virtual pages are placed in a Virtual module. If not, a quick fix is offered which can be one of the following options (depending on the configuration of your component):
- Convert the current module to a Virtual and move to the Application maintenance subsystem if necessary.
- Move the virtual pages to an existing Virtual module
- Add a new Virtual module to the Application maintenance subsystem
PI41621 - Open call hierarchy from context menus
It is possible to open the call hierarchy from the right mouse context menu for elements on a page, for entries in the explorer tree or the background of the page editor, process editor or expression editor.
PI42789 - Warn about old presentation layer support
The Architect now checks the following situations:
- if your model does not support the stable presentation layer of the stable framework
- if your model has support enabled for old presentation layers
- if the default presentation layer of your model is an old presentation layer.
In those cases an info message is reported by the problem visitor, including a quickfix to change these settings to the recommended values.
Also, the plugin and icon pack dialogs now clearly indicate if and why a plugin or icon pack is not selectable (e.g. because they support a different presentation layer compared to the supported presentation layers of your model or if they support a different platform version compared to the architect version you are running).
PI42853 - Add checkbox helper dialog
When you add a new checkbox to a form you will now get the following dialog:
With this dialog it is now possible to configure the complete checkbox directly, instead of going through several dialogs.
The label is the text which is shown behind the checkbox in the user interface, the field name is the name of the field itself (e.g. in the column manager or context panels) and the override field name is the name of the field in the database.
When entering the label a proposed field name and override field name are filled in automatically, but these can be changed if desired.
Normally for rows with only a checkbox no caption is shown for the form row, but you can change this with the checkbox âShow the caption of the form rowâ.
PI43852 - OpenModelByIdDialog: shortcut for opening model in view mode
With the key combination CTRL + SHIFT + O it was already possible to open the âOpen model by idâ dialog. In this dialog the Edit mode button is the default button.
If you now press the key combination CTRL + SHIFT + V you also open the âOpen model by idâ dialog, but with the View mode button as default button â saving you to press a couple of TAB presses.
The same applies to CTRL + SHIFT + ALT + V, which opens the âOpen model by idâ dialog with a compare option and the View mode as default button.
PI45494 - In an icons dialogue have the possibility to set an icon pack if none is selected for the model
It is now possible to add an icon pack in the icons dialogue:
PI45677 - Add a sanity dialog before saving a component if the opened revision is not the latest revision
When opening and saving an older revision of a component you will get a warning if you are sure you want to save based on this older revision.
PI45762 - Plugin functions - New icon (function icon + plugin icon)
A plugin function now has its own icon:
PI46006 - Search bar in Context (of process)
The content panel for processes now has a search bar:
PI46032 - Remove support for multiple instantiations of the same concept
You cannot consume and/or produce the same concept multiple times in a component anymore. This was left open for a theoretical reason which was not used in practice.
Loaded concepts are made visual in the concept manager:
This also is done for loaded features, enumerations and process concepts.
When adding new features which references not-loaded concepts you will get the question if you want to consume those concepts as well.
PI46283 - Info message and quickfix for invisible plug-in configuration
For invisible and not-enabled plug-in configuration items an info message is now reported, including a quick fix to remove them.
It is recommended to clean up since these values, because while they arenât used by the plugin, it is possible that they cause problems elsewhere.
Additionally, when setting the properties of a plugin, the not-enabled plug-in configuration items will now be removed automatically.
PI48376 - Pasting in the expression editor should paste the last FExpression from the ClipboardPanel
When you execute paste in the Expression panel or Process panel the last relevant data object is copied from the clipboard. It used to be that the last object was copied and if it was not of the correct type it was discarded.
PI48382 - Save button in Ribbon task bar: save as component when there are concepts
The save button in the Ribbon now always executes a âSave as componentâ when there are concepts in the model. It used to be that when creating a new model it would default to âSaveâ, preventing it from being available for model weaving.
The generate or build button is now also disabled when you consume (process) concepts, since it is not possible to deploy a working application.
PI48880 - Page buttons get property never merge during integration
For page buttons on virtual pages it is possible to set that they will not be merged during integration.
PI48895 - Re-enable boolean cached functions
It is now possible to cache boolean functions.
PI49497 - Description width should be at least 10
Sometimes when setting the properties of a form the following confusing warning appeared: âDescription width should be at least 10â. This is now only shown in situations where this is actually relevant.
PI49672 - Add navigation parameter to columnclick processes
In a column click process you now have access to the way the user wants to start the process with the new navigation parameter:
We recommend to use this parameter for any load page action in your process.
When the user clicks in the column and doesnât do anything special, the navigation parameter will have the âNoneâ value, which lets the framework decided the appropriate navigation (normally either Push or Dialog, depending on the complexity of resulting page and the settings of the user).
But when the user presses certain keyboard modifiers, he can change the value of the navigation parameter (e.g. CTRL + click for TabInBackground, CTRL + SHIFT + click for Tab (in foreground), SHIFT + click for Push, ALT + click for Dialog, etc.).
PI53811 - Add Category name & Category ID to the problems tab
The problems tab now has two new columns: Category name & Category ID:
The category name is the main category the message (error, warning, info or style) belongs to. The following categories are defined:
- UI
- Database
- Expressions
- Processes
- Plugins
- Reference Architecture
- Documentation & Testing
- Translations + Style
- Misc
The category ID is the id number of the specific message; in SRs it is recommended to include this number.
PI53841 - Display created/modified by & created/modified at in Work item dialog
The work item dialog now contains information about when and by who it was created and modified last.
Other smaller features & bug fixes
- PI45352 - Default processes for page buttons on virtual pages should be empty
- PI47615 - Extreme slowness with [<string:getnull(),mixed:getnull()>]
- PI52568 - It is possible to delete a revision by closing the dialog, through X.
- PI53410 - Integration: Do not merge a FFormCanvas from a child class with a FFormCanvas from a superclass
- PI53829 - Explorer panel & icons: if not enough room, move icons to next line
- PI53839 - When copying an element in the Architect, clear the override field name
- PI53884 - Compare when model node and children donât have any changes
- PI53978 - list<tuple<string,mixed>> appears twice in TypeDropDowns
- PI53983 - Prevent conflicts between names of dummy fields and built-in fields
- PI54045 - Replace FPageButtons of virtual pages after integration
- PI54631 - Do not show " (certified)" for pluginversions that are not certified
Framework (3.9-RC.C13137)
Small improvements & bug fixes
Since the CTP release, no major changes have been made to the framework. The RC release does contain a couple of smaller changes, which are listed below.
Performance
Some improvements have been made to improve the performance of creating new records. The first two PIs listed below shouldnât have any functional changes but will make inserting records faster, especially noticeable when you insert many records.
The third is only intended for specific scenarios when there is a need to squeeze out every bit of performance for processes where records are added in large batches and allows you to optimize these situations with a web.config key. You can do this by adding something like
<add key="datahandler.MssqlIdProvider.Blocks.lowercasetypename" value="enabled=true;size=1000"/>
to your web.config. Contact us if you want to know more.
- PI54291 - In Db.Insert(), donât call GetLastInsertId() when id is already known
- PI54292 - Execute IDENTITY_INSERT changes and INSERT itself (and GetLastInsertId()) in a single sql command
- PI54293 - Support pre-allocating ids in blocks for MssqlIdProvider
Stability
An exceptional case was found where it was possible that certain expressions could cause the web server of an application to crash. Measures have been taken to make the threshold at which this occurs even higher and to add a security check to detect and prevent these situations. This shouldnât affect your application: the limit is so high that we expect that it will never be reached during normal operations, but just in case, if you see an âExpression height overflowâ message, please contact us.
- PI48440 - Certain expressions crash web server with stack overflow
Licensing
Based on feedback on the CTP release, some minor improvements have been made to the licensing system.
- PI53499 - Introduction of model number source
- PI54376 - Gracefully handle database issues in licensing code
Bug fixes
The following small issues were reported and are fixed in the RC release.
- PI54123 - Exception when a delete dataprocess removes the delete-record-transaction
- PI52461 - After returning from detailspage, sometimes there is a large block of whitespace above the grid
- PI54777 - Allow deleting rightsprofiles that use conditional rights
Generator (3.9-RC.C13181)
For licensing system
- PI53500 - Introduction of model number source
Documentation and test related
- PI53942 - InvalidOperationException when nondescriptive-processcomponent is produced by a descriptive-processconcept
- PI53960 - Include alternativegrids in documentation.xml for shared panels
- PI54306 - In pagedocumentation, donât use pagebutton for SourceInfo, but use underlying process instead
- PI54428 - In documentation.xml donât use $searchColumn for title
- PI54453 - Documentation.xml: canât determine when button doesnât use selection