OKMRecord
Fundamentos
Sección titulada «Fundamentos»En la mayoría de los métodos verá un parámetro llamado “recId”. El valor de este parámetro puede ser un UUID de registro válido.
Además, en todos los métodos verá un parámetro llamado “token”. Dado que las Tareas de Cron se ejecutan en segundo plano sin autenticación, los métodos usados en este escenario podrían 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”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| create(String token, Record rec) | Record | Crea un nuevo registro y devuelve un objeto Record. |
- La variable path en el parámetro rec debe estar inicializada. Indica la ruta de la carpeta en OpenKM.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record rec = new Record(); rec.setPath("/okm:root/test"); Record newRec = okmRecord.create(null, rec); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}createWithPropertyGroup
Sección titulada «createWithPropertyGroup»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createWithPropertyGroup(String token, Record rec, String grpName, Map<String, String> properties) | Record | Igual que create(), pero además establece las propiedades de un grupo de metadatos en el registro en la misma llamada, en lugar de un create() seguido de una llamada independiente a OKMPropertyGroup.addGroup(). |
- La variable path en el parámetro rec debe estar inicializada, igual que en create(). El grpName debe ser un nombre de grupo de metadatos 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.util.HashMap;import java.util.Map;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record rec = new Record(); rec.setPath("/okm:root/test");
Map<String, String> properties = new HashMap<>(); properties.put("okp:invoice.number", "INV-000");
// Create record with metadata in a single atomic call Record newRec = okmRecord.createWithPropertyGroup(null, rec, "okg:invoice", properties); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}createSimple
Sección titulada «createSimple»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createSimple(String token, String recPath) | Record | Crea un nuevo registro y devuelve un objeto Record. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); String recPath = "/okm:root/PKI-100200"; Record newRec = okmRecord.createSimple(null, recPath); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}getProperties
Sección titulada «getProperties»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getProperties(String token, String recId) | Record | Devuelve las propiedades del registro. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record rec = okmRecord.getProperties(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); System.out.println(rec); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| delete(String token, String recId) | void | Elimina un registro. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.delete(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purge(String token, String recId) | void | El registro se elimina permanentemente del repositorio. |
- Normalmente purgará carpetas en /okm:trash/userId - las papeleras personales del usuario -, pero es posible purgar directamente cualquier registro del repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.purge(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| rename(String token, String recId, String newName) | Record | Renombra un registro. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record renamedRec = okmRecord.rename(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "newname"); System.out.println(renamedRec); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| move(String token, String recId, String dstId) | void | Mueve un registro a una carpeta o a otro registro. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.move(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "b6848ac2-345f-454e-964a-eba4dcc020e6"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String recId, String dstId) | Record | Copia un registro en una carpeta o registro y devuelve el nuevo objeto Record. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record newRec = okmRecord.copy(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "b6848ac2-345f-454e-964a-eba4dcc020e6"); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String recId, String dstId, String newName) | Record | Copia un registro en una carpeta o registro y devuelve el nuevo objeto Record. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
- Cuando el parámetro newName es null, el registro conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Record newRec = okmRecord.copy(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "b6848ac2-345f-454e-964a-eba4dcc020e6", "newname"); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String recId, String dstId, String newName, ExtendedAttributes extAttr) | Record | Copia un registro junto con los datos asociados en una carpeta o registro y devuelve el nuevo objeto Record. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
- Cuando el parámetro newName es null, el registro conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.ExtendedAttributes;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); extAttr.setCategories(true); extAttr.setNotes(true);
Record newRec = okmRecord.extendedCopy(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "PKI-100201", extAttr); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}isValid
Sección titulada «isValid»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isValid(String token, String recId) | boolean | Devuelve un booleano que indica si el nodo es un registro. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); boolean valid = okmRecord.isValid(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); 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 recId) | String | Convierte un UUID de registro en su ruta de repositorio. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); String path = okmRecord.getPath(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); System.out.println(path); } 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 registros cuyo padre es fldId. |
- El parámetro fldId puede ser un nodo de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); for (Record rec : okmRecord.getChildren(null, "b6848ac2-345f-454e-964a-eba4dcc020e6")) { System.out.println(rec); } } 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.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.lock(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| unlock(String token, String recId) | LockInfo | Desbloquea un registro bloqueado. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.unlock(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); } catch (Exception e) { e.printStackTrace(); } }}forceUnlock
Sección titulada «forceUnlock»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| forceUnlock(String token, String recId) | void | Desbloquea un registro bloqueado. |
- Este método permite desbloquear cualquier registro bloqueado.
- No es necesario que sea el mismo usuario que realizó la acción de bloqueo (checkout) original quien realice esta acción.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.forceUnlock(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f"); } catch (Exception e) { e.printStackTrace(); } }}setTitle
Sección titulada «setTitle»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setTitle(String token, String recId, String title) | void | Establece el título de un registro. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.setTitle(null, "7f867772-7476-4176-b86f-bdeb8bce1c5f", "new title"); } catch (Exception e) { e.printStackTrace(); } }}setNodeClass
Sección titulada «setNodeClass»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setNodeClass(String token, String recId, long ncId) | void | Establece la NodeClass. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class);
long ncId = 2; okmRecord.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 recId, long stage) | void | Establece la etapa de disposición (disposition stage) |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class);
long stage = 1; okmRecord.setDispositionStage(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", stage); } catch (Exception e) { e.printStackTrace(); } }}addNodeClassChildren
Sección titulada «addNodeClassChildren»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| addNodeClassChildren(String token, String recId, long ncId) | void | Añade la NodeClass del registro a las carpetas padre. |
- Se usa a efectos de navegación para determinar cuándo una carpeta contiene un nodo de esta clase de nodo.
- El método propaga el valor de la clase de nodo a los contenedores padre (carpetas) para indicar que hay un nodo de este tipo.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class);
long ncId = 2; okmRecord.addNodeClassChildren(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", ncId); } catch (Exception e) { e.printStackTrace(); } }}setDescription
Sección titulada «setDescription»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDescription(String token, String uuid, String description) | void | Establece una descripción. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class);
okmRecord.setDescription(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", "some description"); } catch (Exception e) { e.printStackTrace(); } }}createWizard
Sección titulada «createWizard»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createWizard(String token, String recPath, String title, long nodeClass) | WizardNode | Crea un nuevo registro mediante un asistente (wizard). |
- El parámetro recPath debe ser cualquier UUID válido de carpeta o de registro
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.bean.WizardNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class);
WizardNode wn = okmRecord.createWizard(null, "1f323e88-64ee-4f57-91e2-9276f8c603f9", "PKI-100200", 0); System.out.print(wn); } catch (Exception e) { e.printStackTrace(); } }}createMissingRecords
Sección titulada «createMissingRecords»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createMissingRecords(String token, String recPath) | void | Crea los registros que falten bajo la ruta indicada. |
- El parámetro recPath debe ser una ruta de carpeta o registro válida en OpenKM.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMRecord;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); okmRecord.createMissingRecords(null, "/okm:root/PKI"); } catch (Exception e) { e.printStackTrace(); } }}createFromTemplate
Sección titulada «createFromTemplate»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createFromTemplate(String token, String fldId, String dstPath, Map<String, String> properties, ExtendedAttributes extAttr) | Record | Crea un nuevo registro a partir de una carpeta plantilla y devuelve el objeto Record creado. |
- El parámetro fldId es el UUID de la carpeta plantilla.
- El parámetro dstPath es la ruta de destino donde se creará el registro.
- El parámetro properties es un mapa de valores de grupo de propiedades que se establecerán en el nuevo registro.
- El parámetro extAttr controla qué atributos extendidos (categorías, palabras clave, notas, etc.) se copian de la plantilla.
Ejemplo:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.api.OKMRecord;import com.openkm.bean.ExtendedAttributes;import com.openkm.bean.Record;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMRecord okmRecord = ContextWrapper.getContext().getBean(OKMRecord.class); Map<String, String> properties = new HashMap<>(); properties.put("okp:group.property", "value"); ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); extAttr.setCategories(true); Record newRec = okmRecord.createFromTemplate(null, "b6848ac2-345f-454e-964a-eba4dcc020e6", "/okm:root/PKI-100300", properties, extAttr); System.out.println(newRec); } catch (Exception e) { e.printStackTrace(); } }}