OKMNode
Conceptos básicos
Sección titulada «Conceptos básicos»En casi todos los métodos verá un parámetro llamado “nodeId”. El valor de este parámetro puede ser el UUID de un nodo válido.
Para el parámetro llamado “fldId”, su valor puede ser el UUID de una carpeta válida o de un nodo de registro.
Para el parámetro llamado “dstId”, su valor puede ser el UUID de una carpeta válida o de un nodo de registro.
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 usar 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 usar la “sesión de usuario”.
Métodos
Sección titulada «Métodos»getNodeByUuid
Sección titulada «getNodeByUuid»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getNodeByUuid(String token, String uuid) | Node | Obtiene un nodo por su UUID. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.bean.Node;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); Node node = okmNode.getNodeByUuid(null, "78f9c377-e557-48c7-804e-35c0ca284739"); System.out.println(node); } catch (Exception e) { e.printStackTrace(); } }}getVersionHistory
Sección titulada «getVersionHistory»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getVersionHistory(String token, String nodeId) | List |
Devuelve la lista del historial de versiones de un nodo. |
Ejemplo:
package com.openkm;
import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.Version;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<Version> versions = okmNode.getVersionHistory(null, "78f9c377-e557-48c7-804e-35c0ca284739"); for (Version version : versions) { System.out.println(version); } } catch (Exception e) { e.printStackTrace(); } }}restoreVersion
Sección titulada «restoreVersion»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| restoreVersion(String token, String nodeId, String versionId) | void | Restaura la versión de un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.restoreVersion(null, "78f9c377-e557-48c7-804e-35c0ca284739", "1.2"); } catch (Exception e) { e.printStackTrace(); } }}renameVersion
Sección titulada «renameVersion»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| renameVersion(String token, String nodeId, String versionId, String newName) | void | Renombra la versión de un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.renameVersion(null, "78f9c377-e557-48c7-804e-35c0ca284739", "1.2", "newName"); } catch (Exception e) { e.printStackTrace(); } }}purgeVersionHistory
Sección titulada «purgeVersionHistory»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purgeVersionHistory(String token, String nodeId) | void | Purga el historial de versiones de un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.purgeVersionHistory(null, "3767deb4-21e7-4272-82be-fece5384fbab"); } catch (Exception e) { e.printStackTrace(); } }}getChildrenPaginated
Sección titulada «getChildrenPaginated»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getChildrenPaginated(String token, String nodeId, int offset, int limit, String filter, String orderByField, boolean orderAsc, List<Class<? extends NodeBase>> filteredByNodeTypeList) | PageInfo | Obtiene los nodos hijos de forma paginada. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.PageInfo;import com.openkm.db.bean.NodeBase;import com.openkm.db.bean.NodeDocument;import com.openkm.db.bean.NodeFolder;import com.openkm.db.bean.NodeMail;import com.openkm.db.bean.NodeRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<Class<? extends NodeBase>> filteredByNodeTypeList = new ArrayList<>(); filteredByNodeTypeList.add(NodeDocument.class); filteredByNodeTypeList.add(NodeFolder.class); filteredByNodeTypeList.add(NodeMail.class); filteredByNodeTypeList.add(NodeRecord.class);
// nodeId Folder and Record UUID or Path String nodeId = "39479efe-de5e-468e-91a7-24d2aa3f8837"; String orderByField = "created"; boolean orderAsc = true; PageInfo pageInfo = okmNode.getChildrenPaginated(null, nodeId, 0, 10, "", orderByField, orderAsc, filteredByNodeTypeList); System.out.println("Filtered Elements: " + pageInfo.getFilteredElements()); System.out.println("Total Elements: " + pageInfo.getTotalElements()); for (Object object : pageInfo.getObjects()) { NodeBase nodeBase = (NodeBase) object; System.out.println(nodeBase.getPath()); } } catch (Exception e) { e.printStackTrace(); } }}getChildrenByCategoryPaginated
Sección titulada «getChildrenByCategoryPaginated»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getChildrenByCategoryPaginated(String token, String nodeId, int offset, int limit, String filter, String orderByField, boolean orderAsc, List<Class<? extends NodeBase>> filteredByNodeTypeList) | PageInfo | Obtiene los nodos hijos por categoría de forma paginada. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.PageInfo;import com.openkm.db.bean.NodeBase;import com.openkm.db.bean.NodeDocument;import com.openkm.db.bean.NodeFolder;import com.openkm.db.bean.NodeMail;import com.openkm.db.bean.NodeRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<Class<? extends NodeBase>> filteredByNodeTypeList = new ArrayList<>(); filteredByNodeTypeList.add(NodeDocument.class); filteredByNodeTypeList.add(NodeFolder.class); filteredByNodeTypeList.add(NodeMail.class); filteredByNodeTypeList.add(NodeRecord.class);
// nodeId Folder and Record UUID or Path String nodeId = "39479efe-de5e-468e-91a7-24d2aa3f8837"; String orderByField = "created"; boolean orderAsc = true; PageInfo pageInfo = okmNode.getChildrenByCategoryPaginated(null, nodeId, 0, 10, "", orderByField, orderAsc, filteredByNodeTypeList); System.out.println("Filtered Elements: " + pageInfo.getFilteredElements()); System.out.println("Total Elements: " + pageInfo.getTotalElements()); for (Object object : pageInfo.getObjects()) { NodeBase nodeBase = (NodeBase) object; System.out.println(nodeBase.getPath()); } } catch (Exception e) { e.printStackTrace(); } }}getBreadcrumb
Sección titulada «getBreadcrumb»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getBreadcrumb(String token, String fldId) | List |
Obtiene la ruta de navegación (breadcrumb). |
Ejemplo:
package com.openkm;
import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.BreadCrumbItem;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<BreadCrumbItem> list = okmNode.getBreadcrumb(null, "39479efe-de5e-468e-91a7-24d2aa3f8837"); for (BreadCrumbItem item : list) { System.out.println(item.getPath()); } } catch (Exception e) { e.printStackTrace(); } }}subscribe
Sección titulada «subscribe»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| subscribe(String token, String nodeId) | void | Añade una suscripción a un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.subscribe(null, "39479efe-de5e-468e-91a7-24d2aa3f8837"); } catch (Exception e) { e.printStackTrace(); } }}unsubscribe
Sección titulada «unsubscribe»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| unsubscribe(String token, String nodeId) | void | Elimina una suscripción a un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.unsubscribe(null, "39479efe-de5e-468e-91a7-24d2aa3f8837"); } catch (Exception e) { e.printStackTrace(); } }}importZip
Sección titulada «importZip»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| importZip(String token, String fldUuid, InputStream inputStream) | void | Importa un archivo zip. |
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); InputStream is = new FileInputStream("/home/gnujavasergio/okm/import.zip"); okmNode.importZip(null, "212e7c1f-443d-4aac-a12c-0b818ca03419", is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| unzip(String token, String uuid, String destinationPath) | void | Descomprime un archivo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); String uuid = "82555dd1-bcc2-4e64-81cb-5f7c2b0d7801"; // zip File String destinationPath = "/okm:root/test"; // destination path okmNode.unzip(null, uuid, destinationPath); } catch (Exception e) { e.printStackTrace(); } }}exportZip
Sección titulada «exportZip»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| exportZip(List |
ByteArrayInputStream | Exporta como archivo zip. |
Ejemplo:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<String> uuids = new ArrayList<>(); uuids.add("/okm:root/test/logo.png"); uuids.add("/okm:root/test/invoice.pdf");
OutputStream fos = new FileOutputStream("/home/openkm/import.zip");
InputStream is = okmNode.exportZip(uuids, true, true, true); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}getNodesFromUuids
Sección titulada «getNodesFromUuids»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getNodesFromUuids(String token, String[] uuids) | List |
Devuelve una lista de nodos. |
Ejemplo:
package com.openkm;
import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.Node;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); String[] uuids = {"0f6463f3-4d36-4091-b518-4fe7c353ee70", "d386cff8-1d4d-472f-9c6d-f21955ec499a"}; List<Node> nodes = okmNode.getNodesFromUuids(null, uuids); for (Node node : nodes) { System.out.println(node); } } catch (Exception e) { e.printStackTrace(); } }}evaluateZipDownload
Sección titulada «evaluateZipDownload»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| evaluateZipDownload(String token, List |
ZipDownloadEvaluationResult | Evalúa si un archivo zip puede descargarse en tiempo real o en segundo plano. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMNode;import com.openkm.bean.ZipDownloadEvaluationResult;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); List<String> uuids = new ArrayList<>(); uuids.add("0f6463f3-4d36-4091-b518-4fe7c353ee70"); uuids.add("d386cff8-1d4d-472f-9c6d-f21955ec499a");
ZipDownloadEvaluationResult result = okmNode.evaluateZipDownload(null, uuids); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } }}restore
Sección titulada «restore»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| restore(String token, String nodeId) | Node | Restaura un nodo desde la papelera. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.bean.Node;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); Node node = okmNode.restore(null, "0f6463f3-4d36-4091-b518-4fe7c353ee70"); System.out.println(node); } catch (Exception e) { e.printStackTrace(); } }}hasNodesLockedByOtherUser
Sección titulada «hasNodesLockedByOtherUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| hasNodesLockedByOtherUser(String token, String nodeId) | boolean | Comprueba si el nodo y sus descendientes han sido bloqueados por otros usuarios. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); if (okmNode.hasNodesLockedByOtherUser(null, "0f6463f3-4d36-4091-b518-4fe7c353ee70")) { System.out.println("Is blocked"); } } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| lock(String token, String recId) | LockInfo | Bloquea un registro y devuelve un objeto con la información del bloqueo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.lock(null, "1ec49da9-1746-4875-ae32-9281d7303a62"); } catch (Exception e) { e.printStackTrace(); } }}forceLock
Sección titulada «forceLock»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| forceLock(String token, String nodeId) | void | Bloquea un nodo ya bloqueado. |
- Este método permite bloquear cualquier nodo bloqueado.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.forceLock(null, "1ec49da9-1746-4875-ae32-9281d7303a62"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| unlock(String token, String nodeId) | void | Desbloquea un nodo bloqueado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.unlock(null, "1ec49da9-1746-4875-ae32-9281d7303a62"); } catch (Exception e) { e.printStackTrace(); } }}forceUnlock
Sección titulada «forceUnlock»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| forceUnlock(String token, String nodeId) | void | Desbloquea un nodo bloqueado. |
- Este método permite desbloquear cualquier registro bloqueado.
- No es obligatorio que esta acción la realice el mismo usuario que ejecutó previamente la acción de bloqueo por checkout.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.forceUnlock(null, "1ec49da9-1746-4875-ae32-9281d7303a62"); } catch (Exception e) { e.printStackTrace(); } }}isLocked
Sección titulada «isLocked»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isLocked(String token, String nodeId) | Boolean | Devuelve un booleano que indica si el nodo está bloqueado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); System.out.println(okmNode.getLockInfo(null, "1ec49da9-1746-4875-ae32-9281d7303a62")); } catch (Exception e) { e.printStackTrace(); } }}getLockInfo
Sección titulada «getLockInfo»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| lock(String token, String recId) | LockInfo | Bloquea un registro y devuelve un objeto con la información del bloqueo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); System.out.println(okmNode.getLockInfo(null, "1ec49da9-1746-4875-ae32-9281d7303a62")); } catch (Exception e) { e.printStackTrace(); } }}setComment
Sección titulada «setComment»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setComment(String token, String nodeId, String versionName, String comment) | void | Establece el comentario de una versión concreta de un nodo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMNode okmNode = ContextWrapper.getContext().getBean("okmNode", OKMNode.class); okmNode.setComment(null, "1ec49da9-1746-4875-ae32-9281d7303a62", "1.14", "Update comment"); } catch (Exception e) { e.printStackTrace(); } }}