zoho crm有一个deluge操作是在记录删除后触发的,但是记录删除后就查不到了,应该怎么解决

核心原因:

当 Zoho CRM 触发"删除后 (On Delete)"的工作流时,数据库中的那条记录确实已经消失了。因此,任何在 Deluge 脚本中尝试使用 zoho.crm.getRecordById() 去查这条记录的操作都会返回 null 或报错。

解决方案:不要"去查",而是"带着走"。

你必须在配置工作流和函数关联的时候,通过 "编辑参数 (Edit Arguments)" 将你需要的数据直接传给函数,而不是在函数内部去查询。

以下是具体操作步骤:

方法一:利用函数参数映射(适用于主模块字段)

这是最标准的方法。虽然记录被删除了,但在工作流触发的那一毫秒,系统内存中还保留着该记录"临终前"的数据。

  1. 进入设置:工作流规则 -> 选择触发器为"记录删除 (On Delete)"。

  2. 关联函数:在动作中选择你的 Deluge 函数。

  3. 关键步骤 - 编辑参数 (Edit Arguments)

    • 在函数配置弹窗中,点击 "编辑参数"
    • 这是你唯一获取数据的机会。
    • 定义键名(例如 deleted_subject),按 # 键选择该模块的字段(例如 主题)。
    • 把你所有需要用到的字段全部映射一遍。
  4. Deluge 代码写法:
    错误写法 ❌:

    javascript 复制代码
    // 在删除触发中,这绝对查不到数据
    rec = zoho.crm.getRecordById("Quotes", quote_id); 
    name = rec.get("Subject");

    正确写法 ✅:

    (假设你在参数映射里已经把 Subject 映射给了变量 arg_subject

    javascript 复制代码
    // 直接使用映射进来的变量,不需要查库
    info "被删除的记录主题是: " + arg_subject;
    
    // 你可以在这里直接把 arg_subject 发送给外部 API

方法二:应对"子表/相关列表"数据(快照法)

痛点: 方法一只能映射主模块的字段(如金额、名称、所有者)。如果你需要获取 "被删除记录底下的子表数据(如报价单里的产品明细)",方法一是不行的,因为参数映射不支持映射整个子表 List。

这时候就必须结合我们之前讨论过的 "快照 (Snapshot)" 方案:

  1. 前期准备:

    在主模块建一个隐藏的长文本字段(例如 JSON_Backup)。

  2. 保存时备份:

    写一个"创建/编辑"时触发的脚本,每次记录保存时,把子表数据转成 JSON 字符串,存入 JSON_Backup 字段。

  3. 删除时获取:

    在"删除后"的脚本中,使用 方法一 映射 JSON_Backup 这个字段到变量。

  4. 解析:

    代码如下:

    javascript 复制代码
    // 假设 arg_json_backup 是通过参数映射传进来的长文本
    if(arg_json_backup != null && arg_json_backup != "")
    {
        // 还原之前保存的子表数据
        subform_list = arg_json_backup.toList(); 
        
        // 现在你可以遍历这个列表,知道删除了哪些详细产品了
        for each item in subform_list
        {
             // ...
        }
    }

总结

  • 主字段数据 (如 ID、Name、Total):在工作流配置页面通过 参数映射 (Key-Value Mapping) 直接传进去。
  • 复杂数据 (子表、多选列表):必须在删除发生之前(即创建/编辑时),先备份到一个文本字段里,然后删除时读取那个文本字段。
相关推荐
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之git命令(实操篇)
linux·服务器·笔记·git·elasticsearch
半夏知半秋2 小时前
docker常用指令整理
运维·笔记·后端·学习·docker·容器
逆风水手3 小时前
Ansible自动化运维入门指南
linux·运维·自动化·ansible
tianyuanwo3 小时前
SSH会话管理实战:识别与清理非法连接的完整指南
运维·ssh
小豆子范德萨3 小时前
两台window配置SSH免密登录
运维·ssh
小北方城市网3 小时前
第 6 课:Vue 3 工程化与项目部署实战 —— 从本地开发到线上发布
大数据·运维·前端·ai
曹牧5 小时前
C#:记录日志
服务器·前端·c#
记得记得就1515 小时前
docker作业
运维·docker·容器
运维行者_6 小时前
OPM 与传统管理工具的区别,在网络修复与自动化运维方面的优势在哪里?
运维·服务器·开发语言·网络·自动化·php·ssl
HaSaKing_7216 小时前
EMQX 多机集群部署完整实践(Docker + 社区版 5.8.8)
运维·docker·容器·emqx