Reputation: 9194
I'm syncing Account and Contact information between Dynamics CRM 365 and QuickBooks Desktop.
What I'm trying to do in CRM is have a checkbox called something like "Address updated since last QB Sync". It is locked so the user can't touch it and should automatically be checked when a user updates specific fields: company name, address, phone, email.
Trying to do this with a business rule, but apparently does not seem possible. Would be the best way to handle this (web resource, business process, etc)?
Upvotes: 0
Views: 1245
Reputation: 9194
What I ended up doing was creating a web resource and assigning it to the OnChange
event of the fields I wanted to monitor for changes:
function fieldChanged() {
Xrm.Page.getAttribute("new_updatessincelastqbsync").setValue(true);
}
address1_composite
was a bit tricky since it wasn't detecting the OnChange
event. Had to add the field that comprise of the composite as hidden fields and add the web resource to the OnChange
event for those. Now it is working 100%.
Upvotes: 0
Reputation: 189
You could also create a Workflow process that triggers when some of the attributes is updated, this is more inline with the use customization strategy that MSFT recommend, the downside is that you will have to create one Workflow for each of the entities
Hope It Hepls - M.Acosta.D
Upvotes: 0
Reputation: 22836
Pre-update plugin will be your best bet. Write a C# plugin to set the checkbox (bool) attribute in target entity if any of those four attributes are changed.
Register the target entity as Contact, even you can filter those four attributes in filtered attributes of Plugin step.
This avoids an explicit record update, also the plugin will fire only when any of those four fields were updated, and the flag will be set within the same DB transaction as an additional attribute.
Upvotes: 2