<CreatePDF>
<WordOptions>
<DocStructureTags>false</DocStructureTags>
</WordOptions>
</CreatePDF>
11 April 2023
There are some changes made in the internal TIF database schema in order to improve performance of scheduled maintenance tasks,
e.g. the payloads-stats-updater
and tif-payload-cleanser
.
If your database contains large amount of data, then this first time start-up after upgrading may take a few more minutes than normal. DO NOT ABORT/KILL THE TIF SERVER PROCESS DURING THIS UPGRADE PHASE. THIS MAY CORRUPT YOUR DATABASE. |
The lowest JDK version supported by TIF is currently JDK 8. This will be the last version of TIF supporting that version.
The upcoming release of TIF will have JDK 11 as its lowest JDK.
There is a new option to specify whether to include document structure tags to created PDF.
According to the Microsoft API, document structure tags help screen readers, for example information about the flow and logical organization of the content.
By default, tags are included, and this option can be used for excluding those.
For example:
<CreatePDF>
<WordOptions>
<DocStructureTags>false</DocStructureTags>
</WordOptions>
</CreatePDF>
The create/update integration will now log progress information to the progress logger in order to allow inspecting the progress of the integration use case from the Admin UI.
Per default this is enabled for all create/update integration use cases, but you can disable this globally or individually per configuration.
The global flag is controlled within the module.properties
file using the key
create-update-integration.progress-log.default-enabled
.
The attribute progressLogEnabled
on the create/update configuration can be used to override the global setting.
The create/update integration can now be triggered asynchronously via a REST call. The REST call will create a new job and run that separately and the REST call itself will return before completion.
To configure this, your REST service definition will be configured like this:
<Rest>
<DisplayName>Async Example</DisplayName>
<ServiceName>async-create-update-example</ServiceName>
<Credentials containerManaged="true" />
<NewJob config="CreateUpdateConfigJobExample.xml" async="true" /> (1)
</Rest>
1 | Set async flag to true and point out the job configuration |
and the referenced Job configuration will look like this:
<Job>
<Name>The name of the async job</Name>
<CreateUpdate config="tvc:createconfig/MyConfig.xml" />
</Job>
Two new attribute have been added that will allow controlling the transaction isolation level and how to handle errors during processing.
The attributes are called
Possible values are all
or entry-point
.
Possible values are fail
or continue
and are used when the txIsolation
is set to entry-point
.
When the txIsolation is set to entry-point
, this will imply that the current ENOVIA/3DExperience transaction is started/committed
around each entry-point during the processing, and not around all items as is the default behavior.
If the processing fails in such case for one entry-point, the txErrorStrategy
attribute
defines if to stop processing the remaining and mark the job as being failed,
or if to continue processing any remaining items and not cause the job to fail.
A service activator, such as a directory listener or a ENOVIA/3DExperience queue listener etc, can be started / stopped via a scheduled job.
Below is an example how to use this to start a directory listener at 4AM and stop it at 7AM.
<timetable>
<group id="test">
<job id="start-json-file-import-listener" displayName="Start/Stop JSON File Import Listener">
<schedule>
<second>0</second>
<minute>0</minute>
<hour>4/3</hour>
</schedule>
<java>com.technia.tif.enovia.scheduling.job.StartStopServiceActivator</java>
<args>
<arg name="match" value="DirectoryListener:*import_json.xml*" type="string"/>
<arg name="mode" value="toggle" type="string" />
</args>
</job>
</group>
</timetable>
Read this document for more details.
There is a new configuration option available to prevent an ENOVIA/3DExperience job activator from being started when the TIF server is started up.
This is controlled via module.properties
using the below syntax for the default queue listener:
defaultQueueListener.start = false
...
or for another queue listener:
queueListener.0.start=false
...
If a queue is configured to not start on startup, you need to either manually start it from the Admin UI or ensure that you have a scheduled task that will start it at a certain time.
Below is the list of fixed bugs as of this release.
Issue No | Description |
---|---|
931 |
Reply handler configurations are not visible in the configuration editor within the Admin UI. |
943 |
Admin UI inaccessible during long running REST call |
945 |
Payload statistics not calculated correctly for migrated data that lacks some information |
946 |
Resend action in Jobs view fails when Elastic Search query mode is enabled |
947 |
Create PDF: The left/right/bottom margins defined in the Excel options were mixed up. |
948 |
Resolve action modifies job’s server instance information |