Red de conocimiento informático - Material del sitio web - Cómo implementar el flujo de trabajo jBPM mediante programación

Cómo implementar el flujo de trabajo jBPM mediante programación

Hola, estaré encantado de responder a tu pregunta.

1. Método de publicación de archivos Ant

2. Despliegue directo con el diseñador gráfico Eclipse

3. Despliegue programático de programas empresariales Jbpm

Implementar la definición de flujo de trabajo Jbpm mediante programación

1. Conocimientos básicos

1. La prueba JUnit y la ejecución del método principal son en realidad la ejecución del archivo .class en el directorio de destino de classpath. La búsqueda de archivos de recursos también comienza desde el classpath.

2. Para nuestra aplicación de proyecto web, la ruta de clases es web-inf/classes. El directorio de procesos donde se encuentran nuestros archivos de definición de programas comerciales está configurado en el directorio src. Por lo tanto, la ruta debe ser "Nombre de definición de programa empresarial/definición de proceso.xml".

Aquí, el nombre de la definición de mi programa de negocios es checkShowNews, por lo que la ruta de clase debe ser checkShowNews/processdefinition.xml.

2. Clase de herramienta para implementar definiciones de programas comerciales

El siguiente es el archivo fuente de esta clase que las definiciones de programas comerciales se pueden implementar mediante el método Main y las pruebas Junit.

Lo siguiente es un fragmento de cita: /**?

*?

*/?

package?com.withub. common. util;?

import?org.jbpm.JbpmConfiguration;?

import?org.jbpm.JbpmContext;?

import?org.jbpm. gráfico def.ProcessDefinition;?

import?junit.framework.TestCase;?

/**?

*?@author?Shen Dongliang?shendl_s @hotmail. com?

*?7:21:19?PM?

*?La clase DeployJbpmProcessDefinition proporciona la función de implementar la definición de flujo de trabajo JBpm en la base de datos. ?

*/?

public?class?DeployJbpmProcessDefinition?extends?TestCase?{?

static?JbpmConfiguration?jbpmConfiguration?=?null;? p>

estático?{?

jbpmConfiguration?=?JbpmConfiguration.getInstance();?

}?

public?void?setUp () ?{?

//¿Crear tabla de base de datos? //jbpmConfiguration.createSchema();?

}?

public?void?tearDown() ?{ ?

//¿Eliminar tabla de base de datos? //jbpmConfiguration.dropSchema();?

}?

/** *?Método de prueba? *? */?

public?void?testSimplePersistence()?{? //¿Entre?las?3?llamadas?de?método?a continuación,?todos?los?datos?se?pasan?a través?de? // ?base de datos.?Aquí,?en?esta?prueba?unitaria,?estos?3?métodos?se?ejecutan? //?justo?unos?de?otros?porque?queremos?probar?a ?proceso? completo //trama del escenario.?Pero?en?realidad,?estos?métodos?representan?solicitudes?diferentes?a?un?servidor.//? una base de datos limpia y vacía en memoria, tenemos que implementar el proceso primero. En realidad, esto se hace una vez por el /? proceso?desarrollador.?

/**? *?Este método guarda la definición de procesamiento empresarial en la base de datos a través de Hibernate.

? */? implementarProcessDefinition("checkShowNews/processdefinition.xml");?

}?

/*?

definición de proceso?

xmlns=""?name="checkShowNews"gt;?

lt;swimlane?name="CheckNewsManagers"gt;?

lt;assignment?class= "com.withub.wcms.manage.publishNews.jbpmHandler.assignmentHandler.CheckNewsAssignmentHandler"?config-type="bean"gt;lt;/assignmentgt;?

lt;/swimlanegt;?

swimlane?name="EditNewsUser"gt;?

assignment?class="com.withub.wcms.manage.publishNews.jbpmHandler.assignmentHandler.EditNewsAssignmentHandler"?config-type= "bean"> lt;/assignment>?

lt;/swimlanegt;?

lt;start-state?name="relatingNewsChannel">?

lt;¿transición? name=""?to="checkNews"gt;lt;/transitiongt;?

lt;/start-stategt;?

lt;task-node?name="checkNews "gt;?

lt;task?name="checkNews"?swimlane="CheckNewsManagers"gt;lt;/taskgt;?

lt;transition ?name="rechazado" ?to="editNews"gt;lt;/transitiongt;?

lt;transition?name="pasado"?to="showNews"gt;lt;/transitiongt;? >lt;/task-nodegt;?

lt;end-state?name="end"gt;lt;/end-stategt;?

lt;task-node? name="editNews"gt;?

lt;task?name="editNews"?swimlane="EditNewsUser"gt;lt;/taskgt;?

lt;transition?name ="commited"?to="checkNews"gt;lt;/transitiongt;?

lt;/task-nodegt;?

lt;node? ;?

lt;action?name="showNewsAction"?class="com.withub.wcms.manage.publis

hNews.jbpmHandler.actionHandler.ShowNews"?config-type="bean"/gt;?

lt;transition?name=""?to="end"gt;lt;/transitiongt;?

lt;/nodegt;?

lt;/process-definitigt;?

*/?

/**?

*?"checkShowNews/processdefinition.xml"?

*/?

public?void?deployProcessDefinition(String?filePath)?{? //¿Esto? La prueba muestra una definición de proceso y una ejecución de la definición de proceso. La definición de proceso tiene 3 nodos: ¿un inicio sin nombre? estado,?un?estado?'?y?un? //end-state?named?'end'.?

ProcessDefinition?processDefinition?=?ProcessDefinition.parseXmlResource(filePath);? //¿Buscar?el?pojo?persistence?context-builder?que?está?configurado?arriba?JbpmContext?jbpmContext?=?jbpmConfiguration.createJbpmContext();? ¿Implementar?la?definición?de?proceso?en?la?base de datos?

jbpmContext.deployProcessDefinition(processDefinition);? }?finalmente?{?

//?Derribar?la? ?pojo?contexto?de?persistencia.?

//?Esto?incluye?vaciar?el?SQL?para?insertar?la?definición?de?proceso

//?en?el? ?base de datos.? /*?

*?Cerrar el contexto jbpm. Elimine el contexto de persistencia de pojo. ?

*?Esto incluye actualizar el SQL para insertar realmente la definición del proceso de negocio en la base de datos.

?

*?*/?

jbpmContext.close();? }?

}?

/**?

*?

*?@param?args?

*/?

public?static?void?main(String[] ?args){?

DeployJbpmProcessDefinition?instance=new?DeployJbpmProcessDefinition();?

instance.deployProcessDefinition(args[0]);

}?

}

3. Cómo utilizar la prueba principal en Eclipse

1. Haga clic en la opción Ejecutar:

2. método para probar

1) Proyecto ----- requiere classpath, la ubicación de todos los archivos .class, paquetes jar y archivos de recursos.

2) La clase donde se encuentra el método principal.

3. Dado que nuestro método principal utiliza un parámetro, debemos proporcionar un parámetro. Es la ruta relativa del archivo de definición del programa de negocios jBPM en relación con la ruta de clases del proyecto.

4. Haga clic en Ejecutar

Si está satisfecho, haga clic en el botón derecho para aceptar la respuesta. Si aún tiene preguntas, haga clic para preguntar.

Espero que mi respuesta sea correcta. Si la encuentra útil, ¡espero que la adopte! ~?O(∩_∩)O~