You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Salesforce Flow调用Apex可调用方法失败,调试正常求助

问题修复指南

代码语法错误修正

你的Apex类存在两个关键错误,导致Flow无法正常调用:

  • Invocable方法必须为静态方法:Salesforce规定@InvocableMethod修饰的方法必须是static,否则外部组件(如Flow)无法访问。
  • 返回类型写法非法:void<String>是错误语法,无返回值时直接写void即可。

同时SOQL中匹配集合应使用IN而非=(虽然Salesforce会兼容,但IN更符合规范)。

修复后的完整代码:

public without sharing class trac_GuidestarOrgUpdateBatch {
    @InvocableMethod(Label='批量更新组织' Description='更新从Guidestar返回的组织列表' Category='Account')
    public static void getBulkOrganisations(List<String> searchKeywords){
        // 查询匹配EIN的账户
        List<Account> searchAccounts = [SELECT EIN__c, Primary_Issue_Area__c FROM Account WHERE EIN__c IN :searchKeywords];
        
        List<Account> updateAccounts = new List<Account>();
        for (Account acct : searchAccounts) {
            acct.Primary_Issue_Area__c = 'New test';
            updateAccounts.add(acct);
        }
        Database.update(updateAccounts, false);
    }
}

Flow调用验证步骤

  1. 重新部署修正后的Apex类
  2. 在Flow中重新选择该Invocable方法,确认参数映射正确(确保传递的是字符串类型的EIN字段列表,与方法参数类型匹配)
  3. 测试时确认传递的EIN值在Account对象中存在,避免因无匹配记录导致无更新效果

调试技巧

若修复后仍无反应,可添加调试日志排查:

// 在方法开头添加
System.debug('传入的EIN列表:' + searchKeywords);
System.debug('查询到的账户数量:' + searchAccounts.size());

通过Setup的调试日志功能查看执行记录,确认参数是否正确传递、是否查询到目标数据。

内容的提问来源于stack exchange,提问作者Daniel Zhou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:40:05