21 March 2016

1. Configuring the File Manager

This chapter describes what and how the TVC File Manager can be configured.

1.1. What to Configure

Following items are configurable on a global basis for the TVC File Manager. The table below lists all the items, and describes the purpose of those. In this chapter we will describe where these settings are defined.

Configuration Item Description

Enabled

Defines if the file manager should be enabled or disabled.

The file manager could be temporarily disable by easily change this parameter.

Domain

This property can be used to distinguish one environment from another.

This mechanism allows the client to separate the files checked-out from one environment to another. Meaning that the client will have separate "lists" of files, depending on which application it currently is connected to.

This property is typically a string, which uniquely differentiates one environment from another.

If this property is left unspecified, the TVC File Manager will generate a value based upon the context-path of the URL.

Use the Built In Triggers

This property can be used to disable the built in triggers.

The built in triggers are used for transferring basic meta data from the document object to the file (MS Office Documents), and for CDM environments; the built-in triggers will require the user to enter a "Reason For Change" comment upon check-in.

In some cases, these triggers are not suitable for you – and you will then write your own triggers (or disable the triggers completely); hence this flag is a convenient way to disable the built-in functionality.

Managed Types

This property is used to define what kind of types, which the TVC File Manager will handle. I.e. if the user is looking at an object containing files, depending on the object type, the files are handled (viewed, downloaded, checked-out, updated) via the TVC File Manager or not.

The default value of this property is "type_DOCUMENTS", meaning that all objected, which type is derived from "DOCUMENTS" are handled via the TVC File Manager.

Non Managed Types

This property is used to define those types, which the TVC File Manager won’t handle. I.e. there are certain objects, which contains files that never should be handled through the TVC File Manager (such as CAD Models and others).

The default types that are not managed are:

  • type_ECADModel (ECAD Model)

  • type_MCADModel (MCAD Model)

  • type_MCADModelTemplate (MCAD Model Template)

Enabled

This property can be used to force the TVC File Manager to work in a non mode, meaning that the files will always be checked-out and checked-in through the Main Collaboration Server.

NOTE: Even though the enabled flag is set to true, needs to be available and setup (otherwise mode is not used at all).

CDM Enabled

This property can be used to force the TVC File Manager to work in a non CDM (Common Document Model) compatible mode.

This can be useful when the TVC File Manager is installed in an environment, which lacks CDM support (custom applications, or pre-10.5 environments).

NOTE: If CDM has been disabled, documents will NOT be versioned according to the CDM model. Do not turn off the CDM mode, if you are using CDM within your application.

Required Roles

This property can be used to define certain roles, which a user must be assigned to in order to have access to the TVC File Manager.

By default, all users will have access to the TVC File Manager (there is another mechanism mentioned later, which can be used to disable access for certain users).

Excluded Formats

This property can be used to exclude files of a certain format. E.g. if a file has a format, which is configured to be excluded, the file will not show up in the user-interface and the user is not able to download it.

Client Settings

See this chapter for further details.

1.2. Where to Make the Configurations

Configuring the TVC File Manager component can be done through three different approaches. They are listed below.

  1. Through an XML file, called TVCFileManager.xml, stored under WEB-INF/classes (or somewhere else available in the classpath, meaning that the class loader can find the resource).

  2. Through a Page object within the database, called TVC File Manager. The format of the content in such a page object is same as when using the TVCFileManager.xml file.

  3. Via init-parameters to the TVC Servlet definition in "web.xml"

    Not all settings can be configured through using the init-parameters.

The configuration is retrieved the first time a user logs in to the application, after a restart of the application server. The order of how the file manager tries to resolve the configuration parameters are:

  1. All parameters set through init-parameters are set first

  2. Secondly, if there is a XML file within the classpath (with the name as above), this file is parsed and will/might override the settings defined as init-parameters.

  3. Last, if there was no XML file within the classpath, the file manager will check if there is a Page object in the data base. If so, this file is parsed and will/might override the settings defined as init-parameters.

It is recommended to do the configuration through the XML file, especially when you are running ENOVIA in RMI mode. As in this case, the JPO’s are executed on the RMI server, and the configuration must be made available for that JVM process. Hence, the XML file needs to be in the MX_CLASSPATH as well.

1.2.1. Configure via Init Parameters

Init parameters are defined within the deployment descriptor ("web.xml" file) for your application. In that file, you should have a section for the TVC Servlet (if not, please advice the Installation Guide for TVC).

Within that section, init-parameters are added as the example below:

