<init-param>
<param-name>tvc.core.theme.current</param-name>
<param-value>v6r2015xootb</param-value>
</init-param>
15 April 2020
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
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>
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
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.
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
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.
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 ",
...
}
Read more here Assignee Configuration