Ir al contenido
Otras versiones

Cargando…

Workflow samples

Primero debe crear el objeto del servicio web:

OKMWebservices ws = OKMWebservicesFactory.getInstance(host);

A continuación, debe iniciar sesión mediante el método “login”. Puede acceder al método “login” desde el objeto del servicio web “ws”, tal y como se muestra a continuación:

ws.login(user, password);

Llegados a este punto puede usar todos los métodos de Workflow desde la clase “workflow”, tal y como se muestra a continuación:

ws.workflow.registerProcessDefinition(is);

Para la mayoría de los ejemplos se ha usado el Purchase workflow sample.

Descripción:

Método Valores de retorno Descripción
registerProcessDefinition(InputStream is) void Registra un nuevo flujo de trabajo.

Ejemplo:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/openkm/Purchase.par");
ws.workflow.registerProcessDefinition(is);
IOUtils.closeQuietly(is);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
deleteProcessDefinition(long pdId) void Elimina un flujo de trabajo.

El parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 1; // Valid workflow process definition
ws.workflow.deleteProcessDefinition(pdId);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getProcessDefinition(long pdId) void Devuelve una definición de proceso de flujo de trabajo.

El parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 1; // Valid workflow process definition
ProcessDefinition pd = ws.workflow.getProcessDefinition(pdId);
System.out.println(pd);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
runProcessDefinition(long pdId, String uuid, Map<String, String> propertiesMap) ProcessInstance Ejecuta un flujo de trabajo sobre un nodo.

El valor del parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

El parámetro uuid puede ser el UUID de cualquier documento, correo, carpeta o expediente.

Los valores de propertiesMap son los valores de los elementos del formulario necesarios para iniciar el flujo de trabajo (no todos los flujos de trabajo necesitan valores de formulario para iniciarse).

