We had been facing one issue over here, it was regarding a particular field’s value getting set to blank on updating the SalesOrder record in CRM.
This used to occur when we were updating that record from within our SharePoint application which was using CrmService. However from within CRM, things were working absolutely fine.
After spending lot of time on that we realized that it was because of using ForceSubmit on that field/attribute.
If we are working from within the form in CRM, the value for that field would be passed to our plugin’s inputparameter, even if its value hasn’t been modified, in case of update event.
However if the record is getting updated using CrmService from an external application, the ForceSubmit thing won’t work as it is defined at form level, so the value for that field wouldn’t get passed. Its value will be passed only if that field’s value is modified.
So in our case we than modified our code to use Retrieve method to get that field’s value.