Views:

Scenario Overview

In this scenario our business requirement is that when a user in on the contact entity and changes the parent account (Company) field then all the Contact Preferences details from the new parent account needs to be copied down to the contact.

[Change the Company field on the form (i.e. onChange event invoked)]

[Then all the Contact Preferences from the new Company are copied down to the Contact record.]

N52 Formula Manager Solution

The Formula Manager solution works like this,

  • We create a client-side only formula that fires for just when the Company Name lookup field changes
  • The formula itself retrieves all the contact preferences associated via the Company Name (i.e. parentcustomerid) field on the contact entity
  • It then matches & sets each of the field names & values                     

N52 Formula Manager Steps

The following set of steps assumes you are just using the out of the box Dynamics CRM setup. But its easy to enhance if you have extra fields \ requirements.

  • Create a new formula of type 'ClientSide - Perform Action'
  • Set the Event field to just 'Create & Update'
  • Set the Source Entity to 'Contact'
  • Set the Source Entity Property to 'Company Name' 
  • Copy & paste the formula below into the formula description field
  • Click Save
  • Click N52 Commands on the command bar & then click 'Publish Formula'
  • You are now ready to test

 Formula

MultipleClientSide( 
                  SetClientSideField('preferredcontactmethodcode', 
                                     ToString(FindValue('account', 
                                                        'accountid',
                                                       [contact.parentcustomerid],
                                                      'preferredcontactmethodcode', '2'))),
                  SetClientSideField('donotbulkemail', 
                                    ToString(FindValue('account',
                                                      'accountid',
                                                      [contact.parentcustomerid],
                                                     'donotbulkemail',
                                                     'false'))),
                  SetClientSideField('donotemail', 
                                     ToString(FindValue('account', 
                                                       'accountid',
                                                        [contact.parentcustomerid],
                                                        'donotemail',
                                                        'false'))),
                  SetClientSideField('donotphone', 
                                     ToString(FindValue('account', 
                                                        'accountid',
                                                         [contact.parentcustomerid],
                                                         'donotphone', 
                                                        'false'))),
                  SetClientSideField('donotfax', 
                                     ToString(FindValue('account',
                                                       'accountid',
                                                       [contact.parentcustomerid],
                                                      'donotfax',
                                                      'false'))),
                  SetClientSideField('donotpostalmail',
                                     ToString(FindValue('account', 
                                                        'accountid',
                                                        [contact.parentcustomerid],
                                                        'donotpostalmail', 
                                                        'false')))
                         )

Wizard - FindValue

Please see below the wizard you can use to create the FindValue() function call used in this formula.

Note 1: that to find the Equals Value field here, you will need to go to Explore Entities Contact Company Name