跳到主要内容

流程设计

1. Flow 中的节点

nodes

1.1 触发器

触发器就是定时任务,可定时执行当前流程。定时方式一共有三种

1.2 应用中的操作

去选择各种 SDKSDK 可自定义 sdks

1.3 IF 条件

满足 IF 的条件,即可进入 IF 分支中。条件可以有一个活多个,这些条件的关系可以是“且”或者“或”。如果选择了“且”,那么所有的条件之间的关系都是“且”。 if

1.4 IF/ELSE 条件

满足 IF 的条件,即可进入 IF 分支中,否则进入 ELSE 分支中。IF-ELSE 中的条件和 IF 中一样

if-else

1.5 重复动作

repeat

  • 重复类型
    • 输入列表 - 对某个列表进行循环
    • 重复次数 - 循环多少次
  • 重复模式 - 暂不支持
  • 清除步骤输出 - 暂不支持
  • 是否并发 - 是,表示循环的所有数据是同时进行的。否,表示循环时一条一天进行的

1.6 停止任务

标识流程结束 stop

1.7 处理错误

类似于程序中的 try-catch,就是当某些操作失败了以后,要执行另外一些操作

try-catch

1.8 表单操作

form-entity

  • 权限 - 打开此表单所需的表单
  • 表单 - 可选择表单显示在此节点
  • 布局 - 电脑端的布局
  • 移动端布局 - 手机端的布局
  • 操作 - 新建还是编辑当前表单
  • 超时时间 - 多长时间当前节点就会超时
  • 超时时间单位 - 天/小时/秒
  • 成功信息 - 提交表单成功后的提示信息
  • 默认值 - 设置表单默认值

1.9 审批操作

form-entity

  • 权限 - 打开此表单所需的表单
  • 表单 - 可选择表单显示在此节点
  • 布局 - 电脑端的布局
  • 移动端布局 - 手机端的布局
  • 实体实例 - 对某个表单的审批,表单一定是已经存在的。表单的实例 id
  • 成功信息 - 审批成功后的提示信息
  • 同意时是否需要意见 - 同意时是否需要意见
  • 拒绝时是否需要意见 - 拒绝时是否需要意见
  • 超时时间单位 - 天/小时/秒
  • 成功信息 - 提交表单成功后的提示信息

2. Flow 中的 token

2.1 固定的 token

2.1.1 $SUBMITTER.xxx

流程启动者的信息

可选项

  • id - 数据库 id
  • userId - 同 id
  • username - 用户名/登录名
  • nickName - 别名
  • email - 邮箱
  • phone - 电话
  • gender - 性别
  • birthday - 生日
  • position - 职位
  • workStatus - 工作状态
  • mailingAddress - 邮寄地址
  • department - 部门
  • avatarPath - 头像路径
  • roles - 角色名称
  • parameter_1 - 自定义字段
  • ...
  • parameter_50 - 自定义字段
  • visible_parameter_1 - 自定义字段
  • ...
  • visible_parameter_50 - 自定义字段

使用案例

// 1. 直接使用
$SUBMITTER.phone
// 2. 混合使用
提交者的电话为:$SUBMITTER.phone

2.1.2 $CURRENT_USER.xxx

当前登录用户的信息

  • id - 数据库 id
  • userId - 同 id
  • username - 用户名/登录名
  • nickName - 别名
  • email - 邮箱
  • phone - 电话
  • gender - 性别
  • birthday - 生日
  • position - 职位
  • workStatus - 工作状态
  • mailingAddress - 邮寄地址
  • department - 部门
  • avatarPath - 头像路径
  • roles - 角色名称
  • parameter_1 - 自定义字段
  • ...
  • parameter_50 - 自定义字段
  • visible_parameter_1 - 自定义字段
  • ...
  • visible_parameter_50 - 自定义字段

使用案例

// 1. 直接使用
$CURRENT_USER.phone
// 2. 混合使用
当前用户的电话为:$CURRENT_USER.phone

2.1.3 $FLOW_INSTANCE_ID

当前流程的 ID

使用案例

// 1. 直接使用
$FLOW_INSTANCE_ID

2.1.4 $THREAD_ID

当前 Thread Id,通常用在 重复动作 的子节点中

使用案例

// 1. 直接使用
$THREAD_ID

2.1.5 $CURRENT_TIME.xxx

获取当前时间

  • YYYY_MM_DD_HH_mm - 标准日期时间格式,精确到分:yyyy-MM-dd HH:mm。例如:2022-08-25 10:08
  • YYYY_MM_DD_HH_mm_ss - 标准日期时间格式,精确到秒:yyyy-MM-dd HH:mm:ss。例如:2022-08-25 10:08:22
  • YYYY_MM_DD - 标准日期时间格式 yyyy-MM-dd。例如:2022-08-25

使用案例

// 1. 直接使用
$CURRENT_TIME.YYYY_MM_DD
// 2. 混合使用
当前时间为: $CURRENT_TIME.YYYY_MM_DD_HH_mm

2.1.6 $QUERY_PARAMS.xxx

获取 URL 中的 query parameter,主要用在表单的默认值中。

使用案例

// 假设当前表单路径为 /ui/mobile/activities/137145/registration?activityId=110&activityName=羽毛球比赛,那么在表单中,即可以使用
$QUERY_PARAMS.activityId
$QUERY_PARAMS.activityName

2.1.7 $APPLICATION.xxx

获取配置文件中的信息,配置存在于后端的 application.yml, application-prod.yml

使用案例

$APPLICATION.app.base-url

2.2 动态 token

2.2.1 如果是获取表单的结果

  • $x.formEntityDataId - 替换 $x 为对应的节点的 ID。表示表单的实例 ID
  • $x.formEntityData.xxx - 替换 $x 为对应的节点的 ID。表示表单中的数据。

3. SDK

3.1 内置 SDK

  • 企业微信发送消息 - 给对应用户发消息,有三个参数

  • 新建表单数据 - 此 SDK 暂时没有 UI 界面,可以编辑 JSON

    {
    "id": xxx,
    "type": "APP",
    "sdk": {
    "id": 13,
    "name": "新建表单数据",
    "sdkType": "CREATE_ENTITY",
    "inputFields": [],
    "outputFields": [],
    "formInput": {
    "userId": "$2.value.userId",
    "username": "$2.value.username",
    "nickname": "$2.value.nickName"
    },
    "formEntityId": "1"
    }
    }

4. 新建流程

TODO