在 Flowable 中,自定义表单允许用户设计表单来收集流程执行期间所需的数据。自定义表单可以通过多种方式实现,包括使用 Flowable Form Modeler、集成外部表单系统或者直接在 BPMN XML 中定义表单。
以下是在 Flowable 中实现自定义表单的步骤:
使用 Flowable Form Modeler
-
创建表单模型:
- 登录到 Flowable Task 应用程序。
- 点击左侧菜单的 “Apps”。
- 选择 “Form Modeler” 应用。
- 创建一个新的表单模型,添加所需的表单字段(如文本框、下拉菜单、复选框等)。
-
关联表单模型与流程:
- 在 BPMN 设计器中,为流程中的用户任务添加表单属性。
- 设置表单属性的类型为
form
,并指定之前创建的表单模型的 key。
-
部署流程和表单:
- 将包含表单引用的流程定义部署到 Flowable。
- 确保表单模型也被部署。
-
运行流程并填写表单:
- 启动流程实例。
- 在用户任务节点,用户将看到自定义表单,可以填写数据。
- 提交表单后,数据将作为流程变量存储,可以在后续的流程逻辑中使用。
在 BPMN XML 中定义表单
如果你不使用 Form Modeler,也可以直接在 BPMN XML 中定义表单。
xml
<bpmn2:userTask id=“userTask1” name=“User Task”>
bpmn2:extensionElements
<flowable:formProperty id=“name” name=“Name” type=“string” required=“true” />
<flowable:formProperty id=“email” name=“Email” type=“string” required=“true” />
</bpmn2:extensionElements>
</bpmn2:userTask>
在这个例子中,我们定义了两个表单属性:name
和 email
。
集成外部表单
如果你的表单是外部系统的一部分,你可以使用以下方法集成:
- URL 表单:
- 在用户任务中设置表单的
flowable:formKey
为外部表单的 URL。 - 用户点击任务时,将重定向到指定的 URL。
- 在用户任务中设置表单的
xml
<bpmn2:userTask id=“userTask1” name=“User Task”>
bpmn2:extensionElements
flowable:formKeyhttp://example.com/form</flowable:formKey>
</bpmn2:extensionElements>
</bpmn2:userTask>
- 嵌入式表单:
- 使用 HTML 和 JavaScript 创建表单。
- 在用户任务中嵌入 HTML 表单代码。
xml
<bpmn2:userTask id=“userTask1” name=“User Task”>
bpmn2:extensionElements
flowable:formFieldValidationfalse</flowable:formFieldValidation>
<flowable:formProperty id=“formField1” name=“FormField1” type=“string” variable=“formField1Variable” />
</bpmn2:extensionElements>
</bpmn2:userTask>
然后在 Flowable Task 应用程序中,创建一个 HTML 表单,并在提交时使用 Flowable API 将数据保存为流程变量。
注意事项
- 确保表单字段与流程变量名称匹配,以便数据可以正确地存储和检索。
- 对于复杂的表单逻辑,可能需要编写 JavaScript 代码来处理表单的显示和提交。
- 在集成外部表单时,需要考虑跨域资源共享(CORS)问题,确保外部表单可以与 Flowable Task 应用程序交互。
通过这些方法,你可以根据你的需求创建和集成自定义表单,以便在 Flowable 中收集和利用流程数据。