1.获得流程图乱码问题
修改源码
在构造方法
中有一行代码是设置字体的,默认是用Arial字体,这就是乱码产生的原因,把字改为本地的中文字体即可,例如:
从5.12版本开始支持设置字体名称,在引擎中添加如下设置,在生成图片时即可使用微软雅黑设置图片中的文字。
2.业务和流程的关联方式
runtimeService.startProcessInstanceByKey
javadoc对其说明:
其中businessKey就是业务ID,例如要申请请假,那么先填写登记信息,然后(保存+启动流程),因为请假是单独设计的数据表,所以保存后得到实体ID就可以把它传给processInstanceBusinessKey方法启动流程。当需要根据businessKey查询流程的时候就可以通过API查询:
建议数据库冗余设计:在业务表设计的时候添加一列:PROCESS_INSTANCE_ID varchar2(64),在流程启动之后把流程ID更新到业务表中,这样不管从业务还是流程都可以查询到对方!
特别说明: 此方法启动时自动选择最新版本的流程定义。
runtimeService.startProcessInstanceById
javadoc对其说明:
processDefinitionId:这个参数的值可以通过repositoryService.createProcessDefinitionQuery()方法查询,对应数据库:ACT_RE_PROCDEF;每次部署一次流程定义就会添加一条数据,同名的版本号累加。
特别说明: 此可以指定不同版
修改源码
org.activiti.engine.impl.bpmn.diagram.ProcessDiagramCanvas
在构造方法
public ProcessDiagramCanvas(int width, int height)
中有一行代码是设置字体的,默认是用Arial字体,这就是乱码产生的原因,把字改为本地的中文字体即可,例如:
Font font = new Font("WenQuanYi Micro Hei", Font.BOLD, 11);
从5.12版本开始支持设置字体名称,在引擎中添加如下设置,在生成图片时即可使用微软雅黑设置图片中的文字。
<property name="activityFontName" value="微软雅黑"></property>
2.业务和流程的关联方式
runtimeService.startProcessInstanceByKey
javadoc对其说明:
startProcessInstanceByKey(String processDefinitionKey, Map variables)
Starts a new process instance in the latest version of the process definition with the given key
其中businessKey就是业务ID,例如要申请请假,那么先填写登记信息,然后(保存+启动流程),因为请假是单独设计的数据表,所以保存后得到实体ID就可以把它传给processInstanceBusinessKey方法启动流程。当需要根据businessKey查询流程的时候就可以通过API查询:
runtimeService.createProcessInstanceQuery().processInstanceBusinessKey(processInstanceBusinessKey, processDefinitionKey)
建议数据库冗余设计:在业务表设计的时候添加一列:PROCESS_INSTANCE_ID varchar2(64),在流程启动之后把流程ID更新到业务表中,这样不管从业务还是流程都可以查询到对方!
特别说明: 此方法启动时自动选择最新版本的流程定义。
runtimeService.startProcessInstanceById
javadoc对其说明:
startProcessInstanceById(String processDefinitionId, String businessKey, Map variables)
Starts a new process instance in the exactly specified version of the process definition with the given id.
processDefinitionId:这个参数的值可以通过repositoryService.createProcessDefinitionQuery()方法查询,对应数据库:ACT_RE_PROCDEF;每次部署一次流程定义就会添加一条数据,同名的版本号累加。
特别说明: 此可以指定不同版