Skip to main content

IBM FileNet

IBM FileNet Content Manager is a flexible, full-featured content management solution that provides the foundation for the IBMCloud Pak for Business Automation. Use it to create innovative business applications on any cloud and more effectively manage all your content, from any source. Learn more.


Authentication Connection

An Authentication Connector is required to connect to any FileNet instance. Click here for more information on setting up an Authentication Connection.

Authentication Connection Configuration

  • Name: The Authentication connector name.
  • Username: The username
  • Password: The password
  • Host: The URL or Path to connect to.
  • Server Port: The connection port (defaults to 9080)
  • Protocol: Choose between http or https (for SSL).
  • Repository Name: The name of the repository you're attempting to connect to. This is not the ID.
  • Connection Timeout: Time to wait for a connection. A value of zero waits for infinity
FileNet API

Simflofy currently leverages the FileNet P8 API v5.2.0


Discovery Connector

Discovery Instance Fields

  • Name: Unique Name for the Discovery Connection to identify it in the UI.
  • Authentication Connector: Select your FileNet Authentication Connector
  • Ignore Types : (Optional) A comma delimited list of types to ignore.

Integration Connector

Integration Connection Configuration

  • Connection Name: This is a unique name given to the connector instance upon creation.
  • Description: A description of the connector to help identify it better.
  • Authentication Connector: Your FileNet Auth Connector

Job Configuration

Repository Job Configuration

  • FileNet Query: This query will gather the document Ids to be transferred.
    • Sample Document Query: Document d WHERE d.[Creator] = "jsmith"
    • Sample Folder Query: Folder f WHERE f.This INSUBFOLDER '\4523'
    • See FileNet Query Documentation here.
  • Process Folders Tells Simflofy you are using a folder query. This will treat folders as documents, allowing you to extract metadata and transform folders in the process.
important

When choosing to process folders make sure you apply a Folder query.

  • Name Property: The property to check to set the Filename. Will default to DocumentTitle if prop is empty. (Document queries only.)
  • Query Limit: When populated, will set a limit on the number of IDs returned from a Repository query. If blank, the server default values will be used.
  • Page Size: Sets the page size for the FileNet query. Default value is 200
  • Get Versions: Retrieve document version numbers
  • Documents have multiple binaries: Check to include
  • Get Annotations: Check to include
  • Filesystem Staging Location
  • Filesystem Staging Timeout (Seconds)

Content Services Connector

The only configuration required for this connector is the FileNet authentication connection.

The methods currently supported for this connector are:

  • Create File
  • Create Folder
  • Update File
  • Update Document Properties
  • Get File Content
  • Get Document Properties
  • Delete Folder
  • List Folder Items
  • Delete Document
  • Get Permissions
  • Set Permissions
  • Delete Permissions
  • Check In
  • Check Out
  • Create Version
  • Delete Version
  • Get Version Properties
  • Get Version Content
  • List Versions
  • Revert Version

Content Services Basic Configuration

  • Connector ID: A unique identifier for this connection i.e. simflofy_demo(Alphanumeric, dashes and underscore characters only)
  • Description: The text that will be displayed on drop-downs etc. to identify this connection.
  • Type: The type of Search Connection (Solr, Mongo, Alfresco Faceted etc.)
  • Keep Connection Alive: How long until connection is expired if unused.
  • Keep Alive in Milliseconds: How long until connection is expired if unused.
  • Security Mode
  • Authentication Connection
  • Pass-through Credentials
  • Mapping Type

Managing Permissions

As of Simflofy 2.7.6, this connector also offers permissions support using the /acls content service endpoint.

  • The API supports GET,POST,and DELETE calls.
  • All endpoints require an id parameter. Ex. id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8
  • All endpoints also take the isFolder parameter, which tells the api whether the item is a file or folder. Default to false.

Simflofy has a number of default access templates for FileNet. They were created using the following tables:

Folders: Folder security levels

Files: Document security levels