<servlet>
    <servlet-name>tvcaction</servlet-name>
    <servlet-class>com.technia.tvc.core.TVCServlet</servlet-class>
    <init-param>(1)
        <param-name>the name of a parameter</param-name>
        <param-value>the value of a parameter</param-value>
    </init-param>
    ...
</servlet>
1 Each parameter has a separate section, which is added just after the <servlet-class> definition.

The following table shows the mapping between the configuration item and the parameter name,

Configuration Item TVC Init Parameter Name Type of Value Default Value

Enabled

tvc.office.enabled

Boolean

TRUE

Domain

tvc.office.server.domain

<unspecified>

Use the Built In Triggers

tvc.office.server.enableBuiltInTriggers

Boolean

TRUE

Managed Types

tvc.office.server.managedTypes

Comma separated list of type names (symbolic or not)

type_DOCUMENTS

Non Managed Types

tvc.office.server.nonManagedTypes

Comma separated list of type names (symbolic or not)

type_ECADModel

type_MCADModel

type_MCADModelTemplate

Enabled

tvc.office.server.fcsEnabled

Boolean

TRUE

CDM Enabled

tvc.office.server.cdmEnabled

Boolean

TRUE

Required Roles

tvc.office.server.requiredRoles

Comma separated list of role names (symbolic or not)

<unspecified>

Excluded Formats

tvc.office.server.excludedFormats

Comma separated list of format names (symbolic or not)

<unspecified>

Append "jsessionid" URL parameter

tvc.office.server.appletArchive.appendSessionId

Boolean

TRUE

Additional parameters related to the client settings are described later

1.2.2. Configured via XML

Either if the File Manager is configured via a file found in the classpath or through a page object, the format of such is the same. The example below illustrates the format of such file.

<FileManager enabled="true" useBuiltInTriggers="true">
    <CDM enabled="true"/>
    <ManagedTypes>
        <Type name="type_DOCUMENTS"/>
    </ManagedTypes>
    <NonManagedTypes>
        <Type name="type_ECADModel"/>
        <Type name="type_MCADModel"/>
        <Type name="type_MCADModelTemplate"/>
    </NonManagedTypes>
    <RequiredRoles>
        <Role name="role_GlobalUser"/>
        <Role name="role_AnotherRole"/>
    </RequiredRoles>
    <ExcludedFormats>
        <Format name="format_ZIP"/>
        <Format name="format_AnotherFormat"/>
    </ExcludedFormats>
</FileManager>

1.3. Disabling the TVC File Manager for Certain Users

The File Manager can be disabled for certain users if wanted.

By simply setting a property on the users Person admin object, this will tell the TVC File Manager to be disabled for such a user.

The code below illustrates how do to so from MQL.

set context user creator;
mod person "Test Everything" add property preference_TVCOfficeIntegrationEnabled value false;

When the File Manager is installed, a couple of commands are added to the database which can be used for allowing the user to disable / enable the usage of the File Manager. These commands are by default not added to any menu.

The names of these commands are:

Command Name Description

TVC OI Enable

Will enable the file manager

TVC OI Disable

Will disable the file manager

TVC OI Toggle Enabled status

Will enable or disable the file manager

As of TVC 6.4.1, if a user is logging in to the system using a non-supported OS, the file manager is disabled for the current session.

1.3.1. TVC File Manager – Behaviour when Disabled

When the TVC File Manager has been disabled for a user, the user will not work with the files through the File Manager client. However, the JPO’s that are generating the "file-actions" in the user interface will still call the TVC logic for creating the images/actions.

It is however possible to instruct the TVC File Manager to skip generating those actions, and let the default JPO’s do it. To configure this behavior, either modify the init-parameter as below (default is FALSE) or configure that through the XML configuration object.

<init-param>
    <param-name>tvc.office.ui.useBaseJPOWhenDisabled</param-name>
    <param-value>TRUE</param-value>
</init-param>

Or

<FileManager useBaseJPOWhenDisabled="true">
    ...
</FileManager>

1.4. Custom Triggers

The TVC File Manager allows using custom triggers to perform actions upon certain events. There are several different events, which a trigger can act upon. Those events are:

Event Description

On Download

Once a file has been requested for download (download is a general notion and might mean download-, view- or checkout a file. Hence, all of these actions involves downloading a file)

The trigger can be used for several purposes, for example:

Deny the user to download the file (an additional security level than the access model in ENOVIA), e.g. abort the download action.

Set custom properties on a document. Note: The trigger will just generate instructions for the client; the actual property transfer takes place on the client machine via the TVC File Manager client.

