Suppose we have the following fields in the form as well as in the business process flow stage for the lead.
- Rating and Email in the form.
- Rating 1, Rating 2, and Email in the BPF.

And let us apply the below JavaScript on the form load.

On opening the lead form below is the result we get.

formContext. getControl(“leadqualitycode”).setVisible(true); | Sets the Rating field visible on the form. |
formContext. getControl(“header_process_leadqualitycode”).setVisible(false); | Hides the Rating 1 field on the BPF. |
formContext.getControl(“header_process_leadqualitycode_1”).setVisible(true); | Set the Rating 2 field visible on the BPF. |
|
As the getControl method is used to show or hide the field it only applies to the field being referenced. That is why we only have the Rating 1 field on the BPF being hidden. | |
formContext. getAttribute(“leadqualitycode”).setRequiredLevel(“required”); | Set the Rating field on the form as mandatory. |
formContext.getControl(“header_process_leadqualitycode_1”). getAttribute().setRequiredLevel(“none”); | Set the Rating 2 field in BPF as non-mandatory |
|
We are setting the Rating field on the form as mandatory, in the next line we are setting the Rating 2 field on the BPF as non-mandatory, the final result is Rating field is non-mandatory on the form as well because here getAttribute method is used which applies to the attribute level so gets applied to all its corresponding controls. | |
formContext.getAttribute(“leadqualitycode”).setValue(3) | Set the Rating field on the form’s value to Cold |
|
As getAttribute is being used the value set for the Rating field on the form applies to the field in the BPF also. | |
formContext. getControl(“header_process_leadqualitycode_1”).setDisabled(true); | Set the Rating 2 BPF field as disabled. |
|
As getControl is used it only applies/disables the Rating 2 field on the BPF. | |
formContext.getControl(“header_process_emailaddress1”). getAttribute().setValue(“test@test.hotmail.com”); | Set the value of the Email address field on the form. |
|
As getAttribute is being used the value set for the Email field on the BPF also applies to the field on the form. | |
formContext.getControl(“header_process_leadqualitycode_1”). getAttribute().addOnChange(function () { var lastNameValue = formContext.getAttribute(“lastname”).getValue(); if (lastNameValue) { alert(“Hello, ” + lastNameValue + “!”); } else { alert(“Hello World!”); } }); | Adds the on-change event to the Rating 2 field on the BPF. |
|
As getAttribute is being used the on-change event handler is applied to both the fields on the form as well as field. |
Check other posts on BPF –
Hope it helps..
Discover more from Nishant Rana's Weblog
Subscribe to get the latest posts sent to your email.

2 thoughts on “JavaScript for fields in Business Process Flow (few key points)– Dataverse / Dynamics 365”