我是 apex 的新手,并且已经建立了一个每天运行的 apex 计划课程。如果帐户的佣金帐户审核日期是两周(14 天)后,调度程序将向我们的销售部门发送电子邮件。该电子邮件包含指向流的链接。流程开始计算新佣金的过程。为此,流程需要了解从触发发送电子邮件的帐户中提取信息,该帐户的帐户审核日期为 2 周。
目前,电子邮件可以正常发送,并带有指向流程的链接。到流程的链接有效,但是一旦您进入流程,流程就不知道/理解它应该从哪个帐户提取信息。我不确定是否需要更改调度程序中的代码和/或流程中的代码。
以下是流程访问信息的方式:
在第一个屏幕之前,会发生流中的记录查找。它从帐户 ID 和变量 vaAccountID 中提取信息。我认为变量 {!vaAccountID} 填充了与佣金相关联的 AccountID。
当我运行我的调度程序时,我让它根据帐户 ID 确定是否有一个帐户具有帐户审核日期。它将带有流链接的电子邮件模板发送到销售部门。
调度程序发送电子邮件并且“高兴”。执行该方法所需的标准是完整的(有一个帐户的帐户审核日期为 14 天后,它会发送电子邮件)。
global class AccountReviewSchedulerEmailAcc implements Schedulable {
global void execute (SchedulableContext ctx)
{
sendEmail();
}
public void sendEmail()
{
for(Account acc : [SELECT Id FROM Account WHERE Next_Account_Review_Date__c = : system.Today().addDays(14)])
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setTemplateId('00XF0000000LfE0');
mail.setTargetObjectId('005J0000000JWYx');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
}
然而,流程并不“快乐”。它不知道从哪个帐户中提取信息。
在流程的第一个屏幕中,它应该显示经常性收入并链接到帐户页面。经常性收入字段为空白。帐户页面的链接不起作用。
如果我尝试通过流程的第一个屏幕,我会收到来自 Salesforce 的一般错误屏幕和来自 Salesforce 的详细错误消息。它说:
Encountered unhandled fault when running process Organic_Commission_Determination_Flow/301J000000001Tx exception by user/organization: 00DJ00000000YTl/{4} Source organization: 00DA0000000KZI8 (null)
interaction.dal.exception.DALExecutionFault: ; nested exception is:
common.exception.ApiQueryException:
Account.Annual_RR__c FROM Account WHERE (Account.Id = '{!Commission__c.AccountId__c}')
^ ERROR at Row:1:Column:89 invalid ID field: {!Commission__c.AccountId__c} (There was a problem executing your command.) > RETRIEVE
caused by element : Data lookup.Lookup_Account
caused by: interaction.dal.exception.DALExecutionFault: ; nested exception is:
common.exception.ApiQueryException:
Account.Annual_RR__c FROM Account WHERE (Account.Id = '{!Commission__c.AccountId__c}')
^ ERROR at Row:1:Column:89 invalid ID field: {!Commission__c.AccountId__c} (There was a problem executing your command.) > RETRIEVE
Salesforce Error ID: 580775287-15539 (1733087783)
这个错误信息是什么意思?如何获取有关 Salesforce 错误的更多信息以及如何解决此问题?我知道这个过程非常复杂,但它与一个基本问题有关:我如何让流程意识到它需要从我的 apex 调度程序中具有 14 天审查日期的帐户中提取信息?