Perform additional logging, i.e. keep track of who are downloading certain files.

After Download

Once a file has been downloaded to the client, the TVC File Manager client will notify the server about this, and that will trigger this event.

Implementing logic for such an event could be useful when extended logging is needed.

On Upload

Before a file is being uploaded, the server will trigger this event.

The trigger can be used for:

Deny the user to upload (or check-in) a file. (An additional security level than the access model in ENOVIA).

Informing the client about required and optional metadata to be filled in. An example is for CDM document, where the built-in triggers will require the user to fill in a "Reason for Change" comment.

Perform additional logging.

On Validate Upload

Before the file is uploaded, and a previous event has required the user to fill in certain metadata, this event is fired in order to validate the entered data.

If the trigger doesn’t accept the entered metadata, the user will be informed and required to correct the entered values. This trigger will be launched over and over again, until the user has entered proper values.

After Upload

After the file has been uploaded to the server (either the server or the server), this event is fired.

Typically, this event is used for

Updating metadata based upon the user input, or the return properties. For example, the built-in triggers will for CDM controlled documents set the "Reason for Change" comment.

Perform additional logging.

1.4.1. Registration of Triggers

The triggers are registered within the XML file mentioned in this chapter. If the configuration of the TVC File Manager were made through the init-parameters, you will need to create an XML file containing the trigger part only. How the trigger section is defined, is illustrated below.

<FileManager ...>
    ...
    <Triggers>
        <Trigger name="My Trigger" className="my.package.MyTrigger"/>
        <Trigger name="Another Trigger" className="my.package.AnotherTrigger"/>
    </Triggers>
</FileManager>

Each trigger defined, has its own Trigger element inside the Triggers element. On the Trigger element, you must define the className attribute, and the value must contain the fully qualified name of a Java Class that extends from the abstract class "com.technia.tvc.office.server.trigger.Trigger". This chapter describes how such a Trigger class could be implemented.

Moreover, the Trigger element allows nested elements that can be used to mask when this trigger will be used. Se example below:

<FileManager ...>
    ...
    <Triggers>
        <Trigger name="Trigger 1" className="my.package.Trigger1"> (1)
            <Matches fileName="*.xls"/>
            <Matches fileName="*.ppt"/>
            <Matches fileName="*.doc"/>
        </Trigger>

        <Trigger name="Trigger 2" className="my.package.Trigger2"> (2)
            <Matches onlyIfCDM="true" format="format_generic">
                <Matches fileName="*.xls"/>
                <Matches fileName="*.ppt"/>
                <Matches fileName="*.doc"/>
            </Matches>
        </Trigger>

        <Trigger name="Trigger 3" className="my.package.Trigger3"> (3)
            <Matches policy="policy_CADDrawing,policy_MyPolicy"
                     type="type_CADDrawing,type_MyType"
                     role="role_GlobalUser,role_CustomRole">
                <Matches fileName="*.xls"/>
                <Matches fileName="*.ppt"/>
                <Matches fileName="*.doc"/>
            </Matches>
        </Trigger>
    </Triggers>
</FileManager>

The examples shown above, illustrates the capabilities of how the Matches element could be used. These examples might not be realistic, but they show how they could be used.

As seen, the Matches element can be nested in arbitrary levels. Each level is satisfied, if at least one Matches element evaluates to true.

1 The trigger will be executed, if the filename ends with "xls", "ppt" or "doc".
2 The trigger will be executed only for CDM documents, and if the file format is generic, and if the file ends with either "xls", "ppt" or "doc".
3 The trigger will be executed if the policy for the current document object is either "CAD Drawing" or "My Policy" and the type of the document object is (or derived from) either "CAD Drawing" or "My Type" and the user is assigned to either the "Global User" or "Custom Role" roles and the name of the file either ends with "xls", "ppt" or "doc".

1.4.2. Writing a Custom Trigger

As mentioned earlier, a custom trigger must derive from the abstract class "com.technia.tvc.office.server.trigger.Trigger". The code below shows the methods that could be implemented.

You don’t need to implement all methods, just select those that are needed.
package mypackage;

import com.technia.tvc.office.server.trigger.Trigger;
import com.technia.tvc.office.server.trigger.TriggerAbort;
import com.technia.tvc.office.server.trigger.OnDownloadInput;
import com.technia.tvc.office.server.trigger.AfterDownloadInput;
import com.technia.tvc.office.server.trigger.OnUploadInput;
import com.technia.tvc.office.server.trigger.ValidateUploadInput;
import com.technia.tvc.office.server.trigger.AfterUploadInput;

