Workflow samples
Aspectos básicos
Sección titulada «Aspectos básicos»Ejemplo de código sugerido
Sección titulada «Ejemplo de código sugerido»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.
Métodos
Sección titulada «Métodos»registerProcessDefinition
Sección titulada «registerProcessDefinition»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(); } }}deleteProcessDefinition
Sección titulada «deleteProcessDefinition»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(); } }}getProcessDefinition
Sección titulada «getProcessDefinition»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(); } }}runProcessDefinition
Sección titulada «runProcessDefinition»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(); } }}runProcessDefinition
Sección titulada «runProcessDefinition»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(); } }}findProcessInstances
Sección titulada «findProcessInstances»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(); } }}findAllProcessDefinitions
Sección titulada «findAllProcessDefinitions»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(); } }}findLatestProcessDefinitions
Sección titulada «findLatestProcessDefinitions»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(); } }}findLastProcessDefinition
Sección titulada «findLastProcessDefinition»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(); } }}getProcessInstance
Sección titulada «getProcessInstance»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(); } }}findUserTaskInstances
Sección titulada «findUserTaskInstances»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(); } }}findTaskInstances
Sección titulada «findTaskInstances»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(); } }}setTaskInstanceValues
Sección titulada «setTaskInstanceValues»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(); } }}getTaskInstance
Sección titulada «getTaskInstance»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(); } }}startTaskInstance
Sección titulada «startTaskInstance»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(); } }}setTaskInstanceActorId
Sección titulada «setTaskInstanceActorId»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(); } }}endTaskInstance
Sección titulada «endTaskInstance»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(); } }}getProcessDefinitionForms
Sección titulada «getProcessDefinitionForms»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(); } }}getProcessDefinitionImage
Sección titulada «getProcessDefinitionImage»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(); } }}findPooledTaskInstances
Sección titulada «findPooledTaskInstances»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(); } }}findProcessInstancesByNode
Sección titulada «findProcessInstancesByNode»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(); } }}getSuggestBoxKeyValue
Sección titulada «getSuggestBoxKeyValue»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(); } }}getSuggestBoxKeyValuesFiltered
Sección titulada «getSuggestBoxKeyValuesFiltered»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(); } }}