OKMDocument
Conceptos básicos
Sección titulada «Conceptos básicos»En casi todos los métodos verá un parámetro llamado “docId”. El valor de este parámetro puede ser el UUID o la ruta de un nodo de documento válido.
Cuando vea el parámetro llamado “fldId”, el valor de este parámetro puede ser un UUID o una ruta de carpeta válidos.
Respecto al parámetro llamado “dstId”, su valor puede ser el UUID o la ruta de una carpeta válida.
Además, en todos los métodos verá un parámetro llamado “token”. Al acceder a la aplicación a través de SOAP, el proceso de inicio de sesión devuelve un token, que se utiliza para identificar al usuario en todos los métodos expuestos. Desde el contexto de ejecución por defecto de la aplicación debe utilizar el valor “null”, que indica a la aplicación que debe utilizar la “sesión del usuario”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| create(String token, Document doc, InputStream is) | Document | Crea un nuevo documento. |
- El parámetro doc debe inicializarse con el valor de la ruta de OpenKM dentro del repositorio. Opcionalmente también puede establecer los valores de palabras clave y de título.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/user/sample.pdf"); Document doc = new Document(); doc.setPath("/okm:root/sample.pdf"); // Optional doc.setTitle("sample document"); doc.getKeywords().add("key1"); doc.getKeywords().add("key2"); // Create document doc = OKMDocument.getInstance().create(null, doc, is); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}createSimple
Sección titulada «createSimple»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| createSimple(String token, String docPath, InputStream is) | Document | Crea un nuevo documento. |
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/user/sample.pdf"); String docPath = "/okm:root/sample.pdf"; Document doc = OKMDocument.getInstance().createSimple(null, docPath, is); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| delete(String token, String docId) | void | Elimina un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { // Delete document by path OKMDocument.getInstance().delete(null, "/okm:root/sample.pdf"); // Delete document by uuid OKMDocument.getInstance().delete(null, "adc048d7-3791-4540-ae32-680629f73875"); } catch (Exception e) { e.printStackTrace(); } }}getProperties
Sección titulada «getProperties»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getProperties(String token, String docId) | Document | Devuelve las propiedades de un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { try { Document doc = OKMDocument.getInstance().getProperties(null, "adc048d7-3791-4540-ae32-680629f73875"); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } }}getContent
Sección titulada «getContent»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getContent(String token, String docId, boolean checkout) | InputStream | Devuelve el contenido del documento. |
- Cuando el parámetro checkout es true, el documento se marca para edición.
Ejemplo:
package com.openkm;
import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { InputStream is = null; OutputStream fos = null; try { is = OKMDocument.getInstance().getContent(null, "adc048d7-3791-4540-ae32-680629f73875", false); File tmp = new File("/home/user/sample.pdf"); fos = new FileOutputStream(tmp); IOUtils.copy(is, fos); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } }}getContentByVersion
Sección titulada «getContentByVersion»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getContentByVersion(String token, String docId, String versionId) | InputStream | Devuelve el contenido del documento de una versión concreta. |
- El parámetro versionIs es el nombre de la versión del documento.
Ejemplo:
package com.openkm;
import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { InputStream is = null; OutputStream fos = null; try { is = OKMDocument.getInstance().getContentByVersion(null, "adc048d7-3791-4540-ae32-680629f73875", "1.1"); File tmp = new File("/home/user/sample.pdf"); fos = new FileOutputStream(tmp); IOUtils.copy(is, fos); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } }}getChilds
Sección titulada «getChilds»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getChilds(String token, String fldId) | List |
Devuelve una lista de todos los documentos cuyo padre es fldId. |
- El parámetro fldId puede ser un nodo de tipo carpeta.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { try { for (Document doc : OKMDocument.getInstance().getChilds(null, "/okm:root/import")) {; System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}getChildren
Sección titulada «getChildren»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getChildren(String token, String fldId) | List |
Devuelve una lista de todos los documentos cuyo padre es fldId. |
- El parámetro fldId puede ser un nodo de tipo carpeta.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { try { for (Document doc : OKMDocument.getInstance().getChildren(null, "/okm:root/import")) {; System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| rename(String token, String docId, String newName) | Document | Cambia el nombre de un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { try { Document doc = OKMDocument.getInstance().rename(null, "/okm:root/samples.pdf","samples_renamed.pdf"); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } }}setProperties
Sección titulada «setProperties»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| setProperties(String token, Document doc) | void | Cambia algunas propiedades del documento. |
- Variables que se pueden cambiar:
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { try { Document doc = OKMDocument.getInstance().getProperties(null, "/okm:root/samples.pdf"); doc.getKeywords().add("key1"); doc.setDescription("some description"); OKMDocument.getInstance().setProperties(null, doc); } catch (Exception e) { e.printStackTrace(); } }}checkout
Sección titulada «checkout»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| checkout(String token, String docId) | void | Marca el documento para edición. |
- Solo un usuario puede modificar un documento a la vez.
- Antes de comenzar la edición debe realizar una acción de checkout, que bloquea el proceso de edición para otros usuarios y permite la edición únicamente al usuario que ha ejecutado la acción.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().checkout(null, "/okm:root/samples.pdf"); } catch (Exception e) { e.printStackTrace(); } }}cancelCheckout
Sección titulada «cancelCheckout»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| cancelCheckout(String token, String docId) | void | Cancela la edición de un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().cancelCheckout(null, "/okm:root/samples.pdf"); } catch (Exception e) { e.printStackTrace(); } }}forceCancelCheckout
Sección titulada «forceCancelCheckout»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| forceCancelCheckout(String token, String docId) | void | Cancela la edición de un documento. |
- Este método permite cancelar la edición de cualquier documento.
- No es obligatorio que esta acción la ejecute el mismo usuario que ejecutó previamente la acción de checkout.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().forceCancelCheckout(null, "/okm:root/samples.pdf"); } catch (Exception e) { e.printStackTrace(); } }}isCheckedOut
Sección titulada «isCheckedOut»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isCheckedOut(String token, String docId) | void | Devuelve un booleano que indica si el documento está en edición o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { System.out.println(OKMDocument.getInstance().isCheckedOut(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}checkin
Sección titulada «checkin»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| checkin(String token, String docId, InputStream is, String comment) | Version | Actualiza un documento con una nueva versión y devuelve un objeto con los valores de la nueva versión. |
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.poi.util.IOUtils;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/user/sample.pdf"); OKMDocument.getInstance().checkin(null, "/okm:root/samples.pdf", is, "optional comment"); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}checkin
Sección titulada «checkin»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| checkin(String token, String docId, InputStream is, String comment, int increment) | Version | Actualiza un documento con una nueva versión y devuelve un objeto con los valores de la nueva versión. |
- El valor de incremento depende de la implementación de VersionNumeration.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.poi.util.IOUtils;
import com.openkm.api.OKMDocument;import com.openkm.vernum.VersionNumerationAdapter;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/user/sample.pdf"); OKMDocument.getInstance().checkin(null, "/okm:root/samples.pdf", is, "optional comment", VersionNumerationAdapter.INCREASE_MINOR); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}isCheckedOut
Sección titulada «isCheckedOut»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isCheckedOut(String token, String docId) | void | Devuelve un booleano que indica si el documento está en edición o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { System.out.println(OKMDocument.getInstance().isCheckedOut(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}getVersionHistory
Sección titulada «getVersionHistory»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getVersionHistory(String token, String docId | List |
Devuelve una lista de todas las versiones del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Version;
public class Test { public static void main(String[] args) { try { for (Version ver :OKMDocument.getInstance().getVersionHistory(null, "/okm:root/samples.pdf")) { System.out.println(ver); } } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| lock(String token, String docId | LockInfo | Bloquea un documento y devuelve un objeto con la información del bloqueo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.LockInfo;
public class Test { public static void main(String[] args) { try { LockInfo lockInfo = OKMDocument.getInstance().lock(null, "/okm:root/samples.pdf")); System.out.println(lockInfo); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| unlock(String token, String docId | LockInfo | Desbloquea un documento bloqueado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().unlock(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}forceUnlock
Sección titulada «forceUnlock»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| forceUnlock(String token, String docId | LockInfo | Desbloquea un documento bloqueado. |
- Este método permite desbloquear cualquier documento bloqueado.
- No es obligatorio que esta acción la ejecute el mismo usuario que ejecutó previamente la acción de bloqueo.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().forceUnlock(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}isLocked
Sección titulada «isLocked»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isLocked(String token, String docId) | void | Devuelve un booleano que indica si el documento está bloqueado o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { System.out.println(OKMDocument.getInstance().isLocked(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}getLockInfo
Sección titulada «getLockInfo»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getLockInfo(String token, String docId) | LockInfo | Devuelve un objeto con la información del bloqueo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.LockInfo;
public class Test { public static void main(String[] args) { try { LockInfo lockInfo = OKMDocument.getInstance().getLockInfo(null, "/okm:root/samples.pdf")); System.out.println(lockInfo); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| purge(String token, String docId) | void | El documento se elimina definitivamente del repositorio. |
- Normalmente purgará documentos de /okm:trash/userId (las ubicaciones de papelera personal del usuario), pero es posible purgar directamente cualquier documento de todo el repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().purge(null, "/okm:root/samples.pdf")); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| move(String token, String docId, String dstId) | void | Mueve el documento a una carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().move(null, "/okm:root/samples.pdf", "/okm/root/temp")); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| copy(String token, String docId, String dstId) | void | Copia un documento en una carpeta. |
- El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().copy(null, "/okm:root/samples.pdf", "/okm/root/temp")); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| extendedCopy(String token, String docId, String dstId, String docName, ExtendedAttributes extAttr) | void | Copia un documento con sus datos asociados en una carpeta. |
- El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta.
- Cuando el valor del parámetro newName es null, el documento conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.ExtendedAttributes;
public class Test { public static void main(String[] args) { try { ExtendedAttributes extAttr = new ExtendedAttributes(); // copy keywords extAttr.setKeywords(true); OKMDocument.getInstance().extendedCopy(null, "/okm:root/samples.pdf", "/okm:root/temp", "samples_renamed.pdf", extAttr); } catch (Exception e) { e.printStackTrace(); } }}restoreVersion
Sección titulada «restoreVersion»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| restoreVersion(String token, String docId, String versionId) | void | Restaura una versión anterior del documento como versión actual. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().restoreVersion(null, "/okm:root/samples.pdf", "1.2"); } catch (Exception e) { e.printStackTrace(); } }}purgeVersionHistory
Sección titulada «purgeVersionHistory»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| purgeVersionHistory(String token, String docId) | void | Purga todas las versiones anteriores del documento excepto la versión actual. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { OKMDocument.getInstance().purgeVersionHistory(null, "/okm:root/samples.pdf"); } catch (Exception e) { e.printStackTrace(); } }}getVersionHistorySize
Sección titulada «getVersionHistorySize»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getVersionHistorySize(String token, String docId) | long | Devuelve la suma en bytes de todos los documentos del historial del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.FormatUtil;
public class Test { public static void main(String[] args) { try { System.out.println(FormatUtil.formatSize(OKMDocument.getInstance().getVersionHistorySize(null, "/okm:root/samples.pdf"))); } catch (Exception e) { e.printStackTrace(); } }}isValid
Sección titulada «isValid»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isValid(String token, String docId) | boolean | Devuelve un booleano que indica si el nodo es un documento o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { boolean valid = OKMDocument.getInstance().isValid(null, "/okm:root/samples.pdf"); System.out.println(valid); } catch (Exception e) { e.printStackTrace(); } }}getPath
Sección titulada «getPath»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getPath(String token, String uuid) | String | Convierte el UUID de un documento en su ruta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;
public class Test { public static void main(String[] args) { try { String docPath = OKMDocument.getInstance().getPath(null, "f123a950-0329-4d62-8328-0ff500fd42dbg"); System.out.println(docPath); } catch (Exception e) { e.printStackTrace(); } }}