Recently for a client I was given the requirement that they needed to update a custom field on activity records whether it was a completed record or not. The problem when a record is completed, it is in read only status and users can't update the record easily, with minimal clicks. To solve this business requirement, I wrote two JavaScript libraries.
1) UnlockFieldsOnLoad - This is the function you should list any field that you want to unlock if the record is in complete (read only status). This function should run on load of the form and will unlock the fields so they can be updated.
2) OnChangeUnlockedFields - This function is what will do the save when the field(s) are updated. What it does it check to see if the record is in a read only status. If if it is, it will make the record active again. After it makes the record activate again, it will write the change to the database, change the status back to the original status and save that change.
function UnlockFieldsOnLoad(executionContext)
{
var formContext = executionContext.getFormContext();
formContext.getControl("fieldname").setDisabled(false);
}
//Saves field value if form is read only.
function OnChangeUnlockedFields(executionContext)
{
var formContext = executionContext.getFormContext();
var stateCodeValue = formContext.getAttribute("statecode").getValue()
//We only want this JS to run if the record is in read only mode. 1=Completed, 2=Canceled
if(stateCodeValue === 1 || stateCodeValue === 2)
{
//Reactivate the record
formContext.getAttribute("statecode").setValue(0);
formContext.data.save(6).then(function ()
{
//Complete Record again
formContext.getAttribute("statecode").setValue(stateCodeValue);
formContext.data.save();
});
}
}
Harrah's Cherokee Casino - Mapyro
ReplyDeleteFind the best 삼척 출장안마 Harrah's 충청남도 출장마사지 Cherokee Casino Hotels 안성 출장안마 and Casinos in Cherokee, NC. MapYRO users can now compare rates and 전라남도 출장샵 choose the best hotels 세종특별자치 출장마사지 and
The article demonstrates a practical JavaScript customization in Microsoft Dynamics 365 for updating selected fields on completed or canceled activity records. Since these records are normally read-only, the solution uses two JavaScript functions: UnlockFieldsOnLoad enables the specified fields when the form loads, while OnChangeUnlockedFields temporarily reactivates the record, saves the updated field value, and restores its original status.
DeleteThis example highlights how JavaScript form events and execution context can be used to address specific business requirements in Dynamics 365. Developers can explore these concepts further through Javascript Online Training in India, particularly when learning event handling, form controls, and dynamic field management.
The two-function approach also demonstrates how JavaScript can automate record updates while preserving the intended record status. Building a stronger understanding of these programming techniques through Javascript Online Course in India can help developers create more interactive and efficient business applications.
DeleteI am thankful to this blog giving unique and helpful knowledge about this topic.
ReplyDeleteDP-060T00: Migrate NoSQL workloads to Azure Cosmos DB
This article contains a great deal of significant data. I'm stunned by the nature of the data and furthermore it is a helpful article for us, Thanks for share it.dynamics crm configuration service provider USA
ReplyDeleteHey very nice blog. Thanks for sharing. Keep posting. WS-012T00: Windows Server 2019 Hybrid and Azure IaaS
ReplyDelete