activiti在线设计-Activiti6.0中如何设计和关联表单?

作者&投稿:徒畏 (若有异议请与网页底部的电邮联系)
~ activiti6的流程编辑器怎么整合进自己的项目中

建议你可以看一下咖啡兔的相关技术博文:

网页链接

,

activiti6和activiti5整合方式一致

1.为什么要整合

Activiti5.10版本把原本独立的ActivitiModeler模块整合到了ActivitiExplorer中,两者相结合使用起来很方便,通过Modeler设计的流程模型可以直接部署到引擎,也可以把已经部署的流程转换为Model从而在Modeler中编辑。

在实际应用中也有这样的需求,把Modeler整合到业务系统中可以供管理员使用,或者作为BPM平台的一部分存在,很遗憾官方没有给出如何整合Modeler的文档。

2.整合工作

2.1下载源码

首先需要从Github下载源码:

2.2复制文件

复制的所有文件均在activiti-webapp-explorer2目录中。

src/main/resources中的、、到项目源码的源码根目录,保证编译之后在classes根目录

src/main/webapp中的api、editor、explorer、libs到项目的webapp目录(与WEB-INF目录同级)

2.3添加依赖

?

123456789101112131415161718192021222324

<dependency>__<groupid></groupid>__<artifactid>activiti-explorer</artifactid>__<version>5.14</version>__<exclusions>____<exclusion>______<artifactid>vaadin</artifactid>______<groupid></groupid>____</exclusion>____<exclusion>______<artifactid>dcharts-widget</artifactid>______<groupid></groupid>____</exclusion>____<exclusion>______<artifactid>activiti-simple-workflow</artifactid>______<groupid></groupid>____</exclusion>__</exclusions></dependency><dependency>__<groupid></groupid>__<artifactid>activiti-modeler</artifactid>__<version>5.14</version></dependency>

2.4添加Java类

添加一个类保存到项目中,注册了一些REST路由。

?

1234567891011121314151617181920212223242526272829

package;

import;import;import;import;import;import;

publicclassExplorerRestApplicationextendsActivitiRestApplication{

publicExplorerRestApplication(){__super();_}_/**_*CreatesarootRestletthatwillreceiveallincomingcalls._*/_@Override_publicsynchronizedRestletcreateInboundRoot(){__Routerrouter=newRouter(getContext());__();__(router);__(router);__JsonpFilterjsonpFilter=newJsonpFilter(getContext());__(router);__returnjsonpFilter;_}

}

2.5配置

在文件中添加如下配置:

?

12345678910111213141516

<!--Restletadapter,usedtoexposemodelerfunctionalitythroughREST--><servlet>__<servlet-name>RestletServlet</servlet-name>__<servlet-class></servlet-class>__<init-param>____<!--Applicationclassname-->____<param-name></param-name>____<param-value></param-value>__</init-param></servlet>