public class MyTrigger extends Trigger {
    public void onDownload(OnDownloadInput input) throws TriggerAbort {
    }
    public void afterDownload(AfterDownloadInput input) {
    }
    public void onUpload(OnUploadInput input) throws TriggerAbort {
    }
    public void onValidateUpload(ValidateUploadInput input) {
    }
    public void afterUpload(AfterUploadInput input) {
    }
}

Those methods that can abort a transaction, has in its signature defined that the TriggerAbort exception could be thrown.

Each of the interfaces provided as argument to the trigger methods (ending with *Input), is derived from the interface TriggerInput. The chapters below, shows the available methods on all classes and interfaces used around the trigger execution.

Never try to start, abort or commit any ongoing transaction on the matrix.db.Context object. This is handled automatically by the TVC File Manager framework. If doing so it will results in unexpected behavior.
If you need a reference to the Context (matrix.db.Context) object, there is a method in the Trigger class called getContext() that gives you that.

All classes and its related methods involved in the execution of a Trigger are listed below. Note: In some cases, each class/interface might have more methods than shown in the table below. Do not use any other method than those mentioned below.

Class Name Description

TriggerInput (com.technia.tvc.office.server.trigger)

The TriggerInput interface contains methods to retrieve information about the document object and the file currently being handled. This interface has the following methods

Methods:

ObjectInfo getObjectInfo();
FileInfo getFileInfo();

ObjectInfo (com.technia.tvc.office.common)

The ObjectInfo class holds information about the document object, which the files belongs to. There are several methods available in order to retrieve metadata on this object.

Methods:

Attributes getAttribute(java.lang.String)
AttributeInfo getAttributes()
String getCurrent()
String getDescription()
String getLocker()
Date getModified()
String getName()
String getObjectId()
String getOriginated()
String getPolicy()
String getRevision()
String getType()
String getVault()
boolean isLocked()

Attributes (com.technia.tvc.office.common)

The Attributes class holds a number of AttributeInfo instances, each representing an attribute.

Methods:

AttributeInfo getAttribute(String attributeName)
Iterator iterator();

AttributeInfo (com.technia.tvc.office.common)

The AttributeInfo class represents an attribute.

Methods:

String getName()
String getValue()
int getType()

FileInfo (com.technia.tvc.office.common)

The FileInfo class represents the actual file. Methods to retrieve information about the file are available, and also in those cases when the file is related to another business object (than the ObjectInfo represents) the object id of such object could be retrieved.

Methods:

String getFileName()
String getFormat()
String getObjectId()
String getVersion()

OnDownloadInput (com.technia.tvc.office.server.trigger)

The input provided to the trigger method called onDownload.

Methods:

void addSetProperty(PropertyInfo property)

PropertyInfo (com.technia.tvc.office.common)

Represents a property that will be transferred from or to a MS Office document.

Constructors:

PropertyInfo(String name, boolean value)
PropertyInfo(String name, boolean value, boolean readOnly)
PropertyInfo(String name, Date value)
PropertyInfo(String name, Date value, boolean readOnly)
PropertyInfo(String name, double value)
PropertyInfo(String name, double value, boolean readOnly)
PropertyInfo(String name, int value)
PropertyInfo(String name, int value, boolean readOnly)
PropertyInfo(String name, Object value, int type)
PropertyInfo(String name, Object value, int type, boolean readOnly)
PropertyInfo(String name, String value)
PropertyInfo(String name, String value, boolean readOnly)

Methods:

String getName()
Int getType()
Object getValue()

AfterDownloadInput (com.technia.tvc.office.server.trigger)

The input provided to the trigger method called afterDownload

<NO METHODS IN THIS VERSION>

OnUploadInput (com.technia.tvc.office.server.trigger)

The input provided to the trigger method called onUpload

Methods:

void addUserInput(InputFieldInfo input)

InputFieldInfo (com.technia.tvc.office.common)

Contains information regarding a user input field that is required / optional for a user to fill in before uploading a file.

Methods:

int getCols()
int getRows()
String getErrorMessage()
String getId()
String getLabel()
int getType()
Object getValue()
boolean isRequired()
void setCols(int)
void setErrorMessage(String)
void setId(String)
void setLabel(String)
void setRequired(boolean)
void setRows(int)
void setType(int)
void setValue(Object)

ValidateUploadInput (com.technia.tvc.office.server.trigger)

