Salesforce Apex 中的可调用方法问题

问题描述 投票:0回答:1

我对 Apex 开发非常陌生,我正在尝试从 Salesforce 流中批量传递记录中的字符串列表,但无法让 Apex 脚本工作。如果我尝试从外部流调用,代码将不会运行。但是,如果我从可调用方法中调试代码块,它就会运行...有人能够提供一些见解吗?

public without sharing class trac_GuidestarOrgUpdateBatch {
@InvocableMethod(Label='Update Bulk Organisations' Description='Updates list of orgs returned from guidestar.' Category='Account')
public void<String> getBulkOrganisations(List<String> searchKeywords){
    
    //Get search list
    List<Account> search = [SELECT EIN__c, Primary_Issue_Area__c FROM Account WHERE EIN__c =: searchKeywords];
    
    //Initialize account list to update
    List<Account> accountList = new List<Account>();
    
    for (Account acct : search) {
        acct.Primary_Issue_Area__c = 'New test';
        accountList.add(acct);
    }
    Database.update(accountList,false);    
}

salesforce apex apex-code salesforce-lightning
1个回答
0
投票

你确定它不执行吗?打开开发人员控制台(或“设置”->“调试日志”并开始自己跟踪),执行屏幕流程,查看是否生成了包含您的代码的日志。 检查应该找到的帐户,查看值是否已更改(或者该值是否已经是“新测试” - 上次修改日期、上次修改者已更改)

我看到的最大问题是

Database.update(accountList,false);

要么做一个正常的

update accountList;
(你可能会注意到它会抛出错误)。或者您可以处理
Database.update
返回的内容并执行...某些操作(为每个无法更新的帐户创建一个任务?)。像https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_database_saveresult.htm

© www.soinside.com 2019 - 2024. All rights reserved.