`
lushuaiyin
  • 浏览: 704931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jBPM4.4之流程定义管理

 
阅读更多

http://www.cnblogs.com/luxh/archive/2012/07/25/2607412.html

  流程定义ProcessDefinition是对业务过程的完整描述,例如请假流程定义、报销流程定义等。

  流程定义的管理包括部署流程定义、查询流程定义、查看流程定义图和删除流程定义。

  和流程定义相关的表jbpm4_deployment、jbpm4_deployprop和jbpm4_lob,其中jbpm4_lob存放流程定义相关资源,如流程定义xml文件和流程定义图。

1、部署流程定义

  使用RepositoryService接口提供的方法,流程定义XML的内容可以从classpath路径下、文件、输入流、字符串、URL或者zip流中获取。我们主要看一下从classpath路径下获取和从zip流中获取流程定义文件。

  1)从classpath路径下获取流程定义文件。

//从classpath路径下获取流程定义文件
            String deploymentId = repositoryService.createDeployment()
                                                                  .addResourceFromClasspath("Leave.jpdl.xml")//流程定义文件
                                                                  .addResourceFromClasspath("Leave.png")//流程定义图
                                                                  .deploy();

  其中流程定义图不是必须的,如果不需要,可以不用加载。

  2)从zip流中获取流程定义文件。

  将流程定义文件Leave.jpdl.xml和Leave.png打包成Leave.zip后进行部署。

//从zip流中获取流程定义文件
            InputStream is = new FileInputStream("D:/Leave.zip");
            ZipInputStream zipInputStream = new ZipInputStream(is);
            String deploymentId = repositoryService.createDeployment()
                                                                    .addResourcesFromZipInputStream(zipInputStream)
                                                                    .deploy();

2、查询流程定义

  1)查询所有的流程定义。

//查询所有的流程定义
            List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list();

2)根据条件、排序、分页查询流程定义。


List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
                                                               .processDefinitionId(id)//根据流程定义ID查询
                                                               .processDefinitionKey(key)//根据流程定义的key查询
                                                               .processDefinitionName(name)//根据流程定义的名字查询
                                                               .orderAsc(ProcessDefinitionQuery.PROPERTY_ID)//排序
                                                               .orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)//排序
                                                               .page(firstResult, maxResults)//分页
                                                               //.count()//符合条件的流程定义数量
                                                                .list();//符合条件的流程定义集合

3、查看流程定义图

  流程定义图属于流程定义中的资源,存放在JBPM4_LOB表中,可以根据流程定义部署id和流程定义图名称来获取。

//部署ID
 String deploymentId = "1";
 //流程定义图名称
String resourceName = "Leave.png";
//获取流程定义图资源
InputStream is = repositoryService.getResourceAsStream(deploymentId, resourceName);
            
//将流程定义图保存到D盘
FileOutputStream fos = new FileOutputStream("d:/Leave.png");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len = -1; 
while((len = is.read())!= -1) {
     bos.write(len);
}
bos.flush();
is.close();
fos.close();
bos.close();

4、删除流程定义

String deploymentId = "1";
            
//删除流程定义
//如果要删除的流程定义还存在未完成的流程实例,会报错。
repositoryService.deleteDeployment(deploymentId);

//删除流程定义
//级联删除流程定义及其产生的所有流程实例
repositoryService.deleteDeploymentCascade(deploymentId);






分享到:
评论

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行流程实例。引擎支持流程的启动、挂起、恢复、终止等操作,并能处理并发和分支逻辑。 4. **任务管理**:jBPM中的任务服务允许用户交互地处理...

    JBPM4.4流程管理Demo(附学习资料)

    【JBPM4.4流程管理Demo】是一个基于JBPM4.4版本的示例项目,主要展示了如何在实际业务场景中应用工作流引擎进行流程管理,特别是报销流程的管理。这个Demo不仅包含了可运行的代码,还附带了学习资料和SQL文件,方便...

    jBPM4.4开发实例

    **三、jBPM4.4流程建模** 1. **使用BPMN编辑器**:通过图形化界面设计流程图,包括任务、网关、事件等元素,生成流程定义文件(.bpmn或.bpmn2)。 2. **编写Java类**:为每个任务创建对应的Java类,实现任务的逻辑...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    - **流程定义与建模**:jbpm4.4使用BPMN(Business Process Modeling Notation)进行流程建模,这是一种标准化的语言,允许用户以图形化方式设计和理解复杂的业务流程。 - **流程实例**:一旦流程定义完成,可以...

    jbpm4.4下载地址

    1. **流程定义语言**:jBPM 4.4支持多种流程定义语言,包括BPMN2.0(Business Process Model and Notation),这是一种标准化的图形表示法,用于描述业务流程。此外,它还支持JPDL(jBPM Process Definition ...

    jbpm4.4+s2sh请假流程例子

    源码分析方面,我们可以看到jbpm4.4的流程定义文件(通常为*.bpmn或*.bpmn2格式),其中包含了流程图的所有信息,包括活动、分支、条件、泳道等。在S2SH部分,可能会有实体类(Entity)表示请假信息,Action类处理...

    jbpm4.4文档+学习资料

    jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...

    jbpm4.4 在线设计流程图 ext + raphael

    XML文件是jbpm4.4的标准格式,可以方便地在不同的系统之间共享和迁移流程定义。 另一方面,jbpm4.4也支持导入XML文件来恢复已有的流程设计。通过此功能,团队成员可以方便地协作开发,或者在升级或调试流程时恢复到...

    JBPM4.4 使用之配置管理

    **JBPM4.4 使用之配置管理** JBPM(Java Business Process Management)是一款开源的工作流管理系统,用于管理和执行业务流程。在JBPM4.4版本中,配置管理是确保系统稳定运行和流程优化的关键环节。以下将详细讲解...

    jbpm4.4中文开发指南

    jbpm4.4是该系统的某一版本,它提供了丰富的功能,包括流程定义、流程实例的启动、监控和干预,以及与后端系统如数据库和应用服务器的集成。 1. **流程建模**: jbpm4.4使用BPMN(Business Process Model and ...

    JBPM4.4资料的其他补充

    JBPM4.4是JBPM的其中一个稳定版本,发布于2009年,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务管理和监控等功能。在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务...

    jBPM 4.4用户手册 中文PDF

    **jBPM 4.4** 是一个开源的工作流程管理系统,由Red Hat公司开发并维护,主要用于业务流程管理(BPM)和工作流自动化。该系统提供了强大的流程建模、执行和监控功能,支持Java平台,并与Java EE和Spring框架高度集成...

    JBPM4.4完整可用审批流程

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个版本,它是一个开源的企业级BPM解决方案,用于设计、执行和管理业务流程。在这个完整的审批流程工程中,我们看到它采用Maven进行项目构建和依赖管理,...

    JBPM4.4 使用之流程管理初探

    【JBPM4.4 使用之流程管理初探】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和监控业务流程。JBPM4.4是JBPM的一个重要版本,它在4.x系列中...

    jBPM4.4开发指南

    - jBPM4.4 共有 18 张表,这些表用于存储流程定义、实例状态等数据。 **3. jBPM4.4环境准备** - **所需环境**:jBPM 需要 JDK (Java Development Kit) 5 或更高版本;Apache Ant 1.7.0 或更高版本。 - **下载资源*...

    jbpm4.4开发用户指南

    2. **jBPM架构**:讲解jBPM的核心组件,如流程定义语言(BPMN 2.0)、工作流引擎、任务服务和持久化机制。 3. **流程建模**:介绍使用jBPM Designer或直接编写XML来创建流程模型,包括各种活动(如任务、决策点、...

    jbpm4.4 shh2 项目示例

    - 创建流程定义文件(.bpmn或.bpmn2),并在jbpm工作台中进行设计和部署。 - 实现业务服务接口,使用jbpm提供的API启动流程实例,处理任务,完成流程流转。 - 设计Struts2 Action,处理用户请求,与Spring服务层...

    jBPM4.4.rar_jbpm4_jbpm4.4

    "jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...

    jbpm4.4入门编程小例子

    - **流程定义语言 (BPMN 2.0)**:jbpm4.4支持Business Process Modeling Notation 2.0,这是一种标准的流程建模语言,提供了图形化的方式来描述业务流程。 - **流程引擎**:执行流程实例的中心组件,负责解析流程...

Global site tag (gtag.js) - Google Analytics