activiti modeler教程(Activiti Explorer定制)
本文目录
- Activiti Explorer定制
- 如何解决Activiti-modeler无法使用的问题
- activiti modeler能不能用struts2搭建
- activiti modeler 用户自定义流程图,怎么判断分支条件
- 如何使用activiti modeler
- 整合activiti modeler 为什么oryx.debug.js报错
Activiti Explorer定制
stencilset.json,在stencils数组中,移除不需要的节点,比如
同时,可以修改groups和title,进行自定义分组和命名
stencilset.json,找到对应的节点,比如"id": "UserTask",将不必要的properties从propertyPackages移动到hiddenPropertyPackages,例:
改动前
改动后
上面的任务任务节点中,其中approvalwaypackage,approvalrulepackage, autocopypackage为自定义属性,在节点的propertyPackages进行引用外,还需要单独定义
其中
1、approvalrule指定"type": "String",最为简单,效果如下
2、approvalway指定"type": "ki**pm-multiinstance-approvalway","refToView": "multiinstance",表示为下拉列表,其中这里的ki**pm-multiinstance-approvalway需要额外在两处进行修改,效果如下
Activiti explorer前端使用的是AngularJS
2-1、properties.js 定义显示和写入模板
增加
2-2、增加定义的显示和写入模板, AngularJS语法
multiinstance-property-display-approvalway.html
multiinstance-property-write-approvalway.html
3、autocopypackage指定"type": "multiplecomplex",需要额外增加读、写模板,并在properties.js中定义模板指向,效果如下
3-1、properties.js定义模板
3-2、实现模板
auto-copy-display-template.html
auto-copy-write-template.html
auto-copy-popup.html
实现properties-auto-copy-controller.js,并在modler.html中进行引用
modeler.html
多语言定义在en.json中,这里直接修改了,也可以增加zh_cn.json,然后切换语言
除了以上前端工作,自定义属性,还需要客制化流程图加载过程,以读取自定义属性
CustomUserTaskJsonConverter.java
ModelServiceImpl.java
如何解决Activiti-modeler无法使用的问题
由于工作中需在eclipse开发环境下集成activiti插件,中间碰到插件不能安装的问题,特记录如下:
一、环境
1、eclipse 4.3.0
2、Activiti Designer 5.14.1
二、Activiti Designer 5.14.1插件安装
1)在eclipse中菜单help-》Install New software中,点击add
a、可输入远程url地址安装
b、下载Activiti Designer 5.14.1压缩包至本地,解压后,在由本地安装,安装方法可参照上图。由于是本地安装,拔掉网线或断开网络速度会有质的提升。
2)安装过程中错误处理
a、错误:
Cannot complete the install because one or more required items could not be found.
Software being installed: Activiti Eclipse BPMN 2.0 Designer 5.14.1 (org.activiti.designer.feature.feature.group 5.14.1)
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、解决办法
具体到本机环境有所不同,具体如下,以下是本机解决方案,如下:
org.eclipse.emf.validation.ui_1.7.0.201403111711.jar、
org.eclipse.emf.workspace_1.5.1.201306111400.jar、
org.eclipse.emf.validation_1.8.0.201403111711.jar
org.eclipse.emf.transaction_1.4.0.201306111400.jar;把这四个文件拷贝到自己的eclipse的plugin文件夹下面,重启eclipse再次安装activiti插件就可以了。
activiti modeler能不能用struts2搭建
Redis也常常被当作Memcached的挑战者被提到桌面上来。关于Redis与Memcached的比较更是比比皆是。
然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached!
activiti modeler 用户自定义流程图,怎么判断分支条件
package org.activiti.editor.rest.model;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import org.activiti.editor.c***tants.ModelDataJsonC***tants;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;
import org.restlet.data.Form;
import org.restlet.data.Status;
import org.restlet.resource.Put;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sun.misc.BASE64Encoder;
/**
* @author Tijs Rademakers
*/
public class ModelSaveRestResource extends ServerResource implements
ModelDataJsonC***tants {
protected static final Logger LOGGER = LoggerFactory
.getLogger(ModelSaveRestResource.class);
@Put
public void saveModel(Form modelForm) {
ObjectMapper objectMapper = new ObjectMapper();
String modelId = (String) getRequest().getAttributes().get("modelId");
// System.out.println("json " + modelForm.getFirstValue("json_xml"));
try {
/*
* ObjectNode modelNode = (ObjectNode)
* objectMapper.readTree(modelForm.getFirstValue("json_xml"));
* JsonToBpmnExport converter = new JsonToBpmnExport(modelNode);
* byte bpmnBytes = converter.convert();
* System.out.println("bpmn " + new String(bpmnBytes));
*/
RepositoryService repositoryService = ProcessEngines
.getDefaultProcessEngine().getRepositoryService();
Model model = repositoryService.getModel(modelId);
ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model
.getMetaInfo());
modelJson.put(MODEL_NAME, modelForm.getFirstValue("name"));
modelJson.put(MODEL_DESCRIPTION,
modelForm.getFirstValue("description"));
model.setMetaInfo(modelJson.toString());
model.setName(modelForm.getFirstValue("name"));
byte svg_xml=modelForm.getFirstValue("svg_xml").getBytes("UTF-8");
//转成UTF-8 然后使用base64编码
String gbk=new String(modelForm.getFirstValue("json_xml").getBytes("GBK"));
String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
String utf8=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
byte json_xml=new BASE64Encoder().encode(utf8.getBytes("UTF-8")).getBytes();
repositoryService.addModelEditorSource(model.getId(),json_xml);
InputStream svgStream = new ByteArrayInputStream(svg_xml);
TranscoderInput input = new TranscoderInput(svgStream);
PNGTranscoder transcoder = new PNGTranscoder();
// Setup output
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);
// Do the transformation
transcoder.transcode(input, output);
final byte result = outStream.toByteArray();
repositoryService.addModelEditorSourceExtra(model.getId(), result);
outStream.close();
repositoryService.saveModel(model);
} catch (Exception e) {
LOGGER.error("Error saving model", e);
setStatus(Status.SERVER_ERROR_INTERNAL);
}
}
}
如何使用activiti modeler
Activiti Modeler用于保存BPMN规范相关的对象,例如可用于将这些模型转换为相应的流程图对象:
// 创建一个BPMN模型实例
BpmnModel bpmnModel = new BpmnModel();
// 创建流程
Process process = new Process();
process.setId("myProcess");
bpmnModel.getProcesses().add(process);
// 创建任务
UserTask task = new UserTask();
task.setId("myTask");
process.addFlowElement(task);
// 设置任务的图形信息
GraphicInfo g1 = new GraphicInfo();
g1.setHeight(100);
g1.setWidth(200);
g1.setX(110);
g1.setY(120);
bpmnModel.addGraphicInfo("myTask", g1);
// XML转换器,将BPMN模型转换为XML文档
BpmnXMLConverter converter = new BpmnXMLConverter();
System.out.println(new String(converter.convertToXML(bpmnModel)));
参考自《疯狂工作流讲义第2版(Activiti6)》。
整合activiti modeler 为什么oryx.debug.js报错
按照User Guide的中的相关章节,准备好Java和Ant,启用setup目录中的ant脚本即可,中间好像需要在线下载一个组件,好像是Tomcat,我是手动下的。与jBPM不一样,Eclipse Designer是在Eclipse里单独安装的。
更多文章:
织梦安装教程上一品资源(利用APMServ在本地安装织梦dedecms系统图文教程)
2026年4月13日 18:00
腾讯小程序商城模板(做一个微信小程序商城开发大概多少钱(多少费用))
2026年4月13日 17:20
ppapi和activex(是不是Flash中的ActiveX比NPAPI和PPAPI要好)
2026年4月13日 17:00
visual studio是什么(visual studio 2015是个什么软件)
2026年4月13日 16:40
activiti modeler教程(Activiti Explorer定制)
2026年4月13日 16:20
mysql insert into字段顺序问题(mysql insert into的问题)
2026年4月13日 16:00
div可编辑属性(jquery一个div怎么获得焦点和失去焦点)
2026年4月13日 15:00