The input provided to the trigger method called onValidateUpload.

Methods:

UserInput getUserInput();

UserInput (com.technia.tvc.office.common)

Holds all user input fields.

Methods:

List getFields()
InputFieldInfo getFieldWithId(String)
boolean hasError()
boolean hasFields()
boolean isSatisfied()

AfterUploadInput (com.technia.tvc.office.server.trigger)

The input provided to the trigger method called afterUpload.

Methods:

List getReturnProperties()
UserInput getUserInput()

1.4.3. Using JPO for Setting Document Properties

In addition to registering an ordinary Java class as trigger, one can instead configure the TVC File Manager to use a JPO that generates the properties that should be propagated to the document.

This is configured as below:

<FileManager>
    ...
    <Triggers>
        <JPOTrigger program="MyPropertyHandler" get-method="getProperties">
            <Matches fileName="*.doc"/>
        </JPOTrigger>
    </Triggers>
</FileManager>

You have to specify the "program" attribute and "get-method" attribute to match your JPO program / method. The "get-method" property represents the method within your JPO that returns the properties.

The method being executed must return a java.util.Map containing string keys representing the names of the property being transferred. The value can be of any type in the following list:

  • java.lang.String

  • java.lang.Boolean

  • java.lang.Integer

  • java.lang.Double

  • java.lang.Float

  • java.lang.Long

  • java.util.Date

When the JPO argument is unpacked, you will get a java.util.Map, containing information about the document / file being handled. This map contains following:

objectId

The id of the object

type

The type of the object

name

The name of the object

revision

The revision of the object

current

The current state of the object

policy

The policy of the object

vault

The vault for the object

fileName

The name of the file

format

The format

fileSize

The file size

lockRequested

True, if the object is being locked

cdmObjectId

The object id of the CDM main object

title

The title of the CDM main object

version

The version

activeVersion

The version of the active version

latestVersion

The version of the latest version

1.4.4. Transfer of Properties to non OLE-2 Documents

By default, the built-in triggers will only provide properties if the document that is being downloaded is a so called OLE-2 document (actually, only Microsoft Office files are treated as OLE-2 documents).

As of TVC 2011.3.0, a new feature is added that make it possible to write properties for other files than OLE2 documents.

This behavior is enabled by defining a trigger that is run on other files than "doc, docx, xls, xlsx, etc."

The difference in that case is how the properties are managed. In OLE2 documents, the properties are part of the actual file itself, while in other cases the properties are stored in a separate file in the same folder as the file is being checked-out into.

The properties file will have the same name as the file being checked out + an additional suffix consisting of ".tvcprops.xml". For example, if the user is checking out a file called "Test Document.pdf" and his download folder is set to "c:\ENOVIA Files", then an additional file called "Test Document.pdf.tvcprops.xml" is created within the "c:\ENOVIA Files" folder (in case when the server has been configured to propagate properties to .PDF files).

The format of the properties file is XML, and follows this syntax:

<properties>
    <property name="name of property" readOnly="true | false" type="">
        <value>the value</value>
    </property>
    ...
</properties>

The type attribute is an integer, whose values can be:

Type Value Data Type

0

Unknown data type

1

Boolean

2

Timestamp

4

Integer

8

Real

16

String

This can also be disabled by specifying either an "init-parameter" or through the TVCFileManager.xml file:

<init-param>
    <param-name>tvc.office.client.managePropertiesInSeparateFile</param-name>
    <param-value>FALSE</param-value>
</init-param>

Or

<FileManager ...>
    ...
    <Client managePropertiesInSeparateFile="false" ...>
    ...

1.4.5. Built-in Triggers

The built-in triggers are used for the purposes listed below:

  • Transfer properties from the document object including information about the current user, into the OLE-2 document.

    • Only valid for Microsoft Office files

  • Require a reason for change upon check-in of a new version (CDM mode).

  • Transforming images being checked in to business objects of type "Image Holder" or "Image", into the various formats (mxThumbnail Image, mxSmall Image, mxMedium Image, mxLarge Image).

  • Letting the user select format when checking-in new files

    • NOTE: This trigger is by default disabled. To enable, see the table below for details.

There are some additional "init-parameters" that can be used to configure the behaviour of the built-in triggers.

TVC Init Parameter Name Type of Value Default Value Description

tvc.office.server.enableBuiltInTriggers

Boolean

TRUE

Can be used to completely disable the built-in triggers.

tvc.office.server.builtInTrigger.transferForActiveVersionOnly

Boolean

