Original Message:
Sent: Wed June 18, 2025 08:43 AM
From: Stephen Weckesser
Subject: Searchable metadata object in FileNet
Like a parts manifest... If the existing UI can display the tree and you have the uniqueid, just put all the properties in a blob as a json and don't search them at all.
Searching in FileNet API will incur the ACL permissions overhead and too many indexes in the db will kill performance. Ignore all the comments, mine included, and do your own load testing. Take a look at msgpack.
------------------------------
Stephen Weckesser
------------------------------
Original Message:
Sent: Tue June 17, 2025 05:18 PM
From: Kiran Aithagani
Subject: Searchable metadata object in FileNet
no the front end would still be the same custom application that is interacting with the homegrown document management repository, not Content Navigator. the plan is to integrate the front end using WSI API calls, after eliminating the unwanted or least used properties , the final list has the 40 + properties and many don't really fit the FileNet System Properties to repurpose them for this use case unfortunately, but that is a great idea to avoid creating new properties
- the UI would do a search on the unique ID that creates the root node of a tree view
- then based on specific properties on each document matching the primary ID, the hierarchy is displayed, like the example I provided
- then user traverse through and pick node in the hierarchy and that particular document will be rendered on the screen ( the viewer not IBM VIEWONE HTML or anything our of the box)
------------------------------
Kiran Aithagani
Original Message:
Sent: Tue June 17, 2025 10:20 AM
From: Stephen Weckesser
Subject: Searchable metadata object in FileNet
You said "technically".. I assume most classes have far less than 40 properties.
FileNet comes with many system properties. The root Document class itself has around
40-60 "built-in" or system properties. The number will vary depending on the number
of "AddOns" you install. When conifguring the objectstore install only needed addons.
If any of your existing properties map to those out of the box properties, use them.
Date Created, Date Modified, Owner/Creator, Title, etc. That should cover the basics.
Try to eliminate any properties you do not actually need or use. Name/value pairs on
the wire are sent as XML and each property will come with a number of attributes. You
can filter the properties that will be sent in code using a property filter but things will scale
better if you keep it tight.
If you have a class with 40 searchable properties then there will be 40 columns in
the document table most of which will be null. Are you going to have 40 indexes?
If you're using Oracle, know that Oracle prefers composite Indexes and even though
it now supports single column indexes, they are often ignored and you cannot use
an index hint when you perform a search using the API. (You could create a custom
procedure or view perhaps). A table scan might be acceptable at 100k rows or 1m
rows but at some point, queries that do not use an index will eventually time out.
BTW, if using Oracle, the case insensitive flag will wrap string queries and ceate
functional indexes with to_lower which is a nice convenience.
If the classes belong to different business groups, you might be able to organize
the classes into different object stores to divide and conquer. ?
Basically, what I am advocating is that you prune what you can while you can.
Decide which properties need to be searchable. FileNet distinguishes between
searchable and selectable. Ruthlessly eliminate any properties you do not need.
Unfortunately, you cannot change the label or description when inherited, but if you have duplicate data types
with the same attributes, you could create a single generic datatype and override the label based on the classname.
Assuming you are going to use ICN as your front end, take a look at this article:
https://community.ibm.com/community/user/discussion/icn-doc-class-custom-property-label-change?hlmlt=VT
------------------------------
Stephen Weckesser