尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Flowable 表单引擎实战:JSON 表单定义与任务表单完整指南

Flowable 表单引擎实战:JSON 表单定义与任务表单完整指南 Flowable 表单引擎实战JSON 表单定义与任务表单完整指南【免费下载链接】flowable-userguideFlowable最新中文文档,ai自动生成BPM体验地址http://flow.je4.cn/#/login项目地址: https://gitcode.com/gh_mirrors/fl/flowable-userguideFlowable 表单引擎是 Flowable 工作流平台的核心组件之一它使用基于 JSON 的表单定义来描述启动表单与任务表单无需编写繁琐的前端代码。本指南将带你从零上手如何编写 JSON 表单定义、部署表单引擎、理解字段类型以及如何让表单与 BPMN 流程中的用户任务无缝衔接是面向新手与普通用户的 Flowable 表单实战教程。什么是 Flowable 表单定义Flowable 并没有为表单规定类似 BPMN 的行业标准因此它自己定义了一套JSON 格式的表单结构作为表单设计器的输出格式并由 Flowable 任务应用Task App直接渲染为 HTML 表单。这份 JSON 文件就是表单定义它是表单引擎管理的最小业务单元相关内容可在表单介绍章节中查看。JSON 表单定义的核心结构一个最简表单定义由三部分组成key唯一标识、name名称和 fields字段数组另外还可以通过可选的outcomes定义表单结果。参考表单介绍文档中的示例{ key: form1, name: My first form, fields: [ { id: input1, name: Input1, type: text, required: false, placeholder: empty } ], outcomes: [ { id: null, name: Accept }, { id: null, name: Reject } ] }关键点key 是表单定义的身份证表单引擎依靠key区分不同表单版本管理也基于key运作。id 是字段的变量名用户提交后字段id会直接成为流程变量名例如上例提交后会产生名为input1的变量。outcomes 也可映射为变量格式为form_表单key_outcome上例中选择结果会写入form_form1_outcome可用${form_form1_outcome Accept}判断结果。Flowable 支持的 11 种字段类型表单字段必须有id、name、type三个属性。Flowable 表单引擎支持以下常用类型覆盖了日常业务表单的绝大多数场景类型说明text单行文本输入框multi-line-text多行文本输入框integer仅允许数字的输入框boolean复选框date日期选择框dropdown下拉选择框选项在定义中配置radio-buttons单选按钮组people选人框从用户表选择functional-group选组框从分组表选择upload文件上传框expression表达式标签可用 JUEL 表达式展示动态值如何部署 Flowable 表单定义表单定义文件必须以.form为后缀否则表单引擎无法识别部署例如shareniu.form。部署后表单信息会写入ACT_FO_FORM_DEFINITION表中详细步骤见表单部署文档。编程方式部署 .form 文件使用FormRepositoryService即可完成部署formRepositoryService.createDeployment() .name(definition-one) .addClasspathResource(path/to/definition-one.form) .deploy();当表单引擎接入流程引擎后.form文件还可以与流程资源一起打包进业务存档BAR由流程引擎的部署服务统一部署。表单定义的版本管理机制Flowable 表单引擎的版本管理非常简单直观首次以某个key部署时版本号为1。之后每次以相同key部署版本号自动递增当前最大版本 1。key不同则视为全新表单版本从 1 重新开始。id是全局唯一编号保证集群环境下缓存与实例的唯一性。因此发布表单的新版本时只需修改 JSON 内容、保持key不变即可历史版本会全部保留方便回溯与灰度切换。如何在流程中绑定 Flowable 任务表单表单的价值在于与流程集成。在 BPMN 流程定义中你可以在开始事件或用户任务上通过flowable:formKey属性引用表单具体集成方式参见流程表单章节。通过 API 获取任务表单模型Flowable 任务应用正是通过表单定义 JSON 渲染出 HTML 表单的。你也可以用 API 自行获取表单模型// 获取流程启动表单 FormModel formModel runtimeService.getStartFormModel(processDefinitionId, processInstanceId); // 获取用户任务表单 FormModel taskFormModel taskService.getTaskFormModel(taskId);FormModel对象就是表单定义 JSON 的 Java 表示拿到后即可在前端自由渲染。提交表单启动流程与完成任务填写表单后配套 API 会帮你把表单值映射为流程变量并推进流程// 使用启动表单的值启动流程实例 ProcessInstance pi runtimeService.startProcessInstanceWithForm( processDefinitionId, outcome, variables, processInstanceName); // 使用表单完成用户任务 taskService.completeTaskWithForm(taskId, formDefinitionId, outcome, variables);这也是 Flowable 任务应用内部使用的提交方式所有表单值通过变量 Map 传入同时可指定结果输出字符串与流程实例名称。表单引擎 API 与常用服务类与 Flowable 表单交互的核心入口是FormEngine它是线程安全的可在整个应用中共享一个实例。通过它可获取四个关键服务类详见表单 API 文档FormEngine formEngine FormEngines.getDefaultFormEngine(); FormRepositoryService formRepositoryService formEngine.getFormRepositoryService(); FormService formService formEngine.getFormService(); FormRuleService formRuleService formEngine.getFormRuleService(); FormManagementService formManagementService formEngine.getFormManagementService();FormRepositoryService部署管理、查询表单定义与部署包最常用的入口。FormService创建与查询表单实例提交表单值后生成的记录。FormRuleService表单校验规则相关能力。FormManagementService引擎版本、数据库表与元数据信息自定义应用一般用不到。实战小结与建议表单定义优先以key 版本号管理发布更新时保持key不变即可自动升级版本。字段的id就是流程变量名命名时请遵循流程变量规范方便后续在网关与表达式中引用。需要动态展示数据时多用expression字段配合 JUEL 表达式例如${approver}、${form_form1_outcome}。若你的应用只需简单表单直接使用 Flowable 表单引擎 任务应用即可若需要完全自定义 UI则通过getStartFormModel/getTaskFormModel拿到 JSON 自行渲染。如果想继续深入可以查看仓库内的表单 REST 接口文档部署、表单定义、表单实例的增删改查以及表单引擎配置文档。至此你已经掌握了 Flowable 表单引擎从 JSON 表单定义、部署版本管理到任务表单集成的完整链路可以开始构建自己的流程表单应用了。【免费下载链接】flowable-userguideFlowable最新中文文档,ai自动生成BPM体验地址http://flow.je4.cn/#/login项目地址: https://gitcode.com/gh_mirrors/fl/flowable-userguide创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表