`
小古墓
  • 浏览: 59364 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Activiti 5.12用户指南之部署

阅读更多

     一、业务归档


     要发布流程,流程必须被包裹进一个业务归档中。对一个Activiti引擎来说,一个业务归档是部署的一个单元。一个业务归档等同于一个zip文件。它能包含BPMN2.0 流程信息,任务表单,规则和任何其他文件类型。大体上,一个业务归档包含了资源命名的集合。
     当一个业务归档发布的时候,要扫描归档文件中的.bpmn20.xml 或者 .bpmn。每一个文件都会被解析并且都可能包含多个流程定义。
          注:
          目前在业务归档中的Java类,将不会被加入到classpath。在业务归档中,所有的用在流程定义中的自定义类,为了运行流程,应存放在activiti引擎的classpath。
     
     二、编程部署
     
     从zip文件中部署一个业务归档,可以这样做:
     

String barFileName = "path/to/process-one.bar";
ZipInputStream inputStream = new ZipInputStream(new FileInputStream(barFileName));
    
repositoryService.createDeployment()
    .name("process-one.bar")
    .addZipInputStream(inputStream)
    .deploy();
        

     三、用Activiti Explorer部署

     
     Activiti Explorer应用允许通过应用的用户界面,上传bar文件。选择manage选项卡并且点击部署。
     

 
     会弹出一个window窗口,允许你从本地选择一个文件,或者你能从本地拖拽到设计区域

 
 
     四、外部资源
     流程定义活在Activiti数据库中。当用Activiti配置文件中服务任务或者执行监听或者Spring实体的时候,这些流程定义能参考委托类。对于所有的能执行流程定义的流程引擎,这些类和Spring的配置文件都是可用的。
 
     java类
     当一个流程实例开始的时候,所有用在你的流程中的自定义类都应该存放在引擎的classpath中。
     然而,经过一个业务归档的部署,这些类都不会被存放到classpath中。这意味着当你用ant部署一个新的业务归档的时候,你的委托类不会到classpath中。
     当你正在安装demo,并且你不想添加你的自定义类,你应该把一个包含你的类的jar包添加到activiti-explorer或者activiti-rest中的lib中。不要忘记要包含进你的类的依赖jar.另外,你也能在tomcat的lib路径下包含进你的依赖类。
 
     从一个流程中用Spring实体
     对执行流程定义的引擎来说,在表达式或者脚本中用的Spring实体,这些实体都是可用的。如果你正在编译你自己的应用,并且你在上下文中配置了你的流程引擎,这些都是简单的。
 
     创建一个单一应用
     不用确保所有的流程引擎在他们的classpath中拥有所有的委托类,并且有正确的Spring配置,而是你要包含Activiti rest webapp到你自己的webapp中,这样才会有一个单一的流程引擎。
 
     五、流程定义的版本
     
     BPMN没有一个版本的概念。这样的确是好的,因为可执行的BPMN流程文件会存活在系统知识库版本控制中,作为你开发的工程的一部分。流程定义的版本通过部署来创建。通过部署,Activiti会给ProcessDefinition签名一个版本,在保存到ActivitiDB之前。
     对于在业务归档中的每一个流程定义会执行下面的步骤来初始化一个key,version,name和id:
    • xml文件中的流程定义的id属性是被用于作为流程定义的key属性。
    • xml文件中的流程定义的name属性是被用于作为流程定义的name属性。如果name属性没有被指定,那么id属性被作为name属性。
    • 一个有特殊key的流程第一次被部署,版本号为1。对于拥有同样key的流程定义,所有之后被部署的,版本号会递增1。key属性被用于区分不同的流程定义。
    • id属性被设置成 {processDefinitionKey}:{processDefinitionVersion}:{generated-id},在一个集群环境中的流程定义缓存中,这里的generated-id是一个唯一的数字,为了保证流程id的唯一性。
       例如:

<definitions id="myDefinitions" >
  <process id="myProcess" name="My important process" >
    ...      

       当部署这个流程定义的时候,在数据库中流程定义看起来会是这样:
     Table 6.1. 
idkeynameversion
myProcess:1:676 myProcess My important process 1
          
          假设我们现在部署了一个同样流程的升级版本,但是流程定义的id属性保持不变。流程定义的表现在变成这样:
     Table 6.2. 
idkeynameversion
myProcess:1:676 myProcess My important process 1
myProcess:2:870 myProcess My important process 2

        当  runtimeService.startProcessInstanceByKey("myProcess")调用的时候,它会用版本2的流程定义作为流程定义的最新版本。

        当我们创建第二个流程作为下面定义的并且发布到Activiti,表中会多添加一行。
        

<definitions id="myNewDefinitions" >
  <process id="myNewProcess" name="My important process" >
    ...      

 

          现在的表会是这样:

Table 6.3. 

idkeynameversion
myProcess:1:676 myProcess My important process 1
myProcess:2:870 myProcess My important process 2
myNewProcess:1:1033 myNewProcess My important process 1
  
          注意新流程的key与我们第一个流程的key是不同的。即使名字相同,Activiti在区分流程的时候,只考虑id属性。前面的新流程会被部署为版本1。
          
          六、提供一个流程图
 
          一个流程图的图片能添加到一个部署包中。这个图片会被存放在Activiti的知识库中,并且通过API方法能够访问。这个图片也被用于在Activiti Explorer中查看流程。
          假设在我们的classpath中,我们有一个流程 org/activiti/expenseProcess.bpmn20.xml。这个流程的key为‘expense’。下面为流程图的图片命名约定。
  •  如果在部署包中存在一个图片资源, 并且有一个名称为BPMN2.0的xml文件的名称,再串联流程定义的key,并且有图片的格式,那么这个图片就作为流程 图。在我们的例子中,会是 org/activiti/expenseProcess.expense.png(或者.jpg/gif)。如果你有多个图片在一个BPMN2.0的xml文件,那么这种命名方式最有意义。每一个流程图图片都会在它的名字中有流程的key。
  • 如果这样的图片不存在,那么在部署包中名字匹配BPMN2.0 XML文件的图片资源会被搜索到。在我们的例子中会是 org/activiti/expenseProcess.png。注:这意味着在同样的BPMN2.0文件中定义的每一个流程定义都会有同样的流程图图片。如果在每一个BPMN2.0 XML文件中都只有一个流程定义,这显然不会有任何问题。
          编程部署的例子:
          

repositoryService.createDeployment()
  .name("expense-process.bar")
  .addClasspathResource("org/activiti/expenseProcess.bpmn20.xml")
  .addClasspathResource("org/activiti/expenseProcess.png")
  .deploy();

          这个图片资源会通过API被检索到:
          

  ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                                                         .processDefinitionKey("expense")
                                                         .singleResult();
  
  String diagramResourceName = processDefinition.getDiagramResourceName();
  InputStream imageStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), diagramResourceName);
       
               七、生成一个流程图
          
               如果在部署包中不提供一个流程图,如果流程定义包含必要的图交换信息,Activiti 引擎会生成一个流程图。
               

 
               如果,基于某种原因,在部署的时候,你不想或者也没有必要生成流程图,那么在流程引擎配置的时候,isCreateDiagramOnDeploy 这个属性可以被设置。
               

<property name="createDiagramOnDeploy" value="false" />

               现在就不会生成流程图了。
 
               八、部署类别
               部署包和流程定义都会有用户定义的类别。流程定义类别的值会在BPMN文件中被初始化:
               <definitions ... targetNamespace="yourCategory" ...
               
               也能通过API来指定部署的类别:
               
repositoryService
    .createDeployment()
    .category("yourCategory")
    ...
    .deploy();
 


 
 
 
 
 
 
  • 大小: 17.1 KB
  • 大小: 14.7 KB
  • 大小: 38.7 KB
分享到:
评论

相关推荐

    eclipse-activiti5.12插件

    总之,Eclipse Activiti 5.12 插件为开发者提供了强大的流程设计和管理工具,使得Activiti的使用更加便捷,是企业级业务流程自动化开发的重要辅助。无论是初学者还是经验丰富的开发者,都可以借助这款插件,轻松实现...

    Activiti5.4 用户指南-中文版

    总的来说,Activiti 5.4 用户指南-中文版是了解和掌握 Activiti 的重要资源,它将引导用户逐步了解如何使用 Activiti 设计、部署和管理业务流程,从而提升企业的业务自动化水平和运营效率。通过深入学习本指南,你...

    activiti6.0 用户指南中文版

    activiti6.0 用户指南中文版activiti6.0 用户指南中文版activiti6.0 用户指南中文版

    activiti7开发指南

    《Activiti7开发指南》是一本专注于Java领域流程自动化技术的专著,主要围绕Activiti7框架进行深入探讨。Activiti7是Alfresco Software公司推出的一个开源工作流引擎,它基于模型驱动的设计理念,旨在简化企业业务...

    Activiti5.4 用户指南(中文版)

    本用户指南针对 Activiti 5.4 版本,旨在帮助开发者和新手深入理解其核心功能和用法。 在Activiti 5.4中,首先介绍的是它的安装与配置。这一部分会涵盖如何下载 Activiti 的发行版,如何在 Java 开发环境中集成,...

    activiti API 用户指南

    《Activiti API 用户指南》是针对企业流程自动化框架Activiti的重要参考资料,主要涵盖了Activiti的API使用、功能特性和实践案例。本指南旨在帮助开发者更好地理解和应用Activiti,提升工作效率,实现高效的企业流程...

    Activiti6 中文 用户指南 操作手册 开发API

    Activiti6是一款强大的工作流引擎,...以上内容是Activiti6用户指南的概述,涵盖了从安装、配置到实际开发和部署的所有关键步骤。对于Java开发人员来说,掌握这些知识将有助于有效利用Activiti6构建高效的工作流系统。

    Activiti 5.4用户指南(中文)

    通过本用户指南,读者将学习到如何配置和使用 Activiti 5.4,创建和执行业务流程,以及如何利用 Activiti 实现企业的业务自动化。同时,了解 Activiti 的最佳实践和注意事项,能够有效地规避潜在的问题,提升流程...

    Activiti 5.13 用户指南(中文版)

    Activiti用户指南是帮助用户了解和使用Activiti产品的官方文档。下面将基于文档的部分内容,介绍与Activiti 5.13相关的知识点。 ### 1. 开发环境和基础配置 文档提到Activiti 5.13用户手册需要JDK6+环境,适用于...

    Activiti6用户指南

    ### Activiti6 用户指南知识点详解 #### 一、概述与许可 - **许可协议**:Activiti6基于Apache V2许可证发布,这意味着它遵循开放源代码许可证条款,允许用户自由使用、修改和分发该软件及其衍生作品。 - **下载...

    Activiti 5.4 用户指南

    Activiti 5.4 用户指南

    activiti用户指南.zip

    本用户指南是针对 Activiti 6.x 版本的中文版,旨在帮助开发者和管理员更好地理解和使用 Activiti。 一、Activiti 概述 Activiti 是由 Alfresco 公司开发并维护的 BPMN 2.0 规范实现,提供了一个轻量级、灵活且可...

    《Activiti权威指南》PDF

    最后,本书可能还会涵盖Activiti的高级特性,如流程版本管理、多租户支持、流程实例的迁移,以及如何在分布式环境中部署和使用Activiti。 总的来说,《Activiti权威指南》是一本全面而深入的教程,适合希望学习和...

    Activiti 5.8 用户指南

    ### Activiti 5.8 用户指南关键知识点解析 #### 一、概述 **Activiti** 是一个开源的工作流引擎,用于构建业务流程自动化应用。它提供了简单易用的方式来定义业务流程,并通过流程引擎来执行这些定义。从 **...

    Activiti6.0 用户手册说明文档1

    Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级应用中,处理流程的建模、部署和执行。在Activiti6.0用户手册中,我们主要关注以下几个核心概念和知识点: 1. **流程定义 (Process Definitions)**...

    Activiti5开发指南

    本指南将引导你如何搭建Activiti开发环境,并创建一个简单的Activiti项目。 首先,要搭建Activiti开发环境,你需要在Eclipse中安装Activiti插件。在Eclipse中点击“Add”,在Name选项中填写一个描述性名称,例如...

    Activiti用户指南.pdf2017-12-21最新中文翻译版

    ### Activiti用户指南知识点总结 #### 1. Activiti简介 Activiti是一个轻量级、可扩展的流程引擎,它允许您创建企业级流程和工作流应用。Activiti遵循Apache V2许可证发布,源代码托管在GitHub上,允许用户查看、...

    Activiti5.4 用户指南

    通过阅读《Activiti5.4 用户指南(中文版)》.pdf,用户将能深入理解这些功能并学会如何在实际项目中运用 Activiti,实现高效、灵活的业务流程自动化。这份指南是学习和掌握 Activiti 5.4 的重要资源,对于 IT 专业...

    Activiti 5.14用户指南(中文)PDF版

    本用户指南将详细介绍如何使用Activiti 5.14版本,内容涵盖了安装、配置、使用API、集成、部署、BPMN 2.0的结构与设计、表单处理、历史数据查询、REST API等多方面知识。 在“简介”部分,首先需要下载Activiti的...

Global site tag (gtag.js) - Google Analytics