inBuilder 低代码平台新特性推荐第二十七期——表单集成流程配置
今天来给大家带来的是 inBuilder 低代码平台特性推荐系列第二十七期—表单集成流程配置。
一、概述
表单集成流程配置是指在任务办理时针对不同的节点配置不同的表单格式,从而实现不同流程节点控制表单按钮的可见性、可用性,字段的显隐、只读、必填。
除控制表单界面格式外,表单集成流程配置后开发者可以方便的在任务流转时调用表单命令、校验表单数据。
流程配置:在流程节点上定义表单字段、元素的可见性及可用性等。
表单配置:在表单设计器中配置字段、元素的可见性及可用性等。
两者的区别主要体现在是否可见、是否只读,表单配置字段不可见时仅表示该字段(元素)在界面上不可见,后端接口返回的数据中可能(取决于视图模型中是否有该字段)包含该字段。表单配置字段只读时仅表示该字段对应的控件不能编辑,但可以使用诸如 PostMan、curl 等工具修改数据。但如果流程中配置字段不可见,那么该字段不会在请求中返回。流程配置字段只读,那么视图模型层会对该字段的修改进行校验,从而保证无论使用何种界面、工具,都不能修改该字段。
因此,诸如 id、parentId 等字段不应在流程配置中将其置为隐藏。
不支持的场景:
1、表单以子路由的方式被其他表单使用,则该表单无法使用该特性。且表单上所有按钮的可见、可用属性仅支持状态机、常量,不支持其他任何配置。
2、禁用静态文本场景。该特性依赖静态文本,因此使用该特性时请保证卡片中组件的“启用静态文本”属性为“是”。
二、前置条件:
1、升级补丁:Cloud60SYS20240407OX 表单设计器支持流程控制规则
2、在 WebIde 中关闭 npm 离线模式,更新 jit 及 node_modules,
3、在配置中启用工作流表单格式,根据业务需要开启或关闭字段的流程配置规则,并重新编译表单。
3、业务对象需关联业务种类,如果未关联应在业务种类中配置
默认情况下除关联、主键、ParentId、部分 UDT 等设置了默认的配置规则,其余字段、按钮默认均可以在流程中进行配置,因此,如果某些字段是业务必须的字段,此时应将该字段的可见是否受规则控制、只读是否受规则控制设置为否,这样才可以保证用户无法在流程配置中将该字段的可见设置为否、只读设置为否。以上只是其中的一个场景,类似场景请表单开发人员进行限制。
三、开发过程
1、启用工作流表单格式
打开表单设计器,打开要启用流程配置的表单,切换到配置界面,启用工作流表单格式
注:对于升级补丁后创建的表单该开关会处于开启状态。升级补丁前创建的表单需手动开启。
开启流程配置后界面上按钮及字段就可以在流程中进行配置,其中可配置属性如下:
按钮:是否可见、是否禁用
字段:是否可见、是否只读、是否必填
2、配置按钮受控规则
启用流程配置后,为防止按钮可见及禁用属性随意修改导致业务无法执行或逻辑超出预期。基于此,按钮属性面板中新增了两个属性:可见是否受规则控制、禁用是否受规则控制。
当对应规则为“否”时,此时项目人员无法配置按钮的对应属性。如,表单中有保存按钮,将其“可见是否受规则控制”属性修改为“否”,则项目人员无法在流程中配置该按钮的可见性。
默认情况下,因表单中内置的“取消”按钮不具有业务意义,因此新建表单中“取消”按钮并不受控,即以上两个属性值均为否,流程中无法配置。如需要用户配置请手动将受控规则改为是。
3、配置字段受控规则
同按钮规则,字段也增加了对应属性控制其在流程中的可配置性,分别为:可见是否受规则控制、只读是否受规则控制、必填是否受规则控制。
当受控属性值为“否”时无法在流程中配置该字段的对应属性。
对于产品依赖的字段或业务中明确必填的字段,开发人员应将其受控规则改为“否”,以避免项目将其置为非必填而导致业务异常。其他属性亦如此。
升级补丁后创建的表单,部分业务字段(流程实例、分级码、最后更新信息等)因不需要用户输入,所以其必填、只读的受控属性值默认为“否”。老表单需手工进行修改。
4、发布到工作流
配置完受控规则后点击“发布到工作流”按钮并“发布”表单。
启用流程配置后应重新发布表单,否则将导致表单无法打开。
老表单在点击发布到工作流后会自动同步编号为 bffSysFormConfigId 的 vo 变量至表单,请在发布到工作流后保存表单并发布。
四、用户配置
从该步骤开始进入用户配置过程。
1、添加表单格式
发布到工作流后会在流程分类中增加对于的 SU 及流程分类,需开发人员将新推送的表单格式添加到流程分类中。
2、配置表单格式
在流程设计器中打开对应的流程并选择需要定义表单格式的节点,点击对应平台属性面板中的表单定义打开表单定义界面。
其中:
表单按钮页签中可以配置表单中按钮的可见及可用性。
表单字段页签中可以配置表单中字段的可见、只读、必填属性。请注意:目前不支持配置整个实体、业务字段、关联本身的可见、只读、必填属性,必须配置到叶子节点。
表单事件页签中可以配置在流转时执行对应的表单命令、命令参数。
注:如果表单字段中配置了字段必填,则在任务办理时会自动执行表单校验(仅校验当前行数据),如果对应字段未填写则无法流转
五、规则优先级
概念:
①静态规则:元素的属性值设为是或否,表单运行时其值永远不会变化(未启用界面规则)。
②业务规则:元素的属性值绑定字段、绑定变量、绑定状态机、绑定表达式,在运行时会根据配置的值动态变化,也称为条件规则
③界面规则:不在表单设计器属性面板中配置的规则称为界面规则(也称为动态规则),如流程配置。
④表单规则:相对于界面规则而言,表单规则是指在表单设计器中为元素配置的规则,即上述静态规则、业务规则。
从上述概念可知:静态规则和业务规则互斥,即在表单设计器中只能配置二者中的一种。
1、按钮规则优先级
开发人员在表单设计器中配置了按钮的可见及可用规则,用户在流程节点中又配置了界面规则,此时对于同一个按钮就会有两个规则,规则的优先级及按钮最终状态如下:
其中 x 表示未使用该方法配置。
任意表示值可能为是或否。
其中动态规则使用 16 进制表示,最后一位代表按钮是否可见,第一位代表是否可用。其中可见时用 1 标识,不可见时用 0 标识,可用亦如此。
因此如果动态规则的值为 0x01 则表示该按钮可见但不可用。
以第三行为例,表单中配置按钮的可见或可用为条件性可见或可用(如使用状态机、变量等控制),此时在流程中配置的规则为可见、可用。那么最终的结果为该按钮依然以表单上配置的为准。
2、字段规则优先级
字段规则优先级如下:
同按钮规则,字段界面规则中由 4 位 16 进制数标识,倒数第 1 位表示是否可见、倒数第二位表示是否可编辑、倒数第三位表示是否必填,当值为 1 时分别表示可见、可编辑、必填,反之则表示不可见、只读、非必填。
六、注意事项
1、启用流程配置需重新生成编译表单。
2、如基础表单未发布到工作流,则扩展表单不支持流程配置。
3、流程配置支持组合表单场景,但不支持被组合表单。
4、流程配置不支持动态属性。
5、流程配置实现方案依赖变更集机制,因此不支持无法传递变更集的接口,如 Http method 为 GET 的 Query 接口。
6、按钮可见、可用在该特性前仅支持状态机、常量,目前支持表达式、变量、自定义、常量、状态机。如此前使用了状态机、常量等方案控制按钮状态则不受影响,如使用的方案依赖了生成,则发布表单后控制失效,错误的方案如下:
欢迎大家积极留言共建,期待与各位技术大咖的深入交流!
此外,欢迎大家下载我们的inBuilder低代码平台开源社区版,可免费下载使用,加入我们,开启开发体验之旅!
评论