Tengo un jBPM local de 7,33 con un proceso simple. En un momento en el proceso, lo que necesito para generar un archivo PDF.
Quiero hacerlo mediante la creación de una clase muy básica de Java que se ejecuta en una tarea. La clase obtendría las variables del ámbito de aplicación de procesos, generar el PDF y guardar la burbuja generada (o ruta de sistema de archivos) como una variable de proceso.
¿Cómo agrego una clase personalizada y luego llamar a esa clase?
Eso es lo que llamamos WorkItemHandler
, la clase java será una tarea personalizada jbpm
En primer lugar instalar jbpm en Eclipse
Crear un proyecto jBPM en Eclipse (marque Construir el proyecto con Maven)
crear una clase Java que implementa
WorkItemHandler
. será en este formato.package com.example; import org.kie.api.runtime.process.WorkItem; import java.util.HashMap; import java.util.Map; import org.drools.core.process.instance.WorkItemHandler; import org.kie.api.runtime.process.WorkItemManager; public class WorkItemTest implements WorkItemHandler { @Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { workItem.getParameters().toString(); /**Input Variables***/ String stringVar = (String) workItem.getParameter("stringVar"); /*** * * * YOUR CODE * */ String msg = "done"; /**Output Variables in a HashMap***/ Map<String, Object> resultMap = new HashMap<String, Object>(); resultMap.put("Result", msg); //("name of variable", value) manager.completeWorkItem(workItem.getId(), resultMap); } @Override public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { System.out.println("Aborted ! "); } }
Construir un archivo jar de este proyecto.
Desde el banco de trabajo, ir a Artefacto, subir el tarro
clic en este icono, a continuación, artefactosa partir de la configuración de su proyecto, vaya a las dependencias, y añadir desde el repositorio del artefacto cargado
a partir de la configuración de su proyecto, vaya a despliegues / Manipulador de elementos de trabajo y añadir un nuevo artículo Handler trabajo: escribir su nombre y cómo crear una instancia (
new com.example.WorkItemTest()
)Por último, vaya a la "WorkDefinitions" activos, definir su elemento de trabajo (por lo que se puede ver en la herramienta de diseñador de flujo de trabajo) de la siguiente
[
"name" : "WorkItemTest",
"parameters" : [ //inputs
"stringVar " : new StringDataType(),
],
"results" : [ //outputs
"Result" : new ObjectDataType(),
],
"displayName" : "WorkItemTest",
"icon" : "defaultservicenodeicon.png"
]
- Ahora usted puede encontrar esta tarea en "Tareas de servicio" de la herramienta de diseñador de flujo de trabajo (antes de actualizar)