IBM FileNet: Bulk Processing using JavaScript
IBM FileNet: Bulk Processing using JavaScript
The IBM FileNet Content Platform Engine server uses the Mozilla Rhino scripting engine to execute the JavaScript.
Prerequisites for running the JavaScript examples: Content Platform Engine 5.2.0 or later
Downloading document content
This JavaScript example downloads the document content to a specified directory. Because the JavaScript code is executed on a Content Platform Engine server, the content download directory that you specify in the code must exists on the CPE server and should have write permissions
Procedure
- Open an object store and create an object store search.
- On the SQL view tab, enter the following query:
SELECT TOP 100 This FROM Document - Select Enable bulk action on the bulk action tab.
- In the Script section, click Run script.
- Copy the following JavaScript code and paste it into the Script field:
importClass(Packages.com.filenet.api.collection.ContentElementList);importClass(Packages.com.filenet.api.core.ContentTransfer);importClass(java.io.FileOutputStream);importClass(java.io.InputStream);importClass(java.lang.Byte);function OnCustomProcess (CEObject){CEObject.refresh();var ce = CEObject.get_ContentElements();if(ce.size() > 0){var ct = ce.get(0);var folderName = "D://Content/";this._downloadContent(folderName, ct);}}function _downloadContent(folderName, ct){var out = new FileOutputStream(folderName + ct.get_RetrievalName());var docLen = ct.get_ContentSize().intValue();var buf = java.lang.reflect.Array.newInstance(Byte.TYPE, docLen)var stream = ct.accessContentStream();stream.read(buf, 0, docLen);out.write(buf);out.flush();stream.close();out.close();} - Click Run. The administration console runs the query and the JavaScript action.
Deleting a document
- Open an object store and create an object store search.
- On the SQL view tab, enter following query:
SELECT This FROM Document WHERE DocumentTitle = ''
- Select Enable bulk action on the bulk action tab.
- In the Script section, click Run script.
- Copy the following JavaScript code and paste it into the Script field:
importClass(java.lang.System);importClass(Packages.com.filenet.api.property.Properties);importClass(Packages.com.filenet.api.constants.RefreshMode);function OnCustomProcess (CEObject){System.out.println("Executing Delete Document script");CEObject.delete();CEObject.save(RefreshMode.REFRESH);System.out.println("Document deleted successfully");}
- Click Run.
Fetching document properties
- Open an object store and create an object store search.
- On the SQL view tab, enter the following query:
SELECT TOP 5 This FROM Document - Select Enable bulk action on the bulk action tab.
- In the Script section, click Run script.
- Copy the following JavaScript code and paste it into the Script field:
importClass(java.lang.System);importClass(Packages.com.filenet.api.property.Properties);function OnCustomProcess (CEObject){System.out.println("Executing Fetch Properties script");CEObject.refresh();var props = CEObject.getProperties();System.out.println("ClassName................... "+ CEObject.getClassName());System.out.println("Has DocumentTitle property.. "+ props.isPropertyPresent("DocumentTitle"));System.out.println("Propertites size............ "+ props.size());}
6. Click Run
Setting document properties
- Open an object store and copy the Id of the document that you want to change.
- Create an object store search.
- On the SQL view tab, enter the following query with the appropriate document Id:
SELECT This FROM Document WHERE Id = - Select Enable bulk action on the bulk action tab.
- In the Script section, click Run script.
- Copy the following JavaScript code and paste it into the Script field:
importClass(Packages.com.filenet.api.property.Properties);importClass(Packages.com.filenet.api.constants.RefreshMode);function OnCustomProcess (CEObject){CEObject.refresh();CEObject.getProperties().putValue("DocumentTitle", "Test1");CEObject.save(RefreshMode.REFRESH);}
- Click Run
Promote event on a document
- Open an object store and create an object store search.
- On the SQL view tab, enter the following query:
SELECT TOP 5 This FROM Document
- Select Enable bulk action on the bulk action tab.
- In the Script section, click Run script.
- Copy the following JavaScript code and paste it into the Script field:
importClass(Packages.com.filenet.api.constants.RefreshMode);function OnCustomProcess (CEObject){CEObject.demoteVersion();CEObject.save(RefreshMode.REFRESH);CEObject.promoteVersion();CEObject.save(RefreshMode.REFRESH);} - Click Run
Comments