Templates:

  • MODIFY_PROPERTIES
  • VIEW_PROPERTIES
  • FULL_CONTROL
  • PUBLISH_DOCUMENT
  • MAJOR_VERSIONING
  • MINOR_VERSIONING
  • ADD_TO_FOLDER
  • MODIFY_FOLDER_PROPERTIES

Read Permissions (ACLs)

Request

GET /api/repo/<connectorid>/acls?id=<id>&listAll=<listAll>&isFolder=<isFolder>

Description:

Retrieves a list of in the format of ["Grantree:Access1,Access2",..... ]

Path Parameters:

  • connectorid : The connector id of your content service connector

Query Parameters:

  • id: The repository id of the item.

Optional Parameters:

listAll: Boolean value. If the access lists falls under a default permissions sets and this is true, will list all permissions instead of template names. Default false,

isFolder: Is the item a folder? Default false.

Example

GET /api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8

Returns:

{
"results": [
"cn=P8User,O=SAMPLE:FULL_CONTROL",
"cn=P8Viewer,O=SAMPLE:VIEW_PROPERTIES"
],
"success": "true"
}

Example With CURL

curl -u admin:admin "localhost:8081/simflofy-admin/api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8" | json_pp

Write Permissions (ACLs)

Request: POST /api/repo/<connectorid>/acls?id=<id>&isFolder=<isFolder>

Description:

Adds or replaces permissions for a user/group/grantee

Preset template and the breakdown for each is found above.

If the grantee already exists, their list will be replaced with the posted access rights.

Path Parameters:

connectorid : The connector id of your content service connector

Query Parameters:

id: The repository id of the item.

Request Body:

A JSON in the format {"Grantee":"Template1,Access1,..."}.

Optional Parameters:

isFolder: Is the item a folder? Default false.

Example

POST /api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8

Body: {"cn=TESTUser,0=SAMPLE":"READ_ACL,VIEW_CONTENT,WRITE_ACL"}

Returns:

{
"results": [
"cn=P8User,O=SAMPLE:FULL_CONTROL",
"cn=P8Viewer,O=SAMPLE:VIEW_PROPERTIES",
"cn=TESTUser,0=SAMPLE:READ_ACL,VIEW_CONTENT,WRITE_ACL"
],
"success": "true"
}

Example With CURL

curl -u admin:admin "localhost:8081/simflofy-admin/api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8 -d '{%22cn%3DTESTUser,O%3DSAMPLE:%22FULL_CONTROL%22}'" | json_pp

Delete Permissions (ACLs)

Request:

DELETE /api/repo/<connectorid>/acls?id=<id>&aclId=<aclId>&isFolder=<isFolder>

Description:

Removes a grantee from the item.

Path Parameters:

connectorid : The connector id of your content service connector

Query Parameters: id: The repository id of the item.

aclId: A pipe (|) delimited list of grantees to remove.

Optional Parameters: isFolder: Is the item a folder? Default is false.

DELETE /api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8&aclId=cn%3DTESTUser,0%3DSAMPLE|cn%3DTESTUser2,0%3DSAMPLE

Returns:

{
"success": "true"
}

A GET call should not return:

{
"results": [
"cn=P8User,O=SAMPLE:FULL_CONTROL"
],
"success": "true"
}

Example With cURL

curl -u admin:admin -X DELETE "localhost:8081/simflofy-admin/api/repo/fn/acls?id=6385C1A5-EF01-45F1-86C3-FDC3C4E3B6A8&aclId=cn%3DTESTUser,0%3DSAMPLE|cn%3DTESTUser2,0%3DSAMPLE" | json_pp 

Retrieving Annotations

While annotations can be gathered from the queried documents, accessing the annotations requires a javascript task to allow them to be exported as document fields. This will change in future versions.

The following code will retrieve the annotations for each document and add each as a field

var rp = rd.getExtendedProperties().toString();

rp = rp.replace('[','').replace(']','');
print(rp);
var split = rp.split(',');
var i = 0;
for each (var r in split){
rd.addSingleField('annotation'+i,r);
i++;
}

Move files into or out of FileNet? We can help.