`

Activiti: 三种部署方式和几种启动方式

 
阅读更多
三种部署:
1.自动部署: <property name="deploymentResources" value="classpath*:/bpmn/*.bpmn"/>
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource"/>
        <property name="deploymentResources" value="classpath*:/bpmn/*.bpmn"/>
        <property name="transactionManager" ref="transactionManager"/>
        <property name="databaseSchemaUpdate" value="true"/>
        <property name="jobExecutorActivate" value="false"/>
        <property name="processDefinitionCacheLimit" value="10"/>
        <property name="activityFontName" value="${diagram.activityFontName}"/>
        <property name="labelFontName" value="${diagram.labelFontName}"/>
    </bean>


2.手动部署:
repositoryService.createDeployment()
                .addClasspathResource("bpmn/MyProcess.bpmn")
                .deploy();


3. 使用web modeler保存后,从数据库部署
    @RequestMapping("/startModel")
    public ModelAndView startModel(@RequestParam("id") String id) {
        System.out.println("id=" + id);
        Deployment deployment = null;
        try {
            Model modelData = repositoryService.getModel(id);
            ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(
                    repositoryService.getModelEditorSource(modelData.getId())
            );

            byte[] bpmnBytes = null;

            BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
            bpmnBytes = new BpmnXMLConverter().convertToXML(model);

            String processName = modelData.getName() + ".bpmn20.xml";

            deployment = repositoryService.createDeployment()
                    .name(modelData.getName())
                    .addString(processName, new String(bpmnBytes))
                    .deploy();

        } catch (Exception e) {
            e.printStackTrace();
        }


        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }


几种启动方式
processDefinitionId:这个参数的值可以通过repositoryService.createProcessDefinitionQuery()方法查询,对应数据库:ACT_RE_PROCDEF;每次部署一次流程定义就会添加一条数据,同名的版本号累加。
ACT_RE_PROCDEF:业务流程定义数据表ID_:流程ID,由“流程编号:流程版本号:自增长ID ” 组成
建议使用startProcessInstanceByKey,特殊情况需要使用以往的版本选择使用startProcessInstanceById。

1. 根据key启动
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);
        StartFormData formData = formService.getStartFormData(processInstance.getProcessDefinitionId());



2. 启动表单流程
Map<String, String> properties = new HashMap<String, String>();
        ProcessInstance processInstance = formService.submitStartFormData(ProcessDefinitionId, properties);
分享到:
评论

相关推荐

    activiti 第一篇:整合activiti 5.17.0 进项目

    Activiti 是一个开源的工作流程引擎,它主要用于设计、部署和执行业务流程。这篇教程将详细介绍如何将 Activiti 5.17.0 集成到您的项目中,以实现高效的企业级工作流管理。 首先,理解 Activiti 的核心概念至关重要...

    activiti-5.22.0zip下载

    Activiti 是一个开源的工作流和业务流程管理(BPM)平台,它被广泛用于企业级...通过对这个压缩包的分析和学习,开发者能够深入了解Activiti的工作原理,以及如何在实际项目中部署和使用Activiti来提升业务流程的效率。

    activiti原型和代码

    1. **Activiti Engine 的集成**:在 Java 应用中引入 Activiti 依赖,创建和配置引擎,以及启动和关闭服务。 2. **流程定义的部署**:将 BPMN 文件(.bpmn 或 .bpmn20.xml)部署到 Activiti 引擎,使之成为可执行的...

    activiti流程管理的几个小例子

    这个压缩包中的“activiti流程管理的几个小例子”旨在帮助用户更深入地理解和应用Activiti。通过这些实例,我们可以探索以下几个关键知识点: 1. **流程定义(Process Definition)**:在Activiti中,流程定义是...

    关于activiti rest服务

    Activiti REST API提供了一种轻量级的方式,允许开发者通过HTTP请求来启动流程实例、查询任务、完成任务、管理用户和组等,极大地提高了系统的可扩展性和灵活性。 Activiti REST API主要包含以下几个核心模块: 1...

    activiti-5.13.

    Activiti 作为 BPM 解决方案的一部分,提供了一个模型驱动的开发环境,使得业务流程可以通过图形化的方式进行设计和管理。 在 Activiti 5.13 版本中,有几个关键特性值得注意: 1. **流程定义**:Activiti 提供了...

    activiti工作流完整dome

    Activiti工作流是一个开源的业务流程管理(BPM)和工作流系统,它为企业提供了一种灵活、可扩展的方式来管理其业务流程。这个"activiti工作流完整dome"是针对Activiti的一个全面示例,旨在帮助用户快速理解和掌握...

    activiti工作流PPT

    当我们谈论"activiti的常用API"时,我们主要关注以下几个关键接口和类: 1. **ProcessEngine**: 这是与Activiti交互的入口点,用于创建RepositoryService、RuntimeService、TaskService等服务。 2. **...

    activiti6.0配套源代码

    提供了与Activiti交互的接口,如ProcessEngine接口、RepositoryService、RuntimeService、TaskService等,这些服务允许开发者进行流程部署、启动流程实例、处理任务等操作。 6. 分布式支持: Activiti 6.0加强了...

    activiti设计5.x几个版本包.rar

    这个“activiti设计5.x几个版本包”可能包含Activiti在5.x系列不同版本的源代码、文档、示例和其他相关资源,用于研究或开发目的。以下是关于Activiti 5.x版本的一些关键知识点: 1. **工作流引擎**:Activiti的...

    activiti5.16.4整合springmvc 4.0.6

    Activiti提供了一种图形化的方式来定义和执行业务流程。通过使用BPMN 2.0标准,开发者可以设计流程图,包括开始事件、结束事件、用户任务、服务任务、排他网关、并行网关等。排他网关(Exclusive Gateway)决定流程...

    Activiti工作流实战.rar

    2. **流程部署与启动**:学习如何使用Activiti API或Web工具部署流程定义,并启动流程实例。 3. **任务处理与流转**:理解任务的概念,如何分配、领取、完成任务,以及任务之间的流转逻辑。 4. **流程变量与数据交互...

    activiti实战源代码

    1. **流程定义与部署**:学习如何使用BPMN 2.0 XML文件创建流程定义,并通过Activiti API进行部署。这包括了使用`ProcessEngine`,`RepositoryService`,以及`Deployment`对象。 2. **启动与运行流程**:理解如何...

    activiti源码+用户手册.zip

    Activiti 是一个开源的工作流程引擎,它主要用于设计、部署和执行业务流程。这个压缩包包含了两个关键组件:`Activiti-develop.zip` 和 `Activiti+V5.21+用户手册+中文版.pdf`。 首先,`Activiti-develop.zip` 文件...

    activiti-bpm-demo:将业务流程部署到 Activiti 服务器的 Activiti bpm 演示

    Activiti 是一个开源的工作流和业务自动化引擎,它基于模型驱动的设计理念,为企业的业务流程管理(BPM)提供了一种强大的解决方案。本项目“activiti-bpm-demo”旨在通过实例展示如何将业务流程部署到 Activiti ...

    基于Activiti5工作流实战企业协同OA办公系统教程第三部分

    Activiti5是一个强大的、轻量级的业务流程管理系统(BPMN 2.0)引擎,它为企业提供了一种高效、灵活的方式来设计、执行和管理业务流程。 首先,我们需要理解什么是工作流。工作流是一系列相互关联的任务,这些任务...

    activiti-5.15开源工作流

    Activiti的安装通常包括以下几个步骤:下载安装包、解压、配置数据库连接、启动服务。在5.15版本中,可能提供了详细的安装指南和示例配置文件,帮助用户顺利完成部署。 5. 使用和开发: 开发人员可以利用Activiti...

    activiti-6.0.0.zip

    Activiti 是基于 Java 的 BPMN 2.0 规范,提供了一套强大的流程定义和执行工具,支持流程的建模、部署、监控和优化。BPMN 2.0 是一种标准的业务流程建模语言,允许开发者以图形化方式来表示复杂的业务流程。 在 ...

    activiti+flex项目搭建

    5. **设计和部署流程**:使用Activiti提供的模型器或者通过编写XML文件来设计你的业务流程。完成后,将流程部署到Activiti引擎,这通常是通过调用Activiti API完成的。 6. **Flex集成**:在Flex端,你需要使用Flex ...

    activiti-5.13

    1. **Activiti概述**:Activiti是基于Java的轻量级工作流引擎,它支持BPMN 2.0标准,使得业务流程可以以图形化的方式进行设计和执行。这个标准提供了丰富的流程定义元素,如任务、网关、事件等,使得流程模型更易于...

Global site tag (gtag.js) - Google Analytics