Ometa Framework Release v5.2.0
Version 5.2.0 of the Ometa Framework has been released with the following new features. Refer to the Changelog for a list of all bug fixes.
Required Changes
Obiz Suite
The base url for the obiz suite has changed from https://core.ometa.net:50200/obizsuite/*
to https://core.ometa.net:50200/obiz-suite/*
.
This means that if the obiz suite was installed prior to this version, a new application needs to be added to the Ometa Core Service.
Current situation/application if obiz suite was already installed:
Add a new application with the new virtual path:
The existing application can be deleted only if adhoc/pdca tasks with mails aren't used. The existing application cannot be deleted if they are used, this is because the old mails will still go to this virtual path so both applications need to exist:
Before Set Context Promises
In the before set context you could return custom Promises. The result of the promise could be use in the Context Manager. This is no longer supported to make sure the correct cycles are triggered in the Context Manager and ADM. You can still have promises in the Before Set Context event and will be triggered. But the result will not be taken into account.
Azure Application Registration
Important
If you have registered the Ometa Authority Service as an application in Azure, you are required to change the api permissions if you want to make further use of AD group claims.
Required Configuration Changes
To be able to read AD group memberships of your users, a change is needed in the API permissions of the Ometa Authority Service application registration on Azure.
The following app permissions are no longer required:
GroupMember.Read.All (Delegated)
The following app permissions must be added:
- Directory.Read.All (Application)
For more information, see this article about the Microsoft provider.
Performance Improvements
OData Interface
We have optimised the deserialization process.
No. records | Process time in 5.1.x | Process time in 5.2.x |
---|---|---|
2000 | approx. 1000ms | approx. 200ms |
5000 | approx. 3000ms | approx. 200ms |
Profiles and templates are cached resulting in a approx. 450ms optimisation.
ADM
Charts
Introduced new properties for categorical charts:
- Possibility to set the min and max values of the X and Y axis.
- Possibility to rotate value labels.
- Possibility to hide X or Y axis.
Object Manager: Responsive Layouts
The ADM has support for responsive layouts. These layouts can be configured with the Object Manager in the Obiz Suite.
As this is still in beta phase this will be released with some limitations:
- For write views it is required to drag all fields onto the form.
- Hidden fields needs to be dragged onto the form.
- Cannot be used in combination with custom layouting with CSL.
CSL Context Manager
New CSL functions for the context manager are introduced:
- CSL.contextManager.addHideFieldCondition
- CSL.contextManager.removeHideFieldCondition
- CSL.contextManager.values
CSL Emit Context Change for Set Context Value
The CSL context manager set context value has a new optional parameter which allows for the user to not trigger the context change event.
The default behavior as well as setting the parameter to true remains as it used to be, meaning the context manager will emit the context change event. ADM's listening to this event will refresh with the new context value.
CSL.contextManager.setContextValue('name', 'John');
CSL.contextManager.setContextValue({'name': 'John', 'age': 35});
CSL.contextManager.setContextValue('name', 'John', true);
When emitContextChange is set to false, the context change event will not be triggered.
CSL.contextManager.setContextValue('name', 'John', false);
Ignore Default Value
Numeric values are not nullable. For this reason it is possible to configure the ignore default value configuration. This makes it possible to ignore the default 0
.
BAM
Most BAM Reports Exported By Default
The method Export Reports To File
is adapted to export most BAM log reports by default. In previous versions it was necessary to select which reports to export. From now on, most reports are exported to collect as much information as possible and it will be required to deselect a report if it is not required for export.
Refer to the BAM Log Analysis article for more information.
Building Blocks
The release contains several new features to the building blocks.
Ensure Calculated Field Building Block
A new building block has been added to ensure a calculated field on a SharePoint list or site.
Folder Creation Using Ensure File
Before this release, you would get an error when the folder doesn't exist when ensuring a file using the Ensure File
building block.
When the folder doesn't exist it will be created now.
Changing List Titles
A new field Internal Name
has been added to the Ensure List
building block. With this field you can change the title of an existing list.
Ensuring Files Using Templates
A file can now be ensured using a (template) document on a SharePoint site within the same tenant. The existing Path
field on the Ensure File
building block can now contain a full or server relative URL to a SharePoint document within the same tenant.
DCS
OData Controllers
Instead of using the VW_AllCases view, you can now use the OData controllers to fetch DCS case information.
Refer to: https://docs.ometa.net/latest/public/articles/case-management/odata-querying.html
Interfaces
Timeout of 60 seconds
It is no longer possible to have infinite running methods. The maximum time a method can run is 24 hours. Existing methods will be patched to have a maximum running time of 24 hours.
The default timeout for new methods is 60 seconds. After 60 seconds, the method will be cancelled.
BaaN IV / ERP LN
When an Infor system is down, the method will not wait indefinite and follows the default timeout on the method.
DLL
The DLL interface has support for cancellation.
OData: cache
Warning
The OData interface caches metadata of services by default. This prevents extra round-trips on subsequent requests. However, when the service you are targeting changes, the OData interface will not see this change if the metadata has already been cached. To reset this cache, you can execute the method Clear Metadata Cache of the object System.OData.
OData: Disable Escape Chars
By default, the values from an OData interface are escaped, this can cause troubles in conversion scripts. You can disable this by passing the fields in the new option DisableEscapeCharsForFields
.
DisableEscapeCharsForFields=Name;Description
OData / REST
The REST and OData interface will now return the JSON when a method field points directly to a structure. This can be disabled by setting the DisableStructureJsonOutput
property.
DisableStructureJsonOutput=True
REST: Upload Files
Files can be uploaded with the REST interface through a media control or by passing a local file path.
WPF GUI
Profiles Cached when Testing Method
When testing a method, the last profile used will automatically be selected.
Create New Method
In previous versions only a method name was initially required to add a method to an object. When a method type was not changed later on, the type defaulted to Action
.
However, as the method type is becoming increasingly important as it is used by the framework itself for identifying which methods can be safely aborted when a connection between BCM and an interface is lost or forcefully closed. Therefor it is necessary to set the type of the method correctly.
Refer to the Create New Method article for more information.
Data Extensions
Run Parallel With Main Method
The first output extension sequence has an extra option Run Parallel With Main Method. When enabled, the main method execution is started in parallel with the first output extension sequence. This is beneficial in total method duration if the output extension is not reliant on the action of the main method. This option is enabled by default for new methods, methods created in older framework versions (< v5.0.0) will have it turned off.
Validation Scripts
There is a new property on data extensions to decide whether or not the validation script should be processed. Validation scripts on the main method are now processed after input data extensions are executed.
DateTimeOffset
New field type DateTimeOffset is introduced to give support for time zones.
SAP Wizard
The automatic field name adaptation is removed and only the external names are overridden when the same object field is used for both the method input and output fields.
Refer to: https://docs.ometa.net/latest/public/articles/interfaces/supported-interfaces/SAP/wizard.html
Context Menu
Expanded the interface script context menu to show the options for the selected interface.
Supported for the following interfaces:
- OData
- REST
- XML
- SharePoint
- File
Health Reports
When an Ometa Framework Server becomes unhealthy, reports can be send to the Ometa Telemetry Server. Contact Ometa to configure this.
BCM Queue Optimisations
Automatic Health Checks
BCM can restart itself when unhealthy conditions are detected. The system is considered unhealthy if the system starts to queue and tasks in the queue are no longer processed.
Refer to the new properties introduced:
- Auto Restart When Unhealthy
- Auto Restart Delay Window
- Unhealthy Frozen Queue Minutes
Refer to https://docs.ometa.net/latest/public/articles/services/BCM/bcm.html.
Profile Error Throttling
When a profile is detected to be corrupt, all requests using that profile will not be executed. For example, when Ometa detects multiple connection errors, the profile will be flagged as corrupt
Refer to the new properties introduced:
- Profile Error Throttling Enabled
- Profile Error Throttling Threshold
Refer to https://docs.ometa.net/latest/public/articles/interfaces/profiles/error-throttling.html. Refer to https://docs.ometa.net/latest/public/articles/services/BCM/bcm.html.
Cancellation Support
When interface workers lose their connection to the corresponding BCM request, they will try to stop any ongoing work if it is deemed safe to do. Whether any work will be cancelled, is determined by the method type.
Refer to the Interface Performance Settings article for more information.
Dropping Interface Worker Connections After Losing Request Connections
Previously, the BCM service did not signal corresponding interfaces to stop working on requests when BCM lost its own connection to a client.
Refer to the BCM article for more information.
Too Many Requests
There is now a limit on how many requests can be in the BCM queue. A request is set in the queue after the maximum number of instances is reached. Requests above this limit will receive a Too Many Requests
exception. This is done to not overload the system in case of data bursts.
Check the following BCM properties after the installation:
- Maximum Number of Instances. Advisable to set it at least to 200.
- Maximum Queue Length. Advisable to set by default to 600.
Refer to https://docs.ometa.net/latest/public/articles/services/BCM/bcm.html.
Refer to https://docs.ometa.net/latest/public/articles/setup/new-installation/13-post-installation-settings.html?tabs=tabid-bca-1%2Ctabid-bcm-1%2Ctabid-if-1.
Transfer Tool
Compare Changes in Detail
The coloured ellipses in the wizards to indicate the state can now be clicked to open a new window which shows the changes in detail.
Tip
Alternative view options can be found by right clicking the 'Old - New' header in the pop up.
Compare Export
The export wizard has had the option to compare the current framework configuration against a previous export. This could be used to view the changes on the framework since the last upgrade. Prior to v5.2, the export wizard showed a dropdown of previous exports taken that could be chosen from. Now, any zip file can be selected from the drive to be used as the comparison.
Back-up Before Import to File
A new option was added to the import wizard to select a path where a back-up zip can be stored. This zip contains all the configuration that will be modified by the import, before it is imported. This zip can be used to restore changes, or to use in the compare export feature mentioned above.
This option is not required for importing.
Phase Out of Database Transfer Archives
The database previously stored a copy of all exports taken, as well as back-ups before importing. These records in the database could later be used to compare exports, or to download the zip again from the database. This has proven to not be as reliable as we had hoped as it caused issues during big imports or exports, where the database couldn't process the transaction in time and break up the transfer.
To resolve this, the wizards will now only use zip files and no longer store copies to the database. Old archives can still be downloaded from the database. In a future major version, the database table will be dropped and the 'Manage Exports' will be removed.