Аз съм нов в apex и създадох клас по график на apex, който работи всеки ден. Ако даден акаунт има дата за преглед на акаунта за комисионни след две седмици (14 дни), графикът ще изпрати имейл до нашия отдел продажби. Имейлът съдържа връзка към поток. Потокът стартира процес за изчисляване на новата комисионна. За да направи това, потокът трябва да разбере как да изтегли информация от акаунта, който е задействал изпращането на имейла, акаунта, който има дата за преглед на акаунта след 2 седмици.
В момента имейлът се изпраща добре с връзката към потока. Връзката към потока работи, но след като стигнете до потока, потокът не знае/разбира от кой акаунт трябва да изтегля информация. Не съм сигурен дали трябва да променя кода си в моя планировчик и/или кода в моя поток.
Ето как потокът осъществява достъп до информация:
Преди първия екран се извършва търсене на запис в потока. Той изтегля информацията от ИД на акаунта и променлива vaAccountID. Мисля, че променливата {!vaAccountID} се попълва с AccountID, който е свързан с комисионната.
Когато стартирам своя планировчик, го карам да определи дали има акаунт с дата за преглед на акаунт въз основа на идентификатора на акаунта. Той изпраща имейл шаблона с връзката към потока до отдела по продажбите.
Планировчикът изпраща имейла и е „доволен“. Критериите, от които се нуждае, за да изпълни метода, са завършени (има акаунт с дата за преглед на акаунта след 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 и как да отстраня проблема по този въпрос? Разбирам, че този процес е много сложен, но е свързан с един основен въпрос: Как да накарам потока да разбере, че трябва да изтегли информация от акаунта, който е имал датата на преглед след 14 дни в моя апекс планировчик?