Skip to content

JavaScript for fields in Business Process Flow (few key points)– Dataverse / Dynamics 365

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.
A screenshot of a computer

Description automatically generated

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

A screenshot of a computer code
Description automatically generated

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 –

https://nishantrana.me/2024/10/09/use-javascript-to-enable-a-field-only-if-the-stage-is-active-in-business-process-flow-dynamics-365-dataverse/

https://nishantrana.me/2024/10/10/use-javascript-to-add-onchange-event-to-a-field-in-the-business-process-flow/

Hope it helps..

Advertisements


Discover more from Nishant Rana’s Weblog

Subscribe to get the latest posts sent to your email.

Unknown's avatar

Author: Nishant Rana

I love working in and sharing everything about Microsoft.NET technology !

Nishant Rana originally posted this article on 22 October 2024 at 9:30 PM.

Leave a Reply