巧用智能助手实现会议室状态变更,避免使用时间冲突
1. 简介
1.1 案例简介
会议室预约是人事管理里中非常高频的场景,本案例将介绍,如何通过 智能助手Pro、数据联动、流程搭建会议室预约系统,实现会议室使用时间校验,有效避免会议室使用冲突,减小沟通成本,提高办公效率。
1.2 设计思路
1)当成员在「会议室预约」表单中申请会议室时,通过智能助手Pro 同步新增到辅助表「会议室申请记录」中;
2)会议室申请审批完成后,通过智能助手Pro 将审批结果同步更新到辅助表「会议室申请记录」中;
3)在「会议室预约」表单中通过数据联动,调用「会议室申请记录」中的会议室预约记录;
4)在「会议室预约」表单中设置流程节点提交校验,当本次预约时间与已有的会议室申请记录有时间冲突时,不能提交表单。
1.3 预期效果
在「会议室预约」中选择要预约的会议室后,即可通过查询字段查看到该会议室的预约记录。选择会议的开始、结束时间时,如果与预约记录中的会议开始时间、结束时间有冲突,则会进行流程节点校验,无法提交表单;修改会议的开始、结束时间和预约记录不冲突后,即可完成表单提交,效果如下:
2. 设置步骤
在学习之前建议安装 人事OA管理 应用模板,本文将按照模板中的示例数据进行讲解。
2.1 表单设计
本案例需要使用 3 张表单,分别是:
- 会议室基础表:用于录入会议室地点、名称、容纳人数、设备等基础信息;
- 会议室预约:用于进行会议的预约申请、行政审批;
- 会议室申请记录:作为智能助手Pro 的新增、修改辅助表,用于后续表单校验的调用。
2.2 配置智能助手Pro
「会议室预约」同步至「会议室申请记录」的流程为:
- 提交预约申请时,同步在「会议室申请记录」中新增一条记录。此时,申请结果信息为空;
- 提交后,预约申请会流转至审批节点,需要在审批后,将审批结果同步至上述记录中。
如何通过一个智能助手Pro 解决上述两类事件呢?
2.2.1 配置思路
1)多选如下触发动作,以实现在新增会议室预约和审批预约申请时,均能触发该智能助手Pro:
2)利用修改数据节点的「没有可修改的数据时,向对应表单新增数据」特性,结合过滤条件设置,来区分并按情况执行如下两类事件:
- 新增预约时,未能在「会议室申请记录」表中找到对应记录,直接新增;
- 审批预约时,能在「会议室申请记录」表中找到对应记录,同步审批意见。
注:关于修改数据节点的使用方式和执行逻辑,可参考文档 修改数据节点使用说明。
2.2.2 配置步骤
1)进入「管理后台 >> 智能助手」,新建智能助手Pro「同步会议室预约情况至申请记录表」,并设置触发方式为「表单触发」,触发表单为「会议室预约」。
2)选中触发节点,进行如下设置:
- 触发动作1:新增数据时
- 触发动作2:节点流转时
- 选择流程节点:审批节点
- 选择节点行为:提交
3)添加一个 修改数据 节点,用于同步新增/修改会议室的预约情况。
4)进一步对 修改数据 节点进行如下设置:
- 修改对象:选择表单修改数据
- 目标表单:会议室申请记录
- 过滤条件:
- 「会议室编号」等于「触发数据--会议室编号」
- 「当前时间」等于「触发数据--当前时间」
- 「会议主题」等于「触发数据--会议主题」
- 「预约人」等于「触发数据--预约人」
- 勾选「没有可修改的数据时,向对应表单新增数据」
- 字段修改赋值:将「审批意见」赋值为触发数据中「审批意见」的字段值
5)进行字段新增赋值,设置步骤如下:
- 切换至「新增数据」:在此处进行新增数据时,各字段值的设置;
- 设置字段值:将各字段值设置为触发数据中相应字段的值。
6)配置完成后,点击「保存并启用」,将智能助手Pro 投入实际使用。
2.3 设置数据联动
在「会议室预约」表单中新增 3 个辅助字段:「开始时间判断」、「结束时间判断」、「开始和结束时间判断」,用于对会议室预约时间进行校验,避免使用时间冲突,字段的数据联动配置如下:
1)选中「开始时间判断」字段,在「字段属性 >> 默认值」处,设置选项为「数据联动」,点击「数据联动设置」:
2)进入数据联动设置页面,具体设置如下:
- 联动表单:会议室申请记录
- 联动条件:
- 当前表单中的「会议室」等于联动表单的「会议室」字段
- 当前表单中的「会议开始时间」小于等于联动表单的「会议开始时间」字段
- 当前表单中的「会议结束时间」大于等于联动表单的「会议开始时间」字段
- 当前表单中的「审批意见」不等于“拒绝”
- 触发联动:「开始时间判断」字段显示联动表单的「会议主题」
全部设置完成点击「确定」。
3)同样的方法,设置「结束时间判断」字段的数据联动规则如下:
- 联动表单:会议室申请记录
- 联动条件:
- 当前表单中的「会议室」等于联动表单的「会议室」字段
- 当前表单中的「会议开始时间」小于等于联动表单的「会议结束时间」字段
- 当前表单中的「会议结束时间」大于等于联动表单的「会议结束时间」字段
- 当前表单中的「审批意见」不等于“拒绝”
- 触发联动:「结束时间判断」字段显示联动表单的「会议主题」
全部设置完成点击「确认」。
4)同样的方法,设置「开始和结束时间判断」字段的数据联动规则如下:
- 联动表单:会议室申请记录
- 联动条件:
- 当前表单中的「会议室」等于联动表单的「会议室」字段
- 当前表单中的「会议开始时间」大于等于联动表单的「会议开始时间」字段
- 当前表单中的「会议结束时间」小于等于联动表单的「会议结束时间」字段
- 当前表单中的「审批意见」不等于“拒绝”
- 触发联动:「开始和结束时间判断」字段显示联动表单的「会议主题」
全部设置完成点击「确认」。
2.4 设置流程提交校验
1)进入「流程设定」,选中「流程发起节点」,在「节点属性 >> 更多属性 >> 节点校验条件」处,选择「满足条件的数据才可提交」,点击下方「添加校验条件」:
2)在节点提交校验页面,设置校验内容如下:
- 不满足校验条件时提示文字:会议结束时间必须大于会议开始时间
- 公式:
会议开始时间<会议结束时间
3)同样的方法,设置如下节点校验条件:
- 不满足校验条件时提示文字:会议开始时间需要大于当前时间!
- 公式:
当前时间<会议开始时间
- 不满足校验条件时提示文字:开始时间与历史预约记录有冲突,请修改后提交!
- 公式:(即校验是否该会议开始时间已有其他会议占用)
EXACT(开始时间判断,'')
- 不满足校验条件时提示文字:结束时间与历史预约记录有冲突,请修改后提交!
- 公式:(即校验是否该会议结束时间已有其他会议占用)
EXACT(结束时间判断,'')
- 不满足校验条件时提示文字:开始和结束时间与历史预约记录有冲突,请修改后提交!
- 公式:(即校验是否该会议时间已有其他会议占用)
EXACT(开始和结束时间判断,'')
2.5 效果演示
效果演示参见本文【1.3 预期效果】。