_formflow
功能说明
描述
『表单流程事件』入口函数,启用后流程表单“提交创建”或“待办操作”中,提交/暂存/回退/转交/结束流程时,就会触发此功能函数。
- 通过此事件,可以即时反馈相关信息给提交者,便于交互。
- 此事件触发有2个必要的条件:
①、表单必须为“流程事件表单”。
②、表单流程属性里,流程节点里配置了“后端事件”。
初始节点属性界面 | 其他节点属性界面 |
---|---|
- 事件触发流程:
触发事件后,前端页面会将"当前表单别名","表单数据信息","数据提交类型"传给后端对应的云应用中的"_formflow"函数,然后执行"后端代码"并返回"返回结果"和"需要界面展示的数据"。
- 前置/后置触发:
当表单提交数据时,在提交数据前或在提交数据后触发_formflow事件。默认为"前置触发",详情请见后面的事件触发示意图 。
如果选择【前置触发】:表示前置提交,先执行后端代码,再提交数据,如果返回值的第一个参数为:False,则不会提交数据。
如果选择【后置触发】:表示后置提交,先提交数据,再执行后端代码,返回True或False对数据没有影响,只是给前端的提示。
函数原型
def _formflow(formAlias,arg,action):
参数
名称 | 类型 | 描述 |
---|---|---|
formAlias | 字符型 | 表单的别名 |
arg | 数组:字典型 | 表单提交操作时传入的当前表单数据信息 |
action | 整型 | 当前的操作动作:提交/提交并打印为1,暂存为4,回退为5,转交为6,结束流程为7 |
参数详解
arg 的数据格式为:
{
"dataId":"5ace3eef23b7499b259bb8a6",
"clientIp":"xxx.xxx.xxx.xxx",
"creator":"519311e456fcb477cbf840d0",
"createTime":"2021-05-22 16:13:31",
"updateTime":"2021-05-22 16:13:31",
"formName":"流程事件表单",
"formRunOrder":False,
"operator":"519311e456fcb477cbf840d0",
"flow":{
"flowId":0,
"flowIdAlias":"节点0",
"flowVer":"1",
"operator":"519311e456fcb477cbf840d0"
},
"单行文本":{
"data":"文本内容",
"visible":True,
"widgetType":"text"
},
"数字":{
"data":123,
"visible":True,
"widgetType":"number"
},
"下拉框":{
"data":"选项1",
"visible":True,
"widgetType":"combo"
},
"子表单":{
"data":[
{
"子表单_单行文本":{
"data":"子表单文本",
"widgetType":"text"
}
}
],
"visible":True,
"widgetType":"subform"
}
}
名称 | 描述 |
---|---|
dataId | 数据id,此条数据的唯一编码 |
clientIp | 客户端ip |
creator | 提交人 |
createTime | 提交时间 |
updateTime | 更新时间 |
formName | 表单标题 |
formRunOrder | 前置与后置触发(False:前置,True:为后置) |
operator | 当前操作人 |
flow | 流程相关信息 |
flow 流程相关的数据格式为:
-
通用:提交、暂存、结束流程
{ "flow":{ "flowId":0, "flowIdAlias":"节点0", "flowVer":"1", "operator":"519311e456fcb477cbf840d0" }, }
-
回退
{ "flow":{ "backNode":1, "backNodeChargers":[ ], "flowId":2, "flowIdAlias":"节点2", "flowVer":"1", "operator":"519311e456fcb477cbf840d0" }, }
-
转交
{ "flow":{ "candidateId":"527d12785b907ace343dcbd0", "flowId":0, "flowIdAlias":"节点0", "flowVer":"1", "operator":"519311e456fcb477cbf840d0" }, }
名称 描述 备注 flowId 当前触发的流程节点id 通用,注意:撤回状态时表示为流程起点 flowIdAlias 当前触发的流程节点别名 通用,注意:撤回状态时表示为流程起点 flowVer 流程版本 通用 operator 当前操作人 通用 backNode 回退节点id 仅流程回退时才有 backNodeChargers 回退节点负责人的userid 仅流程回退时才有 candidateId 被转交人的userid 仅流程转交时才有
返回值
返回值接受多个返回值。
名称 | 类型 | 描述 |
---|---|---|
第1个返回值 | Boolean(逻辑型) | 返回结果为True(真)或False(假) |
第2个返回值(可选) | 文本字符串(字符型) | 返回文本内容给页面弹出提示 |
第3个返回值(可选) | json字符串(字符型) | 返回结果可修改前端表单字段赋值与属性 |
类型 | 返回值1 | 返回值2 | 返回值3 |
---|---|---|---|
前置返回 | True:通过流程操作 | 前端展示文本信息,为空无提示 | 参数无效 |
后置返回 | True:通过流程操作 | 前端展示文本信息,为空无提示 | 参数无效 |
前置返回 | False:拦截流程操作 | 前端展示文本信息,为空无提示 | 根据json字符串,修改前端表单字段赋值与属性 |
后置返回 | False:通过流程操作 | 前端展示文本信息,为空无提示 | 参数无效 |
没有返回 | 默认True:通过流程操作 | 默认为空,为空无提示 | 参数无效 |
前置触发示意图: |
---|
后置触发示意图: |
---|
备注
- arg的数值是数组类型,因此大家可以通过数组的形式操作它。
- form事件可以解决很多我们前端字段做不到的事情。
- 例如:
批量录入数据,并自动计算相关内容;
以特殊格式或需求对提交的数据做特殊校验,如:会员卡、工作证校验等。
示例
def _formflow(formAlias,arg,action):
# 字段字段返回格式(具体格式请参照 _formevent 里的说明)
datas={}
datas["单行文本"]={"data":"123"}
datas["多行文本"]={"data":"456"}
datas["数字"]={"data":123}
# 字段的错误提示信息(index: 表示子表单里第几行数据, 从0开始索引)
datas["_errcontrol"]=[{"name":"单行文本","tip":"单行文本tip"},{"name":"数字","tip":"数字tip"},{"name":"多行文本","tip":"多行文本tip"},{"name":"子表单","tip":"子表单提示","data":[{"name":"子表单单行文本1","index":[0]},{"name":"子表单多行文本1","index":[1,2,3]}]}]
# 设定触发公式的字段
datas["triggerControl"]="单行文本"
#将返回的数据转为json
out_ret=json.dumps(datas,ensure_ascii=False)
# return False,"我是数据的信息",out_ret
return True,"我是数据信息"
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无