Ir al contenido

OKMDocument

En la mayoría de los métodos verá un parámetro llamado “docId”. El valor de este parámetro puede ser un UUID de nodo de documento válido.

Sobre el parámetro llamado “fldId”, el valor de este parámetro puede ser un UUID de carpeta válido o un nodo de expediente (record).

Sobre el parámetro llamado “dstId”, el valor de este parámetro puede ser un UUID de carpeta válido o un nodo de expediente (record).

Además, en todos los métodos verá un parámetro llamado “token”. Como las tareas de Cron se ejecutan en segundo plano sin autenticación, los métodos usados en ese escenario pueden usar el parámetro token. En el contexto de ejecución por defecto de la aplicación, debe usar el valor “null”, que indica que la aplicación debe usar la “sesión de usuario”.

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 en el repositorio. Opcionalmente, también 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);
}
}
}

Descripción:

Método Valores de retorno Descripción
createWithPropertyGroup(String token, Document doc, InputStream is, String grpName, Map<String, String> properties) Document Igual que create(), pero además establece en la misma llamada las propiedades de un grupo de metadatos en la primera versión del documento, en lugar de un create() seguido de una llamada separada a OKMPropertyGroup.addGroup().
  • El parámetro doc debe inicializarse con el valor de la ruta de OpenKM en el repositorio, igual que create(). El grpName debe ser un nombre de grupo de Metadata válido, y solo se aplican las propiedades que pertenecen a ese grupo — cualquier otra clave presente en el mapa properties se ignora.

Ejemplo:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
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");
Map<String, String> properties = new HashMap<>();
properties.put("okp:invoice.number", "INV-000");
// Create document with metadata in a single atomic call
doc = okmDocument.createWithPropertyGroup(null, doc, is, "okg:invoice", properties);
System.out.println(doc);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(is);
}
}
}

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;
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 de retorno 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();
}
}
}

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;
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();
}
}
}

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;
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);
}
}
}

Descripción:

Método Valores de retorno Descripción
getContentByVersion(String token, String docId, String versionId) InputStream Devuelve el contenido del documento para una versión específica.
  • 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);
}
}
}

Descripción:

Método Valores de retorno 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();
}
}
}

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 carpeta o de expediente (record).

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 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;
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();
}
}
}

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;
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();
}
}
}

Descripción:

Método Valores de retorno Descripción
setLanguage(String token, String docId, String lang) void Establece el idioma del documento.
  • El parámetro lang debe cumplir con 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();
}
}
}

Descripción:

Método Valores de retorno 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();
}
}
}

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 empezar a editar, debe realizar una acción de checkout que bloquea el proceso de edición para otros usuarios y solo permite editar 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();
}
}
}

Descripción:

Método Valores de retorno 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();
}
}
}

Descripción:

Método Valores de retorno 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 ejecutar esta acción como 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
isCheckedOut(String token, String docId) boolean Devuelve un booleano que indica si el documento está en edición 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.isCheckedOut(null, "f3a977f7-abfc-4f58-a033-988903b31473"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

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 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);
}
}
}

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 nuevos valores de 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 de retorno Descripción
checkinWithPropertyGroup(String token, String docId, InputStream is, String comment, int increment, String grpName, Map<String, String> properties) Version Igual que checkin(), pero además aplica un cambio en las propiedades de un grupo de metadatos sobre la misma nueva versión, en lugar de un checkin() seguido de una llamada separada a OKMPropertyGroup.setProperties().
  • El grpName ya debe estar asignado al documento (ver OKMPropertyGroup.addGroup()); solo se aplican las propiedades que pertenecen a ese grupo.

