宜点云宜点课堂
  • 首页
  • 帮助文档
  • 后端python
  • 开放平台
  • 私有云
  • 场景案例
  • 更新日志
返回控制台
返回控制台
  • 首页
  • Python教程
  • Python的改进
    • 应用后端对Python的改进部分
  • Python原生API
    • Python原生禁用API列表
    • Python原生内置API列表
  • Python功能列表
    • 全局(通用)
      • rnd
      • sleep
      • exit
      • synccorpmembers
      • getcorptype
      • gettickcount
      • getnstime
      • getrandomstr
      • getlasterror
      • geterror
    • io-日志(通用)
      • print
      • logclear
      • logclearall
      • logenable
      • logread
    • app-云应用(通用)
      • app.getappsymbol
      • app.getcurrentinfo
      • app.getapplist
    • form-表单(表单)
      • 表单错误信息
      • 表单字段类型
      • 查询条件和排序规则
      • 表单数据组合规则
      • 支持的SQL函数、关键字
      • 跨应用取数据说明
      • 表单系统字段说明
      • 表单操作
        • form.getallforminfo
        • form.getforminfo
        • form.getexternalforminfo
        • form.getallctrlinfo
        • form.getfileurl
        • form.transfileurl
      • 数据操作
        • form.select
        • form.aggregateselect
        • form.getdatabyid
        • form.insert
        • form.inserts
        • form.update
        • form.updates
        • form.delete
        • form.count
        • form.has
        • form.subinsert
        • form.subinserts
        • form.subupdate
        • form.subupdates
        • form.subdelete
      • 句柄操作
        • form.open
        • form.close
        • form.begin
        • form.commit
        • form.rollback
        • form.handleselect
        • form.handleinsert
        • form.handleinserts
        • form.handleupdate
        • form.handleupdates
        • form.handledelete
        • form.handlecount
        • form.handlehas
        • form.handlesubinsert
        • form.handlesubinserts
        • form.handlesubupdate
        • form.handlesubupdates
        • form.handlesubdelete
      • 通讯录
        • 用户ID说明
        • form.getcreatoruserid
        • form.getuserinfo
        • form.getdeptinfo
        • form.getparentdeptinfo
        • form.getdeptusers
        • form.getdeptlist
        • form.getdeptall
        • form.getroleusers
        • form.getoutsidergroupall
        • form.getoutsidergroupinfo
        • form.getoutsiderusers
        • form.moveusertodept
        • form.moveusertorole
        • form.moveoutsiderusers
      • 表单属性
        • form.getctrlattr
        • form.changectrlselect
        • form.getpublicinfo
        • form.getreportpublicinfo
      • 流程
        • form.getworkflowid
        • form.getworkflowdata
        • form.getworkflowlog
        • form.workflowstart
        • form.workflowstop
        • form.workflowcurrentinfo
      • 通知
        • app.geturl
        • form.getdataurl
        • form.sendmsg
      • 格式化
        • formataddress
        • formatlocation
      • 旧版数据操作
        • form.selectdata
        • form.selectdatas
        • form.insertdata
        • form.insertdatas
        • form.updatedata
        • form.updatedatas
        • form.deletedata
        • form.datacount
        • form.datahas
        • form.aggregateselectdata
        • form.subselectdata
        • form.subselectfield
        • form.subinsertdata
        • form.subinsertdatas
        • form.subupdatedata
        • form.subupdatedatas
        • form.subdeletedata
        • form.subdatacount
        • form.subdatahas
      • 旧版句柄操作
        • form.handleselectdata
        • form.handleselectdatas
        • form.handleinsertdata
        • form.handleinsertdatas
        • form.handleupdatedata
        • form.handleupdatedatas
        • form.handledeletedata
        • form.handledatacount
        • form.handledatahas
        • form.handlesubselectdata
        • form.handlesubselectfield
        • form.handlesubinsertdata
        • form.handlesubinsertdatas
        • form.handlesubupdatedata
        • form.handlesubupdatedatas
        • form.handlesubdeletedata
        • form.handlesubdatacount
        • form.handlesubdatahas
    • dataview-数据视图(数据分析)
      • 数据操作
        • dataview.select
        • dataview.count
        • dataview.has
      • 旧版数据操作
        • dataview.selectdata
        • dataview.selectdatas
        • dataview.datacount
        • dataview.datahas
    • os-日期时间(常用函数)
      • getmonthdays
      • getyeardays
      • timenow
      • timeadd
      • timediff
      • time2timestamp
      • timestamp2time
      • os.year
      • os.month
      • os.day
      • os.hour
      • os.minute
      • os.second
      • os.week
    • type-类型(常用函数)
      • tobool
      • toint
      • todouble
      • tostring
      • tonumber
      • isint
      • isdouble
      • isstring
      • isdict
      • islist
      • istuple
      • isjson
      • isdatetime
      • type
      • byte2string
      • float2hex
      • ip2integer
      • ip2integer
      • json.loads
      • json.dumps
    • string-字符串(常用函数)
      • string.lower
      • string.upper
      • string.title
      • string.cat
      • string.cut
      • string.equal
      • string.nequal
      • string.cmp
      • string.ncmp
      • string.left
      • string.right
      • string.len
      • string.find
      • string.rfind
      • string.findchar
      • string.rfindchar
      • string.reverse
      • string.sub
      • string.split
      • string.splitlines
      • string.getat
      • string.getchineseletter
      • string.format
      • string.appendchar
      • string.repeatself
      • string.shuffle
      • string.capitalize
      • string.center
      • string.count
      • string.encode
      • string.decode
      • string.startswith
      • string.endswith
      • string.expandtabs
      • string.index
      • string.rindex
      • string.join
      • string.ljust
      • string.rjust
      • string.strip
      • string.lstrip
      • string.rstrip
      • string.partition
      • string.rpartition
      • string.replace
      • string.swapcase
      • string.zfill
      • string.isalnum
      • string.isalpha
      • string.isdecimal
      • string.isnumeric
      • string.isdigit
      • string.islower
      • string.isupper
      • string.isspace
      • string.istitle
      • string.translation
      • str.maketrans
      • max
      • min
    • math-数学(常用函数)
      • math.sqrt
      • math.abs
      • math.sin
      • math.cos
      • math.tan
      • math.asin
      • math.acos
      • math.atan
      • math.atan2
      • math.sinh
      • math.asinh
      • math.cosh
      • math.acosh
      • math.tanh
      • math.atanh
      • math.pow
      • math.ln
      • math.ln1p
      • math.log
      • math.lg
      • math.exp
      • math.expm1
      • math.ceil
      • math.floor
      • math.radians
      • math.degrees
      • math.fmod
      • math.intdiv
      • math.hypot
      • math.pi
      • math.round
      • math.baseconvert
      • math.bin2dec
      • math.dec2bin
      • math.dec2hex
      • math.dec2oct
      • math.hex2dec
      • math.oct2dec
    • list-列表数组(常用函数)
      • list.max
      • list.min
      • list.move
      • list.append
      • list.extend
      • list.pop
      • list.removeforvalue
      • list.insert
      • list.sum
      • list.product
      • list.filterforvalue
      • list.sort
      • list.unique
      • list.index
      • list.count
      • list.reverse
    • tuple-元组数组(常用函数)
      • tuple.max
      • tuple.min
      • tuple.move
      • tuple.append
      • tuple.extend
      • tuple.remove
      • tuple.removeforvalue
      • tuple.insert
      • tuple.sum
      • tuple.product
      • tuple.filterforvalue
      • tuple.sort
      • tuple.unique
      • tuple.index
      • tuple.count
      • tuple.reverse
    • dict-字典数组(常用函数)
      • dict.clear
      • dict.max
      • dict.min
      • dict.push
      • dict.cat
      • dict.copy
      • dict.fromkeys
      • dict.get
      • dict.items
      • dict.keys
      • dict.values
      • dict.move
      • dict.remove
      • dict.removeforvalue
      • dict.pop
      • dict.popitem
      • dict.setdefault
      • dict.update
      • dict.sum
      • dict.product
      • dict.filterforkey
      • dict.filterforvalue
      • dict.sort
      • dict.unique
    • set-集合数组(常用函数)
      • set.add
      • set.update
      • set.clear
      • set.copy
      • set.isdisjoint
      • set.issubset
      • set.issuperset
      • set.discard
      • set.remove
      • set.pop
      • set.difference
      • set.difference_update
      • set.intersection
      • set.intersection_update
      • set.union
      • set.symmetric_difference
      • set.symmetric_difference_update
    • regular-正则(函数)
      • re.compile
      • re.match
      • re.match
      • re.search
      • re.finditer
      • re.split
      • re.matchemail
      • re.matchphone
      • re.matchtelephone
      • re.matchurl
      • re.matchip
      • re.matchidcard
      • re.matchqq
      • re.matchzipcode
      • re.matchnumber
      • re.matchchinese
      • re.matchtext
      • re.submatchtext
      • re.replace
      • re.subreplace
    • hash-哈希(函数)
      • md5
      • sha1
      • sha1hmac
      • sha1hmac_binary_base64
      • sha224
      • sha256
      • sha384
      • sha512
      • ripemd160
    • crypt-加密(函数)
      • base64encode
      • base64decode
      • urlencode
      • urldecode
      • gmssl
    • numpy-数值计算(函数)
      • Numpy介绍
    • curl(网络通讯)
      • curl.init
      • curl.setopt
      • curl.exec
      • curl.close
      • curl.getinfo
      • curl.escape
      • curl.unescape
      • curl.iconv
    • requests(网络通讯)
      • requests.request
      • requests.get
      • requests.post
      • requests.options
      • requests.head
      • requests.put
      • requests.patch
      • requests.delete
    • httpex(网络通讯)
      • httpex.get
      • httpex.request
      • httpex.getfileurlbase64
      • httpex.getcookies
      • httpex.updatecookies
    • websocket(网络通讯)
      • websocket.request
      • websocket.open
      • websocket.send
      • websocket.close
    • mysql(数据库)
      • mysql.open
      • mysql.close
      • mysql.exec
      • mysql.query
      • mysql.begin
      • mysql.commit
      • mysql.rollback
      • mysql.getlasteffectrecords
      • mysqlexec
      • mysqlquerybylist
      • mysqlquerybyjson
    • sqlserver(数据库)
      • sqlserver.open
      • sqlserver.close
      • sqlserver.exec
      • sqlserver.query
      • sqlserver.begin
      • sqlserver.commit
      • sqlserver.rollback
      • sqlserver.getlasteffectrecords
      • sqlserverexec
      • sqlserverquerybylist
      • sqlserverquerybyjson
    • redis(数据库)
      • redis.open
      • redis.close
      • redis.exec
      • redis.query
      • redis.set
      • redis.get
  • Python后端事件
    • _forminitial(表单初始化事件)
    • _formeditinitial(表单编辑初始化事件)
    • _flownodeinitial(流程节点初始化事件)
    • _formevent(控件触发事件)
    • _formsubmit(表单提交事件)
    • _formupdate(表单编辑事件)
    • _formdelete(表单数据删除事件)
    • _formflow(表单流程事件)
    • _datahelper(数据助手事件)
  • Python功能插件
    • 功能插件设计
    • 插件控件
      • 基础控件
      • 表单来源
        • 表单来源Config参数说明
        • 表单来源设计面板说明
      • 子表单
        • 子表单Config参数说明
        • 子表单设计面板说明
      • 字段
        • 字段Config参数说明
        • 字段设计面板说明
      • 关联字段
        • 关联字段Config参数说明
        • 关联字段面板说明
      • 过滤条件
        • 过滤条件Config参数说明
        • 过滤条件面板说明
        • 过滤条件操作符说明
    • 插件事件
      • _forminitiallib(表单初始化事件)
      • _formeditinitiallib(表单编辑初始化事件)
      • _flownodeinitiallib(流程节点初始化事件)
      • _formeventlib(表单控件触发事件)
      • _formsubmitlib(表单数据提交事件)
      • _formupdatelib(表单数据编辑事件)
      • _formdeletelib(表单数据删除事件)
      • _formflowlib(流程节点事件)
      • _formconfiglib(插件配置事件)
      • _formtasklib(计划任务事件)
      • _reporttablemenulib(报表数据表菜单按钮事件)
      • _datahelperlib(数据助手事件)
  • API限制说明
  • Lua后端停止服务通知

_formflow

  • _formflow
    • 功能说明
      • 描述
      • 函数原型
      • 参数
      • 参数详解
        • arg 的数据格式为:
      • flow 流程相关的数据格式为:
      • 返回值
      • 备注
    • 示例
      • 演示示例
      • 安装包下载
    • 相关视频

功能说明

描述

『表单流程事件』入口函数,启用后流程表单“提交创建”或“待办操作”中,提交/暂存/回退/转交/结束流程时,就会触发此功能函数。

  • 通过此事件,可以即时反馈相关信息给提交者,便于交互。
  • 此事件触发有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:通过流程操作 默认为空,为空无提示 参数无效
前置触发示意图:
后置触发示意图:

备注

  1. arg的数值是数组类型,因此大家可以通过数组的形式操作它。
  2. 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,"我是数据信息"

演示示例

  • 暂无

安装包下载

  • 暂无

相关视频

  • 暂无
最新修改于:2023-06-08