20 January 2023

1. General

1.1. V6R2023x support

Value Components are qualified and compatible with the 3DEXPERIENCE 2023x Platform.

2. Core

2.1. Number generator process improvement

Sometimes during a system upgrade or by other means, the number generator resets to initial number. In such case business object creation is failed because of BusinessObject with ‘type name revision’ is not unique.

With this improvement, Number Generator will keep on looking for the next available number for a specific time. In the case of AEF Number Generator, it uses the eService Processing Time Limit attribute value of related object generator while in the case of TVC Number Generator, it uses the tvc.core.numbergenerator.processingTimeLimit system property for the timeout. This behavior is disabled by default and can be enabled by using the tvc.core.numbergenerator.businessObject.check system property.

Following system properties have been introduced to control the behavior.

Property Description Default Value

tvc.core.numbergenerator.processingTimeLimit

Processing time limit for TVC Number generator to look for business object existence

60 (seconds)

tvc.core.numbergenerator.businessObject.check

To disable the business object existence check

false

2.2. Invoke Service Data Set

InvokeService data set has been introduced to create the data sets by using the 3DExperience services. It uses the service config to configure the 3DExperience web services.

It will be useful for the use cases where the 3DExperience service already exists to retrieve the data which can be consumed by different TVC and Helium components. For Example, by using the Physical products services load the data in the TVC table

Refer Service Configuration section to configure the service.

Example of service configuration:

<Service>
    <URL><![CDATA[/resources/v1/modeler/dseng/dseng:EngItem/search?$searchStr=VPMReference]]></URL>
    <Headers>
        <Header name="content-type" value="application/json" />
		<Header name="Accept" value="application/json" />
    </Headers>
	<Method>GET</Method>
    <Setting name="jsonPathExpression" value="$.member[*].id" />
</Service>

jsonPathExpression setting has been introduced for service config to extract the data from the web service result. JsonPath expressions always refer to a JSON structure in the same way as XPath expressions are used in combination with an XML document. The "root member object" in JsonPath is always referred to as $ regardless if it is an object or array.

Please refer to the JsonPath link to configure the JsonPath expression based on service result.

Example of Invoke Service data set configuration:

<DataSet xmlns="http://technia.com/TVC/DataSet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://technia.com/TVC/DataSet http://products.technia.com/tvc/schema/latest/DataSet.xsd">
    <InvokeService>
	      <config>tvc:service:tvx:common/PhysicalProducts.xml</config>
    </InvokeService>
</DataSet>
image
Figure 1. Physical products data set through invoke service

Refer Data Set for more information about data sets.

3. Graphic Reporting

3.1. Workflow

3.1.1. Retain Task Assignee

When a user does the reassign operation on a task, the assignee field is displayed as blank or filled with configured values in the assignee config. Sometimes it creates confusion for the user as it differs from the actual task assignee.

Retain config is introduced for assignee config to show the task assignees in the assignee field during task reassignment. The default value for retain setting is true which could be configured as false through a custom assignee config for any specific use case.

{
    ...

 "assignees": [
    {
        ...

        "id": "custom-assignee",
        "retain": false
        ...

    }
 ]

    ...
}

Refer Assignee Config chapter for more details.

4. Structure Browser

4.1. TVCTableSelections Dataobject Storage Optimization

TVCTableSelections dataobject is used to persist the table and column selections saved by the user.

There are two ways to store the dataobject.

  • Legacy way: We store all the information of the columns irrespective of the columns selected on the UI.

  • New way ( storage optimized way ) : We store limited information which is related to the selected columns on UI.

The new way of storing the dataobject is improved and optimized since we save only limited and relevant information which reduces the dataobject size and improves the performance.

We need to follow the New way ( storage optimized way ) of storing the data object only when there is a very large number of columns configured.

If the user has fewer columns, like 100 or fewer, then we should follow the Legacy way of storing the data object because the optimized storage will not have any impact.

If the dataobject already exists and setting is turned ON then we auto update the dataobject as per the new format.

Old way of storing TVCTableSelections dataobject -

