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) 直接传进去。
  • 复杂数据 (子表、多选列表):必须在删除发生之前(即创建/编辑时),先备份到一个文本字段里,然后删除时读取那个文本字段。
相关推荐
Android系统攻城狮4 小时前
Linux FFmpeg深度解析之avcodec_align_dimensions调用流程与实战(二十九)
服务器·linux音视频·音视频进阶·ffmpeg音视频
飞飞传输4 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
叼烟扛炮4 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农6 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器
布裘6 小时前
【银河麒麟】重启后时区丢失?排查发现 localtime 被业务程序替换成硬链接
linux·运维·网络
zhikouai7 小时前
把外部助手接进聊天软件的架构分层与参数配置
服务器·网络·php
huainingning7 小时前
锐捷10.X路由器版本升级不生效问题排查
运维·网络·智能路由器
荣合技术服务7 小时前
HPC 超算集群故障维修实录:找荣合科算维护后,模拟仿真计算又能跑了
运维·服务器·超算服务器·荣合科算
AR-26710-10 小时前
Linux Day31——实操启停服务改端口重启
linux·运维