TRUE

If properties should be transferred to the active version only.

tvc.office.server.builtInTrigger.requireCheckinReason

Boolean

TRUE

Whether or not the check-in reason comment is required to have.

tvc.office.server.builtInTrigger.alwaysRequireCheckinReason

Boolean

FALSE

Whether or not to display the check-in reason dialog when checking in a new document

tvc.office.server.enableTransformImageTrigger

Boolean

TRUE

Whether or not to convert images being checked in to Image Holder or Image objects.

tvc.office.property.prefix

String

MX

The prefix used for the properties transferred to the documents.

tvc.office.server.builtInTrigger.selectFormatEnabled

Boolean

FALSE

If enabled, users will be prompted for a format when adding new files to a document.

When Disabling the Built-In Triggers

By default in the File Manager, there is one trigger that propagates all attributes to the document and one that requests user input on upload (reason for change).

When disabling the built-in triggers, this means that the trigger that requests for a reason for change message is also disabled. If you wish to enable that trigger again, you need to apply the following to your configuration:

<FileManager useBuiltInTriggers="false">
    ...
    <Triggers>
        <ReasonForChangeTrigger/>
    </Triggers>
</FileManager>

If you want to enable the image transform trigger, then apply the following:

<FileManager useBuiltInTriggers="false">
    ...
    <Triggers>
        <ImageTransformerTrigger/>
    </Triggers>
</FileManager>

If you want to enable the default property transfer trigger, then apply the following:

<FileManager useBuiltInTriggers="false">
    ...
    <Triggers>
        <DefaultPropertyTransferTrigger/>
    </Triggers>
</FileManager>

If you want to reuse parts of the "attribute transfer" logic, you can implement a "Trigger" that extends this class:

com.technia.tvc.office.server.trigger.builtin.CDMTriggerBase

or:

com.technia.tvc.office.server.trigger.builtin.HandleDefaultProperties

1.5. Configuring the Client

The client can be configured from the server. This is done within the same XML configuration file used to configure the server behaviour. Some parameters/settings can be configured via so called init-parameters.

The subchapters describe the possible configurations that can be done and how to apply them.

1.5.1. Property Read/Write

Property write is by default enabled (if there is a trigger that defines so).

Property read is by default disabled (this can be used to transfer properties back to the server when checking in a document).

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.propertyReadEnabled</param-name>
    <param-value>false</param-value>
</init-param>
<init-param>
<param-name>tvc.office.client.propertyWriteEnabled</param-name>
<param-value>true</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client propertyReadEnabled="true | false" propertyWriteEnabled="true | false"/>
</FileManager>

1.5.2. Keep Alive Interval

The interval (in seconds) with which the client will send keep-alive requests. Default is 600s (10 minutes).

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.keepAliveInterval</param-name>
    <param-value>600</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client keepAliveInterval="600"/>
</FileManager>
This value is in seconds.

1.5.3. Check for New Versions

Defines if the client periodically should check for new versions of files that the user has downloaded. Default is true.

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.checkForNewVersions</param-name>
    <param-value>true</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client checkForNewVersions="true"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.checkForNewVersions.editable</param-name>
    <param-value>false</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client checkForNewVersionsEditable="false"/>
</FileManager>

1.5.4. Use Word to save properties

Defines if the client should save properties using Word automation (for Microsoft Word files). Default is true.

Using Word to save the properties can in some cases take some time, especially if the document is large. Disabling this will result in that the property values needs to be updated manually in Word (Typically using F9), but will result in a faster time to open the document.

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.useWordToSaveProperties</param-name>
    <param-value>true</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client useWordToSaveProperties="true"/>
</FileManager>

1.5.5. Disable Running Executables

Disable running executables. E.g. defines if to open an executable file downloaded from ENOVIA automatically. Default is true.

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.disableRunExecutables</param-name>
    <param-value>true</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client disableRunExecutables="true"/>
</FileManager>

1.5.6. Default Download Folder

Define the default download folder for the clients.

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client>
        <DefaultWorkFolder>p:\MXDownloads</DefaultWorkFolder>
        <DefaultWorkFolder platform="osx">~/MXDownloads</DefaultWorkFolder>
    </Client>
</FileManager>
This cannot be configured through init-parameters.

If the path value starts with "~/", this will be expanded to the user’s home directory. The user’s home directory is obtained from the Java system property called "user.home".

If the path doesn’t start with "~/", it can contain macros that are replaced with their corresponding environment variable from the client. For example:

<FileManager>
    <Client>
        <DefaultWorkFolder>$\{TEMP}/MXDownloads</DefaultWorkFolder>
        ...
    </Client>
</FileManager>

The above example will replace the macro ${TEMP} with the environment variable named "TEMP". Note that you should use forward slashes to separate directory names.

Ask or predefined

You can control if the default folder should be default or if the user should be asked where to save the file should be default.

Possible values

  • ask

  • predefined

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.downloadFolder</param-name>
    <param-value>ask</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client downloadFolder="predefined"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.downloadFolder.editable</param-name>
    <param-value>false</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client downloadFolderEditable="false"/>
</FileManager>

1.5.7. Use temp directory when viewing files

Enable temp directory when viewing files as default

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.useTempForView</param-name>
    <param-value>true</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client useTempForView="true"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.useTempForView.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client useTempForViewEditable="false"/>
</FileManager>

1.5.8. Delete on remove

You can configure File Manager to delete local files when removing the entry from the File Manager entry list.

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.deleteOnRemove</param-name>
    <param-value>true</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client deleteOnRemove="true"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.deleteOnRemove.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client deleteOnRemoveEditable="false"/>
</FileManager>

1.5.9. Remove after upload

You can configure File Manager to remove entries from the list after successfully completing an upload.

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.removeAfterUpload</param-name>
    <param-value>true</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client removeAfterUpload="true"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.removeAfterUpload.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client removeAfterUploadEditable="false"/>
</FileManager>

1.5.10. Hide after complete

You can configure the File Manager window to be hidden after completing a file transfer.

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.hideAfterComplete</param-name>
    <param-value>true</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client hideAfterComplete="true"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.hideAfterComplete.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client hideAfterCompleteEditable="false"/>
</FileManager>

1.5.11. Show on start up

You can control the default behaviour of the File Manager window on start up (login).

Possible values

  • active

  • always

  • never

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.showOnStartup</param-name>
    <param-value>always</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client showOnStartup="never"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.showOnStartup.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client showOnStartupEditable="false"/>
</FileManager>

1.5.12. Filename conflicts

You can control the default behaviour when there is a filename conflict when downloading a file.

Possible values

  • ask

  • overwrite

  • rename

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.filenameConflict</param-name>
    <param-value>ask</param-value>
</init-param>

Configure through "TVCFileManager.xml":

<FileManager>
    <Client filenameConflict="rename"/>
</FileManager>
Enforce configuration

You can also control if the field should be editable or not

Configured through init parameter:

<init-param>
    <param-name>tvc.office.client.filenameConflict.editable</param-name>
    <param-value>true</param-value>
</init-param>

Configured through "TVCFileManager.xml":

<FileManager>
    <Client filenameConflictEditable="false"/>
</FileManager>

1.5.13. Validation of Version upon Check-In

When the user has downloaded a document for edit, there are some situations when the user manually uses the "update" function to upload the edited file manually (e.g. not using the "check-in" feature in the file manager client).

This means that even if the file has been uploaded and a new version has been created, the user can still upload the file that originally was opened for edit, once again from the File Manager client.

In order to prevent this to happen, a mechanism has been added that verifies that there isn’t a new version created, which is validated upon check-in. When the user clicks "check-in", and a newer version exists, the following dialog will appear if a newer version exists, which allows the user to decide what to do.

image

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.validateVersionOnCheckin</param-name>
    <param-value>false</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client validateVersionUponCheckin="true | false"/>
</FileManager>

1.5.14. File Rename

When the user tries to upload a file with a different name, using the upload button in the web-ui, a warning message appears (default behaviour) in order to confirm the file rename, see screenshot below.

image

This behaviour can be configured. E.g. it is possible to disable the possibility to rename a file, enable it without the warning message or enable it but show the warning message. The latter is the default. To configure this, use one of the two options below:

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.fileRenameEnabled</param-name>
    <param-value>warn | yes | no | true | false</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client fileRenameEnabled="warn | yes | no | true | false"/>
</FileManager>

1.5.15. Allowing Check-in Multiple Files

By default, the user can select multiple files when checking in new files into a document object. This can however be changed.

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.maxFileCountOnCheckin</param-name>
    <param-value>100</param-value>
</init-param>

Configure via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client maxFileCountOnCheckin="100"/>
</FileManager>
Setting the value to -1 implies that the user can check-in as many files as wanted.

1.5.16. Preventing Bad Characters in file names

You can prevent files containing bad characters from being uploaded to the server. It will first check the Enovia OOTB setting in emxSystem.properties:

