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.
- Configuration
- Example
- Preview
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
- Name: FileNet Demo Authentication Connection
- Username: Admin
- Password: Password
- Host: http://ec2-52-4-181-197.compute-1.amazonaws.com
- Server Port: 9080
- Protocol: HTTP
- Repository Name: P8G6ObjectStore
- Connection Timeout: 30000
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
- FileNet Repository
- FileNet Output
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.
- Sample Document Query:
- 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)
Output Job Configuration
- Output Folder Path Cannot be root folder (/)
- Do Not File new Documents. Output Path will be ignored, no new paths will be generated
- Do not check if document is filed before adding it to a folder. Will version if the file already exists.
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
,andDELETE
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
- 3.0 and 3.1
- 3.1.1+
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++;
}
Annotations will be added as fields to the document with the name annotationX
, where X is an integer.
Move files into or out of FileNet? We can help.