To make the form read-only in Dynamics 365 you have 2 options. Either changing record status to Inactive or making all form fields disabled with Javascript.

Changing record status to Inactive might not suitable for some business cases. For example you might want to make your form read-only based on an attribute. If you change your status to inactive, it might trigger record cascading, which will cause to setting related child record status to also inactive. In addition your record won’t show up under Active records view.

If you think this is not the best way for you, then you can use Javascript. The below piece of code sets all form fields to read-only dynamically. It will loop through your form controls(tabs, sections, feilds) one by one and disable them.

--

--

The one of addition that we saw is Progress Indicator functionality with Dynamics 365 v9 release. With this functionality, users can now develop more responsive forms and display the Progress dialog/Indicator using “showProgressIndicator” function of XRM.Utility namespace.

You can add showProgressIndicator to any of your form events like Ribbon buttons, field events, onSave event, onLoad event etc.

The Syntax of the showProgressIndicator is :

Xrm.Utility.showProgressIndicator(message)

Parameters :

NameTypeRequiredDescriptionmessageStringYesThe message to be displayed in the progress dialog.

Note that, You need to use closeProgressIndicator to close the indicator.

Below is the showProgressIndicator usage on onChange event of the form field.

Example

To show indicator on saving of record add this code to your onSave event.

RelationshipTypeOnChange: function (context) {
Xrm.Utility.showProgressIndicator("Please wait while record updating…");
// Do your logic
Xrm.Utility.closeProgressIndicator();
},

--

--

Multi-table lookups, are now finally live (Preview) for use via API or SDK. Multi-table lookups (polymorphic lookups) allow the creation of a lookup in one table that looks up records in multiple other tables at once. This provides much greater flexibility in retrieving data within your environments.

Let’s imagine we have many different objects that are in different formats but have the same name. For example we have Books, Audio, Video and Pictures. Creating a multi-table lookup called mt_MultiMedia that has 1:M relationships all to these individuals mt_Pictures, mt_Audio, mt_Books and mt_Video will result in a mt_MultiMedia lookup table provides the records stored in individual tables.

--

--