<!--Catchallservicerequests--><servlet-mapping>__<servlet-name>RestletServlet</servlet-name>__<url-pattern>/service/*</url-pattern></servlet-mapping>

2.6控制器

使用SpringMVC做了一个简单的封装,也可以使用其他的MVC实现。

?

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163

package;

import;import;

import;import;

import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;

/***流程模型控制器**@authorhenryyan*/@Controller@RequestMapping(value="/workflow/model")publicclassModelController{

protectedLoggerlogger=(getClass());

@Autowired_RepositoryServicerepositoryService;

/**_*模型列表_*/_@RequestMapping(value="list")_publicModelAndViewmodelList(){__ModelAndViewmav=newModelAndView("workflow/model-list");__List<model>list=().list();__("list",list);__returnmav;_}

/**_*创建模型_*/_@RequestMapping(value="create")_publicvoidcreate(@RequestParam("name")Stringname,@RequestParam("key")Stringkey,@RequestParam("description")Stringdescription,_____HttpServletRequestrequest,HttpServletResponseresponse){__try{___ObjectMapperobjectMapper=newObjectMapper();___ObjectNodeeditorNode=();___("id","canvas");___("resourceId","canvas");___ObjectNodestencilSetNode=();___("namespace","#");___("stencilset",stencilSetNode);___ModelmodelData=();

ObjectNodemodelObjectNode=();___(_NAME,name);___(_REVISION,1);___description=(description);___(_DESCRIPTION,description);___(());___(name);___((key));

(modelData);___((),().getBytes("utf-8"));

(()+"/service/editor?id="+());__}catch(Exceptione){___("创建模型失败:",e);__}_}

/**_*根据Model部署流程_*/_@RequestMapping(value="deploy/{modelId}")_publicStringdeploy(@PathVariable("modelId")StringmodelId,RedirectAttributesredirectAttributes){__try{___ModelmodelData=(modelId);___ObjectNodemodelNode=(ObjectNode)newObjectMapper().readTree((()));___byte[]bpmnBytes=null;

BpmnModelmodel=newBpmnJsonConverter().convertToBpmnModel(modelNode);___bpmnBytes=newBpmnXMLConverter().convertToXML(model);

StringprocessName=()+".";___Deploymentdeployment=().name(()).addString(processName,newString(bpmnBytes)).deploy();___("message","部署成功,部署ID="+());__}catch(Exceptione){___("根据模型部署流程失败:modelId={}",modelId,e);__}__return"redirect:/workflow/model/list";_}

/**_*导出model的xml文件_*/_@RequestMapping(value="export/{modelId}")_publicvoidexport(@PathVariable("modelId")StringmodelId,HttpServletResponseresponse){__try{___ModelmodelData=(modelId);___BpmnJsonConverterjsonConverter=newBpmnJsonConverter();___JsonNodeeditorNode=newObjectMapper().readTree((()));___BpmnModelbpmnModel=(editorNode);___BpmnXMLConverterxmlConverter=newBpmnXMLConverter();___byte[]bpmnBytes=(bpmnModel);

ByteArrayInputStreamin=newByteArrayInputStream(bpmnBytes);___(in,());___Stringfilename=().getId()+".";___("Content-Disposition","attachment;filename="+filename);___();__}catch(Exceptione){___("导出model的xml文件失败:modelId={}",modelId,e);__}_}

}</pre>

###2.7注意事项

如果使用Spring代理引擎,并且在项目中同时有文件(不管在main/resources还是test/resources目录),在里面的引擎中添加下面的配置参数,否则会导致打开Modeler的编辑页面时读取数据返回**204**状态码。

<preclass="brush:xml"><propertyname="processEngineName"value="test"></property></pre>

引擎默认名称为default,()查询时会先检索main/resources,然后再检索test/resources的和文件,所以当main/resources监测不到指定文件时就会导致该引擎被当做web应用的引擎对象,这样会导致有两个引擎,所以把引擎的名称改为非默认的“default”。

##3.中文乱码问题解决办法

在JVM参数中添加参数:

>-=UTF-8-=UTF-8

