[英]How do i get the information of the subscribers subscribed to my public viber account?
[英]Salesforce: How do I get a flow to realize that it needs to pull information from the account is referenced in my apex scheduler?
我是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 Scheduler中有14天的审核日期的帐户中提取信息?
查看错误消息中正在执行的SOQL语句:
Account.Annual_RR__c FROM Account WHERE (Account.Id = '{!Commission__c.AccountId__c}')
这是告诉我,您的电子邮件模板中的链接正在将字面值“ {!Commission__c.AccountId__c}”传递到您的SOQL中,而不是在发送电子邮件时绑定该字段的值。 因此,您传递的不是字符串,而是传递的字符串,而不是传递URL的帐户ID。
当在电子邮件模板中错误输入字段的API名称,或者绑定到模板的记录不是您所期望的Commission__c
类型时,可能会发生这种情况。 因此,这可能是两件事之一:您发送的记录不是电子邮件模板00XF0000000LfE0
的正确对象类型,或者Commission__c
对象上没有AccountId__c
字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.