Difference between revisions of "Scripting - OpenKM 5.1"
Line 45: | Line 45: | ||
* ADD_KEYWORD | * ADD_KEYWORD | ||
* REMOVE_KEYWORD | * REMOVE_KEYWORD | ||
+ | |||
+ | == Examples == | ||
+ | To register these example you must go to repository view, select some folder for example into /okm:root/Books/ and set script to enable mixing. It'll appear new property okm:scripCode now must edit it and paste the code from scripting example. | ||
+ | |||
+ | === Automatic renaming document === | ||
+ | <source lang="java"> | ||
+ | String parent = com.openkm.util.FileUtils.getParent(eventNode.getPath()); | ||
+ | session.move(eventNode.getPath(), parent+"/renamed_document.doc"); | ||
+ | </source> | ||
+ | |||
+ | === Automatic adding keyword === | ||
+ | <source lang="java"> | ||
+ | eventNode.setProperty("okm:keywords", new String[]{"maligno"}); | ||
+ | </source> | ||
[[Category: Administration Guide]] | [[Category: Administration Guide]] |
Revision as of 18:31, 13 April 2010
Scripting is an advanced feature - some esperimental - that enables administrator to execute some scripts in folders fired each time has been some events there ( for example uploading documents ). It could be useful for making automatic operations in all repository.
OpenKM uses BeanShell. For more information point your browser to http://www.beanshell.org/intro.html. |
BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. BeanShell dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures like those in Perl and JavaScript.
Variables used
- java.lang.String eventType - says the event that has fired the script. See below for event types.
- javax.jcr.Session session - users session that executes the script.
- javax.jcr.Node eventNode - node that causes the event.
- javax.jcr.Node scriptNode - node where is stored the script.
Events types
- CREATE_DOCUMENT
- DELETE_DOCUMENT
- SET_DOCUMENT_CONTENT
- SET_DOCUMENT_PROPERTIES
- CHECKOUT_DOCUMENT
- CANCEL_CHECKOUT_DOCUMENT
- CHECKIN_DOCUMENT
- LOCK_DOCUMENT
- UNLOCK_DOCUMENT
- PURGE_DOCUMENT
- CREATE_FOLDER
- DELETE_FOLDER
- PURGE_FOLDER
- CREATE_MAIL
- DELETE_MAIL
- PURGE_MAIL
- ADD_CATEGORY
- REMOVE_CATEGORY
- ADD_KEYWORD
- REMOVE_KEYWORD
Examples
To register these example you must go to repository view, select some folder for example into /okm:root/Books/ and set script to enable mixing. It'll appear new property okm:scripCode now must edit it and paste the code from scripting example.
Automatic renaming document
String parent = com.openkm.util.FileUtils.getParent(eventNode.getPath());
session.move(eventNode.getPath(), parent+"/renamed_document.doc");
Automatic adding keyword
eventNode.setProperty("okm:keywords", new String[]{"maligno"});