Zoho Creator中超时更换审批人及实现审批升级需求
解决Zoho Creator审批升级问题:超时请求从Approver 1转移到Approver 2
问题根源
你改了状态字段但请求还留在Approver 1队列,是因为Zoho Creator的审批任务和表单状态是分离的——状态只是个标记,队列里的实际审批任务没被移除或重新分配。
具体解决步骤
1. 给定时工作流加「删除Approver 1的待审批任务」操作
在你现有的延迟x分钟的定时工作流里,除了修改状态字段,必须加这一步:
用Zoho Creator的Deluge脚本,先找到该记录下Approver 1的待审批任务,然后删除它:
// 替换成你的表单名称,input.ID是定时工作流触发时的当前记录ID approval_tasks = getApprovalTasks("你的表单名", input.ID); for each task in approval_tasks { // 匹配Approver 1的待处理任务,可用邮箱或用户ID匹配 if task.approver == "approver1@xxx.com" && task.status == "Pending" { deleteApprovalTask(task.id); } }
2. 给Approver 2创建新的审批任务
删完旧任务,得给Approver 2生成新的审批任务,不然他看不到请求:
addApprovalTask( "你的表单名", input.ID, { approver: "approver2@xxx.com", approval_type: "Single", // 跟你原来的审批类型保持一致,比如Sequential status: "Pending", message: "该请求超时未处理,已升级至你审批" } );
3. 检查审批队列的过滤逻辑
如果你的审批队列(比如给审批人看的仪表盘视图)是靠表单状态过滤的,得改成按审批任务的分配对象过滤:
- 过滤条件设为:
审批任务.approver == 当前用户 && 审批任务.status == Pending
这样队列里只会显示分配给当前用户的待处理任务。
4. 可选:加超时通知
顺便在工作流里加个通知,给Approver 1发个超时提醒,给Approver 2发新审批通知,用sendMail()或者Creator内置的通知功能就行。
注意点
- 确保工作流有操作审批任务的权限,在表单设置里开启高级操作权限
- 记录ID直接用
input.ID即可,定时工作流触发时会自动携带当前记录的ID - 审批类型要和你原来的流程一致,别随意修改,避免审批逻辑混乱
内容的提问来源于stack exchange,提问作者Tech_geek
相关产品推荐
相关产品推荐

