In this scenario we have a custom field on the Opportunity Form called: All Items Complete.
This is a locked field with a default value of No.
The business rule should update this field on the Parent Opportunity to Yes only when all child Opportunity Products are set to a Status of Complete.
N52 Formula Manager Solution
The Formula Manager solution works like this,
- A formula of type 'Save To Parent' is created
- It is configured so that it executes each time the Status Reason field changes on the Opportunity Product entity.
- On execution it counts all the child Opportunity Product records for the Parent Opportunity
- It then counts all the child Opportunity Product records for the Parent Opportunity with a status of Completed
- Finally it compares the counts, if the numeric values are the same then we know all the child records are Completed.
- If true the All Items Complete field on the Parent Opportunity record is set to Yes.
N52 Formula Manager Steps
The following set of steps outline how to create this Formula
- Create a new formula of type 'Save To Parent'
- Set the Source Entity to 'Opportunity Product'
- Set the Source Property to 'Status Reason'
- Set the Relationship field to 'opportunityid (opportunity)'
- Set the Target Property to 'All Items Complete'
- Copy & paste the formula below into the formula
- Replace the value in the formula for desired status reason with the appropriate one by clicking on the Source tab on the left, selecting status reason and then 'Completed'
- Click save
- You are now ready to test
if(FindCount('opportunityproduct', 'opportunityid', [opportunityproduct.opportunityid], 'opportunityid', '0', true ) = FindCount('opportunityproduct', setfindand('opportunityid', 'new_statusreason'), setfindand([opportunityproduct.opportunityid],'100000001'), 'opportunityid', '0', true ) , true, false )
Wizard - FindCount
Please see below the wizard you can use to create the FindCount() function call used in this formula.
Note to find the value for Equals Value, you will need to go to the Source tab and search for "opportunity"
Did you know?
xCache helps you manage environment specific configuration
North52's Decision Suite component xCache allows you to set up environment specific data to allow you to use different values for different instances. Your advanced business rules logic could be the same, however you need to use specific reference values for a particular instance.
For example, credentials for a web service used in your Formula - you will likely use different keys/URLs for your Dev, Test and Production instances. Store these in xCache and let the North52 business rules engine apply the correct ones at runtime!