在Activiti Modeler尚未推出之前,我们使用Activiti进行流程设计的时候,优先会使用官方提供的Eclipse插件来进行设计,然后再通过代码把流程设计文件发布至系统中,然后再调用启动流程,这会导致一个问题,当我们需要进行流程修改的时候,麻烦来了,解决这种问题方案有以下方式:
1.重新在eclipse设计器流程,然后再次通过代码发布至系统中,然后再次执行。
2.通过自身开发的界面,在线重新设计
Activiti Modeler提供了我们一种全新的方式,即允许用户在eclipse中进行设计,然后再上传,上传后可直接转为Modeler的格式,可在Modeler中打开,然后再修改。
如我们上传eclipse设计器中的流程设计文件:
通过上传配置,把eclipse设计的文件上传:
通过代码可以转化为Activiti Modeler在线设计的文件格式:
通过这种方式可以有效实现eclipse设计,在线设计的相互转换.
eclipse转为Modeler的格式的转化代码如下:
import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import org.activiti.bpmn.converter.BpmnXMLConverter; import org.activiti.bpmn.model.BpmnModel; import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.Model; import org.apache.commons.lang.StringUtils; ... XMLInputFactory xif = XmlUtil.createSafeXmlInputFactory(); Map<String, MultipartFile> files = request.getFileMap(); Iterator<MultipartFile> it = files.values().iterator(); while(it.hasNext()){ MultipartFile f = it.next(); InputStream is = f.getInputStream(); InputStreamReader in = new InputStreamReader(is, "UTF-8"); XMLStreamReader xtr = xif.createXMLStreamReader(in); BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr); if (bpmnModel.getMainProcess() == null || bpmnModel.getMainProcess().getId() == null) { msg="上传流程文件解析有问题!"; } else { BpmnJsonConverter converter = new BpmnJsonConverter(); ObjectNode modelNode = converter.convertToJson(bpmnModel); Model modelData = repositoryService.newModel(); ObjectNode modelObjectNode = new ObjectMapper().createObjectNode(); modelObjectNode.put("name", subject); modelObjectNode.put("revision", 1); modelObjectNode.put("documentation", bpmDef.getDescp()); modelData.setMetaInfo(modelObjectNode.toString()); modelData.setName(subject); modelData.setTenantId(ContextUtil.getCurrentTenantId()); repositoryService.saveModel(modelData); //modelNode.put("resourceId", modelData.getId()); logger.debug("json:"+modelNode.toString()); repositoryService.addModelEditorSource(modelData.getId(), modelNode.toString().getBytes("utf-8")); if(StringUtils.isEmpty(bpmDef.getDefId())){//创建新的流程定义 bpmDef.setMainDefId(idGenerator.getSID()); bpmDef.setModelId(modelData.getId()); bpmDefManager.createEntity(bpmDef); }else if("true".equals(isDeployNew)){//发布新的版本 //发布新的 bpmDefManager.doDeployNew(bpmDef, modelData.getId()); }else{//生成一新版本,关联该流程定义,不发布流程定义 bpmDefManager.doCopyNewVersion(bpmDef,modelData.getId()); } msg="成功上传BPMN流程文件!"; success=true; }
发布流程定义后,可以通过以下代码取到bpmn文件:
/** * 取得流程定义的XML * * @param deployId * @return */ public String getDefXmlByDeployId(String deployId){ String sql = "select a.* from ACT_GE_BYTEARRAY a where NAME_ LIKE '%bpmn20.xml' and DEPLOYMENT_ID_= ? "; final LobHandler lobHandler = new DefaultLobHandler(); // reusable final ByteArrayOutputStream contentOs = new ByteArrayOutputStream(); String defXml = null; try{ jdbcTemplate.query(sql, new Object[]{deployId },new AbstractLobStreamingResultSetExtractor<Object>(){ public void streamData(ResultSet rs) throws SQLException, IOException{ FileCopyUtils.copy(lobHandler.getBlobAsBinaryStream(rs, "BYTES_"), contentOs); } } ); defXml = new String(contentOs.toByteArray(), "UTF-8"); } catch (Exception ex){ ex.printStackTrace(); } return defXml; }
具体访问效果如:
http://www.redxun.cn:8020/saweb/login.jsp
访问流程管理—》流程定义设计
相关推荐
eclipse安装Activiti-designer 所需jar包 Cannot complete the install because one or more required items could not be found. Software being installed: Activiti Eclipse BPMN 2.0 Designer 5.18.0....
org.activiti.designer.eclipse org.activiti.designer.gui org.activiti.designer.help org.activiti.designer.integration org.activiti.designer.kickstart.eclipse org.activiti.designer.kickstart.gui.form ...
Software being installed: Activiti Eclipse BPMN 2 0 Designer 5 12 0 org activiti designer feature feature group 5 8 0 Missing requirement: Activiti Eclipse BPMN 2 0 Designer 5 12 0 org activiti ...
下载activiti eclipse emf 插件压缩包至本地,解压后,将四个jar包copy到eclipse目录下的plugins 的目录下 包括了activiti-designer-5.18.0.zip包
Software being installed: Activiti Eclipse BPMN 2.0 Designer 5.18.0.201508100929 (org.activiti.designer.feature.feature.group 5.18.0.201508100929) Missing requirement: Activiti Eclipse BPMN 2.0 ...
eclipse中工作流activiti-designer-5.14.1插件 1、将下载好的jars文件夹里的4个jar文件复制到eclipse安装目录的plugins目录下 2、删除eclipse安装目录下,configuration文件夹里的org.eclipse.update文件夹,重启...
Activiti的Eclipse插件activiti-designer安装资料包,包含activiti-designer-5.18.0.zip、org.eclipse.emf.transaction_1.4.0.201306111400.jar、org.eclipse.emf.validation.ui_1.7.0.201403111711.jar、org....
eclipse本来可以在线安装activiti designer插件,但是网络总是有问题导致安装失败。按理说这个离线安装包也可以从https://github.com/Activiti/Activiti-Designer/releases下载,但是不知道怎么回事,下载也总是失败...
eclipse 安装activiti activiti-designer-5.18.0.zip 附带eclipse 以及activiti-designer-5.18.0.zip 安装包 eclipse下载链接https://www.eclipse.org/downloads/packages/release/luna/sr2
activiti-designer-5.18.0.zip 官方 activiti-designer-5.18.0.zip 官方 activiti-designer-5.18.0.zip 官方
将activiti-designer-5.14.1内的两个文件:features和plugins放到eclipse的dropins文件内,将文件:eclipse安装activiti需装eclipse插件20170325的四个文件放到eclipse根目录的plugins内: org.eclipse.emf....
eclipse插件之Activiti BPMN 2.0 designer,activiti开发必备的可视化插件,当前版本为5.9.3,适 用于eclipse3.7以上版本,已经在eclipse3.7、3.8版本中亲自测试通过。 使用方法: 将解压后的文件夹“Activiti BPMN...
Software being installed: Activiti Eclipse BPMN 2.0 Designer 5.18.0.201508100929 (org.activiti.designer.feature.feature.group 5.18.0.201508100929) Missing requirement: Activiti Eclipse BPMN 2.0 ...
activiti designer 5.18 eclipse eclipse插件 activiti插件 activiti设计
activiti-designer 学习和开发activiti的设计和流程必备插件
Activiti Eclipse Designer离线安装包,版本activiti-designer-5.18.0;上传时间2020.08.26
Missing requirement: Activiti Eclipse BPMN 2.0 Designer 5.14.1 (org.activiti.designer.feature.feature.group 5.14.1) requires 'org.eclipse.emf.transaction 1.4.0' but it could not be found b、解决办法...
这个插件很灵异,有时候能安装成功,有时候不能安装成功...如果安装不成功,建议先试试低版本的,如5.14.1,同时把4个jar文件复制到eclipse的plugins目录下,重启eclipse, 再安装activiti-designer插件可能就能成功安装
eclipse安装activiti-designer插件时可能遇到无法安装的问题,提示的错误信息:Cannot complete the install because one or more required items could not be found. Software being installed: Activiti Eclipse...
Activiti BPMN 2.0 designer-Eclipse插件离线安装包 采用link安装 link中路径配置切勿含有空格与中文 支持MyEclipse10 Activiti5.16亲测可用