外部系统需要对接流程引擎,多个表单总要对接多次,这个重复的工作量很多,这样会给开发带来很不方便的工作? 有没有办法流程只集成一次就可以呢? 或者有些人说,我用表单引擎就可以了。表单引擎确实是好东西,但万一没有呢,而且表单引擎对于页面有一定的局限性,且扩展,管理不方便。 那怎么处理? 回答之前先说明两件事情:
字段 | 类型 | 描述 |
---|---|---|
id | varchar(36) | 主键 |
instance_data | mediumtext | 表单内容 |
status | varchar(2) | 表单状态 |
form_url | varchar(200) | 表单URL |
form_id | varchar(200) | 表单ID,用来区分哪个表单,如加班及请假等 |
attachment_id | varchar(20) | 附件ID |
后面就是以流程引将将表单的内容存储过来即好。 也有人问,我还是想将大字段的内容存储进对应的表,怎么办? 其实也有办法,在保存表单字段时,将字段内容广播出来即可 示例代码如下:
@Override
@Transactional
public OaWorkflowCommonInstance insert(OaWorkflowCommonInstance record) {
this.mapper.insert(record);
SpringContextUtils.getApplicationContext().publishEvent(new OaWorkflowCommonInstanceEvent(record, MethodType.ADD, record.getId()));
return record;
}
@Override
@Transactional
public Integer update(OaWorkflowCommonInstance record) {
Integer result= this.mapper.updateById(record);
SpringContextUtils.getApplicationContext().publishEvent(new OaWorkflowCommonInstanceEvent(record, MethodType.UPDATE, record.getId()));
return result;
}
这里插入更新时,都将表单数据广播出来,后面只要自己捕捉这个事件就可以了 之后就自己写页面就可以了,后端基本上不用开发了。 我用自己做的流程引擎写了两个示例,给大家示例一下,都只要写页面就可以了
image.png
image.png 大家做流程集成时,参考这写方案就可以了。