jboss工作流_jdb调试「建议收藏」

jboss工作流_jdb调试「建议收藏」流程定义的管理:将定义业务流程,部署到jbpm框架中(流程定义jpdl.xml描述文件)通过gpd插件先根据业务流程,绘制流程图(holiday.jpdl.xml和holiday.png)流程定义部署:先获得ProcessEngine对象,再获得对应Service(六个Service)ExecutionServicegetExecutionServi_jbpm工作流

jboss工作流_jdb调试「建议收藏」"

流程定义的管理:
将定义业务流程,部署到 jbpm框架中 (流程定义 jpdl.xml 描述文件)
通过gpd 插件 先根据业务流程,绘制流程图 (holiday.jpdl.xml 和 holiday.png )

流程定义部署 :
先获得 ProcessEngine 对象,再获得对应 Service (六个Service)

ExecutionService    getExecutionService() // 流程实例管理 

 HistoryService     getHistoryService() // 历史记录管理

IdentityService     getIdentityService() // 用户认证管理

ManagementService    getManagementService() // 任务调度 

RepositoryService    getRepositoryService() // 流程定义管理

TaskService          getTaskService()  // 任务关联 

操作流程定义,需要使用 RepositoryService
deployment 将需要发布到JBPM框架中流程文件,添加到对象中

		// 1、 先获得流程引擎 (JBPM编程核心)
		Configuration configuration = new Configuration();
		ProcessEngine processEngine = configuration.buildProcessEngine();//新建一个引擎
		
		// 2、通过引擎获得需要Service 
		RepositoryService repositoryService = processEngine.getRepositoryService();
		
		// 3、发布流程定义
		NewDeployment deployment = repositoryService.createDeployment();
		deployment.addResourceFromClasspath("holiday.jpdl.xml");
		deployment.addResourceFromClasspath("holiday.png");
		deployment.deploy();

流程定义发布,影响的数据表分析
JBPM的数据记录采用流水号 id ,在 jbpm4_property 表中用来保存下次操作的开始id, Value 初始化值是1, 每进行过一轮数据库操作,记录+10000

jbpm4_deployment 流程定义发布表,每发布一个流程,在该表插入1条记录 ,DBID 就是流水号

jbpm4_lob 存放大数据(二进制) 存放发布流程定义文件

jbpm4_deployprop 流程定义属性表 ,每发布一个流程,将流程属性信息保存到该表

langid 是jpdl语言规范版本号、pdid 流程定义唯一标识、pdkey 流程定义关键字、pdversion 流程定义版本号
在绘制流程定义时,name值就是默认的key值 ,version每次发布相同key ,version自动+1

发布流程定义,在实际开发中,都是通过 zip压缩包发布

		//发布流程定义
		NewDeployment deployment = repositoryService.createDeployment();
		deployment.addResourcesFromZipInputStream(new ZipInputStream(new FileInputStream("holiday.zip")));
		deployment.deploy();

流程定义查询 :
通过 ProcessDefinitionQuery查询流程定义信息

ProcessDefinitionQuery processDefinitionQuery 
= repositoryService.createProcessDefinitionQuery();

对 ProcessDefinitionQuery 添加查询条件

processDefinitionId(processDefinitionId)
processDefinitionKey(key)
processDefinitionName(name)
processDefinitionNameLike(name)
page(firstResult, maxResults)
orderAsc(property)
orderDesc(property)

通过 指定属性查询,可以进行排序和分页 查询

List<ProcessDefinition> list = processDefinitionQuery
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0, 2).list();

根据发布编号 和 资源名称可以获得 该流程相关资源

		// 查询流程图
		// deploymentId 来自 jbpm4_deployment表 DBID
		// ResourceName 来自 jbpm4_lob 表 NAME
		InputStream in = repositoryService.getResourceAsStream("1", "holiday/holiday.png");
		OutputStream out = new FileOutputStream("c:/test.png");
		int b ;
		while((b=in.read())!=-1){
			out.write(b);
		}
		in.close();
		out.close();

流程定义的删除 :

把流程 彻底从JBPM 框架中删除了
RepositoryService 提供两个方法 用来删除 流程定义
可以通过流程定义发布id删除流程定义
方式一:如果有关联流程实例信息则报错
repositoryService.deleteDeployment(deploymentId);
方式二:删除流程定义,并删除关联流程实例
repositoryService.deleteDeploymentCascade(deploymentId);
Cascade 级联的含义, 删除流程定义时,管理流程实例信息 也会被一起删除,执行删除后,关联 lob表和 prop表数据也都删除了, 关联流程实例信息也会被删除
可以通过流程定义的key来删除
如果没有指定key属性,那么流程的名称就是key

// 先根据key 进行查询,在执行删除
	ProcessDefinitionQuery processDefinitionQuery = 
				repositoryService.createProcessDefinitionQuery();
	List<ProcessDefinition> list = 
processDefinitionQuery.processDefinitionKey("holiday").list();
	for (ProcessDefinition processDefinition : list) {			
		repositoryService.deleteDeploymentCascade(processDefinition.getDeploymentId());
	}

流程定义没有修改功能,可以发布一个新流程,版本自动+1

代码示例:

package com.my.jbpm;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputSt

今天的文章jboss工作流_jdb调试「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58180.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注