Release Information - Version 1.9
Job Cancellation
During the job execution, the executing logic might detect that there is nothing to be done. That could be for several reasons, such as the object, which the job works upon, already have been handled earlier OR some other condition is met for not handling the object in question.
In such case, you can mark the job as being cancelled.
That is done via the ExecutionResult API as shown below:
context.result()
.cancelled(true)
.message('Item already available in SAP') // optional
.detailedMessage('Some more details') // optional
.code(12345); // optional
Cancelled jobs are found from the Jobs table using the 'Cancelled' filter like shown below:

If a job is being cancelled, no triggers will be fired for such job.
Cancelled jobs are regularly removed from the system. Cancelled jobs older than 1 day will be removed automatically every night. |
Job Status: Created vs Paused / Waiting
Jobs that have been created and are awaiting to be processed, internally has the state Created.
However, if the job is attached to a service that currently is paused, then it wasn’t obvious from the Job table view to distinguish those jobs as all appears as being in the Created state.
As of this release, the created state now will clearly indicate if the job actually is paused or just waiting for being executed by its service. See image below:

Also the progress view for an individual job will clearly indicate that the service is in paused state.

Configuration Editor Improvements
Many improvements have been made for the configuration editor, especially when developing JavaScript based executors.
A side panel have been introduced that will host some of the help tools used. For example, the code tester can now be used side-by-side as when editing the code. See image below:

This means the user can edit and test the script quicker without having to open/close the tool.
The code tester itself also contains a number of improvements such as
-
Possibility to emulate a reply
-
Provide input data including content-type
-
Provide input headers and/or parameters
-
Specify if to show debug logs
In addition to the code editor improvements, the side panel also provides possibility to show the Executor API documentation inline. This will make the development easier as you can quicker find relevant information from the documentation.

Parent / Child Job Relationship
The parent / child relationship between jobs are shown better within the Job table.

Once toggled, the child jobs will be showed below the parent job.

Event Class / Type Selector
The field used for selecting the event class and type have been improved to support auto-completion.

Event Mapping Improvements
The authorization field of the event mapping contains a few improvements.
You can specify multiple authorization filters separated with a comma (,
) character.
It is also possible to use negated expression by prefixing an item using !
.

REST API - File Filter Selector
The REST endpoints that is used to create new Jobs and/or for downloading the result from a previous Job execution accepts a request parameter called fileFilter
that can be used to filter out the Job files to be downloaded.
You can supply multiple fileFilter
parameter/value pairs.
A file filter value may contain a so-called glob pattern that can be used to match multiple files.
Example below:
Executor Updates
Http Client API
Previously, when conducting HTTP calls using the HttpAPI, responses having status code != 2xx from HTTP calls were logged by the platform using the error level.
This is no longer the case as some HTTP response status like 404 are not always treated as errors by user code. Only when DEBUG mode is enabled, such error message will be logged if status code is != 2xx.
DataStorage API
APIs to delete and change job files via the DataStorage API is now possible.
Delete can either be done by the UUID of the Job Data instance or by its name.
When changing a Job Data instance, you can change its name and/or its data-type (Inbound, Outbound, Other).
Console API
For convenience, an object with name console
is made available to the JavaScript execution context.
This API mimics the Console API well known from the NodeJS platform and Browser scripts and often used for debugging purposes.
The available functions on this API can be found from here.
Enum Referencing
The TIF Cloud API are implemented in Java and exposed to the JavaScript executor. To pass an argument of type ENUM to a method, requires you to first make a reference to the Enum class like shown below:
const EngItemMask=Java.type('com.technia.dsx.threedspace.eng.item.EngItemMask');
const EngItemField=Java.type('com.technia.dsx.threedspace.eng.item.EngItemField');
const item = spaceService.getEngItemService().read(session,
itemId,
EngItemMask.DETAILS,
EngItemField.SUPPORTED_TYPES,
EngItemField.CUSTOMER_ATTRIBUTES);
We have recently added experimental support for referencing the Enum Constant by name. See below for an example:
const item = spaceService.getEngItemService().read(session,
itemId,
'DETAILS',
'SUPPORTED_TYPES',
'CUSTOMER_ATTRIBUTES');
Documentation Updates
The documentation have been updated a lot with many more examples etc.
Also the Connector / Marketplace Extension specific documentation have moved slightly in order to allow maintaining different versions of the documentation better.
As shown in the image below, the documentation for the different Connectors are found from the bottom-left pane.

There are some different ways to reach into the documentation, but the below address is the main URL:
Other Improvements
-
When resending a failed job and the resent job succeeds, the parent job is marked as resolved automatically.
-
Allow custom configurations to access settings from an extension by setting its Extension Context.
-
This is done from the Configuration Editor.
-
-
Job table filtering now supports not only dates but also date & time.
-
Job summary has a direct link to its service.
-
More information displayed in the DSX Source Event table.
-
Charts updated + improved drill-down feature.
-
Improved stability of Websocket connection to avoid unnecessary reconnects
-
Connectors/Marketplace Extensions:
-
May provide a Connectivity test to allow users to validate the connectivity to the integrating systems.
-
Extension Settings: Improved display of Attribute and Mappings by grouping them.
-
Pass documentation URL for connectors to client
-