Scheduled Batch Jobs - Posi Giving
Manual payment scheduling per Batch via Developer Console
Manual Payment Scheduling
Step 0: Delete the existing payment schedule named “ASPP__ProcessingPayment” beforehand. To check, go to → Setup | Schedule Jobs
Step 1: From your user menu, click the Setup Gear icon and select Developer Console
Step 2: From your developer console, click Debug in the menu and select Open Execute Anonymous Window.
Step 3: A pop-up Enter Apex Code window will appear.
A. Copy the script (below) and paste in to Enter Apex Code window.
String schedule_time = '0 0 2 * * ? *';
System.schedule('ASPP__ProcessingPayment', schedule_time, new ASPHPP.ScheduleBatchedProcessPayment());
Note: This is just a sample scheduling every 2AM. See other payment processing schedules below - “Other Payment Processing Schedules section”
B. Click “Execute” button.
Step 4: Confirm the created schedule in the Scheduled Jobs. Go to Setup | Schedule Jobs
Other Payment Processing Schedules
A. Sample time schedules
Change the value of the schedule_time variable to any preferred time schedule.
Every hour = '0 0 * * * ?' ;
Every midnight = '0 0 0 * * ?' ;
Every 1 AM = ’0 0 1 * * ? * ‘ ;
Every 2 AM = ’0 0 2 * * ? * ‘ ;
Every 3 AM = ’0 0 3 * * ? * ‘ ;
B. Time Schedule Formats
Set your desired time schedule by following this format.
second: 0 (this doesn't actually do anything)
minute: 0–59
hour: 0-23
day_of_month: 1-31 - * ? / L W
month: 1-12 JAN-DEC , - * /
day_of_week: 1-7 SUN-SAT , - * ? / L #
optional_year: null or 1970–2099 , - * /
ProntoPayments Batches
Go to | ProntoPayments Settings | Scheduler
Parse Payment From ASPP_Logs (No)
A chained process from Batch Payment Processing so this will be called internally every batch payment processing attempt.
Batch Payment Processing (Yes) - Schedule for 9pm
Default schedule is 9PM.
Batch Get Payment Status (Yes) - Schedule for 9am
This is for Ezidebit, Westpac and Paydock transactions only. This will update the statuses of those pending transactions based on the gateway response and opportunity stages.
Batch Attach ProntoPayments Logs (Yes) - Schedule for 9pm
This will create a backup for old ASPP Logs so that when Batch Delete ProntoPayments Logs is scheduled, we can still those records as csv file.
Batch Send Email for Expired Cards (OPTIONAL - client preference) - Consider deprecation - replace with subscribing to report
This will send an email notification to the running user. The email contains a list of payment sources records. Default schedule is 11PM.
Batch Get Payments (OPTIONAL - client preference)
Sync payments from gateway to salesforce. Below are the supported gateways.
Paydock
Ezidebit
eWAy
Paypal Rest
PIN
Stripe
DebitSuccess
Batch Get Tokens (OPTIONAL - client preference)
Sync tokens (as payment sources) from gateway to salesforce.
Batch Inactive Expired Payment Source (OPTIONAL - client preference)
All expired payment sources, both tokenisation-credit card and credit card, will be updated to inactive ONLY if expiry date is not empty.
Batch Get Subscriptions (OPTIONAL - client preference)
Sync subscriptions from gateway to salesforce.
Batch Create Subscription PPayment (OPTIONAL - client preference)
Will retrieve transactions from the gateway only if subscription is processed on the gateway (not on salesforce).
Batch Payment Status Update (No)
A chained process from Batch Payment Processing so this will be called internally every batch payment processing attempt.
Sandbox Clean up Batch (No)
Necessary when a sandbox have live data.
Get Payment Transaction Settlement
This batch will update transactions where gateway is either BPOINT or Ezidebit. This will retrieve settlement dates from the gateway (when available).
Batches | Batch Class Name | Descriptions | Default Scheduled Hour | Set To Scheduled |
Batch Payment Processing | ASPP_AuthBatch |
| Every 12midnight | TRUE |
Batch EziDebit Get Payment Status | BatchGetPaymentsStatusEziDebit | This is for Ezidebit transactions only. This will update the statuses of those pending transactions based on the gateway response and opportunity stages. | Default scheduled every 6am | TRUE |
Batch Attach ProntoPayments Logs | ASPP__ProcessingOpportunityAttachPPLogs | This will create a backup for old ASPP Logs so that when Batch Delete ProntoPayments Logs is scheduled, we can still those records as csv file. | Default scheduled every 8pm |
|
Batch Delete Temporary Payment Source | ASPP__ProcessingBatchDeleteTemporaryPS |
| Default scheduled every 8pm |
|
Batch Send Email for Expired Cards |
ASPP__BatchExpiredCardsEmailNotification | This will send an email notification to the running user. The email contains a list of payment sources records. (OPTIONAL - client preference) - Consider deprecation - replace with subscribing to report |
|
|
Batch Get Payments | ASPP__BatchGetPayments | Sync payments from gateway to salesforce. Below are the supported gateways. (OPTIONAL - client preference) Paydock Ezidebit eWAy Paypal Rest PIN Stripe DebitSuccess |
| TRUE |
Batch Get Tokens | ASPP__BatchGetTokens | Sync tokens (as payment sources) from gateway to salesforce. (OPTIONAL - client preference) |
| TRUE |
Batch Inactive Expired Payment Source | ASPP__BatchInactiveExpiredPaymentSource | All expired payment sources, both tokenisation-credit card and credit card, will be updated to inactive ONLY if expiry date is not empty. (OPTIONAL - client preference) |
|
|
Batch Delete ProntoPayments Logs | ASPP__BatchProcessedPayment__DeleteLogs | (OPTIONAL - client preference) |
|
|
Batch Get Subscriptions | ASPP__BatchGetSubscriptions | Sync subscriptions from gateway to salesforce. (OPTIONAL - client preference) |
| TRUE |
Batch Create Subscription PPayment | ASPP__BatchCreateSubscriptionPPayment | Will retrieve transactions from the gateway only if subscription is processed on the gateway (not on salesforce). (OPTIONAL - client preference) |
| TRUE |
Batch Payment Status Update |
|
|
| FALSE - No need to run the batch as it is already included in Payment Processing chain. |
Get Payment Transaction Settlement | UpdateSettlementDateBatch | This batch will update transactions where gateway is either BPOINT or Ezidebit. This will retrieve settlement dates from the gateway (when available) | Scheduled every 6am | TRUE |
Batch Generate CRN for Contact | GenerateCRNforContactBatch | Necessary when Ezidebit BPAY is used. | Scheduled every 7pm | FALSE - pending functionality |
ProntoGiving
Go to ProntoGiving Settings | Schedule Process | Settings
BDE Item processing will only process standard objects; custom objects are not supported.
ProntoGiving - Other Batches
Description:
ASPHPPADDON__Donation_Page_Error_Log__c records are created if errors are encountered in Donation Page/Forms i.e. Contact, Account or Payment Source could not be created due to validations errors
Opportunity/RD records needs to be created in SF even if some records could not be created to capture the donation attempt and take action to complete the donation process
Query Criteria:
All ASPHPPADDON__Donation_Page_Error_Log__c with lookup to Opportunities that are Closed/Won with CreatedDate <: LAST_N_DAYS (settings)
What the batch does, for all retrieved ASPHPPADDON__Donation_Page_Error_Log__c records:
Remove these records because they’re no longer significant, donations are already Closed Won
Process BDE Items - Yes - 6pm?. Setting should Exclude items linked to BDE
Query Criteria:
All ASPHPPADDON__BDE_Item__c with ASPHPPADDON__Processing_Status__c = ‘Pending Processing’
If PRONTOGIVING_SETTINGS.Include_BDE_Items_linked_to_a_BDE__c is TRUE, all BDE Items
If PRONTOGIVING_SETTINGS.Include_BDE_Items_linked_to_a_BDE__c is FALSE, exclude BDE Items linked to a Batch Donation Entry
What the batch does, for all retrieved ASPHPPADDON__BDE_Item__c records: Process these records, just like processing BDE Items via list view.
Batches | Batch Class Name | Descriptions | Default Scheduled Hour |
|
Delete Donation Page Error Logs | ASPHPPADDON__Donation_Page_Error_Log__c | Donation Page Error Logs records are created if errors are encountered in Donation Page/Forms. All Donation Page Error_Logs with lookup to Opportunities that are Closed/Won with CreatedDate <LAST_N_DAYS> (settings) It remove records because they’re no longer significant. |
| TRUE |
Delete Bulk Donation Logs |
|
|
| FALSE - Not in use object |
Process BDE Items | ASPHPPADDON__BDE_Item__c | Processing BDE Items via list view Query all BDE Items with Processing Status “Pending Processing” and process these records | Every 6pm | TRUE |
Recurring Donations – ProntoGiving
Recurring Donations Monitoring
Batch Class Name: BatchUpdateRecurringFields
Schedule Time: Every Hour
Query Criteria:
All non-closed RDs with Exclude RD Monitoring == FALSE
What the batch does, for all retrieved RD records: updates
Overdue Installments - how many related opportunities on that recurring donation with Close Date <= TODAY that are still
Pledged/Open that should have been Closed Won
Total Overdue Amount - how much of the related opportunities on that recurring donation with Close Date <= TODAY that are still
Pledged/Open that should have been Closed Won
Total Missed Payments - how many related
Closed Lost opportunities on that recurring donation with Close Date <= TODAY that should have been Closed Won
Status to Overdue
o sorts the related opportunities on that recurring donation with Close Date <= TODAY in ASC
o if the last opportunity is Closed Lost, status is updated to Overdue
Status to Active
o sorts the related opportunities on that recurring donation with Close Date <= TODAY in ASC
o if the last opportunity is Closed Won, status is updated to Active
o if the Status is Cancelled or On Pause, RD is not updated to Active
First Donation Date - Close Date of the first Closed Won opportunity
Update Number Of Failed Recurring Donations
Batch Class Name: BatchUpdateNumberOfFailedRD
Schedule Time: Every Midnight
Query Criteria:
· All non-closed RDs
· All closed RDs but with Exclude_in_Updating_Number_of_Failed_Rec__c == FALSE
What the batch does, for all retrieved RD records:
· Number of Failed Recurring Donations
o Counts the number of (latest) consecutive closed lost opportunities
o If latest stage name is Closed Won, value is 0
· If Open-Ended Status is Closed, Exclude_in_Updating_Number_of_Failed_Rec__c is set to TRUE
Close Open Recurring Donations with Contact Flagged as Deceased
Batch Class Name: BatchCloseOpenRDWithDeceasedContact
Schedule Time: Every Midnight
Query Criteria:
· All non-closed RDs with Contact npsp__Deceased__c == TRUE
What the batch does, for all retrieved RD records:
· Open-Ended Status = Closed
· Status = Cancelled
Total Recurring Donations - Last Financial Year
Accessible in:
· ProntoGiving Settings > Consolidated Statement Settings > Calculate Recurring Donations in the Last Financial Year
Batch Class Name: BatchTotalRecurringDonationsFY
Query Criteria:
· Closed Won opportunities linked to RD with Close Date within last Financial Year
What the batch does, for all retrieved RD records:
· Contact record: Total_Recurring_Gifts_Last_FY__c (amount)
· Account record: Total_Recurring_Gifts_Last_FY__c (amount)
Lock/Unlock Recurring Donations Payment Processing
Accessible in:
· ProntoGiving Settings > Recurring Donation Settings > Lock Recurring Donations Payment Processing (toggle)
Batch Class Name: BatchLockUnlockPaymentProcessing
Query Criteria:
· All opportunities linked to RD
What the batch does, for all retrieved RD records:
· If action is to lock,
o set log record on the opportunity as PGIV_Lock_Payment_Processing__c → TRUE
o set log record on the opportunity as ASPHPP__Lock_Opportunity__c → TRUE
· If action is to unlock,
o set log record on the opportunity as PGIV_Lock_Payment_Processing__c → FALSE
o set log record on the opportunity as ASPHPP__Lock_Opportunity__c → FALSE
Number of Fails before Cancelling Recurring Donation
· Based on “Number of Failed Recurring Donations” field on RD record, if the field matches the set limit in ProntoGiving Settings, RD Status is updated to “Cancelled”, thus Open-Ended Status is updated to “Closed”
Batch Re-active RDs (not RD Monitoring Batch)
WHERE Status__c =: RD_STATUS_PAUSE AND npe03__Next_Payment_Date__c = LAST_N_DAYS
LAST_N_DAYS -> 30 days
IE: updates donation back to active 30 days prior to next donation date.
Batches | Batch Class Name | Descriptions | Default Scheduled Hour |
|
Recurring Donations Monitoring | BatchUpdateRecurringFields |
| Every Hour |
|
Update Paused Donations due to Restart |
|
|
| TRUE |
Update Number Of Failed Recurring Donations
Number of Fails before Cancelling Recurring Donation | BatchUpdateNumberOfFailedRD | · Query all non-closed RDs and counts the number of (latest) consecutive closed lost opportunities.
· Based on “Number of Failed Recurring Donations” field on RD record, if the field matches the set limit in ProntoGiving Settings, RD Status is updated to “Cancelled”, thus Open-Ended Status is updated to “Closed” | Every Midnight | TRUE |
Close Open Recurring Donations with Contact Flagged as Deceased | BatchCloseOpenRDWithDeceasedContact | · Query all non-closed RDs with Contact npsp__Deceased__c == TRUE · Open-Ended Status = Closed · Status = Cancelled | Every Midnight | TRUE |
ProntoPlus
Go to ProntoPlus Settings | Schedule Processes
Batches | Batch Class Name | Descriptions | Default Scheduled Hour | Set To Scheduled |
Send Receipts | RCT__BatchSendReceipts | · Query all Opportunities with Receipt Action Default and update to Email or Post. From Opportunities with receipt action Email it generate receipts of the opportunity without the Last Receipt populated. · BDE Receipt Action Email it will be receipted every 10mins | Every 10 mins | TRUE |
Generate Receipts | RCT__BatchGenerateReceipt | List view from the Opportunity level without the Last Receipt populated for Post. |
| TRUE - if the PPL version is 2.57 or higher. FALSE - if the PPL version 2.56 or below |