15 April 2020

1. General

1.1. V6R2020x Support

3DEXPERIENCE 2020x is supported.

2. Core

2.1. Theme

To make TVC user interface more aligned with 3DExperience platform, TVC provides 2015xOOTB theme and this has to be configured manually in init param as shown -

<init-param>
    <param-name>tvc.core.theme.current</param-name>
    <param-value>v6r2015xootb</param-value>
</init-param>

From this release 2015xOOTB will be default theme for enovia 2015x and above. If this need to be changed, it can be done using parameter tvc.core.theme.current as shown above, for more details on theme see this section

image
Figure 1. Default TVC theme aligned with 3DExperience

3. Structure Browser

3.1. Service Toolbar Actions

It is relatively simpler transition to a TVC structure browser for table views like EBOM and utilize all built-in features of structure browser which adds good business value and provide improved end-user experience. However, it also becomes necessary to create toolbar commands in the TVC structure browser to perform actions available in 3DExperience and some action like create and add change objects may involve complex and unique business logic. This will require rewriting complex business logic already available in 3DExperience into TVC, which can then be called from the TVC structure browser toolbar

With service toolbar actions it is possible to reuse 3DExperience business logic directly in TVC commands. 3DExperience business logic present in JPO, JSP, service and java class can be directly called from TVC command using different URL parameters. This is explained in detail in the below sections.

For example, existing 3DExperience service can be called from TVC command to create a physical product in the 3DDashboard’s Structure Editor using TVC view.

<?xml version="1.0" encoding="UTF-8"?>
<Command>
    <Label>tvc.ups.physicalproduct.component.v5</Label>
    <URL action="invokeService" submit="true">
        <Param name="config" value="tvc:service:ups:classic:18x/CreateConnectPartV5.xml" />
        <Param name="resultExpression" value="id" />
        <Param name="from" value="true" />
        <Param name="refreshBehavior" value="insert" />
    </URL>
    <RowSelectType>one</RowSelectType>
    <TargetLocation>tableHiddenFrame</TargetLocation>
    <Image>${ROOT_DIR}/webapps/ENOCollabSharingCmds/assets/icons/32/I_3DPart.png</Image>
</Command>
image
Figure 2. Creating physical product in 3DDashboard’s Structure Editor using TVC view

Similarly, Enovia Java class and JPO can be called to create change request and connect to parts present in EBOM table.

<Command>
    <Label>Create Change Request Create Process</Label>
    <URL action="invokeJPOServiceAction" target="tableHiddenFrame" submit="true">
        <Param name="TypeActual" value="Change Request" />
        <Param name="Policy" value="Change Request" />
        <Param name="Vault" value="eService Production" />
        <Param name="program" value="enoECMChangeRequest" />
        <Param name="function" value="createChangeRequest" />
        <Param name="refreshBehavior" value="refreshRows" />
        <Param name="javaClass" value="com.dassault_systemes.enovia.enterprisechangemgt.common.ChangeRequest" />
        <Param name="javaMethod" value="connectAffectedItems" />
    </URL>
    <RowSelectType>multiple</RowSelectType>
</Command>

For configuration details please visit Service Toolbar Actions

3.2. Excel Export

After exporting a structure table in Excel format, the Group/Ungroup icon ( + sign ) was displayed near to child part which made users scroll to the bottom for collapsing. Now, the Group/Ungroup icon ( + sign ) will be displayed near to parent part which makes it easier to collapse/expand structure and keep track of nodes.

image
Figure 3. Excel Export

4. File Manager

4.1. Process Steps

Process steps is a new framework, which is used extensively in 3DEXPERIENCE from 2018x onwards. This feature does not follow common document model to render file actions and therefore restricts the use of TVC File Manager actions.

To use TVC File Manager action in Process Steps framework, we recommend overriding the service and use the common document model to generate file action links.

Following are the instructions and example code snippet:

Step 1: Override the method used to generate file actions, and use JPO emxCommonDocumentUI.

Example: Create a Custom CustomECMProcessSteps class extending ECMProcessSteps and override the method getActionLinks

package myPackage;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;

import com.dassault_systemes.enovia.ecmprocesssteps.services.impl.ECMProcessSteps;
import com.matrixone.apps.domain.util.FrameworkException;

import matrix.db.Context;
import matrix.db.JPO;

public class CustomECMProcessSteps extends ECMProcessSteps {
    @Override
    public List<String> getActionLinks(Context context, String[] objectArray) throws FrameworkException {
        List<String> stringList = new ArrayList<String>();
        try {
            Vector<String> actions = (Vector)JPO.invoke(context, "emxCommonDocumentUI", objectArray, "getDocumentActions", objectArray, Vector.class);
            stringList = Collections.list(actions.elements());
            return stringList;
        } catch (Exception exception) {
            throw new FrameworkException(exception);
        }
    }
}

Step 2: Register service

package myPackage;

import com.dassault_systemes.platform.restServices.ModelerBase;
import javax.ws.rs.ApplicationPath;

@ApplicationPath("/resources/tvcProcessSteps")
public class TVCServiceModeler extends  ModelerBase {
    @Override
    public Class<?>[] getServices() {
        return new Class[] { CustomProcessStepsService.class};
    }
}

Step 3: Create a custom service to use overidden method which we have created in step one.

Example:

package mypackage;

@Path("/CustomProcessStepsService")
public class CustomProcessStepsService extends RestService {

    @Path("/getProposedChangesData")
    @POST
    @Produces({"application/json"})
    @Consumes({"application/json"})
    public Response getProposedChangesData(@Context HttpServletRequest httpServletRequest, String objectId) {
        matrix.db.Context context = null;
        Response response = null;
        ....
        if (context != null) {
			String data = "";
            try {
                ...
                // Create CustomECMProcessSteps instance
                CustomECMProcessSteps eCMProcessSteps = new CustomECMProcessSteps();
                List<MapList> list = eCMProcessSteps.getProposedChanges(context, data);
                ...
            } catch (Exception exception) {
                response = Response.serverError().build();
            }
        }
        return response;
    }
}

Step 4: Replace OOTB service call with custom service

Example: In OOTB 19x version to replace OOTB File Manager Action with TVC one, In enoECMProposedChangesView.jsp instead of calling ECMProcessStepsService service call custom service CustomProcessStepsService Modify resources/ecmProcessSteps/ ECMProcessStepsService /getProposedChangesData to /resources/tvcProcessSteps/CustomProcessStepsService/getProposedChangesData

image
Figure 4. Show the TVC File Manager Actions in Proposed Changes

5. Workflow

5.1. Assignee details for Group/Role/Multi-Users assigned task

During the workflow creation, if task is assigned to a Group or a role or multi users, Assignee details will be displayed in place of unassigned text along with group icon in task thread.

image
Figure 5. Assigned to Group/Roles/Multi Users

Some pretext can also be configured in assignee configuration by using the following configuration which will be displayed prior to Assignee details.

{
    ...

    "pretext": "Assigned to group : ",

    ...
}


{
    ...

    "pretext": "tvc.collaboration.workflow.task.assignee.pretext ",

    ...
}
image
Figure 6. Pretext for assignee details

Read more here Assignee Configuration