22 June 2023

1. Core

1.1. Page Object Properties

From this release, TVC is enabled to read system and string resource properties from Page objects. This feature is an expansion of the existing functionality of reading properties from the properties files present in web directory. This enhancement allows for more dynamic modification of properties without requiring a server restart.

To modify properties during runtime, create (or edit) the Page admin object with the same name as the properties file and update the Page content with the changed properties. Finally, clear the "TVC Clear Cache" to reflect the modifications in UI.

Refer Page Object Properties for more details.

2. Structure Browser

2.1. Configurable Column - Sort Cell Content

In this release, introducing a setting <Setting name="sortCellContent">true</Setting> to sort the cell contents populated by `configurable' column-type.

<Column>
    <ColumnType>configurable</ColumnType>
    <Expression><![CDATA[
       ....
    ]]></Expression>
    <Setting name="sortCellContent">true</Setting>
</Column>

Using the setting sortCellContent, you can decide to sort the display text in the multi-valued cell (ie. the cell with multiple rows). By default, this setting is set to "false", meaning that, it will display the cell content in the order the result returned from the database.

image
Figure 1. sorted cell content

Refer configurable Column Handlers chapter for more details about configuring Configurable columns and handling multiple cell values with hyperlinks within table column cells.

2.2. Classic Search Improvements

2.2.1. Multiple state for latest revision

TVC classic search form provides the built-in capability to search for the latest revision object using a field called RevisionField and an option called LatestRevision.

LatestRevision allows the user to define which state should be considered for identifying the latest revision. For example, in the case of Part object type, the latest released revision would mean the latest part present in the state Release. This can be configured as -

<LatestRevision policy="policy_ECPart" state="Release"/>

In some use cases, two states identify the latest object. For example in the case of Part object type, the user may want parts that are present in either release or approved state for being latest. From this release, it is possible to configure two states on LatestRevision as shown below.

<LatestRevision policy="policy_ECPart" state="Approved,Release"/>

For more details and different options to configure revision field on TVC classic search form, refer Revision Field section.

2.2.2. Classification Field

Users can configure the classification field in the TVC Classic search form to filter the data based on the classification field. The classification field can be entered by adding it to the input field or using the chooser and selecting the desired classification from the relevant classification tree. Once the user adds the value in the classification field, the search form renders all the associated attributes for the selected classification field. It will allow the user to add more attribute values for more restricted search results.

In this release, we have extended the capability of this feature by allowing users to add multiple root nodes in the classification field, hence the user can add multiple classification fields and then further user can filter the data by adding attribute values in populated relevant attribute groups. We have also enabled a setting to configure an interface name in the classification field. If no setting is added then the default interface is set as mxsysInterface

<ClassificationField id="classification">
    <Label>Classification Type</Label>
    <Library>
        <Type>type_GeneralLibrary</Type>
        <Name>Library-00000001</Name>
        <Revision>-</Revision>
    </Library>
    <Library>
        <Type>type_GeneralLibrary</Type>
        <Name>Part Library</Name>
        <Revision>-</Revision>
    </Library>
    <Setting name="interface" value="mxsysInterface"></Setting>
</ClassificationField>
image
Figure 2. classification field allows multiple root nodes

3. Graphic Reporting

3.1. Workflow

3.1.1. Autocomplete field

Support for autocomplete field type has been introduced. It predicts what the user is searching for and provides suggestions based on the characters or words they have entered so far.

As the user types a query into the search box, the autocomplete feature attempts to predict the rest of the query and suggests a list of possible search values.

Autocomplete handlers could be Built-in handlers or refer to a class’s full name which implements com.technia.tvc.core.gui.autocomplete.AutoCompleteHandler.

the Core component provides a set of built-in handlers that can be used for autocomplete handlers along with collaboration assignee autocomplete handlers.

Autocomplete config defines the configuration for autocomplete handler and selectize field configuration for autocomplete search.

{
    ...

 "fields": [
   {
        ...
		"id":"organization-autocomplete",
		"label":"Organizations",
		"type":"autocomplete",
		"autocomplete":{
			"handler":"dataset",
			"config":{
				"dataset": "tvc:dataset:tvx:enc/Organizations.xml",
				"value": "name"
			}
		},
		...
	}
 ]

    ...
}
image
Figure 3. selecting value using autocomplete

Refer Field Type Configs chapter for more details.

3.1.2. New Inbuilt Triggers

To enable automation in workflow/task operations, there are several built-in triggers available. Moreover, the following built-in triggers have been introduced to utilize the existing OOTB (Out of the Box) web services and APIs for executing complex logic.

  • invokeservice

  • invokejavaclass

Config for invokeservice trigger

Following are specific configs used by invokeservice built-in triggers.

Name Details

service

service config path. Please Refer Service Configuration section to configure the service.

updateTaskContexts

boolean, to update the Task context with return object from service.

updateWorkflowContexts

boolean, to update the workflow context with return object from service.

e.g.

 {
    ...
    "trigger":"invokeservice",
	"events":[
			"Active"
	],
	"config":{
		"service": "tvc:service:tvx:common/CreateChangeAction.xml",
		"updateTaskContexts": true,
		"updateWorkflowContexts": true
	}
    ...
 }
Config for invokejavaclass trigger

Following are specific configs used by invokejavaclass built-in triggers.

Name DataType Details

class

String

The full name of the class.

method

String

method to execute.

constructorArguments

Array

Array of constructor parameters type and value.

methodArguments

Array

Array of method parameters type and value.

returnDataExpression

String

JSONPath expression to get result data from the method return value.

updateTaskContexts

boolean to update the Task context with return object from the method.

updateWorkflowContexts

The following method and constructor values are supported.

Name Details

context

matrix DB context.

triggerresultdata

data returned from previous trigger execution.

workflowcontexts

existing workflow contexts.

taskcontexts

existing Task contexts.

e.g.

 {
    ...
    "trigger":"invokejavaclass",
	"config":{
		"class": "com.dassault_systemes.enovia.enterprisechangemgt.common.ChangeAction",
		"constructorArguments":[{
			"type": "java.lang.String",
			"value": "triggerResultData"
		}],
		"method": "connectAffectedItems",
		"methodArguments":[{
			"type": "matrix.db.Context",
			"value": "context"
		},{
			"type" : "matrix.util.StringList",
			"value": "workflowContexts"
		}],
		"returnDataExpression":"$.objIDCAMap"
	}
    ...
 }

Refer trigger Configs chapter for more details.

3.1.3. Workflow/Task Contexts UI Improvement

To enhance the readability of associated contexts when a task holds multiple contexts, the following improvements have been made:

  • Contexts are now wrapped with a box layout, providing a clear visual separation.

  • An expand/collapse capability has been introduced, allowing users to conveniently view the entire list of contexts.

  • If the context list occupies more than one line of space, an ellipsis button is displayed, indicating that the list can be expanded to view all associated context details.

image
Figure 4. Task context in details page

4. 3DDASHBOARD

4.1. Preferences to control visibility of dropzone

TVC/Helium true widgets offer the capability to set the context object for the widget and add or remove objects using the dropzone.

Widgets can be either contextual or non-contextual. The visibility of the set context and add context dropzones may vary based on the widget configuration.

To control the dropzone visibility through widget preferences, a new preference called dropzoneVisibility has been introduced for TVC/Helium true widgets.

In JSON-based configuration widgets, the dropzone visibility can also be set using the dropzoneVisibility as a key, which expects one of the following parameters as a value.

  • none

  • set_context

  • add_object

  • set_context_add_object

Following TVC system property has been introduced to set the default value for dropzone preference

Property Description Default Value

tvc.3ddashboard.dropzone.visibility

To show dropzone in widget

set_context

image
Figure 5. Dropzone Visibility Preference
image
Figure 6. Dropzone in widget