OKMDocument
Conceptos básicos
Sección titulada «Conceptos básicos»En la mayoría de los métodos verá un parámetro llamado “docId”. El valor de este parámetro puede ser el UUID de un nodo de documento válido.
En cuanto al parámetro llamado “fldId”, el valor de este parámetro puede ser el UUID de un nodo de carpeta o de expediente válido.
En cuanto al parámetro llamado “dstId”, el valor de este parámetro puede ser el UUID de un nodo de carpeta o de expediente válido.
Además, en todos los métodos verá un parámetro llamado “token”. Dado que las tareas Cron se ejecutan en segundo plano sin autenticación, los métodos utilizados en este escenario pueden emplear el parámetro token. Desde el contexto de ejecución predeterminado de la aplicación debe utilizar el valor “null”, que indica que la aplicación debe utilizar la “sesión de usuario”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | 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 en el repositorio. Opcionalmente, puede establecer los valores de palabras clave y 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); is = new FileInputStream("/home/openkm/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.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 devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class);
is = new FileInputStream("/home/openkm/sample.pdf"); String docPath = "/okm:root/sample.pdf"; Document doc = okmDocument.createSimple(null, docPath, is); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| delete(String token, String docId) | void | Elimina un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.delete(null, "d50133e3-dbfa-4d01-a109-28785cd48f40"); } catch (Exception e) { e.printStackTrace(); } }}getProperties
Sección titulada «getProperties»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getProperties(String token, String docId) | Document | Devuelve las propiedades del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); Document doc = okmDocument.getProperties(null, "3887ae75-dd67-4019-b4d1-2f6962815403"); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } }}getContent
Sección titulada «getContent»Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; OutputStream fos = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); is = okmDocument.getContent(null, "3887ae75-dd67-4019-b4d1-2f6962815403", false); File tmp = new File("/home/openkm/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 devueltos | Descripción |
|---|---|---|
| getContentByVersion(String token, String docId, String versionId) | InputStream | Devuelve el contenido del documento según la versión. |
- El parámetro versionId 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; OutputStream fos = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); is = okmDocument.getContentByVersion(null, "f3a977f7-abfc-4f58-a033-988903b31473", "1.1"); File tmp = new File("/home/openkm/sample.pdf"); fos = new FileOutputStream(tmp); IOUtils.copy(is, fos); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } }}getExtractedText
Sección titulada «getExtractedText»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getExtractedText(String token, String docId) | String | Devuelve el texto extraído del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); String indexedText = okmDocument.getExtractedText(null, "f3a977f7-abfc-4f58-a033-988903b31473"); System.out.println(indexedText); } catch (Exception e) { e.printStackTrace(); } }}getChildren
Sección titulada «getChildren»Descripción:
| Método | Valores devueltos | 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 carpeta o de expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); for (Document doc : okmDocument.getChildren(null, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); Document doc = okmDocument.rename(null, "f3a977f7-abfc-4f58-a033-988903b31473", "samples_renamed.pdf"); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } }}setProperties
Sección titulada «setProperties»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setProperties(String token, Document doc) | void | Cambia algunas propiedades del documento. |
- Variables cuya modificación está permitida:
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); Document doc = okmDocument.getProperties(null, "f3a977f7-abfc-4f58-a033-988903b31473"); doc.getKeywords().add("key1"); doc.setDescription("some description"); okmDocument.setProperties(null, doc); } catch (Exception e) { e.printStackTrace(); } }}setLanguage
Sección titulada «setLanguage»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setLanguage(String token, String docId, String lang) | void | Establece el idioma del documento. |
- El parámetro lang debe cumplir la norma ISO 639-1.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.setLanguage(null, "f3a977f7-abfc-4f58-a033-988903b31473", "en"); } catch (Exception e) { e.printStackTrace(); } }}setTitle
Sección titulada «setTitle»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setTitle(String token, String docId, String title) | void | Establece el título del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.setTitle(null, "f3a977f7-abfc-4f58-a033-988903b31473", "Document title"); } catch (Exception e) { e.printStackTrace(); } }}checkout
Sección titulada «checkout»Descripción:
| Método | Valores devueltos | 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 los demás usuarios y permite la edición únicamente al usuario que ejecutó la acción.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.checkout(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}cancelCheckout
Sección titulada «cancelCheckout»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| cancelCheckout(String token, String docId) | void | Cancela la edición del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.cancelCheckout(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}forceCancelCheckout
Sección titulada «forceCancelCheckout»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| forceCancelCheckout(String token, String docId) | void | Cancela la edición del 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.forceCancelCheckout(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}isCheckedOut
Sección titulada «isCheckedOut»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isCheckedOut(String token, String docId) | void | Devuelve un booleano que indica si el documento está siendo editado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println(okmDocument.isCheckedOut(null, "f3a977f7-abfc-4f58-a033-988903b31473")); } catch (Exception e) { e.printStackTrace(); } }}checkin
Sección titulada «checkin»Descripción:
| Método | Valores devueltos | 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 Version. |
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.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); is = new FileInputStream("/home/openkm/sample.pdf"); okmDocument.checkin(null, "f3a977f7-abfc-4f58-a033-988903b31473", is, "optional comment"); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}checkin
Sección titulada «checkin»Descripción:
| Método | Valores devueltos | 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 Version. |
- El valor de increment depende de la implementación de VersionNumeration. Los valores habituales son:
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.plugin.vernum.VersionNumerationAdapter;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); is = new FileInputStream("/home/openkm/sample.pdf"); okmDocument.checkin(null, "f3a977f7-abfc-4f58-a033-988903b31473", is, "optional comment", VersionNumerationAdapter.INCREASE_MINOR); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); LockInfo lockInfo = okmDocument.lock(null, "f3a977f7-abfc-4f58-a033-988903b31473"); System.out.println(lockInfo); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| unlock(String token, String docId) | LockInfo | Desbloquea un documento bloqueado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.unlock(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}forceUnlock
Sección titulada «forceUnlock»Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.forceUnlock(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}isLocked
Sección titulada «isLocked»Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println(okmDocument.isLocked(null, "f3a977f7-abfc-4f58-a033-988903b31473")); } catch (Exception e) { e.printStackTrace(); } }}getLockInfo
Sección titulada «getLockInfo»Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); LockInfo lockInfo = okmDocument.getLockInfo(null, "f3a977f7-abfc-4f58-a033-988903b31473"); System.out.println(lockInfo); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purge(String token, String docId) | void | El documento se elimina permanentemente del repositorio. |
- Normalmente purgará documentos de /okm:trash/userId (la ubicación de la papelera personal del usuario), pero es posible purgar directamente cualquier documento del repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.purge(null, "f3a977f7-abfc-4f58-a033-988903b31473"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| move(String token, String docId, String dstId) | void | Mueve un documento a una carpeta o expediente. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.move(null, "f3a977f7-abfc-4f58-a033-988903b31473", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String docId, String dstId) | void | Copia un documento a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.copy(null, "f3a977f7-abfc-4f58-a033-988903b31473", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String docId, String dstId, String newName) | void | Copia un documento a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
- 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.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.copy(null, "f3a977f7-abfc-4f58-a033-988903b31473", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "samples_renamed.pdf"); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String docId, String dstId, String docName, ExtendedAttributes extAttr) | void | Copia un documento con sus datos asociados a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
- Cuando el valor del parámetro docName es null, el documento conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); ExtendedAttributes extAttr = new ExtendedAttributes(); // copy keywords extAttr.setKeywords(true); extAttr.setCategories(true); extAttr.setNotes(true); extAttr.setPropertyGroups(true);
okmDocument.extendedCopy(null, "f3a977f7-abfc-4f58-a033-988903b31473", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "samples_renamed.pdf", extAttr); } catch (Exception e) { e.printStackTrace(); } }}getVersionHistorySize
Sección titulada «getVersionHistorySize»Descripción:
| Método | Valores devueltos | 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.ContextWrapper;import com.openkm.util.FormatUtil;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println(FormatUtil.formatSize(okmDocument.getVersionHistorySize(null, "f3a977f7-abfc-4f58-a033-988903b31473"))); } catch (Exception e) { e.printStackTrace(); } }}isValid
Sección titulada «isValid»Descripción:
| Método | Valores devueltos | 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); boolean valid = okmDocument.isValid(null, "f3a977f7-abfc-4f58-a033-988903b31473"); System.out.println(valid); } catch (Exception e) { e.printStackTrace(); } }}getPath
Sección titulada «getPath»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getPath(String token, String uuid) | String | Convierte el UUID de un documento en la ruta del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); String docPath = okmDocument.getPath(null, "f3a977f7-abfc-4f58-a033-988903b31473"); System.out.println(docPath); } catch (Exception e) { e.printStackTrace(); } }}getDetectedLanguages
Sección titulada «getDetectedLanguages»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getDetectedLanguages(String token) | List |
Devuelve una lista de los idiomas de documento disponibles que OpenKM puede identificar. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); for (String languages : okmDocument.getDetectedLanguages(null)) { System.out.println(languages); } } catch (Exception e) { e.printStackTrace(); } }}createFromTemplate
Sección titulada «createFromTemplate»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createFromTemplate(String token, String docId, String dstPath, Map<String, String> properties, ExtendedAttributes attributes) | Document | Crea un nuevo documento a partir de una plantilla y devuelve un objeto Document. |
- El dstPath puede ser el UUID de una carpeta o de un expediente.
- El parámetro language es opcional.
- Cuando la plantilla utiliza grupos de metadatos para rellenar campos, estos valores son obligatorios y deben establecerse en el parámetro properties.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.Map;import java.util.List;
import com.google.gson.Gson;import com.openkm.api.OKMDocument;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;import com.openkm.util.ISO8601;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); 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));
List<String> list = new ArrayList<>(); list.add("java"); properties.put("okp:tpl.language", new Gson().toJson(list).toString());
okmDocument.createFromTemplate(null, "86633fe8-1b0d-48ac-a716-7685022adad8", "/okm:root/templates.pdf", properties, new ExtendedAttributes()); } catch (Exception e) { e.printStackTrace(); } }}updateFromTemplate
Sección titulada «updateFromTemplate»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| updateFromTemplate(String token, String docId, String dstId, Map<String, String> properties) | void | Actualiza un documento creado previamente a partir de la plantilla y devuelve un objeto Document. |
- Este método solo tiene sentido cuando la plantilla utiliza grupos de metadatos para rellenar campos.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.List;import java.util.Map;
import com.google.gson.Gson;import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;import com.openkm.util.ISO8601;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); 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));
List<String> list = new ArrayList<>(); list.add("java"); properties.put("okp:tpl.language", new Gson().toJson(list).toString());
okmDocument.updateFromTemplate(null, "86633fe8-1b0d-48ac-a716-7685022adad8", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", properties); } catch (Exception e) { e.printStackTrace(); } }}setAnnotations
Sección titulada «setAnnotations»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setAnnotations(String token, String docId, String verName, String annotation) | void | Establece las anotaciones de una versión del documento. |
Ejemplo:
package com.openkm;import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.setAnnotations(null, "3887ae75-dd67-4019-b4d1-2f6962815403", "1.1", "The annotation text."); } catch (Exception e) { e.printStackTrace(); } }}getAnnotations
Sección titulada «getAnnotations»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getAnnotations(String token, String docId, String verName) | String | Devuelve las anotaciones del documento de una versión del documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); String annotation = okmDocument.getAnnotations(null, "3887ae75-dd67-4019-b4d1-2f6962815403", "1.1"); System.out.println(annotation); } catch (Exception e) { e.printStackTrace(); } }}getCheckedOut
Sección titulada «getCheckedOut»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getCheckedOut(String token) | List |
Devuelve la lista de todos los documentos en edición (checkout) del repositorio. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.bean.Document;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); for (Document doc : okmDocument.getCheckedOut(null)) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| stamp(String token, String docId, int type, long stId) | void | Estampa un documento. |
- El parámetro type indica el tipo de sello:
- El parámetro stId es el valor del identificador único de la definición del sello. Puede obtenerlo desde la vista Administración > Sello.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); int type = 0; // indicate text stamp definition long stId = 1; // unique identifier of the stamp definition okmDocument.stamp(null, "3887ae75-dd67-4019-b4d1-2f6962815403", type, stId); } catch (Exception e) { e.printStackTrace(); } }}stampText
Sección titulada «stampText»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| stampText(String token, String docId, long stId, String range, String exprX, String exprY, String text) | void | Estampa un documento con un texto personalizado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
import java.io.FileInputStream;import java.io.InputStream;
public class Test {
public static void main(String[] args) { try { long stampTextId = 1; String text = "OpenKM"; String exprX = "PAGE_CENTER"; String exprY = "PAGE_MIDDLE"; InputStream is = new FileInputStream("/home/gnujavasergio/okm/logo.png"); OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.stampText(null, "05b14eee5-2e57-4d1d-925a-c9bc3f526e24", stampTextId, "", exprX, exprY, text); } catch (Exception e) { e.printStackTrace(); } }}stampImage
Sección titulada «stampImage»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| stampImage(String token, String docId, long stId, String range, String exprX, String exprY, InputStream is) | void | Estampa un documento con una imagen personalizada. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
import java.io.FileInputStream;import java.io.InputStream;
public class Test {
public static void main(String[] args) { try { long id = 1; String exprX = "PAGE_CENTER - IMAGE_WIDTH / 2"; String exprY = "PAGE_MIDDLE - IMAGE_HEIGHT / 2"; InputStream is = new FileInputStream("/home/gnujavasergio/okm/logo.png"); OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.stampImage(null, "055b5206-35d0-4351-ba92-c304bbba7ddf", id, "", exprX, exprY, is); } catch (Exception e) { e.printStackTrace(); } }}setDescription
Sección titulada «setDescription»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDescription(String token, String docId, String description) | void | Establece una descripción. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.setDescription(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", "some description"); } catch (Exception e) { e.printStackTrace(); } }}setNodeClass
Sección titulada «setNodeClass»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setNodeClass(String token, String docId, long ncId) | void | Establece la NodeClass. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); long ncId = 2; okmDocument.setNodeClass(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", ncId); } catch (Exception e) { e.printStackTrace(); } }}setDispositionStage
Sección titulada «setDispositionStage»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDispositionStage(String token, String docId, long stage) | void | Establece la etapa de disposición |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); long stage = 1; okmDocument.setDispositionStage(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", stage); } catch (Exception e) { e.printStackTrace(); } }}createWizard
Sección titulada «createWizard»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createWizard(String token, String docPath, long nodeClass, InputStream is) | WizardNode | Crea un nuevo documento utilizando el asistente. |
- El parámetro docPath debe ser cualquier RUTA válida de carpeta o de expediente.
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.WizardNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); InputStream is = new FileInputStream("/home/gnujavasergio/okm/logo.png"); WizardNode wn = okmDocument.createWizard(null, "/okm:root/test/logo.png", 0, is); System.out.print(wn); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}getNumberOfPages
Sección titulada «getNumberOfPages»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getNumberOfPages(String token, String uuid) | int | Obtiene el número de páginas de un documento. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println("The number of pages is : " + okmDocument.getNumberOfPages(null, "b2f88679-e3fd-4f97-bf0e-abf76f9ec499")); } catch (Exception e) { e.printStackTrace(); } }}getPageAsImage
Sección titulada «getPageAsImage»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getPageAsImage(String token, String uuid, int pageNumber, int maxWidth, int maxHeight) | String | Devuelve una página concreta como una imagen codificada como cadena Base64. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println(okmDocument.getPageAsImage(null, "3fe350e2-69e8-4681-a97c-6ac4ba6c1524", 1, 150, 150)); } catch (Exception e) { e.printStackTrace(); } }}isConvertibleToPDF
Sección titulada «isConvertibleToPDF»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isConvertibleToPDF(String docId) | Boolean | Devuelve un booleano que indica si el nodo es convertible a PDF. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); System.out.println(okmDocument.isConvertibleToPDF("9ed5c7b1-9314-4479-8f80-fd8e2b47f55e")); } catch (Exception e) { e.printStackTrace(); } }}setIndexable
Sección titulada «setIndexable»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setIndexable(String uuid, boolean enabled) | void | Establece el documento como indexable. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); okmDocument.setIndexable("19938640-fd34-421c-90c8-6b435e4b7d79", true); Document document = okmDocument.getDocumentProperties("19938640-fd34-421c-90c8-6b435e4b7d79"); System.out.println("Document indexable:" + document.isIndexable()); } catch (Exception e) { e.printStackTrace(); } }}mergePdf
Sección titulada «mergePdf»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| mergePdf(String token, String destinationPath, String docName, List |
void | Combina dos o más ficheros PDF. |
- El parámetro destinationPath debe ser cualquier RUTA válida de carpeta o de expediente.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); List<String> uuids = new ArrayList<>(); uuids.add("/okm:root/test/document.pdf"); uuids.add("/okm:root/test/document1.pdf"); String fldUuid = "/okm:root/mergue"; okmDocument.mergePdf(null, fldUuid, "MergePdf.pdf", uuids); } catch (Exception e) { e.printStackTrace(); } }}