Documentation

The complete knowledge base about ARender - How to install it and how to configure it as needed

Filenet connector

Preamble

ARender 4.0 and up uses only a REST API (http) to communicate with its rendition server.

If your Websphere server does not possess the API level 2.0 (minimum) of JAX-RS, follow this procedure:

  • Disable the embedded JAX-RS engine by setting a JVM property

    com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine=true.
    
    Note
    You can set this property using the Websphere Web Admin console on the following path: Servers>WebSphere Application Servers>yourServerName
  • Then, in Server Infrastructure section:

    Java and Process Management > Process definition > Java Virtual Machine > Custom properties

    Set com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine for the name, true for the value. Description can be set to your preference.

  • One final step will be to configure the class loader for the ARender war/ear component in PARENT_LAST, following this procedure:

    • Go to the deployed ARender application > Manage Modules > ARender war.

      Class loader order: Classes loaded with local class loader first (parent last).

    • Go to the deployed ARender application > Class loader.

      Class loader order: Classes loaded with local class loader first (parent last).

Once the configuration is done, restart the web server containing ARender.

The connectors

Connectors for FileNet P8 4.x and 5.x are provided. However, a unique configuration is required regardless version.

Parameter Description
id Unique id of document version
vsId VersionSeries id allowing to fetch last version of a document
objectStoreName The name of the ObjectStore used to store the document
objectType Document type: document, folder, containerXML, mixedObjects (optional for documents)
Example

Some examples:

  • To open a document stored in FileNet P8, try:

    http://{arender_server}/ARender.html?id={345A81-KT7SK95747S-5IS8-8SK0}&objectStoreName=OS1

  • To open simultanously two documents with the mixedObjects syntax:

    http://{arender_serveur}/ARender.html?ids=doc:{345A81-KT7SK95747S-5IS8-8SK0},doc:{F64A9342-6114-4A5C-A5E1-589A2FFB159F}&objectStoreName=OS1&objectType=mixedObjects

  • To open simultanously two docments and a folder:

    http://{arender_serveur}/ARender.html?objectStoreName=OS1&ids=doc:{3DBE573A-1AC9-4B08-8CB1-8F9495619954},doc:{F64A9342-6114-4A5C-A5E1-589A2FFB159F},folder:{55714817-BDAC-4C8A-9EFB-963E4620A4E4}&objectType=mixedObjects