emxFramework.Javascript.FileNameBadChars

If the above property is not set it will use the TVC init parameter:

<init-param>
    <param-name>tvc.office.client.fileNameBadChars</param-name>
    <param-value>#$@&%</param-value>
</init-param>

Or configured via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client fileNameBadChars="#$@&%"/>
</FileManager>

The file manager client invokes http requests to the server. By default the JSESSION id automatically added to the request cookie. In some cases, for example when using SSO, it is useful to include the complete cookie value. This is done by using the option "all".

If the above property is not set it will use the TVC init parameter:

<init-param>
    <param-name>tvc.office.client.cookieStrategy</param-name>
    <param-value>jsession | all</param-value>
</init-param>

Or configured via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client cookieStrategy="jsession | all"/>
</FileManager>
Using the feature requires using version 1.2.0 (or later) of the TVC File Manager Native Client

1.5.18. Enabling Client Debug

It is possible to enable debugging from the File Manager client. This information can be useful for troubleshooting purposes.

The debugging is enabled by:

Configure this through an init parameter:

<init-param>
    <param-name>tvc.office.client.debug</param-name>
    <param-value>true</param-value>
</init-param>

Configure this via the "TVCFileManager.xml" configuration file:

<FileManager>
    <Client debug="true"/>
</FileManager>
Enabling the debug setting on the server affects all clients connected. An alternative way of enabling the debug from the File Manager Client is to press CTRL+D in the File Transfer window (when the window has focus).

1.5.19. Example Configuration

Below is an example configuration showing how to configure client settings.

<FileManager>
    <Client debug="false"
            propertyWriteEnabled="true"
            propertyReadEnabled="false"
            keepAliveInterval="600"
            checkForNewVersions="true"
            checkForNewVersionsEditable="true"
            useTempForView="true"
            useTempForViewEditable="true"
            deleteOnRemove="true"
            deleteOnRemoveEditable="true"
            removeAfterUpload="true"
            removeAfterUploadEditable="true"
            hideAfterComplete="true"
            hideAfterCompleteEditable="true"
            showOnStartup="always"
            showOnStartupEditable="true"
            filenameConflict="overwrite"
            filenameConflictEditable="true"
            downloadFolder="ask"
            downloadFolderEditable="true"
            disableRunExecutables="false"
            useWordToSaveProperties="true"
            validateVersionUponCheckin="true"
            maxFileCountOnCheckin="-1"
            fileRenameEnabled="true">
        <DefaultWorkFolder>p:\MXDownloads</DefaultWorkFolder>
        <DefaultWorkFolder platform="osx">~/MXDownloads</DefaultWorkFolder>
    </Client>
    ...
</FileManager>

1.6. FileManager Widget Settings

Configuring the File Manager settings for widget can be done through different approaches. They are listed below.

  1. Through PROPERTIES file, called tvc.properties, stored under WEB-INF/classes (or somewhere else available in the classpath, meaning that the class loader can find the resource).

  2. Via init-parameters to the TVC Servlet definition in "web.xml"

    Not all settings can be configured through using the init-parameters.

1.6.1. Configure via Init Parameters

Init parameters are defined within the deployment descriptor ("web.xml" file) for your application. In that file, you should have a section for the TVC Servlet (if not, please advice the Installation Guide for TVC).

Within that section, init-parameters are added as the example below:

<servlet>
    <servlet-name>tvcaction</servlet-name>
    <servlet-class>com.technia.tvc.core.TVCServlet</servlet-class>
    <init-param>(1)
        <param-name>tvc.3ddashboard.settings.useNativeFileManager</param-name>
        <param-value>true</param-value>
    </init-param>
    ...
</servlet>
1 Each parameter has a separate section, which is added just after the <servlet-class> definition.

1.6.2. Configure via tvc.properties

tvc.3ddashboard.settings.useNativeFileManager = true
Support for File Manager as a Java Applet, has not been yet supported in 3ddashboard.

1.7. File Manager extension alert for firefox

Firefox does not allow the side loading of the web extensions which fails to auto install the file manager plugin.

To address this issue, We have enabled a feature to show an alert message in firefox so that user can add the plugin manually by clicking the url available on the message. If user does not want to install the filemanager web extension, user can continue with fallback HTML UI and in that case user needs to disable the alert message by clicking on the checkbox which says Do not show this message again.

tvc.office.filemanager.extension.firefoxInstallAlert=true
Default value is set to false.
image
Figure 1. Filemanager extension alert for firefox.