Ejemplo:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 8041; // Some valid workflow process definition id
// Case as part of starting workflow are required form parameter
Map<String, String> properties = new HashMap<>();
properties.put("price", "1000");
properties.put("description", "some description here");
ws.workflow.runProcessDefinition(pdId, "f86cc22d-9b50-434f-a940-b04cea9c0048", properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
runProcessDefinition(long pdId, Map<String, String> propertiesMap) ProcessInstance Ejecuta un flujo de trabajo sin asociarlo a ningún nodo.

El valor del parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Los valores de propertiesMap son los valores de los elementos del formulario necesarios para iniciar el flujo de trabajo (no todos los flujos de trabajo necesitan valores de formulario para iniciarse).

Ejemplo:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 8041; // Some valid workflow process definition id
// Case as part of starting workflow are required form parameter
Map<String, String> properties = new HashMap<>();
properties.put("price", "1000");
properties.put("description", "some description here");
ws.workflow.runProcessDefinition(pdId, properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findProcessInstances(long pdId) List Recupera una lista con todas las instancias de proceso de algunas definiciones de flujo de trabajo registradas.

El parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all workflow definitions
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println("WF definition: " + pd);
// Get all process of some workflow definition
for (ProcessInstance pi : ws.workflow.findProcessInstances(pd.getId())) {
System.out.println("PI: " + pi);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findAllProcessDefinitions() List Recupera una lista con todas las definiciones de flujo de trabajo registradas.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println(pd);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findLatestProcessDefinitions() List Recupera una lista con las últimas definiciones de flujo de trabajo.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all latest workflow definitions
for (ProcessDefinition pd : ws.workflow.findLatestProcessDefinitions()) {
System.out.println("WF definition: " + pd);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findLastProcessDefinition(String name) ProcessDefinition Recupera la última definición de un flujo de trabajo concreto.

El parámetro name identifica un grupo de definición de flujo de trabajo concreto.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
ProcessDefinition pd = ws.workflow.findLastProcessDefinition("purchase");
System.out.println("WF definition: " + pd);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getProcessInstance(long piId) ProcessInstance Devuelve la instancia de proceso.

El parámetro piId es un id de instancia de proceso válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long piId = 8108; // Some valid process instance id
ProcessInstance pi = ws.workflow.getProcessInstance(piId);
System.out.println("PI: " + pi);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findUserTaskInstances() TaskInstanceResultSet Recupera una lista de instancias de tarea asignadas al usuario.

Ejemplo:

package com.openkm.example;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.bean.workflow.TaskInstanceResultSet;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
TaskInstanceResultSet results = ws.workflow.findUserTaskInstances();
System.out.println("Total: " + results.getTotal());
for (TaskInstance ti : results.getResults()) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findTaskInstances(long piId) List Recupera una lista de instancias de tarea para un id de instancia de proceso.

El parámetro piId es un id de instancia de proceso válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all task instances of some process instance
long piId = 8108; // Some valid process instance id
for (TaskInstance ti : ws.workflow.findTaskInstances(piId)) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
setTaskInstanceValues(long tiId, String transName, Map<String, String> propertiesMap) void Establece los valores de una instancia de tarea.

El parámetro tiId es un id de instancia de tarea válido.

El parámetro transName es la transacción elegida.

Los valores de propertiesMap son los valores de los elementos del formulario necesarios para la tarea de flujo de trabajo (no todas las tareas de flujo de trabajo necesitan valores de formulario).

Ejemplo:

package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 2;
long tiId = 8110; // Some valid task instance id
TaskInstance ti = ws.workflow.getTaskInstance(tiId);
Map<String, String> properties = new HashMap<>();
ws.workflow.setTaskInstanceValues(pdId, ti.getId(), ti.getName(), "aprove", properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getTaskInstance(long tiId) TaskInstance Devuelve una instancia de tarea.

El parámetro tiId es un id de instancia de tarea válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
TaskInstance ti = ws.workflow.getTaskInstance(tiId);
System.out.println(ti);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
startTaskInstance(long tiId) void Inicia una instancia de tarea.

El parámetro tiId es un id de instancia de tarea válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.startTaskInstance(tiId);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
setTaskInstanceActorId(long tiId, String actorId) void Establece el actor de una instancia de tarea.

El parámetro tiId es un id de instancia de tarea válido.

El parámetro actorId debe ser un id de usuario de OpenKM válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.setTaskInstanceActorId(tiId, "okmAdmin");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
endTaskInstance(long tiId, String transName) void Finaliza una instancia de tarea.

El parámetro tiId es un id de instancia de tarea válido.

El parámetro transName es el nombre de la transacción.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long tiId = 8110; // Some valid task instance id
ws.workflow.endTaskInstance(tiId, "end");
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getProcessDefinitionForms(long pdId) Map<String, List> Devuelve un mapa con todos los formularios de la definición de proceso.

El valor del parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Ejemplo:

package com.openkm;
import java.util.List;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.form.FormElement;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, List<FormElement>> forms = ws.workflow.getProcessDefinitionForms(12);
for (String key : forms.keySet()) {
System.out.println("Key:" + key);
for (FormElement fe : forms.get(key)) {
System.out.println("Fe:" + fe);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getProcessDefinitionImage(String pdId, String uuid) String Devuelve un diagrama del flujo de trabajo en Base64.

El parámetro pdId es un id de definición de proceso de flujo de trabajo válido.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
String tiId = "1";
String res = ws.workflow.getProcessDefinitionImage(tiId, "82ed9618-11eb-4b1f-87e7-f853ee60c3c0");
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findPooledTaskInstances() TaskInstanceResultSet Recupera una lista con todas las instancias de tarea agrupadas (pooled).

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.TaskInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (TaskInstance ti : ws.workflow.findPooledTaskInstances()) {
System.out.println(ti);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
findProcessInstancesByNode(String uuid) List Recupera una lista con todas las instancias de proceso por nodo de algunas definiciones de flujo de trabajo registradas.

El parámetro uuid puede ser el UUID de cualquier documento, correo, carpeta o expediente.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.workflow.ProcessDefinition;
import com.openkm.sdk4j.bean.workflow.ProcessInstance;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
// Get all workflow definitions
for (ProcessDefinition pd : ws.workflow.findAllProcessDefinitions()) {
System.out.println("WF definition: " + pd);
// Get all process of some workflow definition
for (ProcessInstance pi : ws.workflow.findProcessInstances(pd.getId())) {
System.out.println("PI: " + pi);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getSuggestBoxKeyValue(long pdId, String uuid, String taskName, String propertyName, String key) String Devuelve el valor de suggestBox para una clave.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
long pdId = 4;
String taskName = "task-elaboration";
System.out.println(ws.workflow.getSuggestBoxKeyValue(pdId, "301de803-f4ae-48f1-8505-e83b26716956", taskName, "suggestbox", "es"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getSuggestBoxKeyValuesFiltered(long pdId, String uuid, String taskName, String propertyName, String filter) Map<String, String> Recupera un mapa (pares clave-valor) de valores de suggestBox.

Ejemplo:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> values = ws.workflow.getSuggestBoxKeyValuesFiltered(4, "301de803-f4ae-48f1-8505-e83b26716956", "task-elaboration", "suggestbox", "pai");
for (String key : values.keySet()) {
String value = values.get(key);
System.out.println(key + ":" + value);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}