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.0.2
Flow paths are added to flows with Update Record element.
Added descriptions on flows (omitted on list).
Developer Name | Type | Description | sObject | New/Update | What it Does? |
---|---|---|---|---|---|
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 Create Application Log (subflow) | Flow | auto-launched flow | - | New | Reusable flow that creates an application log record when fault paths are traversed. |
USYD_AQC_Donor_Contact_Type_Auto_Updater_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Added fault path on Update Record element |
USYD_Automate_task_for_GA_for_Pledge_subflow | Flow | auto-launched flow | Gift/Pledge | Update | Change: Added fault path on Update Record element |
USYD_Campaign_member_status_update_when_new_transaction_created_subflow | Flow | auto-launched flow | Transaction | Update | Change: Added fault path on Update Record element |
USYD_Description_HOLD_RECEIPT_subflow | Flow | auto-launched flow | Transaction | Update | Change: Added fault path on Update Record element |
USYD_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | Update | Change: Added fault path on Update Record element |
USYD_Gift_Implementation_Main_Flow | Flow | record-triggered flow | Gift Implementation | Update | Change: Added fault path on Update Record element |
USYD_Transaction_Main_Flow | Flow | record-triggered flow | Transaction | Update | Change: Added fault path on Update Record element |
USYD_Gift_Pledge_On_Create_After_Save_subflow | Flow | auto-launched flow | Gift/Pledge | Deleted | Updates related Gift Implementation Stage to "5. GI - Kick Off" |
USYD_Gift_Pledge_Update_subflow | Flow | auto-launched flow | Gift/Pledge | Deleted | 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. |
v.0.0.1
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 | Description | sObject | New/Update | What it Does? |
---|---|---|---|---|---|
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_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_Gift_Main_Flow | Flow | record-triggered flow | Gift/Pledge | New | Create/Update triggering flow on Gift/Pledge |
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_Gift_Implementation_Main_Flow | Flow | record-triggered flow | Gift Implementation | New | Create/Update triggering flow on Gift Implementation |
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_Transaction_Main_Flow | Flow | record-triggered flow | Transaction | New | Create/Update triggering flow on Transaction |
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_Populate_Chart_of_Accounts_in_Transaction | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) |
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) |
Description_HOLD_RECEIPT | PB | process builder | Transaction | Deactivated | translated to subflow(auto-launched flow) |
AQC_Donor_Contact_Type_Auto_Updater | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) |
Gift_Pledge_On_Create_After_Save | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) |
USYD_Gift_Pledge_Update | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) |
Usyd_Gift_Driver_Derivation | Flow | record-triggered flow | Gift/Pledge | Deactivated | translated to subflow(auto-launched flow) |
GIN_Stage_based_Update_Before_Save | Flow | record-triggered flow | Gift Implementation | Deactivated | translated to subflow(auto-launched flow) |
Usyd_Update_Gift_Implementation_Status | Flow | record-triggered flow | Gift Implementation | Deactivated | translated to subflow(auto-launched flow) |
Usyd_Campaign_member_status_update_when_new_transaction_created | Flow | record-triggered flow | Transaction | Deactivated | translated to subflow(auto-launched flow) |
USYD_Transaction_Update | Flow | record-triggered flow | Transaction | Deactivated | translated to subflow(auto-launched flow) |