相关文章

更多

最近更新

更多

Activiti入门程序-部署流程定义

2019-03-23 23:11|来源: 网路

ProcessEngines.getDefaultProcessEngine()会自动自动加载classpath下名为activiti.cfg.xml文件(activiti-context.xml也会加载,但是要依赖于spring)
RepositoryService是Activiti的仓库服务类,流程定义和部署对象相关的Service,所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片
DeploymentBuilder,用来定义流程部署的相关参数
调用DeploymentBuilder的deploy部署流程定义,会返回Deployment对象,可以从此对象中获取流程的相关值


示例程序


package com._656463.activiti.test;
 
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.junit.Before;
import org.junit.Test;
 
/**
 * Activiti入门程序
 */
public class TestActivitiHello {
    ProcessEngine processEngine = null;
    @Before
    public void init(){
        //自动加载classpath下名为activiti.cfg.xml文件
        processEngine = ProcessEngines.getDefaultProcessEngine();
    }
 
    /** 部署流程定义 */
    @Test
    public void deploymentProcessDefinitionTest() {
        /**
         * RepositoryService是Activiti的仓库服务类,流程定义和部署对象相关的Service
         * 所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片
         */
        RepositoryService repositoryService = processEngine.getRepositoryService();
        // 创建一个部署对象DeploymentBuilder,用来定义流程部署的相关参数
        DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
        // 添加部署的名称
        deploymentBuilder.name("activiti入门程序");
        // 添加hello.bpmn和hello.png
        deploymentBuilder.addClasspathResource("diagrams/hello.bpmn");
        deploymentBuilder.addClasspathResource("diagrams/hello.png");
        // 部署流程定义
        Deployment deployment = deploymentBuilder.deploy();
 
        System.out.println("部署ID:" + deployment.getId());//1
        System.out.println("部署名称:" + deployment.getName());//activiti入门程序
    }
}


查看数据库变化:
act_re_procdef


act_re_deployment


act_ge_bytearray


本文参考网络


相关问答

更多

activiti工作流在tomcat重启后需要重新部署流程

试试 设置下processEngine 的asyncExecutorEnable

如何实现Activiti的流程定义的设置

ProcessInstancepi=runtimeService.createProcessInstanceQuery()//.processInstanceId(processInstanceId)//使用流程实例ID查询.singleResult();if(pi==null){return"流程结束";}else{return"未结束";}

activiti流程变量如何修改

流程变量的设置方式有两种,一是通过基本类型设置,第二种是通过JavaBean类型设置。 1.基本类型 [java] view plain copy /**设置流程变量*/ @Test public void setProcessVariables(){ String processInstanceId = "1301";//流程实例ID String assignee = "张三";//任务办理人 TaskService taskService = processEngine.getTaskSer ...

activiti explorer怎么添加到已部署流程定义

下面小结下,代码其实很简单,如下: [code="java"] @Test public void testDynamicDeploy() throws Exception { //创建bpmn模型 BpmnModel model = new BpmnModel(); Process process = new Process(); model.addProcess(process); process.setId("my-process"); //创建bpmn元素

activiti modeler 怎么将设计的流程保存到后台的?后台哪里接收的?

package org.activiti.editor.rest.model; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import org.activiti.editor.constants.ModelDataJsonConstants; import org.activiti.engine.ProcessEngines; impo ...

在XML流程定义中初始化Activiti流程变量(Initializing Activiti process variables in XML process definition)

您可以在启动事件之后使用script task来设置这些变量 you can use a script task just after your start event to set up these variables

使用java代码在activiti-rest中部署流程定义时出错(Getting error on deploying the process definition in activiti-rest using java code)

(CFR)。 http://activiti.org/userguide/index.html#_create_a_new_deployment :正文不应该是bson多部分/表单数据文件,它是bpmn20.xml文件(如果是多个文件,则为.zip) cfr. http://activiti.org/userguide/index.html#_create_a_new_deployment: the body should not be a json multipart/form-data fil ...

如何将Activiti流程定义作为子流程导入主流程?(How to import Activiti process definition as sub-process into master process?)

通过“导入”三个流程定义,您的意思是在执行父流程的过程中实例化它们? - >在这种情况下,在Activiti Designer Palette中查找“调用活动”并将其移动到父进程中。 选中后,在调用活动的“属性”选项卡中,您将找到一个属性“被调用元素”:这是您在父进程运行到调用活动时要调用的单独进程定义的ID。 在Activiti用户指南中,您将在此处找到,包括可视示例和基础XML表示的示例: http : //www.activiti.org/userguide/index.html#bpmnC ...

Alfresco Activiti - 如何更新生产/质量保证中的流程定义(Alfresco Activiti - How to update a process definition in production/QA)

如果将流程定义添加到应用程序,则可以将应用程序从一个环境导出到另一个环境。 它的所有流程定义,表单,模板等都将在新环境中导出和重新导入。 请注意,您必须在App的“详细信息视图”上执行导入,否则它将创建一个新的App和新的流程定义! If you add your process definition to an App, you can then export the App from one environment to the other. All its process definitio ...

在Activiti中编辑当前流程定义(Editing a current process definition in Activiti)

我不认为Activiti API提供了一种在不部署新版本的情况下替换现有流程定义的方法。 部署新版本的进程时,旧版本上的所有现有流程实例将继续在旧版本上运行。 但是,您可以使用SetProcessDefinitionVersionCmd类来更改流程实例上的流程版本。 但它并不“聪明”; 它只是更改版本号,并且不会更改任何其他运行时数据,因此如果您在流程定义中进行了不兼容的更改,它可能会中断流程实例。 I don't think the Activiti API provides a way to ...