**参考**:[在ActivitiModeler中设计的流程包含奇数个中文时不能部署问题](

##4.效果截图

在最新的kft-activiti-demo版本(1.7.0)中已经集成了ActivitiModeler,可以在线访问,也可以下载源码学习如何配置。

登录[

![kft-activiti-demo中的效果截图](/files/2013/03/)![kft-activiti-demo中的效果截图](/files/2013/03/)</model>

Activiti6.0中如何设计和关联表单?

新增了环节用户任务,这时紧跟着新增一个表单即可,以及脚本、样式、WebAPI;删除了环节用户任务,这时可以不用管,为顾及旧版本的流程定义,其对应的表单还需要保留,并不能删除;修改了环节用户任务,比如在A环节新增了两个字段,同时在B环节减少了两个字段,这时就要为A、B两个环节各自重新创建表单、重新创建脚本、样式、以及重新创建WebAPI,因为表单变了,那么业务也就变了,SQL(表)也都跟着变了。

《Activiti实战》epub下载在线阅读全文,求百度网盘云资源

《Activiti实战》(闫洪磊)电子书网盘下载免费在线阅读

链接:

提取码:xdni

书名:Activiti实战

豆瓣评分:7.2

作者:闫洪磊

出版社:_倒ひ党霭嫔

出版年:2015-1-1

页数:508

内容简介:

《Activiti实战》立足于实践,不仅让读者知其然,全面掌握Activiti架构、功能、用法、技巧和最佳实践,广度足够;而且让读者知其所以然,深入理解Activiti的源代码实现、设计模式和PVM,深度也足够。

《Activiti实战》一共四个部分:准备篇(1~2章)介绍了Activiti的概念、特点、应用、体系结构,以及开发环境的搭建和配置;基础篇(3~4章)首先讲解了ActivitiModeler、ActivitiDesigner两种流程设计工具的详细使用,然后详细讲解了BPMN2.0规范;实战篇(5~14章)系统讲解了Activiti的用法、技巧和最佳实践,包含流程定义、流程实例、任务、子流程、多实例、事件以及监听器等;高级篇(15~21)通过集成WebService、规则引擎、JPA、ESB等各种服务和中间件来阐述了Activiti不仅仅是引擎,实际上是一个BPM平台,最后还通过源代码对它的设计模式及PVM进行了分析。

作者简介:

闫洪磊(咖啡兔)资深软件开发工程师和架构师,为Activiti贡献了大量代码,为Activiti在中国的推广与普及做了大量的工作,在社群中有很高的威望和知名度,被称为中国Activiti领域的第一人。多年来一直从事OA、ERP等系统的开发与架构设计工作,持续关注并深入研究工作流引擎,目前就职于小马购车,担任架构师一职,并负责公司内部工作流平台的建设工作。




activiti在线设计-Activiti6.0中如何设计和关联表单?
体系结构,以及开发环境的搭建和配置;基础篇(3~4章)首先讲解了ActivitiModeler、ActivitiDesigner两种流程设计工具的详细使用,然后详细讲解了BPMN2.0规范;实战篇(5~14章)系统讲解了Activiti的用法、技巧和最佳实践,包含流程定义、流程实例、任务、子流程、多实例、事件以及监听器等;高级篇(15~21)通过集成WebService、规则...

在线工作流设计器-如何在线绘制activiti工作流图
工作流设计器为用户以及开发商提供了快速绘制、修改流程的方式,工作流设计器的好坏决定到工作流管理系统的易用性。方正飞鸿软件开发平台BPMES就由这些功能!公司提供免费试用的版本!具体可以去方正飞鸿的官网查看!如何在线绘制activiti工作流图 使用activitimodeler就可以了,咖啡兔的demo里有用到过,或者有兴趣可...

如何在线绘制activiti工作流图
使用activiti modeler就可以了,咖啡兔的demo里有用到过,或者有兴趣可以自己设计一个在线流程设计器,百度也能下载到的吧

activiti中的网关是干什么的?
网关用于控制流程走向,根据功能不同可以划分为以下4种网关:用来对流程中的决定进行建模,流程执行到该网关时,按照输出流的顺序逐个计算,当条件为true时,继续执行当前网关的输出流。如果多个线路的计算结果都为true,那么只会执行第一个值为true的网关,忽略其他表达式的值为true的网关。如果多个网关计算...

项目管理软件有哪些好的推荐?
推荐8Manage PM项目管理软件,它适用于各类中大型业务、产品研发、工程、敏捷开发、外包、协同项目。主要的解决方案包含:(1)业务项目管理(PM+CRM):项目与业务相结合,一个动态的业务、合同管理、项目计划、执行、协同与交付平台,实时联动的信息,信息可靠、透明,帮助提升企业业务及项目的执行效率 。...

JEECG V3.0版本新架构基础
技术点三 在线流程设计 采用开源Activiti流程引擎 实现在线画流程 自定义表单 表单挂靠 业务流转 JEECG V 采用SpringMVC+Hibernate+Spring jdbc等主流框架 JEECG V 经过了专业压力测试 性能测试 保证后台数据的准确性和页面访问速度 支持多种浏览器: IE 火狐 Google 等浏览器访问速度都很快 支持数据库: ...

JeeCGBoot低代码开发平台,强大的代码生成器前后端一起生成
9、集成了Activiti工作流 10、支持单点登录CAS集成方案 11、接口统一采用restful接口方式,集成了Swagger-ui在线接口文档 技术架构:后台环境:Java8+Maven+Mysql+Redis 后台开发技术 springBoot2+SpringCloudAlibaba+MybatisPlus+Jimurport+ApacheShir 前端:Vue2.6+Axios 微服务架构图:后台操作图:支持手机...

岭东区18288492057: 如何在线绘制activiti工作流图 -
弭追万仪: 使用activiti modeler就可以了,咖啡兔的demo里有用到过,或者有兴趣可以自己设计一个在线流程设计器,百度也能下载到的吧

岭东区18288492057: 怎么创建 activiti web应用 -
弭追万仪: 框架是spring +spring data jpa+spring mvc+activiti5.16.2 在整合网页设计器时主要是配置web.xml文件 activiti的网页设计器是使用rest技术,所以web.xml文件里面需要配置一下rest.接下来引入网页了

岭东区18288492057: 如何通过Activiti搭建工作流引擎 -
弭追万仪: v.usn(+) order by segment_name ; 查看表空间的使用情况 select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;

岭东区18288492057: Activiti工作流引擎怎么自定义表单和工作流 -
弭追万仪: 在设计流程时,指定每个节点显示的自定义表单

岭东区18288492057: 在eclipse 中画好activiti流程图后怎么运行这个流程 -
弭追万仪: Activiti 有个Eclipse 插件,Activiti Eclipse Designer ,可用于图形化建模、测试、部署 BPMN 2.0的流程.安装步骤如下: 1、eclipse打开help-> install new software,单击add: 2、Name: Activiti BPMN 2.0 designer 3、Location: 进行安装.

岭东区18288492057: 如何使用Activiti Rest模块 -
弭追万仪: 1. Activiti REST模块介绍 关于Rest的介绍就免除了,主要介绍一下Activiti Rest模块的功能以及如何使用.1.1 使用REST的好处 简单化:利用现有模块(activiti-rest.war)代替直接API调用 标准化:各个系统根据rest模块的接口规范访问REST资...

岭东区18288492057: eclipse 怎样离线安装activiti -
弭追万仪: 下载activiti插件包,解压后,看到内部有features和plugins两个文件夹.(附件中已提供);将两个文件夹复制到eclipse安装路径下.和原有的features和plugins两个文件夹合并即可.重新启动eclipse.在Package Explorer面板中,右键,选择new,点击other,如果看到下图,说明activiti插件已经安装成功.

岭东区18288492057: activiti怎么删除act -
弭追万仪: 1、结构设计1.1、 逻辑结构设计 Activiti使用到的表都是ACT_开头的.ACT_RE_*:'RE'表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等).ACT_RU_...

岭东区18288492057: STS怎样安装activiti -
弭追万仪: 方法/步骤 打开菜单栏中的help,找到install new software.在弹出面板中,点击add.分别输入name和地址:name: activiti bpmn 2.0 designer location: http://activiti.org/designer/update/ 确定后会出现activiti选项,勾选然后下一步安装即可.5 安装成功后,新建菜单中可以看到activiti选项,就安装成功了.

岭东区18288492057: 怎么实现Activiti的分支条件的自定义配置 -
弭追万仪: 如何实现Activiti的分支条件的自定义配置 一、Activiti的流程分支条件的局限 Activiti的流程分支条件目前是采用脚本判断方式,并且需要在流程定义中进行分支条件的设定,如下图所示: ${input == 1} ${input == 2} ${input == 3} 从上面的定义可...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网