The topic of field updates is broad and touches on considerable functionality in both platforms. My definition of a field update is an automatic modification of one field triggered by a user action. This action might be a button click, change to a field value or the addition of a new dependent record.
Automatic field updates are critical to any workflow within CRM and it is not surprising that Dynamics and Salesforce provide a variety of methods to accomplish this task. For the most part I try to stay with out-of-the-box options that an experienced administrator can employ. My reason for narrowing the scope is that from a development perspective almost anything can be accomplished and I would rather focus on how each platform automates these processes without considerable coding.
What is Real Time?
Some field updates occur behind the scenes while others are designed to be immediately apparent to the user. In terms of administrator-instituted capabilities, a major difference between the platforms relates to when a change is propagated. Both update fields during the save operation. Once the page refreshes post-save both platforms display the updates. A case can be made that this alone is not always adequate to achieve the optimum user experience.
Suppose the Product Id field on an opportunity is a concatenation of the product name and the product model number. If either of these were changed an instantaneous update of the Product Id field adds to the user experience. Granted, this is not a very compelling example, but a request like this is not uncommon.
The major difference I alluded to earlier is that Salesforce does not provide this real-time feedback at all. While this distinction will likely not come up in the sales process and therefore is not a deal-breaker it is significant. Users and developers familiar with Dynamics will likely find this limitation an unwelcome paradigm shift.
Focusing on Visibility
Probably more common is the desire of our clients to toggle visibility based upon field values. While this is slightly outside of the field update topic I believe it is closely related. Making a field invisible (and potentially clearing it) is often a consequence of a field update. For example, you may want to clear and hide the phone number if the “Do Not Call” box is checked on a contact’s record.
Dynamics Business Rules
In my opinion this is a nice feature although limited. Both platforms have a history of introducing features that meet the needs of a few common scenarios without dealing with the broader picture. The current capabilities of business rules are:
- Set field values
- Clear field values
- Set field requirement levels
- Show or hide fields
- Enable or disable fields
- Validate data and show error messages
Again, Salesforce at this time is not able to handle conditional field visibility without custom pages. Check out this post to track the latest developments. Judging by the number of votes this is a hot topic and Salesforce is taking it seriously.
Where Salesforce lacks in real-time updates it excels in post-save field updates. In another post we will investigate workflows. In both platforms workflows are powerful tools. The downside is that they take time to configure and maintain. Salesforce, unlike Dynamics, relies more heavily on field types to carry out tasks that Dynamics business rules have only begun to address.
Let’s revisit the Product Id concatenation example above using Salesforce formulas.
In a production formula I would utilize more of the functions available in formulas to check for empty fields and always present a correctly formatted Product Id.
Calculated Fields in Dynamics 2015
Note that the calculated field editor is very similar to the one we just used for the visibility business rule. Compared to Salesforce formulas the operators and functions are fairly limited. I suspect that the range options will be expanded in subsequent releases. Also, like Salesforce, this is updated on save, not in real-time.
I want to tie a few loose ends together before ending this post. One of the reasons for the difference in the real-time responsiveness is related to how editing is implemented. Dynamics offers in-line editing whereas Salesforce displays an edit dialog overlay which displays only those fields that can be edited.
A common complaint is screen clutter. Salesforce addresses this nicely with the field display restrictions in the edit dialog. The bottom line is that you cannot have it both ways: either fields can update real-time when editing the entire form or the editing is restricted to only those fields which can be edited making these real-time updates impossible.
Arguments can be made for both approaches and I think that each system has done a good job at implementing them. The biggest take away for the administrator moving between platforms is sensitivity to the users. This is a paradigm shift and a well-executed training program is a must.