![](/img/trans.png)
[英]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.