最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

salesforce 中 Account 转移给新 Owner 后如何仅转移 Case,而不转移 Opportunity

业界 admin 1浏览 0评论

在 Salesforce 中,当更改 Account Owner 时,系统默认会将所有相关的 Opportunities(商机)Cases(案例) 也一并转移给新的 Account Owner。如果你希望 仅转移 Case,而不转移 Opportunities,可以考虑以下几种方法:

方案 1:手动调整(适用于小规模调整)

  1. 更改 Account Owner 时,在弹出的“确认所有权转移”窗口中:
    • 取消勾选 “Transfer open opportunities”(转移开放的商机) 选项。
    • 保持勾选 “Transfer open cases”(转移开放的案例)
  2. 确认后提交,只有 Case 会转移,而 Opportunities 仍然归原来的 AM。

方案 2:流程自动化(适用于大规模调整)

如果你需要自动化这个流程,可以通过 Flow(流程构建器)Apex 触发器 来实现:

方法 1:使用 Flow
  1. 进入 Setup(设置) > Flow(流程)
  2. 选择 Record-Triggered Flow(记录触发流)
  3. 触发条件
    • Account Owner 变更新 Owner 是 BS 时触发。
  4. 添加决策逻辑
    • 如果 Account Owner 发生更改,则更新所有 Case 的 Owner 为新的 BS。
    • 不包含 Opportunities 的变更。
  5. 保存并激活 Flow
方法 2:使用 Apex Trigger

如果 Flow 无法满足需求,可以使用 Apex Trigger 进行更细粒度的控制:

trigger PreventOpportunityTransfer on Account (before update) {
    for (Account acc : Trigger.new) {
        Account oldAcc = Trigger.oldMap.get(acc.Id);
        
        // 只有当 Owner 发生变更时执行
        if (acc.OwnerId != oldAcc.OwnerId) {
            // 查找该 Account 下的所有 Opportunities,并恢复 OwnerId
            List<Opportunity> opps = [SELECT Id, OwnerId FROM Opportunity WHERE AccountId = :acc.Id];
            
            for (Opportunity opp : opps) {
                opp.OwnerId = oldAcc.OwnerId; // 保持原来的 Owner
            }
            update opps; // 更新商机,保持原有 Owner
        }
    }
}

解释

  • 当 Account Owner 发生变更时,触发器会自动 保持 Opportunities 的 Owner 不变,从而只转移 Cases。

方案 3:使用 Data Loader 进行批量更新

如果只是一次性调整,可以:

  1. 先导出 需要修改的 Account 及其相关的 OpportunitiesCases
  2. 手动修改 需要转移的 Cases 的 Owner,而不修改 Opportunities 的 Owner。
  3. 使用 Data Loader 或 Workbench 进行批量更新。

总结

  • 手动操作 适用于小量数据,直接取消勾选“Transfer open opportunities”即可。
  • Flow 自动化 适用于需要规则化操作,能避免人工操作失误。
  • Apex 触发器 适用于更复杂的逻辑,比如防止系统意外转移 Opportunities。
  • Data Loader 批量更新 适用于一次性调整大批量数据。

你可以根据需求选择合适的方法,如果你的 Salesforce 版本支持 Flow,推荐优先尝试 Flow 方案,无代码即可实现。

在 Salesforce 中,当更改 Account Owner 时,系统默认会将所有相关的 Opportunities(商机)Cases(案例) 也一并转移给新的 Account Owner。如果你希望 仅转移 Case,而不转移 Opportunities,可以考虑以下几种方法:

方案 1:手动调整(适用于小规模调整)

  1. 更改 Account Owner 时,在弹出的“确认所有权转移”窗口中:
    • 取消勾选 “Transfer open opportunities”(转移开放的商机) 选项。
    • 保持勾选 “Transfer open cases”(转移开放的案例)
  2. 确认后提交,只有 Case 会转移,而 Opportunities 仍然归原来的 AM。

方案 2:流程自动化(适用于大规模调整)

如果你需要自动化这个流程,可以通过 Flow(流程构建器)Apex 触发器 来实现:

方法 1:使用 Flow
  1. 进入 Setup(设置) > Flow(流程)
  2. 选择 Record-Triggered Flow(记录触发流)
  3. 触发条件
    • Account Owner 变更新 Owner 是 BS 时触发。
  4. 添加决策逻辑
    • 如果 Account Owner 发生更改,则更新所有 Case 的 Owner 为新的 BS。
    • 不包含 Opportunities 的变更。
  5. 保存并激活 Flow
方法 2:使用 Apex Trigger

如果 Flow 无法满足需求,可以使用 Apex Trigger 进行更细粒度的控制:

trigger PreventOpportunityTransfer on Account (before update) {
    for (Account acc : Trigger.new) {
        Account oldAcc = Trigger.oldMap.get(acc.Id);
        
        // 只有当 Owner 发生变更时执行
        if (acc.OwnerId != oldAcc.OwnerId) {
            // 查找该 Account 下的所有 Opportunities,并恢复 OwnerId
            List<Opportunity> opps = [SELECT Id, OwnerId FROM Opportunity WHERE AccountId = :acc.Id];
            
            for (Opportunity opp : opps) {
                opp.OwnerId = oldAcc.OwnerId; // 保持原来的 Owner
            }
            update opps; // 更新商机,保持原有 Owner
        }
    }
}

解释

  • 当 Account Owner 发生变更时,触发器会自动 保持 Opportunities 的 Owner 不变,从而只转移 Cases。

方案 3:使用 Data Loader 进行批量更新

如果只是一次性调整,可以:

  1. 先导出 需要修改的 Account 及其相关的 OpportunitiesCases
  2. 手动修改 需要转移的 Cases 的 Owner,而不修改 Opportunities 的 Owner。
  3. 使用 Data Loader 或 Workbench 进行批量更新。

总结

  • 手动操作 适用于小量数据,直接取消勾选“Transfer open opportunities”即可。
  • Flow 自动化 适用于需要规则化操作,能避免人工操作失误。
  • Apex 触发器 适用于更复杂的逻辑,比如防止系统意外转移 Opportunities。
  • Data Loader 批量更新 适用于一次性调整大批量数据。

你可以根据需求选择合适的方法,如果你的 Salesforce 版本支持 Flow,推荐优先尝试 Flow 方案,无代码即可实现。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论