Zoho CRM创建新任务时自动处理旧任务的函数故障求助
Zoho CRM 任务管理函数修复方案
问题说明
当前函数原定需求是创建新任务时删除关联线索的旧任务,但现有代码仅实现了「将到期日期≤当前日期的任务标记为已完成」的逻辑,既不符合需求,也无法正常完成删除旧任务的目标,且尚未进行任何修复尝试。
原代码
Leadinfo = zoho.crm.getRelatedRecords("Tasks","Leads",leadid); for each task in Leadinfo { taskid = task.get("id"); //tinfo = zoho.crm.getRecordById("Tasks",taskid); tdate = task.get('Due_Date').todatetime(); tt = zoho.currentdate; if(tdate <= tt) { mp = Map(); mp.put("Status","Completed"); updateResp = zoho.crm.updateRecord("Tasks",taskid,mp); } } info updateResp;
修复方案
核心修改点
- 替换操作逻辑:将标记任务为「Completed」的
updateRecord调用,替换为删除任务的deleteRecord方法 - 匹配需求场景:
- 若需删除所有关联旧任务(不考虑到期时间):直接移除日期判断的
if条件 - 若需删除到期的旧任务:保留日期判断,但替换更新操作为删除操作
- 若需删除所有关联旧任务(不考虑到期时间):直接移除日期判断的
- 优化结果收集:循环中
updateResp会被每次迭代覆盖,建议用列表收集所有删除操作的返回结果,便于排查问题
修改后的代码示例
场景1:删除关联线索的所有旧任务
Leadinfo = zoho.crm.getRelatedRecords("Tasks","Leads",leadid); deleteResults = List(); for each task in Leadinfo { taskid = task.get("id"); deleteResp = zoho.crm.deleteRecord("Tasks", taskid); deleteResults.add(deleteResp); } info deleteResults;
场景2:删除关联线索中到期(≤当前日期)的旧任务
Leadinfo = zoho.crm.getRelatedRecords("Tasks","Leads",leadid); deleteResults = List(); tt = zoho.currentdate; for each task in Leadinfo { taskid = task.get("id"); tdate = task.get('Due_Date').todatetime(); if(tdate <= tt) { deleteResp = zoho.crm.deleteRecord("Tasks", taskid); deleteResults.add(deleteResp); } } info deleteResults;
额外注意事项
- 确保函数拥有Zoho CRM中「Tasks」模块的删除权限,否则会返回权限错误
- 若线索关联的任务数量较多,可考虑添加分页逻辑处理
getRelatedRecords的返回结果(默认返回200条)
内容的提问来源于stack exchange,提问作者belal shaaban
相关产品推荐
相关产品推荐