<selections>
	<context name="tvc:pageconfig:tvx:misc/MyParts.xml">
		<table>tvc:table:tvx:enc/EBOM.xml</table>
		<wrapContent>NONE</wrapContent>
		<tables>
			<table name="tvc:table:tvx:enc/EBOM.xml">
				<profile default="true" name="Default_1">
					<vis>UOM</vis>
					<vis>Weight</vis>
					<vis>ED</vis>
					<ord n="3">Desc</ord>
					<ord n="5">UOM</ord>
					<ord n="7">ebom-progress</ord>
					<ord n="2">State</ord>
					<ord n="0">SparePart</ord>
					<ord n="1">TNR</ord>
					<ord n="4">Weight</ord>
					<ord n="6">ED</ord>
					<ord n="8">newwindow</ord>
					<orntn o="horizontal">Desc</orntn>
					<orntn o="horizontal">UOM</orntn>
					<orntn o="horizontal">ebom-progress</orntn>
					<orntn o="horizontal">State</orntn>
					<orntn o="horizontal">SparePart</orntn>
					<orntn o="horizontal">TNR</orntn>
					<orntn o="horizontal">Weight</orntn>
					<orntn o="horizontal">ED</orntn>
					<orntn o="horizontal">newwindow</orntn>
				</profile>
			</table>
			<table name="tvc:table:tvx:enc/ECOECR.xml">
				<sor a="y">Name</sor>
				<sor a="y">Rev</sor>
				<sor a="y">FN</sor>
			</table>
		</tables>
	</context>
</selections>

New way of storing TVCTableSelections dataobject -

<selections version="2">
	<context name="tvc:pageconfig:tvx:misc/MyParts.xml">
		<table>tvc:table:tvx:enc/EBOM.xml</table>
		<wrapContent>NONE</wrapContent>
		<tables>
			<table name="tvc:table:tvx:enc/EBOM.xml">
				<profile default="true" name="Default_1">
					<vis>UOM</vis>
					<vis>Weight</vis>
					<vis>ED</vis>
					<ord n="0">UOM</ord>
					<ord n="1">Weight</ord>
					<ord n="2">ED</ord>
					<orntn o="horizontal">UOM</orntn>
					<orntn o="horizontal">Weight</orntn>
					<orntn o="horizontal">ED</orntn>
				</profile>
			</table>
			<table name="tvc:table:tvx:enc/ECOECR.xml">
				<sor a="y">Name</sor>
				<sor a="y">Rev</sor>
				<sor a="y">FN</sor>
			</table>
		</tables>
	</context>
</selections>

This feature is the setting based and can be enabled by making tvc.structurebrowser.table.enableTVCTableSelectionsOptimizedStorage as true. The default value of it has been kept as false.

Once this feature is enabled, It must not be turned OFF. It does not support to go back to the legacy dataobject format from new dataobject format.

4.2. Warning/Notice messages during Promote/Demote

  • If there is any warning or notice message configured in the trigger then on promoting/demoting the objects, messages will be shown in the TVC status change popup.

  • In the case where Promote/Demote success and no configured trigger message then the popup screen will not come up.

image
Figure 2. Warning/Notice Popup

4.3. Enabling Group Header Wrap

The group headers on the structure browser are truncated by default to save space. The following global init parameter can be used to wrap the group header:

<init-param>
    <param-name>tvc.structurebrowser.table.groupHeaderWrap</param-name>
    <param-value>TRUE</param-value>
</init-param>

When tvc.structurebrowser.table.groupHeaderWrap is set to true table group headers will not be truncated but wrapped in new lines.

This parameter can only be set globally impacting all the tables.
image
Figure 3. Group Header Wrap

5. Collaboration

5.1. Responsive "My Space" Screen

On opening the "My Space" in the 3DDashboard widget or mobile screen, the user was not able to see the preview section because of less screen width.

With this feature, "My Space" screen will be fully responsive according to different device widths.

If the "My Space" screen width is less than 768px then the "My Space" screen is displayed in responsive mode. The Inbox action menu is converted into responsive sidebar menu icons, the list of inbox notifications is visible to the user and the preview section is hidden.

Once the user clicks on any notification, The preview section is visible to the user And hides the inbox notification list. There is a back icon to go back and see the list of inbox notifications. We have a sidebar icon menu on hover that expands, So the user can choose different "My Space" actions.