I have two fields on the Contact entity, let's call them new_b_main and new_b_sub, both of type Boolean.
My JS is simple - when new_b_main changes from false to true , new_b_sub should also switch to true (even if new_b_main switched back to false, new_b_sub should remain true)
My JS code:
function onSave(ExecutionContext) { if(Xrm.Page.getAttribute("new_b_main").getValue() && Xrm.Page.getAttribute("new_b_main").getIsDirty()) Xrm.Page.getAttribute("new_b_sub").setValue(true); }
I also have a plugin step that runs of an Update of Contact (Pre-Operation) with a filtering attributes of new_b_sub.
The plugin should check if new_b_sub is true and if so, get the governmentid of the Contact (via Pre-Image), encode it to Base64 and store it in some other field.
The code for the Plugin is as follows:
// Runs of Pre-Operation private void EncodeToBase64(Entity target, string governmentId) { if(target.Contains("new_b_sub") && target["new_b_sub"] != null && (bool)target["new_b_sub"]) { string base64 = string.Empty; // encode governmentid to Base64 here .... target["new_stored_base64_field"] = base64; } }
Now, when I change new_b_main for the first time, new_b_sub is changed to true , as expected. I save the record , but the Base64 field remains empty. However, if I then change new_b_sub to false, save the record, and then change it to true again and save the record, I do see the Base64 field being populated.
What could be the cause for the Base64 field being populated only from second update?
Apparently the issue was that on Create of Contact record, new_b_sub was changed to true. Which is why new_b_main had no effect the first time it changed to true.
The getIsDirty has been evaluated to true on Create.
I wonder why Dynamics would think new_b_main had been changed even though it hadn't.
Hello,
Try to use the following addition to your code:
function onSave(ExecutionContext)
{
if(Xrm.Page.getAttribute("new_b_main").getValue() && Xrm.Page.getAttribute("new_b_main").getIsDirty())
Xrm.Page.getAttribute("new_b_sub").setValue(true);
Xrm.Page.getAttribute("new_b_sub").setSubmitMode("always");
}
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,253 Super User 2024 Season 2
Martin Dráb 230,188 Most Valuable Professional
nmaenpaa 101,156