当前位置: 首页 > news >正文

Flowable 外部表单

  • 内置表单需要在每个节点中去配置,当如果多个节点使用同一套表单属性就要配置多次比较麻烦,修改的时候也要修改多次,外部表单可以定义一次,然后其它节点都去引用同一个表单属性。

  • 外部表单需要定义一个.form后缀的文件。

  • 外部表单不需要在每个节点去指定From属性,而是在每个节点指定Form Key属性即可。

在这里插入图片描述

定义.form

FormLeaveProcess.form

{"key":"FormLeaveProcess","name": "请假流程外部表单","fields": [{"id": "startTime","name": "请假开始时间","type": "date","required": true,"placeholder": "empty"},{"id": "endTime","name": "请假结束时间","type": "date","required": true,"placeholder": "empty"},{"id": "reason","name": "请假原因","type": "string","required": false,"placeholder": "empty"}]
}

配置Form Key

在这里插入图片描述

部署流程和部署表单

@Autowired
private RepositoryService repositoryService;@Autowired
private FormRepositoryService formRepositoryService;@Test
void deployFormProcess() {// 1.部署流程Deployment deploy = repositoryService.createDeployment().addClasspathResource("processes/FormLeaveProcess.bpmn20.xml").name("外部表单请假流程").deploy();// 2.部署表单formRepositoryService.createDeployment().addClasspathResource("processes/FormLeaveProcess.form").name("请假流程外部表单").parentDeploymentId(deploy.getId()).deploy();
}

在这里插入图片描述

在这里插入图片描述

启动流程

@Autowired
private RuntimeService runtimeService;@Test
void startProcess() {String processDefinitionId = "FormLeaveProcess:2:48920686-8145-11ee-b7ee-0a0a3d6982e3";runtimeService.startProcessInstanceWithForm(processDefinitionId, "表单请假流程outcome", null, "huihui的请假流程");
}

请添加图片描述

完成表单任务

@Test
void completeFormTask() {Map<String, Object> variables = new HashMap<>();variables.put("startTime", "20221111");variables.put("endTime", "20231110");variables.put("reason", "活着不是为了工作,工作是为了活得更有意义");String taskId = "0f273f73-8149-11ee-b15c-0a0a3d6982e3";String formDefinitionId = "652cb868-8145-11ee-a2f0-0a0a3d6982e3";taskService.completeTaskWithForm(taskId, formDefinitionId, "huihui", variables);
}

在这里插入图片描述

获取任务对应的表单数据

@Test
void getTaskFormData() {FormInfo taskFormModel = taskService.getTaskFormModel("0f273f73-8149-11ee-b15c-0a0a3d6982e3");System.out.println(taskFormModel.getId() + "-" + taskFormModel.getName() + "-" + taskFormModel.getKey());SimpleFormModel simpleFormModel = (SimpleFormModel)taskFormModel.getFormModel();List<FormField> fields = simpleFormModel.getFields();for (FormField field : fields) {System.out.println(field.getId() + ":" + field.getType() + ":" + field.getName() + ":" + field.getValue());}
}

在这里插入图片描述

http://www.lryc.cn/news/227299.html

相关文章:

  • [mysql]索引优化-2
  • 数据分析实战 | 泊松回归——航班数据分析
  • Fliki AI:让视频创作更简单、更高效
  • webGL编程指南 第五章 MultiTexture.html
  • mysql8安装和驱动jar包下载
  • (SpringBoot)第五章:SpringBoot创建和使用
  • Linux重定向
  • Python之文件与文件夹操作及 pytest 测试习题
  • 物联网:实现数据驱动决策,推动经济发展
  • Leetcode 2929. Distribute Candies Among Children II
  • 【面经】ES中分片是什么?副本是什么?
  • 【算法练习Day46】判断子序列不同的子序列
  • Java设计模式之访问者模式
  • PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?
  • ubuntu 设置最大带宽
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
  • Django配置文件,request,链接mysql方法,Orm简介
  • ubuntu下载各个版本chrome方法
  • Http状态码502常见原因及排错思路(实战)
  • 国际阿里云:无法ping通ECS实例公网IP的排查方法!!!
  • Nginx缓存基础
  • 【数据结构】Lambda
  • 力扣labuladong——一刷day28
  • 2023年CCF非专业级别软件能力认证第二轮 (CSP-S)提高级C++语言试题
  • 华为ensp:静态默认路由
  • xss 通过秘籍
  • Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)
  • Flutter笔记:光影动画按钮、滚动图标卡片组等
  • 【论文】利用移动性的比例公平蜂窝调度测量和算法
  • 内存条选购注意事项(电脑,笔记本)