documentation for sdk for java 2.7
TRANSCRIPT
277788
1111121517171717181819202021212223232425262627282829293030313232
343434353537373839
4040404041424243444545
Table of Contents
Table of ContentsSDK for Java 2.7
LicenseCompatibilitySample client
Jar sampleBasic concepts
AuthenticationAccessing APIClass Hierarchy
Auth samplesBasicsMethods
getGrantedRolesgetGrantedUsersgetMailgetNamegetRolesgetRolesByUsergetUsersgetUsersByRolerevokeRolerevokeUsergrantRolegrantUsergetProfilesgetUserProfilesetUserProfilecreateUserdeleteUserupdateUsercreateRoledeleteRoleupdateRoleassignRoleremoveRolechangeSecuritylogin
Conversion samplesMethods
doc2pdfpdf2swfimageConverthtml2pdfdoc2txtimg2txtbarcode2txt
Document samplesBasicsMethods
createDocumentcreateDocumentSimpledeleteDocumentgetDocumentPropertiesgetContentgetContentByVersiongetDocumentChildrenrenameDocument
Table of Contents Page 2 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
464747484949505152525354545556565758585960606162636464666769707071717273
757575757676777778797980808182838484
86868686888989909191929394
setPropertiescheckoutcancelCheckoutforceCancelCheckoutisCheckedOutcheckincheckingetVersionHistorylockunlockforceUnlockisLockedgetLockInfopurgeDocumentmoveDocumentcopyDocumentrestoreVersionpurgeVersionHistorygetVersionHistorySizeisValidDocumentgetDocumentPathextendedDocumentCopygetExtractedTextgetThumbnailsetLanguagesetDocumentTitlecreateFromTemplatecreateFromTemplateSimpleupdateFromTemplateupdateFromTemplateSimplegetDetectedLanguagesgetAnnotationsgetDifferencesgetCheckedOutstampstampImage
Folder samplesBasicsMethods
createFoldercreateFolderSimplegetFolderPropertiesdeleteFolderrenameFoldermoveFoldergetFolderChildrenisValidFoldergetFolderPathcopyFolderextendedFolderCopygetContentInfopurgeFoldersetStylecreateMissingFolders
Mail samplesBasicsMethods
createMailgetMailPropertiesdeleteMailpurgeMailrenameMailmoveMailcopyMailextendedMailCopygetMailChildrenisValidMail
Table of Contents Page 3 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
9495959697989899
100
101101101101101102103104
105105105106108109
111111111111111112113113114115
117117117117118118119120120121123124125125126127
129129129130130131131132133133134135135136137
getMailPathcreateAttachmentdeleteAttachmentgetAttachmentssendMailWithAttachmentsimportEmlimportMsgsetMailTitlesendMail
Note samplesBasicsMethods
addNotegetNotedeleteNotesetNotelistNotes
Plugin samplesMethods
executePostPluginexecutePostPluginReturnFileexecuteGetPluginexecutePluginGetReturnFile
Property samplesBasicsMethods
addCategoryremoveCategoryaddKeywordremoveKeywordsetEncryptionunsetEncryptionsetSigned
PropertyGroup samplesBasicsMethods
addGroupremoveGroupgetGroupsgetAllGroupsgetPropertyGroupPropertiesgetPropertyGroupFormsetPropertyGroupPropertiessetPropertyGroupPropertiesSimplehasGroupgetRegisteredDefinitionregisterDefinitiongetSuggestionsgetPropertyGroupPropertiesSimple
Record samplesMethods
createRecordgetRecordPropertiesdeleteRecordpurgeRecordrenameRecordmoveRecordcopyRecordisValidRecordgetRecordChildrenlockRecordunlockRecordforceUnlockRecordsetRecordTitle
Table of Contents Page 4 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
137
139139139139140140141142142143144145145
147147147147148148149150150151151152152153154154155156156157158159160161162163164165
166166166166167167
169169172172173174174175177178179180180181182183183
getRecordPath
Relation samplesBasicsMethods
getRelationTypesaddRelationdeleteRelationgetRelationsgetRelationGroupsaddRelationGroupaddNodeToGroupdeleteRelationGroupfindRelationGroupsetRelationGroupName
Repository samplesMethods
getRootFoldergetTrashFoldergetTrashFolderBasegetTemplatesFoldergetPersonalFoldergetPersonalFolderBasegetMailFoldergetMailFolderBasegetThesaurusFoldergetCategoriesFolderpurgeTrashgetUpdateMessagegetRepositoryUuidhasNodegetNodePathgetNodeUuidgetAppVersioncopyAttributesexecuteScriptexecuteSqlQueryexecuteHqlQuerygetTranslationsgetConfigurationexecutePlugingetChangeLoggetServerTime()
Report samplesBasicsMethods
getReportsgetReportexecuteReport
Search samplesBasicsMethods
findByContentfindByNamefindByKeywordsfindfindPaginatedfindSimpleQueryPaginatedfindMoreLikeThisgetKeywordMapgetCategorizedDocumentssaveSearchupdateSearchgetSearchgetAllSearchsdeleteSearch
Table of Contents Page 5 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
185185185185186187187188189190190191192192193194194195196
197197197198198
Workflow samplesMethods
registerProcessDefinitiondeleteProcessDefinitiongetProcessDefinitionrunProcessDefinitionfindAllProcessDefinitionsfindProcessInstancesfindLatestProcessDefinitionsfindLastProcessDefinitiongetProcessInstancefindUserTaskInstancesfindTaskInstancessetTaskInstanceValuesgetTaskInstancestartTaskInstancesetTaskInstanceActorIdendTaskInstancegetProcessDefinitionForms
Purchase workflow sampleProcess imageProcess definitionProcess handlersForm definition
Table of Contents Page 6 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
SDK for Java 2.7OpenKM SDK for Java is a set of software development tools that allows the creation of applications for OpenKM. The
OpenKM SDK for Java includes a Webservices library.
This Webservices library is a complete API layer to access OpenKM through REST Webservices and provides complete
compatibility between the OpenKM REST Webservices versions minimizing the changes in your code.
License
Compatibility
SDK for Java is licensed under the terms of the EULA - OpenKM SDK End User License Agreement andpublished by OpenKM Knowledge Management System S.L.
This program is distributed WITHOUT ANY WARRANTY not even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the EULA - OpenKM SDK EndUser License Agreement for more details.
SDK for Java version 2.6 should be used:
From OpenKM Professional version 6.4.45 and upper.
SDK for Java 2.7 Page 7 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Sample client
You can make use of the OpenKM Maven Repository and the right SDK version. This is a sample pom.xml configuration:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.openkm.sample</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version> <repositories> <repository> <id>openkm.com</id> <name>OpenKM Maven Repository</name> <url>https://maven.openkm.com</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.openkm</groupId> <artifactId>sdk4j</artifactId> <version>2.7</version> </dependency> </dependencies></project>
Your first class:
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Folder;import com.openkm.sdk4j.exception.*; /** * Sample OpenKM SDK client */public class Main { public static void main(String var[]) throws Exception { String url = "http://demo.openkm.com/OpenKM"; String user = "user5"; String pass = "pass5"; OKMWebservices okm = OKMWebservicesFactory.newInstance(url, user, pass); for (Folder fld : okm.getFolderChildren("/okm:root")) { System.out.println("Folder -> " + fld.getPath()); } }}
Jar sample
If you use "maven-assembly-plugin" rather "maven-shade-plugin" you will get an error "missing
SDK for Java 2.7 Page 8 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.openkm.sample</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version>
<properties> <java.compiler>1.8</java.compiler> <sdk4j.version>2.7</sdk4j.version> <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version> <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
<repositories> <repository> <id>openkm.com</id> <name>OpenKM Maven Repository</name> <url>https://maven.openkm.com</url> </repository> </repositories>
<dependencies> <dependency> <groupId>com.openkm</groupId> <artifactId>sdk4j</artifactId> <version>${sdk4j.version}</version> </dependency> </dependencies>
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <source>${java.compiler}</source> <target>${java.compiler}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${maven-shade-plugin.version}</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.openkm.Main</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/services/javax.ws.rs.ext.MessageBodyWriter</resource> </transformer>
MessageBodyWriter" while uploading a new file across the SDK.
SDK for Java 2.7 Page 9 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
</transformers> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
SDK for Java 2.7 Page 10 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Basic concepts
Authentication
The first lines in your Java code should be used to create the Webservices object.
We suggest using this method:
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.exception.AccessDeniedException;import com.openkm.sdk4j.exception.DatabaseException;import com.openkm.sdk4j.exception.RepositoryException;import com.openkm.sdk4j.exception.UnknowException;import com.openkm.sdk4j.exception.WebserviceException;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getAppVersion()); } catch (RepositoryException e) { e.printStackTrace(); } catch (DatabaseException e) { e.printStackTrace(); } catch (UnknowException e) { e.printStackTrace(); } catch (WebserviceException e) { e.printStackTrace(); } } }
Also is possible doing the same from each API class implementation.
For example with this method:
RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password, newBeanHelper());
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
We do not suggest this way.
SDK for Java 2.7 Page 11 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.exception.AccessDeniedException;import com.openkm.sdk4j.exception.DatabaseException;import com.openkm.sdk4j.exception.RepositoryException;import com.openkm.sdk4j.exception.UnknowException;import com.openkm.sdk4j.exception.WebserviceException;import com.openkm.sdk4j.impl.RepositoryImpl;import com.openkm.sdk4j.util.BeanHelper;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password, new BeanHelper()); try { System.out.println(repositoryImpl.getAppVersion()); } catch (RepositoryException e) { e.printStackTrace(); } catch (DatabaseException e) { e.printStackTrace(); } catch (UnknowException e) { e.printStackTrace(); } catch (WebserviceException e) { e.printStackTrace(); } } }
Accessing API
OpenKM API classes are under com.openkm package, as can shown at this Javadoc API summary.
OpenKM API classes:
OpenKM API class Description Supported Implementation Interface
OKMAuth Manages security and
users. For example add
or remove grants on a
node, create or modify
users or getting the
profiles.
Yes AuthImpl.java BaseAuth.java
OKMBookmark Manages the user No
At main url http://docs.openkm.com/javadoc/ you'll see all available Javadoc documentation.
At the moment of writing this page the actual OpenKM version was 6.4.31 what can change with time.
There is a direct correspondence between the classes and methods implemented at com.openkm.api packages andavailable from SDK for Java.
SDK for Java 2.7 Page 12 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
bookmarks.
OKMDashboard Manages all data
shown at dashboard.
No
OKMDocument Manages documents.
For example create,
move or delete a
document.
Yes DocumentImpl.java BaseDocument.java
OKMFolder Manages folders. For
example create, move
or delete a folder.
Yes FolderImpl.java BaseFolder.java
OKMMail Manages mails. For
example create, move
or delete a mails.
Yes MailImpl.java BaseMail.java
OKMNote Manages notes on any
node type. For example
create, edit or delete a
note on a document,
folder, mail or record.
Yes NoteImpl.java BaseNote.java
OKMNotification Manages notifications.
For example add or
remove subscriptions
on a document or a
folder.
No
OKMProperty Manages categories
and keywords. For
example add or remove
keywords on a
Yes PropertyImpl.java BaseProperty.java
SDK for Java 2.7 Page 13 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
document, folder, mail
or record.
OKMPropertyGroup Manages metadata. For
example add metadata
group, set metadata
fields.
Yes PropertyGroupImpl.java BasePropertyGroup.java
OKMRecord Manages records. For
example create, move
or delete a record.
Yes RecordImpl.java BaseRecord.java
OKMRelation Manages relations
between nodes. For
example create a
relation ( parent-child )
between two
documents.
Yes RelationImpl.java BaseRelation.java
OKMRepository A lot of options related
with the repository. For
example get the
properties of main root
node ( /okm:root ).
Yes RepositoryImpl.java BaseRepository.java
OKMReport Manages reports. For
example execute
reports.
Yes ReportImpl.java BaseReport.java
OKMSearch Manages search
feature. For example
manage saved queries
or perform a new query
to the repository.
Yes SearchImpl.java BaseSearch.java
SDK for Java 2.7 Page 14 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
OKMStats General stats of the
repository.
No
OKMTask Manages tasks. For
example create a new
task.
No
OKMUserConfig Manages user home
configuration.
No
OKMWorkflow Manages workflows.
For example execute a
new workflow.
Yes WorkflowImpl.java BaseWorkflow.java
Class Hierarchy
Packages detail:
Name Description
com.openkm The com.openkm.OKMWebservicesFactory that returns an
com.openkm.OKMWebservices object which implements all interfaces.
OKMWebservices ws =OKMWebservicesFactory.newInstance(host, username,password);
com.openkm.sdk4j.bean Contains all classes result of unmarshalling REST objects.
com.openkm.sdk4j.definition All interface classes:
com.openkm.sdk4j.definition.BaseAuth
com.openkm.sdk4j.definition.BaseDocument
com.openkm.sdk4j.definition.BaseFolder
com.openkm.sdk4j.definition.BaseMail
com.openkm.sdk4j.definition.BaseNote
com.openkm.sdk4j.definition.BaseProperty
SDK for Java 2.7 Page 15 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
com.openkm.sdk4j.definition.BasePropertyGroup
com.openkm.sdk4j.definition.BaseRecord
com.openkm.sdk4j.definition.BaseRelation
com.openkm.sdk4j.definition.BaseRepository
com.openkm.sdk4j.definition.BaseSearch
com.openkm.sdk4j.definition.BaseWorkflow
com.openkm.sdk4j.impl All interface implementation classes:
com.openkm.sdk4j.impl.AuthImpl
com.openkm.sdk4j.impl.DocumentImpl
com.openkm.sdk4j.impl.FolderImpl
com.openkm.sdk4j.impl.MailImpl
com.openkm.sdk4j.impl.NoteImpl
com.openkm.sdk4j.impl.PropertyGroupImpl
com.openkm.sdk4j.impl.PropertyImpl
com.openkm.sdk4j.impl.RecordImpl
com.openkm.sdk4j.impl.RelationImpl
com.openkm.sdk4j.impl.RepositoryImpl
com.openkm.sdk4j.impl.SearchImpl
com.openkm.sdk4j.impl.WorkflowImpl
com.openkm.sdk4j.util A couple of utilities.
com.openkm.sdk4j.exception All exception classes.
The class com.openkm.sdk4j.util.ISO8601 should be used to set andparse metadata date fields.
SDK for Java 2.7 Page 16 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Auth samples
Basics
The class com.openkm.sdk4j.bean.Permission contains permission values ( READ, WRITE, etc. ). You should use it in
combination with methods that are changing or getting security grants.
On most methods you'll see parameter named "nodeId". The value of this parameter can be some valid node UUID ( folder,
document, mail, record ) or node path.
Methods
getGrantedRoles
Description:
Method Return values Description
getGrantedRoles(String nodeId) Map<String, Integer> Return the granted roles of a node.
Example:
package com.openkm;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
To set READ and WRITE access you should do:
int permission = Permission.READ + Permission.WRITE;
To check if you have permission access you should do:
// permission is a valid integer valueif ((permission | Permission.WRITE) = Permission.WRITE) { // Has WRITE grants.}
Example of nodeId:
Using UUID -> "c41f9ea0-0d6c-45da-bae4-d72b66f42d0f";
Using path -> "/okm:root/sample.pdf"
SDK for Java 2.7 Page 17 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, Integer> grants = ws.getGrantedRoles("/okm:root"); for (String role : grants.keySet()) { System.out.println(role + "->" + grants.get(role)); } } catch (Exception e) { e.printStackTrace(); } } }
getGrantedUsers
Description:
Method Return values Description
getGrantedUsers(String nodeId) Map<String, Integer> Return the granted users of a node.
Example:
package com.openkm;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Map<String, Integer> grants = ws.getGrantedUsers("/okm:root"); for (String role : grants.keySet()) { System.out.println(role + "->" + grants.get(role)); } } catch (Exception e) { e.printStackTrace(); } } }
getMail
Description:
Method Return values Description
SDK for Java 2.7 Page 18 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getMail(String user) String Return the mail of a valid user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getMail("okmAdmin")); } catch (Exception e) { e.printStackTrace(); } } }
getName
Description:
Method Return values Description
getName(String user) String Return the name of a valid user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getName("okmAdmin")); } catch (Exception e) { e.printStackTrace(); } } }
SDK for Java 2.7 Page 19 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getRoles
Description:
Method Return values Description
getRoles() List<String> Return the list of all the roles.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (String role : ws.getRoles()) { System.out.println(role); } } catch (Exception e) { e.printStackTrace(); } } }
getRolesByUser
Description:
Method Return values Description
getRolesByUser(String user) List<String> Return the list of all the roles assigned to a user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
SDK for Java 2.7 Page 20 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { for (String role : ws.getRolesByUser("okmAdmin")) { System.out.println(role); } } catch (Exception e) { e.printStackTrace(); } } }
getUsers
Description:
Method Return values Description
getUsers() List<String> Return the list of all the users.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (String user : ws.getUsers()) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } } }
getUsersByRole
Description:
Method Return values Description
getUsersByRole(String role) List<String> Return the list of all the users who have assigned a role.
Example:
package com.openkm;
SDK for Java 2.7 Page 21 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (String user : ws.getUsersByRole("ROLE_ADMIN")) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } } }
revokeRole
Description:
Method Returnvalues Description
revokeRole(String nodeId, String role, int permissions, boolean
recursive)void
Remove role grant on a
node.
The parameter recursive only has sense when the nodeId is a folder or a record node.
When parameter recursive is true, the change will be applied to the node and its descendants.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Permission;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Remove ROLE_USER write grants at the node but not descendants ws.revokeRole("/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Remove all ROLE_ADMIN grants to the node and descendants ws.revokeRole("/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true);
SDK for Java 2.7 Page 22 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } } }
revokeUser
Description:
Method Returnvalues Description
revokeUser(String nodeId, String user, int permissions, boolean
recursive)void
Remove user grant on a
node.
The parameter recursive only has sense when the nodeId is a folder or a record node.
When parameter recursive is true, the change will be applied to the node and descendants.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Permission;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Remove john write grants at the node but not descendants ws.revokeUser("/okm:root", "john", Permission.ALL_GRANTS, false);
// Remove all okmAdmin grants at the node and descendants ws.revokeUser("/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } } }
grantRole
Description:
Method Returnvalues Description
SDK for Java 2.7 Page 23 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
grantRole(String nodeId, String role, int permissions, boolean
recursive)void
Add role grant on a
node.
The parameter recursive only has sense when the nodeId is a folder or a record node.
When parameter recursive is true, the change will be applied to the node and descendants.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Permission;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Add ROLE_USER write grants at the node but not descendants ws.grantRole("/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Add all ROLE_ADMIN grants to the node and descendants ws.grantRole("/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } } }
grantUser
Description:
Method Returnvalues Description
grantUser(String nodeId, String user, int permissions, boolean
recursive)void
Add user grant on a
node.
The parameter recursive only has sense when the nodeId is a folder or record node.
When parameter recursive is true, the change will be applied to the node and descendants.
Example:
SDK for Java 2.7 Page 24 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Permission;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Add john write grants at the node but not descendants ws.grantUser("/okm:root", "john", Permission.ALL_GRANTS, false);
// Add all okmAdmin grants at the node and descendants ws.grantUser("/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } } }
getProfiles
Description:
Method Return values Description
getProfiles(boolean filterByActive) List<ProfileSimple> Return the list of all profiles.
The parameter filterByActive when enabled the method will return only the active profiles, otherwise will return all
available profiles.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ProfileSimple;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try {
Each user has assigned one profile that enables more or less of the OpenKM UI features.
SDK for Java 2.7 Page 25 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
for (ProfileSimple profile : ws.getProfiles(true)) { System.out.println(profile); } } catch (Exception e) { e.printStackTrace(); } } }
getUserProfile
Description:
Method Return values Description
getUserProfile(String userId) ProfileSimple Return the profile assigned to a user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getUserProfile("okmAdmin")); } catch (Exception e) { e.printStackTrace(); } } }
setUserProfile
Description:
Method Return values Description
setUserProfile(String userId, long profileId) void Change the assigned profile to a user.
Each user has assigned one profile that enables more or less of the OpenKM UI features.
SDK for Java 2.7 Page 26 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ProfileSimple;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Set the profile named "default" to the user for (ProfileSimple profile : ws.getProfiles(true)) { if (profile.getName().equals("default")) { ws.setUserProfile("okmAdmin", profile.getId()); } } } catch (Exception e) { e.printStackTrace(); } } }
createUser
Description:
Method Returnvalues Description
createUser(String user, String password, String email, String name, boolean
active)void
Create a new
user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try {
Each user has assigned one profile that enables more or less of the OpenKM UI features.
SDK for Java 2.7 Page 27 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
ws.createUser("test", "password.2016", "[email protected]", "User Name", true); } catch (Exception e) { e.printStackTrace(); } }}
deleteUser
Description:
Method Return values Description
deleteUser(String user) void Delete a user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteUser("test"); } catch (Exception e) { e.printStackTrace(); } }}
updateUser
Description:
Method Returnvalues Description
updateUser(String user, String password, String email, String name, boolean
active)void
Update a
user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
SDK for Java 2.7 Page 28 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.updateUser("test", "newpassword", "[email protected]", "Test", false); } catch (Exception e) { e.printStackTrace(); } }}
createRole
Description:
Method Return values Description
createRole(String role, boolean active) void Create a new role.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.createRole("ROLE_TEST", true); } catch (Exception e) { e.printStackTrace(); } }}
deleteRole
Description:
Method Return values Description
deleteRole(String role) void Delete a role.
Example:
SDK for Java 2.7 Page 29 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteRole("ROLE_TEST"); } catch (Exception e) { e.printStackTrace(); } }}
updateRole
Description:
Method Return values Description
updateRole(String role, boolean active) void Update a role.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.updateRole("ROLE_TEST",true); } catch (Exception e) { e.printStackTrace(); } }}
assignRole
Description:
SDK for Java 2.7 Page 30 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Method Return values Description
assignRole(String user, String role) void Assign role to a user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.assignRole("test", "ROLE_USER"); } catch (Exception e) { e.printStackTrace(); } }}
removeRole
Description:
Method Return values Description
removeRole(String user, String role) void Remove a role from a user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.removeRole("test", "ROLE_USER"); } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 31 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
changeSecurity
Description:
Method Return values Description
changeSecurity(ChangeSecurity changeSecurity) void Change the security of a node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ChangeSecurity;import com.openkm.sdk4j.bean.GrantedRole;import com.openkm.sdk4j.bean.GrantedRoleList;import com.openkm.sdk4j.bean.Permission;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ChangeSecurity cs = new ChangeSecurity(); cs.setNodeId("b9736924-bb97-4e2c-8450-138c21e0c9d5"); GrantedRoleList grList = new GrantedRoleList(); GrantedRole gr = new GrantedRole(); gr.setRole("ROLE_TEST"); gr.setPermissions(Permission.READ | Permission.WRITE); grList.getList().add(gr); cs.setGrantedRolesList(grList); ws.changeSecurity(cs); } catch (Exception e) { e.printStackTrace(); } }}
login
Description:
Method Return values Description
login() void Simulate first login process
When user login into the application the first time, is called internally a method what creates user specificfolders, like /okm:trash/userId etc.
From API point of view, this method should be only executed first time user accessing from API, forcreating specific user folder structure.
SDK for Java 2.7 Page 32 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.login(); } catch (Exception e) { e.printStackTrace(); } }}
Otherwise you can get errors, for example PathNotExistsException /okm:trash/userId when deleting objects,because the folders has not been created.
SDK for Java 2.7 Page 33 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Conversion samples
Methods
doc2pdf
Description:
Method Returnvalues Description
doc2pdf(InputStream is, String
fileName)InputStream
Retrieve the uploaded document converted to PDF
format.
The parameter fileName is the document file name. Application uses this parameter to identify by document extension the
document MIME TYPE.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/test.docx"); FileOutputStream fos = new FileOutputStream("/home/files/out.pdf"); InputStream convertedStream = ws.doc2pdf(is, "test.docx"); IOUtils.copy(convertedStream, fos); is.close(); convertedStream.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } }
The openoffice service must be enabled in OpenKM server to get it running.
SDK for Java 2.7 Page 34 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
pdf2swf
Description:
Method Returnvalues Description
pdf2swf(InputStream is, String
fileName)InputStream
Retrieve the uploaded document converted to SWF
format.
The parameter fileName is the document file name. Application uses this parameter to identify by document extension the
document MIME TYPE.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/jllort/files/test.pdf"); FileOutputStream fos = new FileOutputStream("/home//files/out.swf"); InputStream convertedStream = ws.pdf2swf(is, "test.pdf"); IOUtils.copy(convertedStream, fos); is.close(); convertedStream.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } }}
imageConvert
The pdf2swf tool must be enabled in OpenKM server to get it running.
SDK for Java 2.7 Page 35 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Returnvalues Description
imageConvert(InputStream is, String fileName, String params,
String dstMimeType)InputStream
Retrieve the uploaded image
with transformation.
The variable fileName is the document file name. Application uses this variable to identify by document extension the
document MIME TYPE.
The parameter dstMimeType is the expected document MIME TYPE result.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/test.png"); FileOutputStream fos = new FileOutputStream("/home/files/out.jpg"); InputStream convertedStream = ws.imageConvert(is, "test.png", "-resize 50% ${fileIn} ${fileOut}", "image/jpeg"); IOUtils.copy(convertedStream, fos); is.close(); convertedStream.close();
Using this method you are really executing on server side the ImageMagick convert tool.
You can set a lot of parameters - transformations - in params variable. Take a look at ImageMagick converttool to get a complete list of them.
The image convert tool must be enabled in OpenKM server to get it running.
When params value is not empty always must contains ends with the chain "${fileIn} ${fileOut}".
Ensure there is only a white space as separator between two parameters.
When building your integrations, we suggest installing ImageMagic software locally, and check your imagetransformations first from your command line.
SDK for Java 2.7 Page 36 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
fos.close(); } catch (Exception e) { e.printStackTrace(); } }}
html2pdf
Description:
Method Return values Description
html2pdf(String url) InputStream Retrieve the PDF of an URL.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { FileOutputStream fos = new FileOutputStream("/home/files/out.pdf"); InputStream is = ws.html2pdf("http://www.openkm.com"); IOUtils.copy(is, fos); is.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } }}
doc2txt
Description:
Method Return values Description
The HTML to PDF conversion tool must be enabled in OpenKM server to get it running.
SDK for Java 2.7 Page 37 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
doc2txt(InputStream is, String fileName) String Extracts the text from the upload document.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/test.docx"); System.out.println(ws.doc2txt(is, "test.docx")); is.close(); } catch (Exception e) { e.printStackTrace(); } }}
img2txt
Description:
Method Return values Description
img2txt(InputStream is, String fileName) String Extracts the text from the uploaded image.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservices;
Must be enabled a Text Extractor for the document MIME TYPE in OpenKM server to get it running.
The OCR engine must be enabled in OpenKM server to get it running.
SDK for Java 2.7 Page 38 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/test.png"); System.out.println(ws.img2txt(is, "test.png")); is.close(); } catch (Exception e) { e.printStackTrace(); } }}
barcode2txt
Description:
Method Return values Description
barcode2txt(InputStream is, String fileName) String Extracts the barcode text from the uploaded image.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/test.png"); System.out.println(ws.barcode2txt(is, "test.png")); is.close(); } catch (Exception e) { e.printStackTrace(); } }}
The Bar Code tool must be enabled in OpenKM server to get it running.
SDK for Java 2.7 Page 39 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Document samples
Basics
On most methods you'll see a parameter named " docId". The value of this parameter can be a valid document UUID or path.
Methods
createDocument
Description:
Method Returnvalues Description
createDocument(Document
doc, InputStream is)Document
Creates a new document and return as a result an object Document
with the properties of the created document.
The variable path into the parameter doc, must be initializated. It indicates where the document must be stored into
OpenKM.
Document doc = new Document();doc.setPath("/okm:root/logo.png");
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
Example of docId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/logo.png"
The other variables of Document ( doc ) will not take any effect on the document creation.
We suggest using the method below createDocumentSimple rather than this one.
SDK for Java 2.7 Page 40 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/logo.png"); Document doc = new Document(); doc.setPath("/okm:root/logo.png"); ws.createDocument(doc, is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
createDocumentSimple
Description:
Method Returnvalues Description
createDocumentSimple(String
docPath, InputStream is)Document
Creates a new document and returns as a result an object Document
with the properties of the created document.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/logo.png"); ws.createDocumentSimple("/okm:root/logo.png", is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
SDK for Java 2.7 Page 41 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
deleteDocument
Description:
Method Return values Description
deleteDocument(String docId) void Deletes a document.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.deleteDocument("/okm:root/logo.png"); } catch (Exception e) { e.printStackTrace(); } } }
getDocumentProperties
Description:
Method Return values Description
getDocumentProperties(String docId) Document Return the document properties.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM";
When a document is deleted it is automatically moved to /okm:trash/userId folder.
SDK for Java 2.7 Page 42 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getDocumentProperties("/okm:root/logo.png")); } catch (Exception e) { e.printStackTrace(); } } }
getContent
Description:
Method Return values Description
getContent(String docId) InputStream Retrieve document content - binary data - of the actual document version.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { OutputStream fos = new FileOutputStream("/home/files/logo.png");
In case you sent the file across a Servlet response we suggest set the content length with:
Document doc = ws.getDocumentProperties("/okm:root/logo.png");response.setContentLength(new Long(doc.getActualVersion().getSize()).intValue());
We've found wrong size problems while using:
response.setContentLength(is.available());
SDK for Java 2.7 Page 43 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
InputStream is = ws.getContent("/okm:root/logo.png"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } } }
getContentByVersion
Description:
Method Returnvalues Description
getContentByVersion(String docId,String
versionId)InputStream
Retrieves a document content ( binary data ) from a specific
document version.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try {
In case you sent the file across a Servlet response we suggest set the content length with:
Document doc = ws.getDocumentProperties("/okm:root/logo.png");response.setContentLength(new Long(doc.getActualVersion().getSize()).intValue());
We've found wrong size problems while using:
response.setContentLength(is.available());
SDK for Java 2.7 Page 44 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
OutputStream fos = new FileOutputStream("/home/files/logo.png"); InputStream is = ws.getContentByVersion("/okm:root/logo.png","1.1"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } } }
getDocumentChildren
Description:
Method Return values Description
getDocumentChildren(String fldId) List<Document> Returns a list of all documents which their parent is fldId.
The parameter fldId can be a folder or a record node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (Document doc : ws.getDocumentChildren("/okm:root")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } } }
renameDocument
Description:
Method Return values Description
renameDocument(String docId, String newName) Document Changes the name of a document.
SDK for Java 2.7 Page 45 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Document doc = ws.renameDocument("f123a950-0329-4d62-8328-0ff500fd42db", "logo_rename.png"); } catch (Exception e) { e.printStackTrace(); } } }
setProperties
Description:
Method Return values Description
setProperties(Document doc) void Changes some document properties.
Variables allowed to be changed:
Title
Description
Language
Associated categories
Associated keywords
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test {
Only not null and not empty variables will be taken in consideration.
SDK for Java 2.7 Page 46 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Document doc = ws.getDocumentProperties("f123a950-0329-4d62-8328-0ff500fd42db"); doc.setDescription("some description"); doc.getKeywords().add("test"); ws.setProperties(doc); } catch (Exception e) { e.printStackTrace(); } } }
checkout
Description:
Method Return values Description
checkout(String docId) void Marks the document for edition.
Only one user can modify a document at a time.
Before starting edition you must do a checkout action that locks the edition process for other users and allows edition only
to the user who has executed the action.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.checkout("/okm:root/logo.png"); // At this point the document is locked for other users except for the user who executed the action } catch (Exception e) { e.printStackTrace(); } } }
cancelCheckout
SDK for Java 2.7 Page 47 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
cancelCheckout(String docId) void Cancels a document edition.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // At this point the document is locked for other users except for the user who executed the action ws.cancelCheckout("/okm:root/logo.png"); // At this point other users are allowed to execute a checkout and modify the document } catch (Exception e) { e.printStackTrace(); } } }
forceCancelCheckout
Description:
Method Return values Description
forceCancelCheckout(String docId) void Cancels a document edition.
This method allows to cancel edition on any document.
It is not mandatory to execute this action by the same user who previously executed the checkout action.
Example:
This action can only be done by the user who previously executed the checkout action.
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 48 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // At this point the document is locked for other users except for the user who executed the action ws.forceCancelCheckout("/okm:root/logo.png"); // At this point other users are allowed to execute a checkout and modify the document } catch (Exception e) { e.printStackTrace(); } } }
isCheckedOut
Description:
Method Return values Description
isCheckedOut(String docId) Boolean Returns a boolean that indicates if the document is on edition or not.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println("Is the document checkout:"+ws.isCheckedOut("/okm:root/logo.png")); } catch (Exception e) { e.printStackTrace(); } } }
checkin
Description:
SDK for Java 2.7 Page 49 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Method Returnvalues
Description
checkin(String docId, InputStream is,
String comment)Version
Updates a document with a new version and returns an object
with new Version values.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/logo.png"); ws.checkin("/okm:root/logo.png", is, "optional some comment"); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
checkin
Description:
Method Returnvalues Description
checkin(String docId, InputStream is, String
comment, int increment)Version
Updates a document with a new version and returns an
object with new Version values.
Only the user who started the edition - checkout - is allowed to update the document.
The value of increment variable must be 1 or greater.
The valid values of increment variable depends on the VersionNumberAdapter you have enabled.
SDK for Java 2.7 Page 50 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/logo.png"); ws.checkin("/okm:root/logo.png", is, "optional some comment", 1); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
getVersionHistory
Description:
Method Return values Description
getVersionHistory(String docId) List<Version> Returns a list of all document versions.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Version;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
Only the user who started the edition - checkout - is allowed to update the document.
SDK for Java 2.7 Page 51 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { for (Version version : ws.getVersionHistory("/okm:root/logo.png")) { System.out.println(version); } } catch (Exception e) { e.printStackTrace(); } } }
lock
Description:
Method Return values Description
lock(String docId) LockInfo Locks a document and returns an object with the Lock information.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.lock("/okm:root/logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
unlock
Description:
Method Return values Description
unlock(String docId) void Unlocks a locked document.
Only the user who locked the document is allowed to unlock.
A locked document cannot be modified by other users.
SDK for Java 2.7 Page 52 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.unlock("/okm:root/logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
forceUnlock
Description:
Method Return values Description
forceUnlock(String docId) void Unlocks a locked document.
This method allows to unlock any locked document.
It is not mandatory execute this action by the same user who previously executed the checkout lock action.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM";
Only the user who locked the document is allowed to unlock.
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 53 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.forceUnlock("/okm:root/logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
isLocked
Description:
Method Return values Description
isLocked(String docId) Boolean Returns a boolean that indicates if the document is locked or not.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println("Is document locked:"+ws.isLocked("/okm:root/logo.png")); } catch (Exception e) { e.printStackTrace(); } }}
getLockInfo
Description:
Method Return values Description
getLockInfo(String docId) LockInfo Returns an object with the Lock information
Example:
package com.openkm;
SDK for Java 2.7 Page 54 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getLockInfo("/okm:root/logo.png")); } catch (Exception e) { e.printStackTrace(); } }}
purgeDocument
Description:
Method Return values Description
purgeDocument(String docId) void The document is definitely removed from repository.
Usually you will purge documents into /okm:trash/userId - the personal trash user locations - but is possible to directly
purge any document from the whole repository.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.purgeDocument("/okm:trash/okmAdmin/logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
When a document is purged only will be able to be restored from a previously repository backup. The purgeaction removes the document definitely from the repository.
SDK for Java 2.7 Page 55 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
moveDocument
Description:
Method Return values Description
moveDocument(String docId, String dstId) void Move document into some folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.moveDocument("/okm:root/logo.png","/okm:root/temp"); } catch (Exception e) { e.printStackTrace(); } }}
copyDocument
Description:
Method Returnvalues Description
copyDocument(String docId, String dstId, String
newName)void
Copy a document into some folder or
record.
The values of the dstId parameter should be a folder or record UUID or path.
When the parameter newName value is null,the document will preservate the same name.
Only the binary data and the security grants are copied to destination, the metadata, keywords, etc. of thedocument are not copied.
See "extendedDocumentCopy" method for this feature.
SDK for Java 2.7 Page 56 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.copyDocument("/okm:root/logo.png","/okm:root/temp","new_logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
restoreVersion
Description:
Method Returnvalues Description
restoreVersion(String docId, String
versionId)void
Restores previously document version to actual
version.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Actual version is 1.2 ws.restoreVersion("/okm:root/logo.png","1.1"); // Actual version is 1.1 } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 57 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
purgeVersionHistory
Description:
Method Returnvalues Description
purgeVersionHistory(String
docId)void
Purges all the previous document versions except the actual
version.
This action compacts the version history of a document.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Version history has version 1.3,1.2,1.1 and 1.0 ws.purgeVersionHistory("/okm:root/logo.png"); // Version history has only version 1.3 } catch (Exception e) { e.printStackTrace(); } }}
getVersionHistorySize
Description:
Method Returnvalues Description
getVersionHistorySize(String
docId)long
Returns the sum in bytes of all documents into documents
history.
Example:
This action cannot be reverted.
SDK for Java 2.7 Page 58 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import java.util.Locale;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { String[] UNITS = new String[] { "B", "KB", "MB", "GB", "TB", "PB", "EB" }; long bytes = ws.getVersionHistorySize("/okm:root/logo.png"); String value = ""; for (int i = 6; i > 0; i--) { double step = Math.pow(1024, i); if (bytes > step) value = String.format(Locale.ROOT, "%3.1f %s", bytes / step, UNITS[i]); } if (value.isEmpty()) { value = Long.toString(bytes) + " " + UNITS[0]; } System.out.println(value); } catch (Exception e) { e.printStackTrace(); } }}
isValidDocument
Description:
Method Return values Description
isValidDocument(String docId) Boolean Returns a boolean that indicates if the node is a document or not.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try {
SDK for Java 2.7 Page 59 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
// Return true ws.isValidDocument("/okm:root/logo.png"); // Return false ws.isValidDocument("/okm:root"); } catch (Exception e) { e.printStackTrace(); } }}
getDocumentPath
Description:
Method Return values Description
getDocumentPath(String uuid) String Converts a document UUID to document path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getDocumentPath("f123a950-0329-4d62-8328-0ff500fd42dbg")); } catch (Exception e) { e.printStackTrace(); } }}
extendedDocumentCopy
Description:
Method Returnvalues Description
extendedDocumentCopy(String docId, String dstId, String
name, boolean categories, boolean keywords,
boolean propertyGroups, boolean notes, boolean wiki)
void Copies a document with associated data
into some folder or record.
SDK for Java 2.7 Page 60 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
The values of the dstId parameter should be a folder or a record UUID or path.
When the parameter newName value is null, the document will preserve the same name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.extendedDocumentCopy("/okm:root/logo.png", "/okm:root/tmp", null, true, true, true, true, true); } catch (Exception e) { e.printStackTrace(); } }}
getExtractedText
Description:
Method Return values Description
getExtractedText(String docId) String Returns an String with the extracted text by text extractor process.
When a document is uploaded to OpenKM, it goes into text extraction queue. There's a crontab tab that periodically process
By default only the binary data and the security grants, the metadata, keywords, etc. of the document are notcopied.
Additional:
When the category parameter is true the original values of the categories will be copied.
When the keywords parameter is true the original values of the keywords will be copied.
When the propertyGroups parameter is true the original values of the metadata groups will be
copied.
When the notes parameter is true the original value of the notes will be copied.
When wiki parameter is true the original value of the wiki will be copied.
SDK for Java 2.7 Page 61 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
this queue and extract document contents.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { String text = ws.getExtractedText("/okm:root/document.doc"); System.out.println(text); } catch (Exception e) { e.printStackTrace(); } }}
getThumbnail
Description:
Method Return values Description
getThumbnail(String docId, ThumbnailType type) InputStream Returns thumbnail image data.
Available types:
ThumbnailType.THUMBNAIL_PROPERTIES ( shown in properties view )
ThumbnailType.THUMBNAIL_LIGHTBOX ( shown in light box )
ThumbnailType.THUMBNAIL_SEARCH ( shown in search view )
Unfortunately there is not a direct way to know if a document has been processed or not from the API,because this information is only stored at database level.
Althoughthis restriction, from API - only administrators users - can do database queries to retrieve thisinformation. Check Repository samples for accessing database level.
More information at Statistics.
Each thumbnail type has its own image dimensions.
SDK for Java 2.7 Page 62 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ThumbnailType;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { OutputStream fos = new FileOutputStream("/home/files/thumbnail.png"); InputStream is = ws.getThumbnail("/okm:root/document.doc", ThumbnailType.THUMBNAIL_LIGHTBOX); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}
setLanguage
Description:
Method Return values Description
setLanguage(String docId, String lang) void Sets the document language.
The parameter lang must be ISO 691-1 compliant.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
More information at: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes.
SDK for Java 2.7 Page 63 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setLanguage("/okm:root/document.doc", "es"); } catch (Exception e) { e.printStackTrace(); } }}
setDocumentTitle
Description:
Method Return values Description
setDocumentTitle(String docId, String title) void Sets the document title.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setTitle("/okm:root/document.doc", "Some title here"); } catch (Exception e) { e.printStackTrace(); } }}
createFromTemplate
Description:
Method Returnvalues Description
Document createFromTemplate(String docId, String dstPath,
String language, boolean categories, boolean keywords,
Document Creates a new document from
template and returns an object
SDK for Java 2.7 Page 64 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
boolean propertyGroups, boolean notes, boolean wiki,
List<FormElement> properties)
Document.
The dstPath can be a folder or a record path.
The parameter language is optional.
When the template uses metadata groups to fill fields into, then these values are mandatory and must be set into properties
parameter.
Example:
package com.openkm;
import java.util.ArrayList;import java.util.Calendar;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;import com.openkm.sdk4j.bean.form.Input;import com.openkm.sdk4j.bean.form.Option;import com.openkm.sdk4j.bean.form.Select;import com.openkm.sdk4j.util.ISO8601;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<FormElement> formElements = new ArrayList<>();
For more information about Templates and metadata check: Creating templates.
Additional:
When category parameter is true the original values of the categories will be copied.
When keywords parameter is true the original values of the keywords will be copied.
When propertyGroups parameter is true the original values of the metadata groups will be copied.
When notes parameter is true the original values of the notes will be copied.
When wiki parameter is true the original values of the wiki will be copied.
The example below is based on Creating PDF template sample.
SDK for Java 2.7 Page 65 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Input name = new Input(); name.setName("okp:tpl.name"); name.setValue("Some name"); formElements.add(name); Input birdDate = new Input(); birdDate.setName("okp:tpl.bird_date"); Calendar cal = Calendar.getInstance(); // Value must be converted to String ISO 8601 compliant birdDate.setValue(ISO8601.formatBasic(cal)); formElements.add(birdDate); Select language = new Select(); language.setName("okp:tpl.language"); // With selected option is enought Option option = new Option(); option.setValue("java"); option.setSelected(true); language.getOptions().add(option); formElements.add(language); ws.createFromTemplate("/okm:templates/tpl.pdf", "/okm:root/test", null, false, false, true, false, false, formElements); } catch (Exception e) { e.printStackTrace(); } }}
createFromTemplateSimple
Description:
Method Returnvalues Description
Document createFromTemplateSimple(String docId, String
dstPath, String language, boolean categories,
boolean keywords, boolean propertyGroups, boolean
notes, boolean wiki, Map<String, String> properties)
Document Creates a new document from the
template and returns an object
Document.
The dstPath can be a folder or a record path.
The parameter language is optional.
When the template usea metadata groups to fill in fields, then these values are mandatory and must be set into properties
parameter.
For more information about Templates and metadata check: Creating templates Creating templates.
Additional:
When category parameter is true the original values of the categories will be copied.
SDK for Java 2.7 Page 66 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.Calendar;import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.util.ISO8601;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> properties = new HashMap<>(); properties.put("okp:tpl.name", "Some name"); Calendar cal = Calendar.getInstance(); // Value must be converted to String ISO 8601 compliant properties.put("okp:tpl.bird_date", ISO8601.formatBasic(cal)); properties.put("okp:tpl.language", "java"); ws.createFromTemplateSimple("/okm:templates/tpl.pdf", "/okm:root/test", null, false, false, true, false, false, properties); } catch (Exception e) { e.printStackTrace(); } }}
updateFromTemplate
Description:
Method Returnvalues Description
Document updateFromTemplate(String docId,
String dstId, List<FormElement> properties)
Document Updates a document previously created from
the template and returns an object Document.
When keywords parameter is true the original values of the keywords will be copied.
When property Groups parameter is true the original values of the metadata groups will be copied.
When notes parameter is true the original values of the notes will be copied.
When wiki parameter is true the original values of the wiki will be copied.
The example below is based on Creating PDF template sample.
SDK for Java 2.7 Page 67 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
This method only has sense when the template uses metadata groups to fill fields in.
Example:
package com.openkm;
import java.util.ArrayList;import java.util.Calendar;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;import com.openkm.sdk4j.bean.form.Input;import com.openkm.sdk4j.bean.form.Option;import com.openkm.sdk4j.bean.form.Select;import com.openkm.sdk4j.util.ISO8601;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<FormElement> formElements = new ArrayList<>(); Input name = new Input(); name.setName("okp:tpl.name"); name.setValue("Some name"); formElements.add(name); Input birdDate = new Input(); birdDate.setName("okp:tpl.bird_date"); Calendar cal = Calendar.getInstance(); // Value must be converted to String ISO 8601 compliant birdDate.setValue(ISO8601.formatBasic(cal)); formElements.add(birdDate); Select language = new Select(); language.setName("okp:tpl.language"); // With selected option is enought Option option = new Option(); option.setValue("java"); option.setSelected(true); language.getOptions().add(option); formElements.add(language); ws.updateFromTemplate("/okm:templates/tpl.pdf", "/okm:root/test", formElements); } catch (Exception e) { e.printStackTrace(); } }}
For more information about Templates and metadata check: Creating templates .
The example below is based on Creating PDF template sample.
SDK for Java 2.7 Page 68 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
updateFromTemplateSimple
Description:
Method Returnvalues Description
updateFromTemplateSimple(String docId, String
dstId, Map<String, String> properties)
Document Updates a document previously created from the
template and returns an object Document.
This method only has sense when the template uses metadata groups to fill in fields.
Example:
package com.openkm;
import java.util.Calendar;import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.util.ISO8601;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> properties = new HashMap<>(); properties.put("okp:tpl.name", "Some name"); Calendar cal = Calendar.getInstance(); // Value must be converted to String ISO 8601 compliant properties.put("okp:tpl.bird_date", ISO8601.formatBasic(cal)); properties.put("okp:tpl.language", "java"); ws.updateFromTemplateSimple("/okm:templates/tpl.pdf", "/okm:root/test", properties); } catch (Exception e) { e.printStackTrace(); } }}
For more information about Templates and metadata take a look at Creating templates .
The example below is based on Creating PDF template sample.
SDK for Java 2.7 Page 69 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getDetectedLanguages
Description:
Method Returnvalues Description
getDetectedLanguages() List<String> Return a list of available document languages what OpenKM can identify.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (String lang : ws.getDetectedLanguages()) { System.out.println(lang); } } catch (Exception e) { e.printStackTrace(); } } }
getAnnotations
Description:
Method Returnvalues Description
getAnnotations(String docId, String
verName)
String Return the document annotations of some document
version.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin";
SDK for Java 2.7 Page 70 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getAnnotations("b46f8df5-0920-4550-9046-21aba7e57e6d", "1.0")); } catch (Exception e) { e.printStackTrace(); } }}
getDifferences
Description:
Method Returnvalues Description
getDifferences(String docId, String v1,
String v2)
InputStream Return a PDF document with the differences between two
document versions.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = ws.getDifferences("b46f8df5-0920-4550-9046-21aba7e57e6d", "1.0", "1.1"); FileOutputStream fos = new FileOutputStream("/home/files/out.pdf"); IOUtils.copy(is, fos); is.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } }}
getCheckedOut
Description:
Method Return values Description
SDK for Java 2.7 Page 71 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getCheckedOut() List<Document> Return a list of documents checkout by the user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Document doc : ws.getCheckedOut()) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}
stamp
Description:
Method Return values Description
stamp(String docId, int type, long stId) void Stamp the document
The parameter type.
Example:
package com.openkm;
import java.io.File;import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test {
Value 0 for type text
Value 1 for type image
SDK for Java 2.7 Page 72 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String user = "okmAdmin"; String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, user, password); try { long stampId = 1; int type = 1; // 1 for type image ws.stamp("babe24df-c443-49a5-9453-39dfc9b27924", type, stampId); } catch (Exception e) { e.printStackTrace(); } }}
stampImage
Description:
Method Returnvalues Description
stampImage(String docId, long stId, String range, String exprX, String
exprY, InputStream image)void
Stamp image in a
document.
Example:
package com.openkm;
import java.io.File;
In exprX and exprY input fields you can put more than a simple number. Currently, the following macrosare defined:
IMAGE_WIDTH
IMAGE_HEIGHT
PAGE_WIDTH
PAGE_HEIGHT
PAGE_CENTER
PAGE_MIDDLE
So to center a stamp in the page you can use:
Expr. X PAGE_CENTER
Expr. Y PAGE_MIDDLE
SDK for Java 2.7 Page 73 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import java.io.FileInputStream;import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test {
public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String user = "okmAdmin"; String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, user, password); try { File file = new File("/home/openkm/logo.png"); InputStream image = new FileInputStream(file); long stampId = 1; String exprX = "PAGE_CENTER - IMAGE_WIDTH / 2"; String exprY = "PAGE_MIDDLE - IMAGE_HEIGHT / 2"; ws.stampImage("babe24df-c443-49a5-9453-39dfc9b27924", stampId, "", exprX, exprY, image); } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 74 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Folder samples
Basics
On most methods you'll see parameter named " fldId". The value of this parameter can be some valid folder UUID or path.
Methods
createFolder
Description:
Method Return values Description
createFolder(Folder fld) Folder Creates a new folder and returns as a result an object Folder.
The variable path into the parameter fld, must be initializated. It indicates the folder path into OpenKM.
Folder fld = new Folder();fld.setPath("/okm:root/test");
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Folder;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Folder fld = new Folder();
Example of fldId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/test"
The other variables of the Folder ( fld ) will not take any effect on the folder creation.
We suggest using the method below to create the Folder Simply rather this one.
SDK for Java 2.7 Page 75 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
fld.setPath("/okm:root/test"); ws.createFolder(fld); } catch (Exception e) { e.printStackTrace(); } }}
createFolderSimple
Description:
Method Return values Description
createFolderSimple(String fldPath) Folder Creates a new folder and returns as a result an object Folder.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Folder;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.createFolderSimple("/okm:root/test"); } catch (Exception e) { e.printStackTrace(); } }}
getFolderProperties
Description:
Method Return values Description
getFolderProperties(String fldId) Folder Return the folder properties.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
SDK for Java 2.7 Page 76 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getFolderProperties("/okm:root/test")); } catch (Exception e) { e.printStackTrace(); } }}
deleteFolder
Description:
Method Return values Description
deleteFolder(String fldId) void Delete a folder.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteFolder("/okm:root/test"); } catch (Exception e) { e.printStackTrace(); } }}
renameFolder
Description:
Method Return values Description
renameFolder(String fldId, String newName) void Rename a folder.
Example:
SDK for Java 2.7 Page 77 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Exists folder /okm:root/test ws.renameFolder("/okm:root/test","renamedFolder"); // Folder has renamed to /okm:root/renamedFolder } catch (Exception e) { e.printStackTrace(); } }}
moveFolder
Description:
Method Return values Description
moveFolder(String fldId, String dstId) void Moves folder into some folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Exists folder /okm:root/test ws.moveFolder("/okm:root/test","/okm:root/tmp"); // Folder has moved to /okm:root/tmp/test } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 78 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getFolderChildren
Description:
Method Return values Description
getFolderChildren(String fldId) List<Folder> Returns a list of all folders which their parent is fldId.
The parameter fldId can be a folder or a record node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Folder;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Folder fld : ws.getFolderChildren("/okm:root")) { System.out.println(fld); } } catch (Exception e) { e.printStackTrace(); } } }
isValidFolder
Description:
Method Return values Description
isValidFolder(String fldId) Boolean Returns a boolean that indicates if the node is a folder or not.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM";
SDK for Java 2.7 Page 79 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Return false ws.isValidFolder("/okm:root/logo.png"); // Return true ws.isValidFolder("/okm:root"); } catch (Exception e) { e.printStackTrace(); } }}
getFolderPath
Description:
Method Return values Description
getFolderPath(String uuid) String Convert folder UUID to folder path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getFolderPath("f123a950-0329-4d62-8328-0ff500fd42db")); } catch (Exception e) { e.printStackTrace(); } }}
copyFolder
Description:
Method Return values Description
copyFolder(String fldId, String dstId, String newName) void Copies a folder into a folder or record.
SDK for Java 2.7 Page 80 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
The values of the dstId parameter should be a folder or record UUID or path.
When parameter newName value is null, folder will preservate the same name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.copyFolder("/okm:root/test","/okm:root/temp","new_name"); } catch (Exception e) { e.printStackTrace(); } }}
extendedFolderCopy
Description:
Method Returnvalues Description
extendedFolderCopy(String fldId, String dstId, boolean categories,
boolean keywords, boolean propertyGroups, boolean notes, boolean
wiki)
void Copies a folder with the
associated data into some
folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
Only the security grants are copied to destination, the metadata, keywords, etc. of the folder are not copied.
See "extendedFolderCopy" method for this feature.
By default only the binary data and the security grants, the metadata, keywords, etc. of the folder are notcopyed.
Additional:
When the category parameter is true the original values of the categories will be copied.
When the keywords parameter is true the original values of the keywords will be copied.
SDK for Java 2.7 Page 81 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.extendedFolderCopy("/okm:root/test", "/okm:root/tmp", true, true, true, true, true); } catch (Exception e) { e.printStackTrace(); } }}
getContentInfo
Description:
Method Return values Description
getContentInfo(String fldId) ContentInfo Return and object ContentInfo with information about folder.
The ContentInfo object retrives information about:
The number of folders into.
The number of documents into.
The number of records into.
The number of mails into.
The size in bytes of all objects into the folder.
Example:
When the propertyGroups parameter is true the original values of the metadata groups will be
copied.
When the notes parameter is true the original values of the notes will be copied.
When the wiki parameter is true the original values of the wiki will be copied.
SDK for Java 2.7 Page 82 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getContentInfo("/okm:root/test")); } catch (Exception e) { e.printStackTrace(); } }}
purgeFolder
Description:
Method Return values Description
purgeFolder(String fldId) void The folder is definitely removed from the repository.
Usually you will purge folders into /okm:trash/userId - the personal trash user locations - but it is possible to directly purge
any folder from the whole repository.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.purgeFolder("/okm:trash/okmAdmin/test"); } catch (Exception e) { e.printStackTrace(); } }
When a folder is purged, it will only be able to be restored from a previously repository backup. The purgeaction removes the folder definitely from the repository.
SDK for Java 2.7 Page 83 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
setStyle
Description:
Method Return values Description
setStyle(String fldId, long styleId) void Set the folder style.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setStyle("/okm:trash/okmAdmin/test", 1); } catch (Exception e) { e.printStackTrace(); } }}
createMissingFolders
Description:
Method Return values Description
createMissingFolders(String fldPath) void Create missing folders.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
More information at Folder style.
SDK for Java 2.7 Page 84 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.createMissingFolders("/okm:root/missingfld1/missingfld2/missingfld3"); } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 85 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Mail samples
Basics
On almost methods you'll see parameter named "mailId". The value of this parameter can be a valid mail UUID or path.
Methods
createMail
Description:
Method Return values Description
createMail(Mail mail) Mail Creates a new mail and returns as a result an object Mail.
The variable path into the parameter mail, must be initializated. It indicates the folder path into OpenKM.
Other mandatory variables:
size ( mail size in bytes ).
from ( mail from account ).
reply, to, cc, bcc ( mail accounts are optional ).
sendDate ( date when mail was sent ).
receivedDate ( date when was received ).
subject ( mail subject ).
content ( the mail content ).
mimeType ( HTML or text mime type ).
headers ( the mail headers are optional).
raw ( the mail raw are optional).
origin ( msg, eml, api, pop3, imap origin )
title ( mail title )
Example of fldId:
Using UUID -> "064ff51a-b815-4f48-a096-b4946876784f";
Using path -> "/okm:root/2937b81d-0b10-4dd0-a426-9acbd80be1c9-some subject"
Mai accounts allowed formats:
SDK for Java 2.7 Page 86 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.Arrays;import java.util.Calendar;
import org.owasp.encoder.Encode;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Mail mail = new Mail(); // Mail path = msgId + escaped(subject) String msgId = "2937b81d-0b10-4dd0-a426-9acbd80be1c9"; String subject = "some subject"; String mailPath = "/okm:root/"+ msgId + "-" + escape(subject);
"\"John King\" <[email protected]>"
Mail path allowed is:
MSGID + "-" + sanitized(subject).
MIME types values:
Mail.MIME_TEXT for text mail format.
Mail.MIME_HTML for html mail format.
Origin values:
Mail.ORIGIN_MSG for .msg mail format.
Mail.ORIGIN_EML for .eml mail format.
Mail.ORIGIN_API for mail format created from API.
Mail.ORIGIN_POP3 for mail imported from pop3 account.
Mail.ORIGIN_IMAP for mail imported from imap account.
The other variables of Mail ( mail ) will not take any effect on mail creation.
SDK for Java 2.7 Page 87 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
mail.setPath(mailPath); // Other format for mail "some name <[email protected]>" mail.setFrom("<[email protected]>"); mail.setTo((String[])Arrays.asList("[email protected]").toArray()); // You should set real dates mail.setSentDate(Calendar.getInstance()); mail.setReceivedDate(Calendar.getInstance()); mail.setContent("some content"); mail.setMimeType(Mail.MIME_TEXT); mail.setSubject(subject); mail.setOrigin(Mail.ORIGIN_API); // Get only as an approximation of real size for these sample mail.setSize(mail.toString().getBytes("UTF-8").length); ws.createMail(mail); } catch (Exception e) { e.printStackTrace(); } } private static String escape(String name) { String ret = cleanup(name); // Fix XSS issues ret = Encode.forHtml(ret); return ret; } private static String cleanup(String name) { String ret = name.replace("/", ""); ret = ret.replace("*", ""); ret = ret.replaceAll("\\s+", " ").trim(); return ret; }}
getMailProperties
Description:
Method Return values Description
getMailProperties(String mailId) Mail Returns the mail properties.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
SDK for Java 2.7 Page 88 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { System.out.println(ws.getMailProperties("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); } }}
deleteMail
Description:
Method Return values Description
deleteMail(String mailId) void Deletes a mail.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}
purgeMail
Description:
Method Return values Description
purgeMail(String mailId) void Mail is definitely removed from repository.
Usually you will purge mails into /okm:trash/userId - the personal trash user locations - but it is possible to directly purge
any mail from the whole repository.
When a mail is purged it will only be able to be restored from a previously repository backup. The purgeaction removes the mail definitely from the repository.
SDK for Java 2.7 Page 89 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.purgeMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}
renameMail
Description:
Method Return values Description
renameMail(String mailId, String newName) void Rename a mail.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.renameMail("064ff51a-b815-4f48-a096-b4946876784f","new name"); } catch (Exception e) { e.printStackTrace(); }
From OpenKM frontend UI the subject is used to show the mail name at file browser table. That means thischange will take effect internally on mail path, but will not be appreciated from default UI.
SDK for Java 2.7 Page 90 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}}
moveMail
Description:
Method Return values Description
moveMail(String mailId, String dstId) void Move mail into a folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.moveMail("064ff51a-b815-4f48-a096-b4946876784f","/okm:root/tmp"); } catch (Exception e) { e.printStackTrace(); } }}
copyMail
Description:
Method Returnvalues Description
public void copyMail(String mailId, String dstId, String
newName)void
Copies mail into a folder or
record.
The values of the dstId parameter should be a folder or record UUID or path.
When parameter newName value is null, mail will preservate the same name.
Only the security grants are copied to destination, the metadata, keywords, etc. of the folder are not copied.
SDK for Java 2.7 Page 91 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.copyMail("064ff51a-b815-4f48-a096-b4946876784f","/okm:root/temp","new_name"); } catch (Exception e) { e.printStackTrace(); } }}
extendedMailCopy
Description:
Method Returnvalues Description
extendedMailCopy(String mailId, String dstId, boolean categories,
boolean keywords, boolean propertyGroups, boolean notes,
boolean wiki, String newName)
void Copy mail width with
associated data into a folder or
record.
The values of the dstId parameter should be a folder or record UUID or path.
See "extendedMailCopy" method for this feature.
By default only the binary data and the security grants, the metadata, keywords, etc. of the folder are notcopied.
Additional:
When the category parameter is true the original values of the categories will be copied.
When the keywords parameter is true the original values of the keywords will be copied.
When the propertyGroups parameter is true the original values of the metadata groups will be
copied.
When the notes parameter is true the original values of the notes will be copied.
When wiki parameter is true the original values of the wiki will be copied.
SDK for Java 2.7 Page 92 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.extendedMailCopy("064ff51a-b815-4f48-a096-b4946876784f", "/okm:root/tmp", true, true, true, true, true, null); } catch (Exception e) { e.printStackTrace(); } }}
getMailChildren
Description:
Method Return values Description
getMailChildren(String fldId) List<Mail> Returns a list of all mails which their parent is fldId.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Mail mail : ws.getMailChildren("/okm:root")) { System.out.println(mail); } } catch (Exception e) { e.printStackTrace(); } }
When newName is set the mail name is renamed.
SDK for Java 2.7 Page 93 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
isValidMail
Description:
Method Return values Description
isValidMail(String mailId) Boolean Returns a boolean that indicates if the node is a mail or not.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Return false ws.isValidMail("/okm:root/logo.png"); // Return true ws.isValidMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}
getMailPath
Description:
Method Return values Description
getMailPath(String uuid) String Converts mail UUID to mail path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) {
SDK for Java 2.7 Page 94 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getMailPath("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); } }}
createAttachment
Description:
Method Returnvalues Description
createAttachment(String mailId, String docName, InputStream
is)
Document Adds an attachement to the
mail.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/home/files/logo.png"); ws.createAttachment("064ff51a-b815-4f48-a096-b4946876784f", "log.png", is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
deleteAttachment
Description:
Method Return values Description
SDK for Java 2.7 Page 95 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
deleteAttachment(String mailId, String docId) void Delete a mail attachment.
The value of the parameter docId parameter can be a valid document UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteAttachment("064ff51a-b815-4f48-a096-b4946876784f", "f123a950-0329-4d62-8328-0ff500fd42db"); } catch (Exception e) { e.printStackTrace(); } }}
getAttachments
Description:
Method Return values Description
getAttachments(String mailId) List<Document> Retrieves a list of all the attachment documents of the mails.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (Document doc : ws.getAttachments("064ff51a-b815-4f48-a096-b4946876784f")) { System.out.println(doc); } } catch (Exception e) {
SDK for Java 2.7 Page 96 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
e.printStackTrace(); } }}
sendMailWithAttachments
Description:
Method Returnvalues Description
sendMailWithAttachments(List<String> to, List<String> cc, List<String> bcc,
String subject, String body, List<String> docsId, String dstId)
void Send mail message
with attachement.
The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicate where the mail
will be stored in the repository after is sent.
Other parameters:
to are a list of mail accounts destination.
subject is the mail subject.
cc, bcc are a list of mail accounts destination ( optional )
docsId are a list of valid document UUID already into OpenKM that will be send as attachment into mail ( optional
).
Example:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { List<String> to = Arrays.asList("[email protected]"); List<String> cc = new ArrayList<>(); List<String> bcc = new ArrayList<>(); List<String> docsId = Arrays.asList("f123a950-0329-4d62-8328-0ff500fd42db","/okm:root/logo.png");
SDK for Java 2.7 Page 97 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
ws.sendMailWithAttachments(to, cc, bcc, "some subject", "some body", docsId, "/okm:root/tmp"); } catch (Exception e) { e.printStackTrace(); } }}
importEml
Description:
Method Return values Description
importEml(String dstId, String title, InputStream is) Mail Import a mail in EML format.
The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicate where the mail
will be stored in the repository after is imported.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/test.eml"); Mail mail = ws.importEml("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
importMsg
Description:
Method Return values Description
SDK for Java 2.7 Page 98 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
importMsg(String dstId, String title, InputStream is) Mail Import a mail in MSG format.
The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicate where the mail
will be stored in the repository after is sent.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/test.msg"); Mail mail = ws.importMsg("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } } }
setMailTitle
Description:
Method Return values Description
setMailTitle(String mailId, String title) void Sets the mail title.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) {
SDK for Java 2.7 Page 99 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setMailTitle("68ed7a93-005c-4ec6-ac01-bb151573c775", "new title"); } catch (Exception e) { e.printStackTrace(); } }}
sendMail
Description:
Method Return values Description
sendMail(List<String> recipients, String subject, String body) void Sends a mail.
Example:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { StringBuffer body = new StringBuffer(); body.append("Test message body."); List<String> recipients = new ArrayList<>(); recipients.add("[email protected]"); ws.sendMail(recipients, "Testing sending mail from OpenKM", body.toString()); } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 100 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Note samples
Basics
On most methods you'll see parameter named "nodeId". The value of this parameter can be a valid document, folder, mail or
record UUID or path.
Methods
addNote
Description:
Method Return values Description
addNote(String nodeId, String text) Note Adds a note to a node and returns an object Note.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.addNote("/okm:root/logo.png", "the note text"); } catch (Exception e) { e.printStackTrace(); } }}
getNote
Description:
Method Return values Description
Example of nodeId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/logo.png"
SDK for Java 2.7 Page 101 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getNote(String noteId) Note Retrieves the note.
Example:
package com.openkm;
import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Note;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<Note> notes = ws.listNotes("/okm:root/logo.png"); if (notes.size() > 0) { System.out.println(ws.getNote(notes.get(0).getPath())); } } catch (Exception e) { e.printStackTrace(); } }}
deleteNote
Description:
Method Return values Description
deleteNote(String noteId) Note Delete a note.
Example:
package com.openkm;
The noteId is an UUID.
The object Node has a variable named path, in that case the path contains an UUID.
The noteId is an UUID.
The object Node has a variable named path, in that case the path contains an UUID.
SDK for Java 2.7 Page 102 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Note;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<Note> notes = ws.listNotes("/okm:root/logo.png"); if (notes.size() > 0) { ws.deleteNote(notes.get(0).getPath()); } } catch (Exception e) { e.printStackTrace(); } }}
setNote
Description:
Method Return values Description
setNote(String noteId, String text) void Changes the note text.
Example:
package com.openkm;
import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Note;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<Note> notes = ws.listNotes("/okm:root/logo.png"); if (notes.size() > 0) {
The noteId is an UUID.
The object Node has a variable named path, in that case the path contains an UUID.
SDK for Java 2.7 Page 103 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
ws.setNote(notes.get(0).getPath(), "text modified"); } } catch (Exception e) { e.printStackTrace(); } }}
listNotes
Description:
Method Return values Description
listNotes(String nodeId) List<Note> Retrieves a list of all the notes of a node.
Example:
package com.openkm;
import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Note;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { List<Note> notes = ws.listNotes("/okm:root/logo.png"); for (Note note : notes) { System.out.println(note); } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 104 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Plugin samples
Methods
executePostPlugin
Description:
Method Returnvalues Description
executePostPlugin(String className, Map<String, String>
parameters, Class<?> clazz, InputStream is)
Object Return the Object value of execution of a
class which implements RestPlugin.
Example:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> parameters = new HashMap<>(); parameters.put("param1", "value1"); parameters.put("param2", "value2"); String value = (String) ws.executePostPlugin("com.openkm.plugin.rest.TestRestPlugin", parameters, String.class, null); System.out.println(value); } catch (Exception e) {
The "className" value must be the canonical class name of a class which implements RestPlugin
interface.
The "parameters" map are values what will be used by class set in className.
The "clazz" value should be the Class class of the returned object. It's used by REST for
unmarshalling the result of the query.
The "is" stream allow to uploading a document.
This method execute a REST call at POST.
SDK for Java 2.7 Page 105 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
e.printStackTrace(); } }}
executePostPluginReturnFile
Description:
Method Return values
executePostPluginReturnFile(String className, Map<String, String> parameters, InputStream is) InputStream
The "className" value must be the canonical class name of a class which implements RestPlugin interface.
The "parameters" map are values what will be used by class set in className.
The "is" stream allow to uploading a document.
This method execute a REST call at POST.
The RestPlugin must return a Response object. Take a look at the next sample implementation of the RestPlugin:
package com.openkm.plugin.rest;
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Map;
import javax.ws.rs.WebApplicationException;import javax.ws.rs.core.Response;import javax.ws.rs.core.StreamingOutput;
import net.xeoh.plugins.base.annotations.PluginImplementation;
import org.apache.commons.io.IOUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
import com.openkm.bean.Document;import com.openkm.integration.cifs.device.PathUtils;import com.openkm.module.DocumentModule;import com.openkm.module.ModuleManager;
/** * Sample rest plugin */@PluginImplementationpublic class TestGetDocumentRestPlugin implements RestPlugin { private static Logger log = LoggerFactory.getLogger(TestGetDocumentRestPlugin.class);
@Override public Object executePlugin(Map<String, String> parameters, InputStream is) throws Exception { log.debug("executePlugin({})", parameters); DocumentModule dm = ModuleManager.getDocumentModule(); String docId = parameters.get("docId");
SDK for Java 2.7 Page 106 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.Map;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> parameters = new HashMap<>(); parameters.put("docId", "/okm:root/invoices/00000001_001_of_001.pdf"); InputStream is = ws.executePostPluginReturnFile("com.openkm.plugin.rest.TestGetDocumentRestPlugin", parameters, null); OutputStream fos = new FileOutputStream("/home/user/Desktop/test.pdf"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}
boolean inline = parameters.containsKey("inline"); Document doc = dm.getProperties(null, docId); String mimeType = doc.getMimeType(); String fileName = PathUtils.getFileNameFromPath(doc.getPath()); final InputStream isContent = dm.getContent(null, docId, false); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { IOUtils.copy(isContent, os); IOUtils.closeQuietly(isContent); IOUtils.closeQuietly(os); } }; Response.ResponseBuilder response = Response.ok(stream); response.type(mimeType); // because the method produces MediaType.APPLICATION_OCTET_STREAM can be set any document mime type
// inline true when you want to embeded the content into if (inline) { response.header("Content-disposition", "inline; filename=\"" + fileName + "\""); } else { response.header("Content-Disposition", "attachment; filename=\"" + fileName + "\""); }
return response; }}
SDK for Java 2.7 Page 107 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
executeGetPlugin
Description:
Method
executeGetPlugin(String className, Map<String, String> parameters, Class<?> clazz)
Example:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Browser URL // http://localhost:8080/OpenKM/services/rest/plugin/executeGetPlugin?className=com.openkm.plugin.rest.TestGetDocumentRestPlugin¶m={"key":"docId","value":"/okm:root/invoices/00000001_001_of_001.pdf"} Map<String, String> parameters = new HashMap<>(); parameters.put("docId", "/okm:root/invoices/00000001_001_of_001.pdf"); parameters.put("docId2", "/okm:root/invoices/00000001_001_of_001.pdf2"); String value = (String) ws.executeGetPlugin("com.openkm.plugin.rest.TestRestPlugin", parameters, String.class); System.out.println(value); } catch (Exception e) { e.printStackTrace(); } }}
The "className" value must be the canonical class name of a class which implements RestPlugin interface.
The "parameters" map are values what will be used by class set in className.
The "clazz" value should be the Class class of the returned object. It's used by REST for unmarshalling the result of the query.
This method execute a REST call at GET.
You can also execute directly from the browser, take the next url as a sample:
http://localhost:8080/OpenKM/services/rest/plugin/executeGetPlugin?className=com.openkm.plugin.rest.TestGetDocumentRestPlugin¶m={"key":"docId","value":"/okm:root/invoices/00000001_001_of_001.pdf"}
SDK for Java 2.7 Page 108 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
executePluginGetReturnFile
Description:
Method
executeGetPluginReturnFile(String className, Map<String, String> parameters)
The "className" value must be the canonical class name of a class which implements RestPlugin interface.
The "parameters" map are values what will be used by class set in className.
This method execute a REST call at GET.
The RestPlugin must return a Response object. Take a look at the next sample implementation of the RestPlugin:
package com.openkm.plugin.rest;
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Map;
import javax.ws.rs.WebApplicationException;import javax.ws.rs.core.Response;import javax.ws.rs.core.StreamingOutput;
import net.xeoh.plugins.base.annotations.PluginImplementation;
import org.apache.commons.io.IOUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
import com.openkm.bean.Document;import com.openkm.integration.cifs.device.PathUtils;import com.openkm.module.DocumentModule;import com.openkm.module.ModuleManager;
/** * Sample rest plugin */@PluginImplementationpublic class TestGetDocumentRestPlugin implements RestPlugin { private static Logger log = LoggerFactory.getLogger(TestGetDocumentRestPlugin.class);
@Override public Object executePlugin(Map<String, String> parameters, InputStream is) throws Exception { log.debug("executePlugin({})", parameters); DocumentModule dm = ModuleManager.getDocumentModule(); String docId = parameters.get("docId"); boolean inline = parameters.containsKey("inline"); Document doc = dm.getProperties(null, docId); String mimeType = doc.getMimeType(); String fileName = PathUtils.getFileNameFromPath(doc.getPath()); final InputStream isContent = dm.getContent(null, docId, false); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException {
SDK for Java 2.7 Page 109 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Browser URL // http://localhost:8180/OpenKM/services/rest/plugin/executeGetPluginReturnFile?className=com.openkm.plugin.rest.TestGetDocumentRestPlugin¶m={"key":"docId","value":"/okm:root/invoices/00000001_001_of_001.pdf"} // http://localhost:8180/OpenKM/services/rest/plugin/executeGetPluginReturnFile?className=com.openkm.plugin.rest.TestGetDocumentRestPlugin¶m={"key":"docId","value":"/okm:root/invoices/00000001_001_of_001.pdf"}¶m={"key":"inline","value":"true"} Map<String, String> parameters = new HashMap<>(); parameters.put("docId", "/okm:root/invoices/00000001_001_of_001.pdf"); InputStream is = ws.executeGetPluginReturnFile("com.openkm.plugin.rest.TestGetDocumentRestPlugin", parameters); OutputStream fos = new FileOutputStream("/home/jllort/Escritorio/test.pdf"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}
IOUtils.copy(isContent, os); IOUtils.closeQuietly(isContent); IOUtils.closeQuietly(os); } };
Response.ResponseBuilder response = Response.ok(stream); response.type(mimeType); // because the method produces MediaType.APPLICATION_OCTET_STREAM can be set any document mime type
// inline true when you want to embeded the content into if (inline) { response.header("Content-disposition", "inline; filename=\"" + fileName + "\""); } else { response.header("Content-Disposition", "attachment; filename=\"" + fileName + "\""); }
return response; }}
You can also execute directly from the browser, take the next url as a sample:
http://localhost:8080/OpenKM/services/rest/plugin/executeGetPluginReturnFile?className=com.openkm.plugin.rest.TestGetDocumentRestPlugin¶m={"key":"docId","value":"/okm:root/invoices/00000001_001_of_001.pdf"}
SDK for Java 2.7 Page 110 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Property samples
Basics
On most methods you'll see parameter named "nodeId". The value of this parameter can be a valid document, folder, mail or
record UUID or path.
Methods
addCategory
Description:
Method Return values Description
addCategory(String nodeId, String catId) void Set a relation between a category and a node.
The value of the catId parameter should be a category folder UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.addCategory("/okm:root/logo.png", "/okm:categories/test"); } catch (Exception e) { e.printStackTrace(); } }}
removeCategory
Description:
Example of nodeId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/logo.png"
SDK for Java 2.7 Page 111 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Method Return values Description
removeCategory(String nodeId, String catId) void Removes a relation between a category and a node.
The value of the catId parameter should be a category folder UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.removeCategory("/okm:root/logo.png", "/okm:categories/test"); } catch (Exception e) { e.printStackTrace(); } }}
addKeyword
Description:
Method Return values Description
addKeyword(String nodeId, String keyword) void Add a keyword in a node.
The keyword should be a single word without spaces, formats allowed:
"test"
"two_words" ( the character "_" is used for the junction ).
Example:
package com.openkm;
We also we suggest you to add keyword in lowercase format, because OpenKM is case sensitive.
SDK for Java 2.7 Page 112 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.addKeyword("/okm:root/logo.png", "test"); } catch (Exception e) { e.printStackTrace(); } }}
removeKeyword
Description:
Method Return values Description
removeKeyword(String nodeId, String keyword) void Removes a keyword from a node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.removeKeyword("/okm:root/logo.png", "test"); } catch (Exception e) { e.printStackTrace(); } }}
setEncryption
Description:
Method Returnvalues Description
setEncryption(String nodeId, String void Marks a document as an en cripted binary data in the
SDK for Java 2.7 Page 113 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
cipherName) repository.
The parameter nodeId should be a document node.
The parameter cipherName saves information about the encription mechanism.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.setEncryption("/okm:root/logo.png", "phrase"); } catch (Exception e) { e.printStackTrace(); } }}
unsetEncryption
Description:
Method Return values Description
unsetEncryption(String nodeId) void Marks a document is a normal binary data into repository.
The parameter nodeId should be a document node.
Example:
package com.openkm;
This method does not perform any kind of encryption, simply mark in the database that a document isencrypted.
This method does not perform any kind of encryption, simply mark into the database that a document hasbeen uncrypted.
SDK for Java 2.7 Page 114 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.unsetEncryption("/okm:root/logo.png"); } catch (Exception e) { e.printStackTrace(); } }}
setSigned
Description:
Method Returnvalues Description
setSigned(String nodeId, boolean
signed)void
Marks a document as signed or unsigned binary data into the
repository.
The parameter nodeId should be a document node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setSigned("/okm:root/logo.pdf", true); } catch (Exception e) { e.printStackTrace(); } }}
This method does not perform any kind of digital signature process, simply mark into the database that adocument is signed.
SDK for Java 2.7 Page 115 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
PropertyGroup samples
Basics
On most methods you'll see a parameter named " nodeId". The value of this parameter can be a valid document, folder, mail or
record UUID or path.
Methods
addGroup
Description:
Method Return values Description
addGroup(String nodeId, String grpName) void Adds an empty metadata group to a node.
The grpName should be a valid Metadata group name.
From the older OpenKM version we named "Metadata Groups" as "Property Groups".
Although we understand this name does not help a lot to identify these methods with metadata ones, for historicalreason, we continue maintaining the nomenclature.
For more information about Metadata.
Example of nodeId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/logo.png"
The class com.openkm.sdk4j.util.ISO8601 should be used to set and parse metadata date fields. The metadatafield of type date values is stored in the application in ISO-8601 basic format.
To convert the retrieved metada field of type date to a valid date use:
Calendar cal = ISO8601.parseBasic(metadataFieldValue);
To save the date value in the metadata field of type date use:
Calendar cal = Calendar.getInstance(); // Present date String metadataFieldValue = ISO8601.formatBasic(cal);// metadataFieldValue can be saved into repository metadata field of type date
SDK for Java 2.7 Page 116 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.addGroup("/okm:root/logo.pdf", "okg:consulting"); } catch (Exception e) { e.printStackTrace(); } }}
removeGroup
Description:
Method Return values Description
removeGroup(String nodeId, String grpName) void Removes a metadata group of a node.
The grpName should be a valid Metadata group name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.removeGroup("/okm:root/logo.pdf", "okg:consulting"); } catch (Exception e) { e.printStackTrace(); } }}
getGroups
SDK for Java 2.7 Page 117 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
getGroups(String nodeId) List<PropertyGroup> Retrieves a list of metadata groups assigned to a node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.PropertyGroup;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (PropertyGroup pGroup : ws.getGroups("/okm:root/logo.pdf")) { System.out.println(pGroup); } } catch (Exception e) { e.printStackTrace(); } }}
getAllGroups
Description:
Method Return values Description
getAllGroups() List<PropertyGroup> Retrieves a list of all metadata groups set into the application.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.PropertyGroup;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try {
SDK for Java 2.7 Page 118 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
for (PropertyGroup pGroup : ws.getAllGroups()) { System.out.println(pGroup); } } catch (Exception e) { e.printStackTrace(); } }}
getPropertyGroupProperties
Description:
Method Return values Description
getPropertyGroupProperties(String nodeId,
String grpName)List<FormElement>
Retrieves a list of all metadata group
elements and its node values.
The grpName should be a valid Metadata group name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (FormElement fElement : ws.getPropertyGroupProperties("/okm:root/logo.pdf", "okg:consulting")) { System.out.println(fElement); } } catch (Exception e) { e.printStackTrace(); } }}
getPropertyGroupForm
Description:
Method Return values Description
The method is usually used to display form elements with its values to be shown or changed by used.
SDK for Java 2.7 Page 119 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getPropertyGroupForm(String
grpName)List<FormElement>
Retrieves a list of all metadata group elements
definition.
The grpName should be a valid Metadata group name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (FormElement fElement : ws.getPropertyGroupForm("okg:consulting")) { System.out.println(fElement); } } catch (Exception e) { e.printStackTrace(); } }}
setPropertyGroupProperties
Description:
Method Returnvalues Description
setPropertyGroupProperties(String nodeId, String grpName,
List<FormElement> ofeList)void
Changes the metadata group values of a
node.
The grpName should be a valid Metadata group name.
The method is usually used to display empty form elements for creating new metadata values.
Before changing metadata, you should have the group added in the node ( see addGroup method ) otherwise will be raised anderror.
SDK for Java 2.7 Page 120 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;import com.openkm.sdk4j.bean.form.Input;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Modify with a full FormElement list List<FormElement> fElements = ws.getPropertyGroupProperties("/okm:root/logo.pdf","okg:consulting"); for (FormElement fElement : fElements) { if (fElement.getName().equals("okp:consulting.name")) { Input name = (Input) fElement; name.setValue("new value"); } } ws.setPropertyGroupProperties("/okm:root/logo.pdf", "okg:consulting", fElements); // Same modification with only affected FormElement fElements = new ArrayList<>(); Input name = new Input(); name.setName("okp:consulting.name"); name.setValue("new value"); fElements.add(name); ws.setPropertyGroupProperties("/okm:root/logo.pdf","okg:consulting", fElements); } catch (Exception e) { e.printStackTrace(); } }
It is not mandatory to set in the parameter ofeList all FormElement, it is enought with the formElements you wish to change itsvalues.
The sample below is based on this Metadata group definition:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.0//EN" "http://www.openkm.com/dtd/property-groups-2.0.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <input label="Name" type="text" name="okp:consulting.name"/> <input label="Date" type="date" name="okp:consulting.date" /> <checkbox label="Important" name="okp:consulting.important"/> <textarea label="Comment" name="okp:consulting.comment"/> </property-group></property-groups>
SDK for Java 2.7 Page 121 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
setPropertyGroupPropertiesSimple
Description:
Method Returnvalues Description
setPropertyGroupPropertiesSimple(String nodeId, String grpName, Map<String,
String> properties)void
Changes the metadata group values
of a node.
The grpName should be a valid Metadata group name.
Before changing metadata, you should have the group added in the node ( see addGroup method ) otherwise will be raised anderror.
It is not mandatory to set in the properties parameter all fields values, is enough with the fields you wish to change its values.
The sample below is based on this Metadata group definition:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.0//EN" "http://www.openkm.com/dtd/property-groups-2.0.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <input label="Name" type="text" name="okp:consulting.name"/> <input label="Date" type="date" name="okp:consulting.date" /> <checkbox label="Important" name="okp:consulting.important"/> <textarea label="Comment" name="okp:consulting.comment"/> </property-group></property-groups>
To add several values on a metadata field of type multiple like this:
<select label="Multiple" name="okp:consulting.multiple" type="multiple"> <option label="One" value="one"/> <option label="Two" value="two"/> <option label="Three" value="three" /></select>
You should do:
properties.put("okp:consulting.multiple", "one;two");
Where "one" and "two" are valid values and character ";" is used as separator.
SDK for Java 2.7 Page 122 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.Calendar;import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.util.ISO8601;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> properties = new HashMap<>(); properties.put("okp:consulting.name", "new name"); // Date fields must be saved with basic ISO 8601 format properties.put("okp:consulting.date", ISO8601.formatBasic(Calendar.getInstance())); ws.setPropertyGroupPropertiesSimple("/okm:root/logo.pdf","okg:consulting", properties); } catch (Exception e) { e.printStackTrace(); } }}
hasGroup
Description:
Method Returnvalues Description
hasGroup(String nodeId, String
grpName)Boolean
Returns a boolean that indicate if the node has or not a
metadata group.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
SDK for Java 2.7 Page 123 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { System.out.println("Have metadata group:" + ws.hasGroup("/okm:root/logo.pdf", "okg:consulting")); } catch (Exception e) { e.printStackTrace(); } }}
getRegisteredDefinition
Description:
Method Return values Description
getRegisteredDefinition() String Returns the XML Metada groups definition.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getRegisteredDefinition()); } catch (Exception e) { e.printStackTrace(); } }}
registerDefinition
Description:
Method Return values Description
registerDefinition(InputStream is) void Set the XML Metada groups definition into the repository.
The method only can be executed by super user granted ( ROLE_ADMIN member user).
The method only can be executed by super user granted ( ROLE_ADMIN member user).
SDK for Java 2.7 Page 124 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/PropertyGroups.xml"); ws.registerDefinition(is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
getSuggestions
Description:
Method Return values Description
getSuggestions(String nodeId, String grpName, String propName) List<String> Retrieves a list of a suggested metadata field values.
The propName parameter should be a Metadata Select field type.
More information at Creating your own Suggestion Analyzer and Metadata Select field.
The sample below is based on this Metadata group definition:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.0//EN" "http://www.openkm.com/dtd/property-groups-2.0.dtd"><property-groups> <property-group label="Technology" name="okg:technology"> <select label="Type" name="okp:technology.type" type="multiple"> <option label="Alfa" value="t1"/>
SDK for Java 2.7 Page 125 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (String value : ws.getSuggestions("/okm:root/logo.pdf","okg:technology", "okp:technology.language")) { System.out.println(value); } } catch (Exception e) { e.printStackTrace(); } }}
getPropertyGroupPropertiesSimple
Description:
Method Returnvalues Description
getPropertyGroupPropertiesSimple(String
nodeId, String grpName)
Map<String,
String>
Retrieves a map - (key,value) pairs - with Metada
group values of a node.
Example:
package com.openkm;
import java.util.HashMap;import java.util.Map;
<option label="Beta" value="t2" /> <option label="Omega" value="t3" /> </select> <select label="Language" name="okp:technology.language" type="simple"> <option label="Java" value="java"/> <option label="Python" value="python"/> <option label="PHP" value="php" /> </select> <input label="Comment" name="okp:technology.comment"/> <textarea label="Description" name="okp:technology.description"/> <input label="Link" type="link" name="okp:technology.link"/> </property-group></property-groups>
SDK for Java 2.7 Page 126 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Map<String, String> properties = new HashMap<>(); properties = ws.getPropertyGroupPropertiesSimple("/okm:root/logo.pdf","okg:technology"); for (String key : properties.keySet()) { System.out.println(key + "> " + properties.get(key)); } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 127 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Record samples
On most methods you'll see parameter named "recId". The value of this parameter can be a valid record UUID or path.
Methods
createRecord
Description:
Method Return values Description
createRecord(Record record) Record Creates a new record and return as a result an object Record.
The variable path in the parameter record, must be initializated. It indicates the folder path into OpenKM.
Record record = new Record();record.setPath("/okm:root/PKI-100200");
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Record;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Record record = new Record(); record.setPath("/okm:root/PKI-100200"); record.setTitle("some title"); ws.createRecord(record);
Example of recId:
Using UUID -> "a66664a3-0e1d-4b03-9049-a2f4732a0802";
Using path -> "/okm:root/PKI-100200"
Optionally it can be set title variable, the other variables of the Record ( record ) will not take any effect onrecord creation.
SDK for Java 2.7 Page 128 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } }}
getRecordProperties
Description:
Method Return values Description
getRecordProperties(String recId) Record Returns the record properties.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getRecordProperties("/okm:root/PKI-100200")); } catch (Exception e) { e.printStackTrace(); } }}
deleteRecord
Description:
Method Return values Description
deleteRecord(String recId) void Deletes a record.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) {
SDK for Java 2.7 Page 129 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.deleteRecord("/okm:root/PKI-100200"); } catch (Exception e) { e.printStackTrace(); } }}
purgeRecord
Description:
Method Return values Description
purgeRecord(String recId) void The record is definetivelly removed from repository.
Usually you will purge records to /okm:trash/userId - the personal trash user locations - but is possible to directly purge any
record from the whole repository.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.purgeRecord("/okm:trash/okmAdmin/PKI-100200"); } catch (Exception e) { e.printStackTrace(); } }}
renameRecord
Description:
When a record is purged it will only be able to be restored from a previously repository backup. The purgeaction remove the record definitely from the repository.
SDK for Java 2.7 Page 130 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Method Return values Description
renameRecord(String recId, String newName) Record Renames a record.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.renameRecord("/okm:root/PKI-100200", "new_name"); } catch (Exception e) { e.printStackTrace(); } }}
moveRecord
Description:
Method Return values Description
moveRecord(String recId, String dstId) void Moves a record to a folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.moveRecord("/okm:root/PKI-100200", "/okm:root/tmp"); } catch (Exception e) { e.printStackTrace(); }
SDK for Java 2.7 Page 131 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}}
copyRecord
Description:
Method Return values Description
copyRecord(String recId, String dstId, String newName) void Copies a record to a folder or record.
The values of the dstId parameter should be a folder or record UUID or path.
When the parameter newName value is null, the record will preserve the same name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.copyRecord("/okm:root/PKI-100200", "/okm:root/tmp", "new_name"); } catch (Exception e) { e.printStackTrace(); } }}
isValidRecord
Description:
Method Return values Description
isValidRecord(String recId) Boolean Returns a boolean that indicate if the node is a record or not.
Example:
Only the security grants are copied to the destination, the metadata, keywords, etc. of the record are notcopied.
SDK for Java 2.7 Page 132 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println("Is a record:" + ws.isValidRecord("/okm:root/PKI-100200")); } catch (Exception e) { e.printStackTrace(); } }}
getRecordChildren
Description:
Method Return values Description
getRecordChildren(String fldId) List<Record> Returns a list of all records which their parent is fldId
The parameter fldId can be a folder or a record node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Record;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Record rec : ws.getRecordChildren("/okm:root/folder")) { System.out.println(rec); } } catch (Exception e) { e.printStackTrace(); } }}
lockRecord
SDK for Java 2.7 Page 133 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
lockRecord(String recId) LockInfo Locks a record and return an object with the Lock information
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.lockRecord("/okm:root/PKI-100200"); } catch (Exception e) { e.printStackTrace(); } }}
unlockRecord
Description:
Method Return values Description
unlockRecord(String recId) void Unlock a locked record.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;
Only the user who locked the record is allowed to unlock.
A locked record can not be modified by other users.
Only the user who locked the document is allowed to unlock.
SDK for Java 2.7 Page 134 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.unlockRecord("/okm:root/PKI-100200"); } catch (Exception e) { e.printStackTrace(); } }}
forceUnlockRecord
Description:
Method Return values Description
forceUnlockRecord(String recId) void Unlocks a locked record.
This method allows to unlock any locked record.
It is not mandatory to execute this action by the same user who previously executed the checkout lock action.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.forceUnlockRecord("/okm:root/PKI-100200"); } catch (Exception e) { e.printStackTrace(); } }}
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 135 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
setRecordTitle
Description:
Method Return values Description
setRecordTitle(String recId, String title) void Sets a record title.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setRecordTitle("/okm:root/PKI-100200","some title"); } catch (Exception e) { e.printStackTrace(); } }}
getRecordPath
Description:
Method Return values Description
getRecordPath(String uuid) String Converts a record UUID to a record path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getRecordPath("a66664a3-0e1d-4b03-9049-a2f4732a0802"));
SDK for Java 2.7 Page 136 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 137 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Relation samples
Basics
On most methods you'll see parameter named "nodeId". The value of this parameter can be a valid document, folder, mail or
record UUID or path.
Methods
getRelationTypes
Description:
Method Return values Description
getRelationTypes(String type) RelationTypeList Retrieves a list of all relations defined of a type.
Available types values:
RelationType.BIDIRECTIONAL
RelationType.PARENT_CHILD
RelationType.MANY_TO_MANY
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationType;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
Example of nodeId:
Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db";
Using path -> "/okm:root/logo.png"
More information at Relation types.
SDK for Java 2.7 Page 138 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { for (RelationType type : ws.getRelationTypes(RelationType.PARENT_CHILD).getList()) { System.out.println(type); } } catch (Exception e) { e.printStackTrace(); } }}
addRelation
Description:
Method Returnvalues Description
addRelation(String nodeAId, String nodeBId, long
relTypeId)void Sets a relation between two nodes.
The parameters nodeAId and nodeBId should be any valid document, folder, mail or record UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationType;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationType type : ws.getRelationTypes(RelationType.PARENT_CHILD).getList()) { // looking for a relation named invoice if (type.getTitleAToB().equals("invoice")) { ws.addRelation("/okm:root/invoice.pdf", "/okm:root/budget.pdf", type.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}
deleteRelation
Description:
Method Return values Description
SDK for Java 2.7 Page 139 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
deleteRelation(long relationId) void Deletes a relation.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationType;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationType type : ws.getRelationTypes(RelationType.PARENT_CHILD).getList()) { // looking for a relation named invoice if (type.getTitle().equals("invoice")) { ws.deleteRelation(type.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}
getRelations
Description:
Method Return values Description
getRelations(String nodeId) RelationList Retrieves a list of all relations of a node..
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Relation;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM";
Only when the relation will not be used by any node is able to be deleted, otherwise you'll get an error.
SDK for Java 2.7 Page 140 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Relation relation : ws.getRelations("/okm:root/invoice.pdf").getList()) { System.out.println(relation); } } catch (Exception e) { e.printStackTrace(); } }}
getRelationGroups
Description:
Method Return values Description
getRelationGroups(String nodeId) RelationGroupList Retrieves a list of all relation groups of a node.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Relation;import com.openkm.sdk4j.bean.RelationGroup;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationGroup rGroup : ws.getRelationGroups("/okm:root/invoice.pdf").getList()) { System.out.println(rGroup); } } catch (Exception e) { e.printStackTrace(); } }}
addRelationGroup
Description:
Method Returnvalues Description
addRelationGroup(String nodeId, String groupName, long void Adds a relation group at a node.
SDK for Java 2.7 Page 141 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
type)
On a relation group only has sense to apply a relation type of RelationType.MANY_TO_MANY.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationType;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationType type : ws.getRelationTypes(RelationType.MANY_TO_MANY).getList()) { if (type.getTitle().equals("staple")) { ws.addRelationGroup("/okm:root/invoice.pdf", "staple group", type.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}
addNodeToGroup
Description:
Method Return values Description
addNodeToGroup(String nodeId, long groupId) void Adds a node to an existing relation group.
On a relation group only has sense apply the type RelationType.MANY_TO_MANY.
Example:
More information at Relation types.
More information at Relation types.
SDK for Java 2.7 Page 142 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationGroup;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationGroup rGroup : ws.getRelationGroups("/okm:root/invoice.pdf").getList()) { if (rGroup.getName().equals("staple group")) { ws.addNodeToGroup("/okm:root/complaint.pdf", rGroup.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}
deleteRelationGroup
Description:
Method Return values Description
deleteRelationGroup(String nodeId, long groupId) void Remove a node from a relation group.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.RelationGroup;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (RelationGroup rGroup : ws.getRelationGroups("/okm:root/invoice.pdf").getList()) { if (rGroup.getName().equals("staple group")) { ws.deleteRelationGroup("/okm:root/complaint.pdf", rGroup.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 143 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
findRelationGroup
Description:
Method Return values Description
findRelationGroup(long groupId) RelationGroup Finds a relation group by id.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { long groupId = 11; System.out.println(ws.findRelationGroup(groupId)); } catch (Exception e) { e.printStackTrace(); } }}
setRelationGroupName
Description:
Method Return values Description
setRelationGroupName(long groupId, String groupName) void Changes the relation group name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
SDK for Java 2.7 Page 144 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { long groupId = 11; ws.setRelationGroupName(groupId, "new name"); } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 145 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Repository samples
Methods
getRootFolder
Description:
Method Return values Description
getRootFolder() Folder Returns the object Folder of node "/okm:root"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getRootFolder()); } catch (Exception e) { e.printStackTrace(); } }}
getTrashFolder
Description:
Method Return values Description
getTrashFolder() Folder Returns the object Folder of node "/okm:trash/{userId}"
The returned folder will be the user trash folder.
Example:
For example if the method is executed by the user "okmAdmin" then the folder returned will be"/okm:trash/okmAdmin".
SDK for Java 2.7 Page 146 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getTrashFolder()); } catch (Exception e) { e.printStackTrace(); } }}
getTrashFolderBase
Description:
Method Return values Description
getTrashFolderBase() Folder Returns the object Folder of node "/okm:trash"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getTrashFolderBase()); } catch (Exception e) { e.printStackTrace(); } }}
getTemplatesFolder
Description:
Method Return values Description
SDK for Java 2.7 Page 147 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getTemplatesFolder() Folder Returns the object Folder of node "/okm:templates"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getTemplatesFolder()); } catch (Exception e) { e.printStackTrace(); } }}
getPersonalFolder
Description:
Method Return values Description
getPersonalFolder() Folder Returns the object Folder of node "/okm:personal/{userId}"
The returned folder will be the user personal folder.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getPersonalFolder());
For example if the method is executed by the user "okmAdmin" then the folder returned will be"/okm:personal/okmAdmin".
SDK for Java 2.7 Page 148 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } }}
getPersonalFolderBase
Description:
Method Return values Description
getPersonalFolderBase() Folder Returns the object Folder of node "/okm:personal"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getPersonalFolderBase()); } catch (Exception e) { e.printStackTrace(); } }}
getMailFolder
Description:
Method Return values Description
getMailFolder() Folder Returns the object Folder of node "/okm:mail/{userId}"
The returned folder will be the user mail folder.
Example:
For example if the method is executed by the user "okmAdmin" then the folder returned will be"/okm:mail/okmAdmin".
SDK for Java 2.7 Page 149 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getMailFolder()); } catch (Exception e) { e.printStackTrace(); } }}
getMailFolderBase
Description:
Method Return values Description
getMailFolderBase() Folder Returns the object Folder of node "/okm:mail"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getMailFolderBase()); } catch (Exception e) { e.printStackTrace(); } }}
getThesaurusFolder
Description:
Method Return values Description
SDK for Java 2.7 Page 150 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getThesaurusFolder() Folder Returns the object Folder of node "/okm:thesaurus"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getThesaurusFolder()); } catch (Exception e) { e.printStackTrace(); } }}
getCategoriesFolder
Description:
Method Return values Description
getCategoriesFolder() Folder Returns the object Folder of node "/okm:categories"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getCategoriesFolder()); } catch (Exception e) { e.printStackTrace(); } }}
purgeTrash
SDK for Java 2.7 Page 151 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
purgeTrash() void Definitively removes from repository all nodes to "/okm:trash/{userId}"
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.purgeTrash(); } catch (Exception e) { e.printStackTrace(); } }}
getUpdateMessage
Description:
Method Return values Description
getUpdateMessage() String Retrieves a message when there is a new OpenKM release.
There's an official OpenKM update message service available which is based on your local OpenKM version.
For example if the method is executed by the user "okmAdmin" then the purged trash will be"/okm:trash/okmAdmin".
When a node is purged it will only be able to be restored from a previously repository backup. The purgeaction removes the node definitely from the repository.
The most common message is that a new OpenKM version has been released.
SDK for Java 2.7 Page 152 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getUpdateMessage()); } catch (Exception e) { e.printStackTrace(); } }}
getRepositoryUuid
Description:
Method Return values Description
getRepositoryUuid() String Retrieves the installation unique identifier.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getRepositoryUuid()); } catch (Exception e) { e.printStackTrace(); } }}
hasNode
Description:
SDK for Java 2.7 Page 153 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Method Return values Description
hasNode(String nodeId) Boolean Returns a node that indicate if a node exists or not.
The value of the parameter nodeId can be a valid UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println("Exists node:" + ws.hasNode("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); } }}
getNodePath
Description:
Method Return values Description
getNodePath(String uuid) String Converts a node UUID to path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getNodePath("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); }
SDK for Java 2.7 Page 154 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}}
getNodeUuid
Description:
Method Return values Description
getNodeUuid(String path) String Converts a node path to UUID.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getNodeUuid("/okm:root/tmp")); } catch (Exception e) { e.printStackTrace(); } }}
getAppVersion
Description:
Method Return values Description
getAppVersion() AppVersion Returns information about OpenKM version.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin";
SDK for Java 2.7 Page 155 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getAppVersion()); } catch (Exception e) { e.printStackTrace(); } }}
copyAttributes
Description:
Method Returnvalues Description
copyAttributes(String nodeId, String dstId, boolean categories, boolean
keywords, boolean propertyGroups, boolean notes,
boolean wiki)
void Copy attributes from a
node to other.
The values of the dstId parameter should be a node UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.copyAttributes("/okm:root/invoice.pdf", "/okm:root/cloned_invoice.pdf", true, true, true, true, true); } catch (Exception e) { e.printStackTrace();
When the category parameter is true the original values of the categories will be copied.
When the keywords parameter is true the original values of the keywords will be copied.
When the property Groups parameter is true the original values of the metadata groups will be
copied.
When the notes parameter is true the original values of the notes will be copied.
When the wiki parameter is true the original values of the wiki will be copied.
SDK for Java 2.7 Page 156 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} }}
executeScript
Description:
Method Return values Description
executeScript(InputStream is) ScriptExecutionResult Executes an script.
The local script - test.bsh - used in the sample below:
import com.openkm.bean.*;import com.openkm.api.*;
for (Folder fld : OKMFolder.getInstance().getChildren(null,"/okm:root")) { print(fld + "\n");}
// Some value can also be returned as stringreturn "some result";
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ScriptExecutionResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/opt/files/test.bsh"); ScriptExecutionResult result = ws.executeScript(is); System.out.println(result.getResult()); System.out.println(result.getStdout());
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 157 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
if (!result.getStderr().isEmpty()) { System.out.println("Error happened"); System.out.println(result.getStderr()); } IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
executeSqlQuery
Description:
Method Return values Description
executeSqlQuery(InputStream is) SqlQueryResults Executes SQL sentences.
The test.sql script used in the sample below:
SELECT NBS_UUID, NBS_NAME FROM OKM_NODE_BASE LIMIT 10;
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.SqlQueryResultColumns;import com.openkm.sdk4j.bean.SqlQueryResults;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/opt/files/test.sql"); SqlQueryResults result = ws.executeSqlQuery(is); for (SqlQueryResultColumns row : result.getResults()) {
The SQL script can only contains a single SQL sentence.
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 158 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
System.out.println("uuid" + row.getColumns().get(0) + ", name:" + row.getColumns().get(1)); } IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
Also the InputStream can be set as:
String sql = "SELECT NBS_UUID, NBS_NAME FROM OKM_NODE_BASE LIMIT 10;";InputStream is = new ByteArrayInputStream(sql.getBytes("UTF-8"));
executeHqlQuery
Description:
Method Return values Description
executeHqlQuery(InputStream is) HqlQueryResults Executes HQL sentences.
The test.sql script used in the sample below:
SELECT uuid, name from NodeBase where name = 'okm:root';
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.HqlQueryResults;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
The HQL script can only contains a single HQL sentence.
This action can only be done by a super user ( user with ROLE_ADMIN ).
SDK for Java 2.7 Page 159 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { InputStream is = new FileInputStream("/opt/files/test.sql"); HqlQueryResults result = ws.executeHqlQuery(is); for (String column : result.getResults()) { System.out.println(column); } IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
Also the InputStream can be set as:
String sql = "SELECT uuid, name from NodeBase where name = 'okm:root';";InputStream is = new ByteArrayInputStream(sql.getBytes("UTF-8"));
getTranslations
Description:
Method Return values
getTranslations(String lang, String module) Map<String, String>
The OpenKM translations tables can be used to retrieve actually OpenKM translations or create your own translations ( insert values into new module ).
By default modules values are :
frontend ( used by default OpenKM UI ).
extension ( used by OpenKM extension UI ).
mobile ( used by OpenKM mobile UI ).
Example to add a new Translation module :
SQL values to be executed from Database query view:
DELETE FROM OKM_TRANSLATION WHERE TR_LANGUAGE='en-GB' and TR_MODULE='doc';INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('doc', 'document.generator.title','Document generator', 'en-GB');INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('doc', 'document.generator.logout','Logout', 'en-GB');
The code then should be:
Map<String, String> translations = ws.getTranslations("en-GB", "doc");
SDK for Java 2.7 Page 160 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8180/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Map<String, String> translations = ws.getTranslations("en-GB", "frontend"); for (String key : translations.keySet()) { System.out.println("key:'" + key + "', with translation:'" + translations.get(key) + "'"); } } catch (Exception e) { e.printStackTrace(); } }}
getConfiguration
Description:
Method Return values Description
getConfiguration(String key) Configuration Retrieve the value of a configuration parameter.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Configuration;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
If your OpenKM version have the configuration parameter named " webservices.visible.properties", will berestricted for non Administrator users what parameters are accessible. That means any non Administratoruse who will try accessing across the webservices to configuration parameters not set into the list of valuesof "webservices.visible.properties" will get an access denied exception.
SDK for Java 2.7 Page 161 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
try { Configuration configuration = ws.getConfiguration("system.ocr"); System.out.println(configuration); } catch (Exception e) { e.printStackTrace(); } }}
executePlugin
Description:
Method Returnvalues Description
executePlugin(String className, Map<String, String>
parameters, Class<?> clazz, InputStream is)
Object Return the Object value of execution of a
class which implements RestPlugin.
Example:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
This method is deprecated in favour of"executePostPlugin". We encourage use it ratherexeutePlugin.
For more information take a look at Pluginsamples.
The "className" value must be the canonical class name of a class which implements RestPlugin
interface.
The "parameters" map are values what will be used by class set in className.
The "clazz" value should be the Class class of the returned object. It's used by REST for
unmarshalling the result of the query.
The "is" stream allow to uploading a document.
This method execute a REST call at POST.
SDK for Java 2.7 Page 162 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> parameters = new HashMap<>(); parameters.put("param1", "value1"); parameters.put("param2", "value2"); String value = (String) ws.executePlugin("com.openkm.plugin.rest.TestRestPlugin", parameters, String.class, null); System.out.println(value); } catch (Exception e) { e.printStackTrace(); } }}
getChangeLog
Description:
Method Return values Description
getChangeLog(String nodePath, Calendar
modificationsFrom)
List<ChangeLogged> Return the list of changes in some
path and subfolders.
Example:
package com.openkm;
import java.util.Calendar;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ChangeLogged;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Calendar now = Calendar.getInstance(); for (ChangeLogged cl : ws.getChangeLog("/okm:root/synchronized", now)) { System.out.println(cl); } } catch (Exception e) { e.printStackTrace(); } }
The method is used by desktop synchronization application for retrieving the changes.
SDK for Java 2.7 Page 163 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
getServerTime()
Description:
Method Return values Description
getServerTime() String Return the current server time.
Example:
package com.openkm;
import java.util.Calendar;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.ChangeLogged;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { System.out.println(ws.getServerTime()); } catch (Exception e) { e.printStackTrace(); } }}
The server time returned format is ISO8601
The method is used by desktop synchronization application for retrieving the changes
SDK for Java 2.7 Page 164 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Report samples
Basics
The table below shows how should be passed variables based on field type:
Field type Type Description
Date String Use the pattern yyyy-MM-dd ( year - month - day )
208-10-04
Select multiple String Use "," to split each value
"value1,value2,value3"
Methods
getReports
Description:
Method Return values Description
getReports(boolean active) List<Report> Returns a list of reports.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Report;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { for (Report rep : ws.getReports(true)) { System.out.println(rep); } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 165 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
getReport
Description:
Method Return values Description
getReport(long rpId) Report Returns a reports.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Report;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Report rep = ws.getReport(12)) { System.out.println(rep); } catch (Exception e) { e.printStackTrace(); } }}
executeReport
Description:
Method Returnvalues Description
executeReport(long rpId, Map<String, String> params,
String format)InputStream
Return a document result of
executing a report.
Avaialble formats:
Report.FORMAT_CSV
Report.FORMAT_DOCX
Report.FORMAT_HTML
Report.FORMAT_ODT
Report.FORMAT_PDF
Report.FORMAT_RTF
SDK for Java 2.7 Page 166 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.util.HashMap;import java.util.Map;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Report;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, String> params = new HashMap<>(); String format = Report.FORMAT_PDF; InputStream is = ws.executeReport(12, params, format); FileOutputStream fos = new FileOutputStream("/home/files/out.pdf"); IOUtils.copy(is, fos); is.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } }}
Report.FORMAT_TEXT
SDK for Java 2.7 Page 167 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Search samples
Basics
Almosts all methods use QueryParams. Here there're some tips about how using it.
Variables Type Allowwildcards Restrictions
domain long No. Available values:
QueryParams.DOCUMENT
QueryParams.FOLDER
QueryParams.MAIL
QueryParams.RECORD
By default the value is set to QueryParams.DOCUMENT.
For searching documents and folders use value:
(QueryParams.DOCUMENT | QueryParams.FOLDER)
author String No. Value must be a valid userId.
name String Yes.
title String Yes.
keywords Set<String> Yes.
categories Set<String> No. Values should be a category UUID, not use path value.
SDK for Java 2.7 Page 168 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
content Yes.
mimeType
No. Value should be a valid and registered MIME type.
Only can be applied to documents node.
language
No. Value should be a valid language.
Only can be applied to documents node.
folder
No. When empty is used by default "/okm:root" node.
Value should be a valid UUID, not use a path value.
folderRecursive Boolean No. Only has sense to set this variable to true when the variable folder is not empty.
lastModifiedFrom Calendar No.
lastModifiedTo Calendar No.
mailSubject String Yes. Only apply to mail nodes.
SDK for Java 2.7 Page 169 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
mailFrom String Yes. Only apply to mail nodes.
mailTo
Yes. Only apply to mail nodes.
notes
Yes.
properties Map<String,
String>
Yes on
almost.
On metadata field values like "date" can not be applied wilcards.
The map of the properties is composed of pairs:
('metadata_field_name','metada_field_value")
For example:
Map<String, String> properties = new HashMap();properties.put("okp:consulting.name", "name value");
Filtering by range of dates:
Calendar to = Calendar.getInstance(); // todayto.set(0, Calendar.HOUR);to.set(0, Calendar.MINUTE);to.set(0, Calendar.SECOND);to.set(0, Calendar.MILLISECOND);Calendar from = (Calendar) to.clone();from.add(-3, Calendar.DATE); // three days beforeMap<String,String> properties = new HashMap<>();properties.put("okp:consulting.date", ISO8601.formatBasic(from)+","+ISO8601.formatBasic(to));
To filtering by a metadata field of type multiple like this:
<select label="Multiple" name="okp:consulting.multiple" <option label="One" value="one"/> <option label="Two" value="two"/>
When filtering by range of dates you must set both values ( from and to ), otherwise the filter will be ignored from the OpenKMside.
SDK for Java 2.7 Page 170 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
<option label="Three" value="three" /></select>
You should do:
properties.put("okp:consulting.multiple", "one;two"
Where "one" and "two" are valid values and character " ;" is used as separator.
Wildcard examples:
Variable Example Description
name test*.html Any document that starts with characters "test" and ends with characters ".html"
name test?.htmlAny document that starts with characters "test" followed by a single character and ends with
characters ".html"
name ?test*Any of the documents where the first character doesn't matter, but is followed by the
characters, "test".
Methods
findByContent
Description:
Method Return values Description
findByContent(String
content)List<QueryResult>
Returns a list of results filtered by the value of the content
parameter.
Example:
The search operation is done only by AND logic.
The method only searches among all documents, it does not take in consideration any other kind of nodes.
SDK for Java 2.7 Page 171 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8180/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (QueryResult qr : ws.findByContent("test")) { System.out.println(qr); } } catch (Exception e) { e.printStackTrace(); } }}
findByName
Description:
Method Return values Description
findByName(String
name)List<QueryResult>
Returns a list of results filtered by the value of the name
parameter.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8180/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (QueryResult qr : ws.findByName("test*.html")) { System.out.println(qr); } } catch (Exception e) {
The method only searches among all documents, it does not take in consideration any other kind of nodes.
SDK for Java 2.7 Page 172 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
e.printStackTrace(); } }}
findByKeywords
Description:
Method Return values Description
findByKeywords(List<String>
keywords)List<QueryResult>
Returns a list of results filtered by the values of the
keywords parameter.
Example:
package com.openkm;
import java.util.Arrays;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (QueryResult qr : ws.findByKeywords(Arrays.asList("test"))) { System.out.println(qr); } } catch (Exception e) { e.printStackTrace(); } }}
find
Description:
Method Return values Description
find(QueryParams queryParams, StringList<QueryResult>
Returns a list of results filtered by the values of
The method only searches among all documents, it does not take in consideration any other kind of nodes.
SDK for Java 2.7 Page 173 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
propertiesPlugin) the queryParams parameter.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;import com.openkm.sdk4j.bean.QueryResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { QueryParams qParams = new QueryParams(); qParams.setDomain(QueryParams.DOCUMENT); qParams.setName("test*.html"); for (QueryResult qr : ws.find(qParams, null)) { System.out.println(qr); } } catch (Exception e) { e.printStackTrace(); } }}
findPaginated
Description:
Method Returnvalues Description
findPaginated(QueryParams queryParams, int
offset, int limit, String propertiesPlugin)ResultSet
Returns a list of paginated results filtered by the
values of the queryParams parameter.
The parameter "propertiesPlugin" must be a canonical class name of the class which implementsthe NodeProperties interface.
Retrieving entire Objects ( Document, Folder, Record, Mail ) from REST can take a lot of time - marshallingand unmarshalling process - while you are only interesting on using only few Objects variables. If its yourcase you can use NodeProperties classes for retrieving the Object variables what you really need.
The parameter "limit" and "offset" allows you to retrieve just a portion of the results of a query.
SDK for Java 2.7 Page 174 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;import com.openkm.sdk4j.bean.QueryResult;import com.openkm.sdk4j.bean.ResultSet;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { QueryParams qParams = new QueryParams(); qParams.setDomain(QueryParams.DOCUMENT); qParams.setName("test*.html"); ResultSet rs = ws.findPaginated(qParams, 20, 10, null); System.out.println("Total results:"+rs.getTotal()); for (QueryResult qr : rs.getResults()) { System.out.println(qr); } } catch (Exception e) { e.printStackTrace(); } }}
The parameter "limit" is used to limit the number of results returned.
The parameter "offset" says to skip that many results before the beginning to return results.
The parameter "propertiesPlugin" must be the canonical class name of the class which implements
the NodeProperties interface.
For example if your query has 1000 results, but you only want to return the first 10, you should use thesevalues:
limit=10
offset=0
Now suppose you want to show the results from 11-20, you should use these values:
limit=10
offset=10
Retrieving entire Objects ( Document, Folder, Record, Mail ) from REST can take a lot of time - marshallingand unmarshalling process - while you are only interesting on using only few Objects variables. If its yourcase you can use NodeProperties classes for retrieving the Object variables what you really need.
SDK for Java 2.7 Page 175 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
findSimpleQueryPaginated
Description:
Method Returnvalues Description
findSimpleQueryPaginated(String
statement, int offset, int limit)ResultSet
Returns a list of paginated results filtered by the values
of the statement parameter.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryResult;import com.openkm.sdk4j.bean.ResultSet;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin";
The syntax to use in the statement parameter is the pair 'field:value'. For example:
"name:grial" is filtering field name by word grial.
More information about lucene sintaxis at Lucene query syntax.
The parameter "limit" and "offset" allows you to retrieve just a portion of the results of a query.
The parameter "limit" is used to limit the number of results returned.
The parameter "offset" says to skip that many results before the beginning to return results.
For example if your query has 1000 results, but you only want to return the first 10, you should use thesevalues:
limit=10
offset=0
Now suppose you want to show the results from 11-20, you should use these values:
limit=10
offset=10
SDK for Java 2.7 Page 176 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ResultSet rs = ws.findSimpleQueryPaginated("name:grial", 20, 10); System.out.println("Total results:"+rs.getTotal()); for (QueryResult qr : rs.getResults()) { System.out.println(qr); } } catch (Exception e) { e.printStackTrace(); } }}
findMoreLikeThis
Description:
Method Returnvalues Description
findMoreLikeThis(String uuid, int
max)ResultSet
Returns a list of documents that are considered similar by search
engine.
The uuid is a document UUID.
The max value is used to limit the number of results returned.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryResult;import com.openkm.sdk4j.bean.ResultSet;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ResultSet rs = ws.findMoreLikeThis("f123a950-0329-4d62-8328-0ff500fd42db", 100); System.out.println("Total results:"+rs.getTotal()); for (QueryResult qr : rs.getResults()) { System.out.println(qr); }
The method can only be used with documents.
SDK for Java 2.7 Page 177 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } }}
getKeywordMap
Description:
Method Return values Description
getKeywordMap(List<String>
filter)
Map<String,
Integer>
Returns a map of keywords with its count value filtered by
other keywords.
Example:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8180/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // All keywords without filtering System.out.println("Without filtering");
Example:
Doc1.txt has keywords "test", "one", "two".
Doc2.txt has keywords "test", "one"
Doc3.txt has keywords "test", "three".
The results filtering by "test" -> "one", "two", "three".
The results filtering by "one" -> "test", "two".
The results filtering by "two" -> "test", "one".
The results filtering by "three" -> "test".
The results filtering by "one" and "two" -> "test".
SDK for Java 2.7 Page 178 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Map<String, Integer> keywords = ws.getKeywordMap(new ArrayList<String>());
for (String key : keywords.keySet()) { System.out.println(key + " is used :" + keywords.get(key) ); } // Keywords filtered System.out.println("Filtering"); keywords = ws.getKeywordMap(Arrays.asList("test"));
for (String key : keywords.keySet()) { System.out.println(key + " is used :" + keywords.get(key) ); } } catch (Exception e) { e.printStackTrace(); } }}
getCategorizedDocuments
Description:
Method Return values Description
getCategorizedDocuments(String
categoryId)List<Document>
Retrieves a list of all documents related with a
category.
The values of the categoryId parameter should be a category folder UUID or path.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8180/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (Document doc : ws.getCategorizedDocuments("/okm:categories/invoices")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}
saveSearch
SDK for Java 2.7 Page 179 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
saveSearch(QueryParams params) Long Saves a search parameters.
The variable queryName of the parameter params, should have to be initialized.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;import com.openkm.sdk4j.bean.QueryResult;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { QueryParams qParams = new QueryParams(); qParams.setDomain(QueryParams.DOCUMENT); qParams.setName("test*.html"); for (QueryResult qr : ws.find(qParams,null)) { System.out.println(qr); } // Save the search to be used later qParams.setQueryName("sample search"); ws.saveSearch(qParams); } catch (Exception e) { e.printStackTrace(); } }}
updateSearch
Description:
Method Return values Description
updateSearch(QueryParams params) void Updates a previously saved search parameters.
Example:
Only can be updated as a saved search created by the same user user who's executing the method.
SDK for Java 2.7 Page 180 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (QueryParams qParams : ws.getAllSearchs()) { if (qParams.getQueryName().equals("sample search")) { // Change some value. qParams.setName("admin*.html"); ws.updateSearch(qParams); } } } catch (Exception e) { e.printStackTrace(); } }}
getSearch
Description:
Method Return values Description
getSearch(int qpId) QueryParams Gets saved search parameters.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { int qpId = 12; // Some valid search id QueryParams qParams = ws.getSearch(qpId);
Only can be retrieved as a saved search created by the same user who's executing the method.
SDK for Java 2.7 Page 181 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
System.out.println(qParams); } catch (Exception e) { e.printStackTrace(); } }}
getAllSearchs
Description:
Method Return values Description
getAllSearchs() List<QueryParams> Retrieves a list of all saved search parameters.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.QueryParams;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (QueryParams qParams : ws.getAllSearchs()) { System.out.println(qParams); } } catch (Exception e) { e.printStackTrace(); } }}
deleteSearch
Description:
Method Return values Description
deleteSearch(int qpId) void Deletes a saved search parameters.
Only will be retrieved the list of the saved searches created by the same user who's executing the method.
SDK for Java 2.7 Page 182 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { int qpId = 12; // Some valid search id ws.deleteSearch(qpId); } catch (Exception e) { e.printStackTrace(); } }}
Only can be deleted as a saved search created by the same user user who's executing the method.
SDK for Java 2.7 Page 183 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Workflow samples
For most examples it has been used the Purchase workflow sample.
Methods
registerProcessDefinition
Description:
Method Return values Description
registerProcessDefinition(InputStream is) void Registers a new workflow.
Example:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { InputStream is = new FileInputStream("/opt/files/Purchase.par"); ws.registerProcessDefinition(is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}
deleteProcessDefinition
Description:
Method Return values Description
deleteProcessDefinition(long pdId) void Deletes a workflow.
The parameter pdId value is a valid workflow process definition.
SDK for Java 2.7 Page 184 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { long pdId = 5; // Valid workflow process definition ws.deleteProcessDefinition(pdId); } catch (Exception e) { e.printStackTrace(); } }}
getProcessDefinition
Description:
Method Return values Description
getProcessDefinition(long pdId) void Returns a workflow process definition.
The parameter pdId value is a valid workflow process definition.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { long pdId = 5; // Valid workflow process definition ProcessDefinition pd = ws.getProcessDefinition(pdId); System.out.println(pd); } catch (Exception e) { e.printStackTrace(); } }
SDK for Java 2.7 Page 185 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
}
runProcessDefinition
Description:
Method Return values Description
runProcessDefinition(long pdId, String uuid, List<FormElement>
values)ProcessInstance
Executes a workflow on a
node.
The parameter pdId value is a valid workflow process definition.
The parameter uuid can be any document, mail, folder or record UUID.
The parameter values are form element values needed for starting the workflow ( not all workflows need form values for
starting ).
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.FormElement;import com.openkm.sdk4j.bean.form.Input;import com.openkm.sdk4j.bean.form.TextArea;import java.util.*;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { long pdId = 8041; // Some valid workflow process definition id List<FormElement> feList = new ArrayList<>(); // Case as part of starting workflow are required form parameter Input price = new Input(); price.setName("price"); price.setValue("1000"); feList.add(price); TextArea textArea = new TextArea(); textArea.setName("description"); textArea.setValue("some description here"); feList.add(textArea); ws.runProcessDefinition(pdId, "f86cc22d-9b50-434f-a940-b04cea9c0048", feList); } catch (Exception e) { e.printStackTrace(); } }}
findAllProcessDefinitions
SDK for Java 2.7 Page 186 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Description:
Method Return values Description
findAllProcessDefinitions() List<ProcessDefinition> Retrieves a list of all registered workflows definitions.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (ProcessDefinition pd : ws.findAllProcessDefinitions()) { System.out.println(pd); } } catch (Exception e) { e.printStackTrace(); } }}
findProcessInstances
Description:
Method Return values Description
findProcessInstances(long
pdId)List<ProcessInstance>
Retrieves a list of all process instances of some registered
workflows definition.
The parameter pdId value is a valid workflow process definition.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessDefinition;import com.openkm.sdk4j.bean.workflow.ProcessInstance;
public class Test { public static void main(String[] args) {
SDK for Java 2.7 Page 187 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { // Get all workflow definitions for (ProcessDefinition pd : ws.findAllProcessDefinitions()) { System.out.println("WF definition: "+pd); // Get all process of some workflow definition for (ProcessInstance pi : ws.findProcessInstances(pd.getId())) { System.out.println("PI: "+pi); } } } catch (Exception e) { e.printStackTrace(); } }}
findLatestProcessDefinitions
Description:
Method Return values Description
findLatestProcessDefinitions() List<ProcessDefinition> Retrieves a list of the last workflows definitions.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Get all latest workflow definitions for (ProcessDefinition pd : ws.findLatestProcessDefinitions()) { System.out.println("WF definition: " + pd); } } catch (Exception e) { e.printStackTrace(); } }}
Several versions of the same workflow can be registered.
SDK for Java 2.7 Page 188 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
findLastProcessDefinition
Description:
Method Return values Description
findLastProcessDefinition(String
name)ProcessDefinition
Retrieves last workflow definition of some specific
workflow.
The parameter name identifies an specific workflow definitions group.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ProcessDefinition pd = ws.findLastProcessDefinition("purchase"); System.out.println("WF definition: " + pd); } catch (Exception e) { e.printStackTrace(); } }}
getProcessInstance
Description:
Method Return values Description
getProcessInstance(long piId) ProcessInstance Returns the process instance.
The parameter piId is a valid process instance id.
Several workflow definition versions that have the same name.
SDK for Java 2.7 Page 189 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.ProcessInstance;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { long piId = 8108; // Some valid process instance id ProcessInstance pi = ws.getProcessInstance(piId); System.out.println("PI: " + pi); } catch (Exception e) { e.printStackTrace(); } }}
findUserTaskInstances
Description:
Method Return values Description
findUserTaskInstances() List<TaskInstance> Retrieves a list of task instances assigned to the user.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.TaskInstance;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Get all user task intances for (TaskInstance ti : ws.findUserTaskInstances()) { System.out.println(ti); } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 190 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
findTaskInstances
Description:
Method Return values Description
findTaskInstances(long piId) List<TaskInstance> Retrieves a list of task instances from a process instance id.
The parameter piId is a valid process instance id.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.TaskInstance;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Get all task instances of some process instance long piId = 8108; // Some valid process instance id for (TaskInstance ti : ws.findTaskInstances(piId)) { System.out.println(ti); } } catch (Exception e) { e.printStackTrace(); } }}
setTaskInstanceValues
Description:
Method Returnvalues Description
setTaskInstanceValues(long tiId, String transName, List<FormeElement>
values)void
Set a task instance
vales.
The parameter tiId is a valid task instance id.
The parameter transName is the choosen transaction.
SDK for Java 2.7 Page 191 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
The parameter values are form element values needed for starting the workflow ( not all workflow tasks need form values ).
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.TaskInstance;import java.util.*;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { long tiId = 8110; // Some valid task instance id List<FormElement> feList = new ArrayList<>(); ws.setTaskInstanceValues(tiId, "approve", feList); } catch (Exception e) { e.printStackTrace(); } }}
getTaskInstance
Description:
Method Return values Description
getTaskInstance(long tiId) TaskInstance Returns a task instance.
The parameter tiId is a valid task instance id.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.workflow.TaskInstance;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { long tiId = 8110; // Some valid task instance id
SDK for Java 2.7 Page 192 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
TaskInstance ti = ws.getTaskInstance(tiId); System.out.println(ti); } catch (Exception e) { e.printStackTrace(); } }}
startTaskInstance
Description:
Method Return values Description
startTaskInstance(long tiId) void Starts a task instance.
The parameter tiId is a valid task instance id.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { long tiId = 8110; // Some valid task instance id ws.startTaskInstance(tiId); } catch (Exception e) { e.printStackTrace(); } }}
setTaskInstanceActorId
Description:
Method Return values Description
setTaskInstanceActorId(long tiId, String actorId) void Set the actor to a task instance.
The parameter tiId is a valid task instance id.
SDK for Java 2.7 Page 193 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
The parameter actorId must be some valid OpenKM userId.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { long tiId = 8110; // Some valid task instance id ws.setTaskInstanceActorId(tiId, "okmAdmin"); } catch (Exception e) { e.printStackTrace(); } }}
endTaskInstance
Description:
Method Return values Description
endTaskInstance(long tiId, String transName) void Ends a task instance.
The parameter tiId is a valid task instance id.
The parameter transName is a transaction name.
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { long tiId = 8110; // Some valid task instance id ws.endTaskInstance(tiId, "end");
SDK for Java 2.7 Page 194 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
} catch (Exception e) { e.printStackTrace(); } }}
getProcessDefinitionForms
Description:
Method Return values Description
getProcessDefinitionForms(long
pdId)
Map<String,
List<FormElement>>
Return a map with all the process definition
forms.
The parameter pdId value is a valid workflow process definition.
Example:
package com.openkm;
import java.util.List;import java.util.Map;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.form.FormElement;
public class Test2 { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { Map<String, List<FormElement>> forms = ws.getProcessDefinitionForms(12); for (String key : forms.keySet()) { System.out.println("Key:"+key); for (FormElement fe : forms.get(key)) { System.out.println("Fe:"+fe); } } } catch (Exception e) { e.printStackTrace(); } }}
SDK for Java 2.7 Page 195 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
Purchase workflow sample
The tasks will be assigned to an user called "manager" so you need to create this user and log as such to see the task assignment.
Also you can assign this task to another user from the process instance workflow administration.
Download the Purchase.par file.
Process image
Process definition
<?xml version="1.0" encoding="UTF-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="purchase"> <start-state name="start"> <transition to="decision"></transition> </start-state> <decision name="decision"> <transition to="approved" name="is cheap"> <condition expression="#{price.value <= 500}"></condition>
SDK for Java 2.7 Page 196 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.
</transition> <transition to="manager" name="is expensive"> <condition expression="#{price.value > 500}"></condition> </transition> </decision> <task-node name="manager"> <task name="evaluate price"> <description>The manager may deny purchase or go ahead.</description> <assignment actor-id="manager"></assignment> </task> <transition to="denied" name="deny"></transition> <transition to="approved" name="approve"></transition> </task-node> <state name="approved"> <description>The purchase has been approved.</description> <timer duedate="15 seconds" name="approved timer" transition="toend"> <script>print("From APPROVED Go to END");</script> </timer> <transition to="end" name="toend"></transition> </state> <state name="denied"> <description>The purchase has been denied.</description> <timer duedate="15 seconds" name="denied timer" transition="toend"> <script>print("From DENIED Go to END");</script> </timer> <transition to="end" name="toend"></transition> </state> <end-state name="end"></end-state></process-definition>
Process handlers
None.
Form definition
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.0//EN" "http://www.openkm.com/dtd/workflow-forms-2.0.dtd"><workflow-forms> <workflow-form task="run_config"> <input label="Purchase price" name="price" /> <textarea label="Purchase description" name="description" /> <button name="submit" label="Submit" /> </workflow-form> <workflow-form task="evaluate price"> <input label="Purchase price" name="price" data="price" readonly="true" /> <textarea label="Purchase description" name="description" data="description" readonly="true" /> <button name="approve" label="Approve" transition="approve"/> <button name="deny" label="Deny" transition="deny"/> </workflow-form></workflow-forms>
SDK for Java 2.7 Page 197 of 198
Created in 2016 by OpenKM. OpenKM documentation is provided under OpenKM documentation license.