Ejemplo:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
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");
Map<String, String> properties = new HashMap<>();
properties.put("okp:invoice.number", "INV-001");
// Checkin + metadata update as a single atomic call
okmDocument.checkinWithPropertyGroup(null, "f3a977f7-abfc-4f58-a033-988903b31473", is,
"optional comment", 0, "okg:invoice", properties);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(is);
}
}
}

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;
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 de retorno 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();
}
}
}

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 ejecutar esta acción como el mismo usuario que ejecutó previamente la acción de bloqueo (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.forceUnlock(null, "f3a977f7-abfc-4f58-a033-988903b31473");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
isLocked(String token, String docId) boolean 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();
}
}
}

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;
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 de retorno Descripción
purge(String token, String docId) void El documento se elimina permanentemente del repositorio.
  • Normalmente se purgan documentos hacia /okm:trash/userId —la papelera personal del usuario—, pero es posible purgar directamente cualquier documento de todo el 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 de retorno Descripción
move(String token, String docId, String dstId) void Mueve un documento a una carpeta o expediente (record).

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 de retorno Descripción
copy(String token, String docId, String dstId) Document Copia un documento a una carpeta o expediente (record).
  • Los valores del parámetro dstId deben ser un UUID de carpeta o expediente (record).

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 de retorno Descripción
copy(String token, String docId, String dstId, String newName) Document Copia un documento a alguna carpeta o expediente (record).
  • Los valores del parámetro dstId deben ser un UUID de carpeta o expediente (record).
  • Cuando el 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
extendedCopy(String token, String docId, String dstId, String docName, ExtendedAttributes extAttr) Document Copia un documento con datos asociados a alguna carpeta o expediente (record).
  • Los valores del parámetro dstId deben ser un UUID de carpeta o de expediente (record).
  • 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
getVersionHistorySize(String token, String docId) long Devuelve la suma en bytes de todos los documentos en el 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();
}
}
}

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;
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();
}
}
}

Descripción:

Método Valores de retorno Descripción
getPath(String token, String uuid) String Convierte un UUID de documento en una ruta de 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();
}
}
}

Descripción:

Método Valores de retorno 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();
}
}
}

Descripción:

Método Valores de retorno 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 un UUID de carpeta o de expediente (record).
  • El parámetro language es opcional.
  • Cuando la plantilla usa grupos de metadatos para rellenar campos, esos 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
updateFromTemplate(String token, String docId, String dstId, Map<String, String> properties) void Actualiza un documento creado previamente a partir de la plantilla.
  • Este método solo tiene sentido cuando la plantilla usa 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
setAnnotations(String token, String docId, String verName, String annotation) void Establece anotaciones para 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
getAnnotations(String token, String docId, String verName) String Devuelve las anotaciones del documento para una versión concreta.

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();
}
}
}

Descripción:

Método Valores de retorno Descripción
getCheckedOut(String token) List Devuelve la lista de todos los documentos en edición (checked-out) en el 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 de retorno 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 identificador único de la definición del sello. Puede obtenerlo en Administration > vista Stamp.

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();
}
}
}

Descripción:

Método Valores de retorno Descripción
stampText(String token, String docId, long stId, String range, String exprX, String exprY, String text) void Estampa un documento con texto personalizado.
  • El parámetro docPath debe ser una RUTA válida de carpeta o expediente (record).

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();
}
}
}

Descripción:

Método Valores de retorno 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
getPageAsImage(String token, String uuid, int pageNumber, int maxWidth, int maxHeight) String Devuelve una página concreta como imagen codificada en 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();
}
}
}

Descripción:

Método Valores de retorno Descripción
isConvertibleToPdf(String token, String docId) boolean Devuelve un booleano que indica si el nodo se puede convertir 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(null, "9ed5c7b1-9314-4479-8f80-fd8e2b47f55e"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
setIndexable(String token, String uuid, boolean enabled) void Establece si el documento es indexable.

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);
okmDocument.setIndexable(null, "19938640-fd34-421c-90c8-6b435e4b7d79", true);
Document document = okmDocument.getProperties(null, "19938640-fd34-421c-90c8-6b435e4b7d79");
System.out.println("Document indexable:" + document.isIndexable());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
mergePdf(String token, String destinationPath, String docName, List paths) void Combina dos o más archivos PDF.
  • El parámetro destinationPath debe ser una RUTA válida de carpeta o expediente (record).

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();
}
}
}