自定义流程函数

系统提供了大量的流程函数,参考《流程函数》,用于形成各种表达式。对于开发者而言,可能存在一些常用组合。系统提供自定义流程函数,实现将组合后的表达式定义为一个函数,支持定义参数。在流程设计中和系统定义的流程函数显示在一起,用法一致,从而实现快速开发

新建函数

在门户应用的工作流管理中提供的“自定义流程函数”功能,在此功能中可以创建函数,目前支持了执行者、子流程和通用函数的创建。

1721965560480

1721965573541

  • 执行者函数会在设置处理人的函数列表中显示
  • 子流程函数在动态子流程函数中显示
  • 通用函数在设置任务标题或者生效条件的常见规则的列表显示

如下把“流程发起人的主管”这个执行者类型的复合表达式创建为可以配置的表达式

  • 函数名称设置为:流程发起人的主管
  • 序号为:自定义函数列表中的显示顺序,在函数列表中优先显示自定义函数
  • 函数类型为:执行者函数
  • 函数模版:findDirectorWF(firstOrgUnitFID(findActivityExecutor('START')), {level})

函数模版就是最终需要的多个原子函数的组合函数,如果原子函数中有参数需要设置,在函数模版中通过 {} 设置参数,如上 {level},然后在添加参数列表中添加参数

1721965604279

添加参数

点击“添加参数”会在列表中添加一条记录,在记录中设置参数的标识、名称、类型、默认值、编辑器等

1721965615338

参数类型有“文本、数字和布尔”三个选项,如本案例中的 level 参数就是数字类型的。

参数编辑器有“组织选择器、表单选择器、环节选择器、角色选择器、枚举、输入”

  • 组织选择器:在流程定义中设置此参数值时,可以直接打开组织树进行选择
  • 数据选择器:在流程定义中设置此参数值时,可以直接列出当前流程定义关联的业务数据集的字段进行选择
  • 环节选择器:在流程定义中设置此参数值时,可以直接列出当前流程定义中的环节列表进行选择
  • 角色选择器:在流程定义中设置此参数值时,可以直接打开已有的角色列表进行选择
  • 组织类型选择器:在流程定义中设置此参数值时,可以直接打开组织类型列表进行选择
  • 枚举:在流程定义中设置此参数值时,可以在函数定义中枚举的值进行选择
  • 输入:在流程定义中设置此参数值时,需要自己手动输入

如本例中 level 设置参数编辑器为枚举,在枚举列中编辑需要的值

1721965630802

1721965640400

参数定义完成后就相当于复合函数已经定义完成,在 ide 中、流程定义和流程定制中设置流程表达式时都可以读取到自定义函数

1721965908634

案例

子流程函数

系统中提供的子流程函数中的流程标签是静态的,如果需要将业务数据作为流程标签,需要自定义一个子流程函数

定义函数

在企业门户中,打开“系统管理-工作流管理-自定义流程函数”,添加一个函数,设置如下图所示

  • 函数类型:选择子流程函数
  • 函数模版:输入 findProcessByTagAndOrg({tag}, parentFIDByKind(currentPersonMemberFID(), 'ogn', true)),表示当前人机构类型下有特定标签的流程
  • 参数:添加 tag 参数,设置参数名称为业务数据,设置编辑器为数据选择器,用于选择当前流程定义关联的业务数据集的字段

1741678874123

使用函数

在流程图的子流程环节上,设置动态子流程属性,函数列表中显示出上面新建的函数及参数,点击参数名,弹出数据编辑器,选择一列即可,设计界面如下图所示

1741678982298

results matching ""

    No results matching ""