Lets jump into the solution, we will use flow to check duplicate record logic and use apex trigger to initiate the Flow whenever a record is created or updated.
First we will create the Flow to check the duplicate records based on the name and store the result in the variable. In this example, we will use the Account object for the dupe check.
Step 1 : Create a new visual flow with the Name ‘DuplicateAccountCheck'
Step 2 : Click and drag the RecordLookup into the flow window and Name it as ‘DuplicateCheck'
Step 3 : Select the object as ‘Account'
Step 4: In the Fields select “ID" and condition as "does not equal” in the value and create new variable ‘varAccountId’.
Step 5: Select Field as “Name” and Operator as “equal” in the value and create new variable ‘varAccountName'.
Note: Set Variable Input/Output Type as InputOnly
Step 6: Select the field as ‘Name’ and under the variable create new variable ‘varReturnAccount'.
Step 7: Select the check box Assign null value to the variable if no records are found and save it.
Whenever this flow is initiated with the parameter Account name and Id then it will check for the Acoount record based on the name, if any record matches then it will store in the variable ‘varReturnAccount’. So now logic to check duplicate account record is ready, lets move on to the next logic.
We easily covered the major logic for duplicate check without writing a single line of code using flow, all we going to do now is call our flow whenever a record is created or updated from trigger and display error message if it has duplicate record. Calling flow in an apex class is straight forward approach, below is the apex trigger code which will call your flow
Whenever a new record is inserted or updated, the trigger will call the flow which will perform the duplicate check and store it in the variable, if the variable is not null then it will throw the error message for that particular record. Now we linked the flow and trigger, which helps non-developers to build solutions for the complex problem with the more Clicks and less Code.
Where you can Learn more about Flow?
1. You will have all resource in one link[Video, demo, other related references link]. One stop to learn everything
2. You will have an interesting challenge at the end to test your knowledge
3. The best thing is you will earn BADGES and POINTS which will be added in your community profile.
Its really powerful feature in salesforce platform where you can able to reduce lots of visualforce and apex code in the org and the another cool things is you can able to automatically trigger the flow from the Lightning Process builder and Trigger.
Now its your turn to learn about Flow and share your use case in the comment section where you reduced the code using Flow. Start exploring more aboutSalesforce Trailhead module.