Note
The mixedObjects syntax is: ids=[ [ “doc” | “folder” ] “:” [ Id du document ou Folder ] [ “,"] ]+

Define the connector

As detailed below, the connector is composed of two parts. First one is designed for the access of an ObjectStore and its documents. Second one is responsible to manage metadata fetching.

<bean id="fileNetUrlParser" class="com.arondor.viewer.filenetce.FileNetURLParser">
    <property name="objectStoreProvider">
        <ref bean="objectStoreProvider" />
    </property>
    <property name="documentPropertiesConfiguration">
        <ref bean="documentPropertiesConfiguration" />
    </property>
</bean>

Définition

Add following lines to registeredURLParsers property of servletDocumentService bean:

<ref bean="fileNetURLParser"/>

Document access

Regarding authentication mode, two provider types can be used to provide document access.

Sharing FileNet session

In the same JVM (or at least in a shared JAAS context) using IIOP protocol:

Parameter Description
ceConnectionUri URI of Content Engine using the IIOP protocol
<bean id="objectStoreProvider"
    class="com.arondor.viewer.filenetce.helper.impl.JaasObjectStoreProvider">
    <property name="ceConnectionUri" value="iiop://localhost:2809/FileNet/Engine"/>
</bean>
Note
It implies that a FileNet session has been previously instanciated.

Technical account

Otherwise, FileNet web services can be consumed using:

Parameter Description
ceConnectionUri URI of Content Engine based on FileNet WS (MTOM ou DIME)
login Username of technical account
password Password of technical account
<bean id="objectStoreProvider"
    class="com.arondor.viewer.filenetce.helper.impl.LoginPasswordObjectStoreProvider">
    <property name="login" value="{p8_identifiant}"/>
    <property name="password" value="{p8_password}"/>
    <property name="ceConnectionUri" value="http://{content_engine_server}/wsi/FNCEWS40MTOM/"/>
</bean>
Note
This access type implies that user is not authenticated at application loading. So, security constraints must be disabled in web.xml configuration file.

Configuration the annotation format to be saved in FileNet

Save annotations as XML FileNet format

Default configuration, nothing to do here.

Save annotation as XFDF

Simply add the line below to the following file:

arender-server-custom-filenet.properties (located in WEB-INF/classes)
    arender.server.default.annotation.accessor=xfdfAnnotationAccessor

Metadata fetching

<bean id="documentPropertiesConfiguration"
    class="com.arondor.viewer.filenetce.config.DocumentPropertiesConfiguration">
</bean>

Include system metadata

By default, no system metadata is fetched. In order to force it, you need to add/edit includedSystemProperties property.

<property name="includedSystemProperties">
    <list>
        <value>DateCreated</value>
        <value>DateLastModified</value>
        <value>Creator</value>
        <value>LastModifier</value>
    </list>
</property>

Exclude custom metadata

By default, all custom metadata are fetched and displayed. In order to force exclusion of some ones, you need to add/edit excludedCustomProperties property

<property name="excludedCustomProperties">
    <list>
        <value>FactureRef</value>
    </list>
</property>
Note

If the following error appears: No LoginModules configured for FilenetP8WSI, an additional configuration is required:

  • Save the file jaas.conf.WebSphere in a folder on the WAS server

  • Add the following parameter to ARender’s JVM:

    -Djava.security.auth.login.config=[Path_to_jaas_file.conf.WebSphere]

    How to:

    • Navigate to the menu Server and select the related server.
    • open Java and Process Management and click on Process Definition.
    • In Start command arguments add the argument.

From an user interface

IBM Workplace & Workplace XT

In order to define which document types have to be opened within ARender, you need to edit the configuration file content-redir.properties (for Workplace XT, in folder: C:\Program Files\FileNet\Config\WebClient) as follow:

content-redir.properties
{mimeType}=/../ARender/ARender.html?{JSP_QUERY_STRING}

IBM Content Navigator

A specific plugin has been implemented to integrate ARender within ICN.

Note
ICN connector uses mixedObjects syntax.

To use it, follow the instruction below:

  1. Connect to Content Navigator.

  2. Go to the ‘Administration View’ and click on ‘Plug-ins’ image

  3. Click on the button “New Plugin-in”. image

  4. Enter the JAR file path and click on ‘Load’. (Example: C:\sources\ARenderHMI*arondor-arender-navigator-plugin-2.2.1.jar) image

  5. Fill ‘ARender context root’ field with ARender’s address (hots + port + context root). Like below: image If you want the plugin to automatically detect the host name and replace it in the configuration when called, use the keyword --arender.hostname--.

  6. Click on the ‘Save’ button.

  7. Click on Edit and check that the plugin is correctly installed. image

  8. Map the new viewer. Go to ‘Viewer Maps’ image The default map is called ‘Default viewer map’ and is not editable.

  9. Click on it and then click on copy. image

  10. Click on “New Mapping”. Then select ‘Filenet Context Manager’ for the Repository type. Then select ARenderPluginViewer in the list of viewer available. image

  11. You can now choose the MIME Types you want to open with ARender, then click on OK. image

  12. To use this Map, you just need to link it to a Desktop (Desktop tab -> Edit the desktop -> Select the Map in the Viewer Map list) image

Advanced features

Document Builder with advanced merge of metadata

Description and configuration

For each input Document Builder FileNet document :

  • If all documents share the same property, with the same value
    • The property and the value are propagated
  • If the property is common to all documents, but the values are diverging
    • The property is propagated, but the value is zero-ed with the following logic :
      • String types will receive an empty String value
      • Integer/Double types will be set to 0
      • Date types will be set to the current Date of the Builder operation
      • Boolean types will be false
      • List types will be populated of a List of the correctly typed single element (empty lists not supported by the engine)
  • If the property is existing in a single document
    • By default, the property will not be propagated, unless specified by its SymbolicName in the configuration

In order to propagate a unique property by its SymbolicName, you can add those in the following ARender HMI property, in a comma separated list.

arender.server.filenet.document.builder.update.first.document.properties.advanced.updater.propagation.symbolic.names

How to activate the advanced merge of metadata

In order to activate this feature you will have to edit the following ARender HMI property :

arender.server.filenet.document.builder.update.first.document.properties.copy.bean.name

The two possible values are legacyFileNetPropertiesCopy (to keep the legacy behavior, by default), or advancedFileNetPropertiesMerger to active the new feature.

If you want to have the same behavior as well when updating a document content (and not only when creating document) you will have to add the following bean to the configuration :

arender-custom-server-integration.xml

    <bean id="filenetDocumentUpdaterNewVersion"
          class="com.arondor.viewer.filenetce.helper.impl.FileNetDocumentUpdaterNewVersion">
        <property name="fileNetPropertiesUpdater"
                  ref="${arender.server.filenet.document.builder.update.first.document.properties.copy.bean.name}"/>
    </bean>

By default, this bean does not possess a fileNetPropertiesUpdater to keep its legacy behavior. With this configuration, the bean will follow the same behavior as the one configured for creating new documents.

Forbid document creation/update in specific ObjectStores, by IDs

In order to disable the creation or update of documents from some specific FileNet ObjectStores, we added a configuration so that you can list (separated by commas) theirs IDs :

arender.server.filenet.document.builder.unauthorized.object.store.ids=

The IDs listed in the configuration property will be protected from any Document Builder operation, and throw an exception when trying to do one regarldess.

By default, this list is shipped empty, to keep legacy behavior.

Configuration of watermark display

You can configurate the watermark display depending on user group and/or Filenet document class.

To activate watermark depending on groups and/or document classes, you need to add this property :

arender-server-custom-filenet.properties (Located in WEB-INF\classes)
arender.server.watermark.display.provider=fileNetDisplayWatermarkProvider

To display watermark to all user in certain groups :

arender-server-custom-filenet.properties (Located in WEB-INF\classes)
#Comma-separated values that indicates which FileNet groups should have the watermark defined in arender.watermark.bean.name
arender.server.watermark.filenet.group.with=

To not display watermark to all user in certain groups :

arender-server-custom-filenet.properties (Located in WEB-INF\classes)
#Comma-separated values that indicates which FileNet groups should not have the watermark defined in arender.watermark.bean.name
arender.server.watermark.filenet.group.without=

Warning
Both properties can not be used together

To display watermark depending on Filenet document class :

arender-server-custom-filenet.properties (Located in WEB-INF\classes)
#Comma-separated values that indicates which FileNet document classes should have the watermark defined in arender.watermark.bean.name
arender.server.watermark.filenet.document.class.with=