Description:
Persona + Need + Purpose
As a System admin
I want to make sure there are no issues with existing flows
So that Batch processing gift/pledge creation & updates/transactions run smoothly without CPU limit errors or SOQL 201 errors.
Batch closing is one of the scenario that created the gift/pledge and transactions at the backend and there are lot of process builders and flows that are being called
Business Area:
Batch Processing/GA
Business Value:
Best code practice
Implementation:
To avoid hitting governor limits on a single synchronous transaction(DML limit of 150, SOQL limit of 200) and avoid the unwanted recursion of flow calls because of roll-up summary fields not related to the flows’s logic, the team has implemented the following:
A parent flow is created for each triggering sObject.
Gift
Gift Implementation
Transaction
Flows are then translated to sub-flows. This is created with considerations to the original Flow Trigger order of each object.
Roll-up summary fields changes on Gift object is filtered to avoid recurring run of subflows triggered on Gift sObject.
Metadata Changelog:
* Items in red are deactivated
v.0.4.0
removed subflows these subflows from GIft Main Flow and convert to their own record-triggered flows
USYD Automate task for GA for Pledge
USYD AQC Donor Contact Type Auto-Updater
USYD Update Related Gift Implementation
original flow name (Update Pledge Status)
set GetRecord element to be on Gift Main Flow and pass this data to subflows
modify the subflow to require and accept GRC records
Developer Name | Type | Type - Description | sObject | New/Update | Description/Change |
---|---|---|---|---|---|
v.0.3.0
Combine create/update flow paths to lessen elements on Gift Main Flow
Remove hardcoded Ids to dynamically queried Ids
Rename “USYD_Update_Pledge_Status_subflow” to “Updates pledge status if gift/pledge recordtype is Pledge and Pledge Status is Active or Paid”.
Developer Name | Type | Type - Description | sObject | New/Update | Description/Change |
---|---|---|---|---|---|
USYD_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | Update | Change: Simplified flow path elements to handle create/update at the subflow level. |
USYD_Updates_pledge_status_if_gift_pledge_recordtype_is_Pledge_and_Pledge_Status | Flow | auto-launched flow | Gift/Pledge | New | Updates pledge status if gift/pledge recordtype is Pledge and Pledge Status is Paid. |
USYD_Automate_task_for_GA_for_Pledge_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Allow dynamic setting of Gifts Administration Group Id for use in ‘Create Task’ element. |
USYD_Update_Pledge_Status_subflow | Flow | auto-launched flow | Gift/Pledge | delete | Renamed to USYD_Updates_pledge_status_if_gift_pledge_recordtype_is_Pledge_and_Pledge_Status |
v.0.2.1
Flows divided and named according to their function
Renamed flows where names does not describe their function
Developer Name | Type | Type - Description | sObject | New/Update | Description/Change |
---|---|---|---|---|---|
USYD_Update_Related_Gift_Implementation | Flow | auto-launched flow | Gift/Pledge | New | Updates related Gift Implementation Stage to "5. GI - Kick Off" |
USYD_Update_Pledge_Status_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates pledge status if gift/pledge recordtype is Pledge and Pledge Status is Paid. |
USYD_Update_Credited_Contacts_and_GRC_Rollup_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates Credited Contacts field and GRC roll-up field per related GRC records. |
USYD_Update_Text_Area_Description_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates Usyd Pledge Area Description from Gift Description. |
Usyd_Update_Reporting_Section_Flags_subflow | Flow | auto-launched flow | Transaction | New | Calculates Send Pledge Reminder, Funds Raised Flag Static, Funds Received Flag Static, and Special Category Flag fields. |
USYD_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | Update | Change:* Added USYD Update Related Gift Implementation as subflow* Added USYD Update Pledge Status (subflow) as subflow* Added USYD USYD Update Credited Contacts and GRC Rollup (subflow) as subflow* Added USYD Update Text Area Description (subflow) as subflow* Removed USYD Gift Pledge On Create After Save (subflow) subflow* Removed USYD Gift Pledge Update (subflow) subflow |
USYD_Gift_Pledge_On_Create_After_Save_subflow | Flow | auto-launched flow | Gift/Pledge | Deleted | Renamed to USYD Update Related Gift Implementation |
USYD_Gift_Pledge_Update_subflow | Flow | auto-launched flow | Gift/Pledge | Deleted | Translated to the following flows* USYD Update Pledge Status (subflow)* USYD Update Credited Contacts and GRC Rollup (subflow)* USYD Update Text Area Description (subflow) |
USYD_Transaction_Update_subflow | Flow | auto-launched flow | Transaction | Deleted | Renamed to Usyd Update Reporting Section Flags (subflow) |
USYD_Update_Pledge Status | Flow | auto-launched flow | Deactivated | translated to subflow(auto-launched flow) USYD Update Related Gift Implementation | |
USyd_GRC_Rollup | Flow | auto-launched flow | Deactivated | translated to subflow(auto-launched flow) USYD Update Credited Contacts and GRC Rollup (subflow) |
v.0.2.0
Fault paths are added to flows with Update Record element.
Added descriptions on new flows.
Developer Name | Type | Type - Description | sObject | New/Update | Description/Change |
---|---|---|---|---|---|
USYD Create Application Log (subflow) | Flow | auto-launched flow | - | New | Reusable flow that creates an application log record when fault paths are traversed. |
USYD_Gift_Derivation_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Added flow description |
USYD_Gift_Pledge_On_Create_After_Save_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Added flow description |
USYD_Gift_Pledge_Update_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Added flow description |
USYD_GIN_Stage_based_Update_Before_Save_subflow | Flow | auto-launched flow | Gift Implementation | Update | Change: Added flow description |
USYD_Usyd_Update_Gift_Implementation_Status_subflow | Flow | auto-launched flow | Gift Implementation | Update | Change: Added flow description |
USYD_Populate_Chart_of_Accounts_in_Transaction_subflow | Flow | auto-launched flow | Transaction | Update | Change: Added flow description |
USYD_Transaction_Roll_up_to_Gift_Pledge_fields_subflow | Flow | auto-launched flow | Transaction | Update | Change:* Added flow description* Added fault path on Update Record element |
USYD_Pledge_is_Due_To_Be_Paid_Out_subflow | Flow | auto-launched flow | Transaction | Update | Change: Added flow description |
USYD_Transaction_Update_subflow | Flow | auto-launched flow | Transaction | Update | Change: Added flow description |
USYD_AQC_Donor_Contact_Type_Auto_Updater_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change:* Added fault path on Update Record element* Added flow description |
USYD_Automate_task_for_GA_for_Pledge_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change:* Added fault path on Update Record element* Added flow description |
USYD_Campaign_member_status_update_when_new_transaction_created_subflow | Flow | auto-launched flow | Transaction | Update | Change:* Added fault path on Update Record element* Added flow description* (Updated passed value in Add ContactId to List) |
USYD_Description_HOLD_RECEIPT_subflow | Flow | auto-launched flow | Transaction | Update | Change:* Added fault path on Update Record element* Added flow description |
USYD_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | Update | Change:* Added fault path on Update Record element* Added flow description |
USYD_Gift_Implementation_Main_Flow | Flow | record-triggered flow | Gift Implementation | Update | Change:* Added fault path on Update Record element* Added flow description |
USYD_Transaction_Main_Flow | Flow | record-triggered flow | Transaction | Update | Change:* Added fault path on Update Record element* Added flow description |
v.0.1.0
Existing record-triggered flows and process builder flows are translated as auto-launched flows used as subflows on main record-triggered flows.
New record-triggered flows to handle all the subflows for triggering objects(Gift/Pledge, Gift Implementation, Transaction)
A custom label for static values used in flows.
One PB (Automate_task_for_GA_for_Pledge) translated as Apex trigger to better handle batch DML.
Developer Name | Type | Type - Description | sObject | New/Update | Description/Change |
---|---|---|---|---|---|
USYD_Automate_task_for_GA_for_Pledge_subflow | Flow | auto-launched flow | Gift/Pledge | New | Create task record if Pledge Status is "Pending Review". |
USYD_AQC_Donor_Contact_Type_Auto_Updater_subflow | Flow | auto-launched flow | Gift/Pledge | New | Checks related Account's primary and secondary contact and update these if required. |
USYD_Gift_Driver_Derivation_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates "Gift Driver Derivation" and "Usyd_Gift_Driver__c" after updating Actual Donor Type depending on Gift recordtype. |
USYD_Gift_Pledge_On_Create_After_Save_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates related Gift Implementation Stage to "5. GI - Kick Off" |
USYD_Gift_Pledge_Update_subflow | Flow | auto-launched flow | Gift/Pledge | New | Updates pledge status if gift/pledge recordtype is Pledge and Pledge Status is Paid.Updates Credited Contacts field and GRC roll-up field per related GRC records.Updates Usyd Pledge Area Description from Gift Description. |
USYD_GIN_Stage_based_Update_Before_Save_subflow | Flow | auto-launched flow | Gift Implementation | New | Updates Last Modified By field on Gift Implementation and update record owner according to stage. Create alert when stage is GA-Manage/Consolidate. |
USYD_Usyd_Update_Gift_Implementation_Status_subflow | Flow | auto-launched flow | Gift Implementation | New | Checks If Gift Implemenation record's Funds Received Or Supporting Doc Are Change and updates status per matrix. |
USYD_Populate_Chart_of_Accounts_in_Transaction_subflow | Flow | auto-launched flow | Transaction | New | Set original class code and designation account number field. |
USYD_Transaction_Roll_up_to_Gift_Pledge_fields_subflow | Flow | auto-launched flow | Transaction | New | Relates Appeal record and calculates gift driver derivation/Pledge WO. |
USYD_Campaign_member_status_update_when_new_transaction_created_subflow | Flow | auto-launched flow | Transaction | New | Update the Campaign member status to "Donated" of Primary contact and secondary contact when exists as campaign member and campaign appeal id = campaign idUsed the same flow to update the Gift Driver Derivation field so that the Gift Driver will be recalculated |
USYD_Pledge_is_Due_To_Be_Paid_Out_subflow | Flow | auto-launched flow | Transaction | New | Creates a notification for Pledges due to be paid out according to account type. |
USYD_Description_HOLD_RECEIPT_subflow | Flow | auto-launched flow | Transaction | New | Updates Text Area Description and update child receipts of Gift when transaction is flagged as Hold. |
USYD_Transaction_Update_subflow | Flow | auto-launched flow | Transaction | New | Updates flags in Reporting Section and calculates and creates a link to third party pledge. |
USYD_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | New | * Create/Update triggering flow on Gift/Pledge* Encapsulates all related subflows of triggering sObject |
USYD_Gift_Implementation_Main_Flow | Flow | record-triggered flow | Gift Implementation | New | * Create/Update triggering flow on Gift Implementation* Encapsulates all related subflows of triggering sObject |
USYD_Transaction_Main_Flow | Flow | record-triggered flow | Transaction | New | * Create/Update triggering flow on Transaction* Encapsulates all related subflows of triggering sObject |
CUSTOM_NOTIFICATION_TYPE_ID_SYDNEY_STANDARD_NOTIFICATION | CustomLabel | custom label | New | Static string Id that is used in flow and can be used elsewhere. | |
TransactionTrigger | Apex Class | Transaction | New | Calls the TransactionTriggerHandler’s method on before insert/update stage. | |
TransactionTriggerHandler.createLinkToThirdpartyPledge() | Apex Class | Transaction | New | This will populate custom field USYD_Third_Party_Pledge__c with the pledge number of the pledge being paid off by a third party. | |
TransactionTriggerHandlerTest | Apex Class | Transaction | New | Apex test handler class for code coverage. | |
Automate_task_for_GA_for_Pledge | PB | process builder | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) USYD_Automate_task_for_GA_for_Pledge_subflow |
USYD_Populate_Chart_of_Accounts_in_Transaction | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) USYD_Populate_Chart_of_Accounts_in_Transaction_subflow |
Usyd_Transaction_surface_up_Pledge_WO_Notation_to_Gift | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) |
pledge_is_due_to_paid_out | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) USYD_Pledge_is_Due_To_Be_Paid_Out_subflow |
Description_HOLD_RECEIPT | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) USYD_Description_HOLD_RECEIPT_subflow |
AQC_Donor_Contact_Type_Auto_Updater | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) USYD_AQC_Donor_Contact_Type_Auto_Updater_subflow |
Gift_Pledge_On_Create_After_Save | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) USYD_Gift_Pledge_On_Create_After_Save_subflow |
USYD_Gift_Pledge_Update | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) USYD_Gift_Pledge_Update_subflow |
Usyd_Gift_Driver_Derivation | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) USYD_Gift_Driver_Derivation_subflow |
GIN_Stage_based_Update_Before_Save | Flow | record-triggered flow | Gift Implementation | Deactivated | translated to subflow(auto-launched flow) USYD_GIN_Stage_based_Update_Before_Save_subflow |
Usyd_Update_Gift_Implementation_Status | Flow | record-triggered flow | Gift Implementation | Deactivated | translated to subflow(auto-launched flow) USYD_Usyd_Update_Gift_Implementation_Status_subflow |
Usyd_Campaign_member_status_update_when_new_transaction_created | Flow | record-triggered flow | Transaction | Deactivated | translated to subflow(auto-launched flow) USYD_Campaign_member_status_update_when_new_transaction_created_subflow |
USYD_Transaction_Update | Flow | record-triggered flow | Transaction | Deactivated | translated to subflow(auto-launched flow) USYD_Transaction_Update_subflow |