Come implementare scheduler a Apex?
-
08-10-2019 - |
Domanda
Vedo scheduler come caratteristica in Salesforce, ma è un po 'legato con le caratteristiche esistenti che forniscono forza di vendita e non il codice sorgente di esempio viene fornito per quanto riguarda la mia ricerca va.
Quello che voglio fare è quello di creare il mio scheduler che manda semplice e-mail in base alla data.
Obiettivo:
Custom Object Player
ha campi
startDate : date like '2010-11-01'
email : text field like foo@bar.com
name : player's name like John.
Se la data di oggi è un giorno prima della startDate, voglio inviare email al lettore.
Per esempio, il nome del giocatore è John
e se oggi è 2010-12-10
e startDat
e di un giocatore è impostato su 2010-12-11
, e-mail "hello John"
dicendo viene inviato.
Purtroppo non riesco a trovare il buon esempio o tutorial online o Salesforce doc come farlo utilizzando Apex. Qualcuno potrebbe punto dove iniziare?
Aggiorna
voglio estendere la risposta da eyescream.
Dopo aver impostato il programmatore, è possibile impostare quali il controllo delle misure di prendere come l'invio di e-mail utilizzando campi oggetto template personalizzato o impostato su alcuni valori.
Qui di seguito ho trovato utile per le persone che utilizzano modello email in formato Visualforce.
Ho oggetto personalizzato 'alertTester' che ha riferimento a un altro oggetto 'su misura' e anche questo oggetto 'personalizzato' ha riferimento a un altro oggetto 'custom1GrandChild' e tutto il rapporto (fino a 3 o 5 strati credo) può essere si accede come qui di seguito.
Ho provato qui sotto e funziona bene. Ora sto ricevendo e-mail con la mia condizione set:)
<messaging:emailTemplate subject="Hello" recipientType="User" relatedToType="alertTester__c" >
<messaging:plainTextEmailBody >
{!relatedTo.name}
{!relatedTo.custom__r.name}
{!relatedTo.custom__r.custom1GrandChild__r.name}
</messaging:plainTextEmailBody>
</messaging:emailTemplate>
Soluzione
Scopri le soluzioni che non comportano codice prima si immerge profondamente per Apex ...
Email Alert + regola di flusso dovrebbe fornire tutte le funzionalità è necessario in questo scenario e coinvolgere semplicemente cliccando senza alcun codice.
Altri suggerimenti
Sto rispondendo alla mia domanda di nuovo ..
Di seguito collegamento, cercare schedule
http://www.salesforce.com/us/developer/ docs / apexcode / index.htm
appare come Apex ha interfaccia programmabili che posso implementa e istituire task cron.
Di seguito è riportato codice di esempio fornito nel doc:
global class TestScheduledApexFromTestMethod implements Schedulable {
// This test runs a scheduled job at midnight Sept. 3rd. 2022
public static String CRON_EXP = '0 0 0 3 9 ? 2022';
global void execute(SchedulableContext ctx) {
CronTrigger ct = [SELECT id, CronExpression, TimesTriggered, NextFireTime
FROM CronTrigger WHERE id = :ctx.getTriggerId()];
System.assertEquals(CRON_EXP, ct.CronExpression);
System.assertEquals(0, ct.TimesTriggered);
System.assertEquals('2022-09-03 00:00:00', String.valueOf(ct.NextFireTime));
Account a = [SELECT id, name FROM Account WHERE name =
'testScheduledApexFromTestMethod'];
a.name = 'testScheduledApexFromTestMethodUpdated';
update a;
}
}