Sunday, May 17, 2020

Dynamics 365 Deprecated Client APIs

👉New Client APIs VS Deprecated Client APIs

Plan to use the new client APIs mentioned in the Replacement Client API column instead of the deprecated ones. The deprecated client APIs will continue to be available and supported until they are officially removed from a future major release.

 

 

 

Deprecated Client API

Replacement Client API

Comments

Xrm.Page

Forms: ExecutionContext.getFormContext

Use of the Xrm.Page object as a static access to the primary form context is still supported to maintain backward compatibility with the existing scripts. Based on the feedback, we understand that the usage of Xrm.Page is high, and it won't be removed as soon as some other client API methods listed in this section. We encourage you to use the new way of getting form content where possible. More information: Client API form context

Commands: Send it as the PrimaryControl parameter

Although Xrm.Page is deprecated, parent.Xrm.Page will continue to work in case of HTML web resources embedded in forms as this is the only way to access the form context from the HTML web resource.

Xrm.Page.context

Xrm.Utility.getGlobalContext

Allows access to the global context without going through the form context.

Xrm.Page.context.getQueryStringParameters

formContext.data.attributes

The formContext.data.attributes API will make retrieval of non-entity bound data consistent across entity forms, metadata-driven dialogs, and task-based flows. The data will be a combination of custom values sent using the query string and what was specified in the parameters in the openForm method.

Xrm.Page.context.getTimeZoneOffsetMinutes

globalContext.userSettings.getTimeZoneOffsetMinutes

Moved to globalContext.userSettings

Xrm.Page.context.getUserId

globalContext.userSettings.userId

Moved to globalContext.userSettings

Xrm.Page.context.getUserLcid

globalContext.userSettings.languageId

Moved to globalContext.userSettings

Xrm.Page.context.getUserName

globalContext.userSettings.userName

Moved to globalContext.userSettings

Xrm.Page.context.getUserRoles

globalContext.userSettings.securityRoles

Moved to globalContext.userSettings

Xrm.Page.context.getIsAutoSaveEnabled

globalContext.organizationSettings.isAutoSaveEnabled

Moved to globalContext.organizationSettings

Xrm.Page.context.getOrgLcid

globalContext.organizationSettings.languageId

Moved to globalContext.organizationSettings

Xrm.Page.context.getOrgUniqueName

globalContext.organizationSettings.uniqueName

Moved to globalContext.organizationSettings

Xrm.Page.data.entity.getDataXml

No change in the method, but use "typename" instead of type for lookup attributes.

 

GridRow.getData

GridRow.data

GridRow is essentially a form context. This change unifies the interface of GridRow with formContext.

GridRowData.getEntity

GridRowData.entity

GridRowData is form data. This change unifies the interface of GridRowData with formContextData.

Xrm.Mobile.offline

Xrm.WebApi.offline

Moved the offline-related methods under Xrm.WebApi.offline

parent.Xrm

Use one of the following:

Earlier: An HTML web resource may interact with the Xrm.Page or Xrm.Utility objects within the form by using parent.Xrm.Page or parent.Xrm.Utility.

 

 

a) Use a custom control created using Power Apps component framework instead of HTML web resources.

Now: parent.Xrm.* will work if the HTML web resource is loaded in a form container. It won't work for HTML web resources that are stand alone, or referenced from the site map or any other places.

 

 

b) On forms, use the getContentWindow method of the web resource control.

NOTEparent.Xrm will be removed after the removal of the ClientGlobalContext.js.aspx page; dates yet to be announced.

 

 

c) If the getContentWindow method doesn't work, you can use parent.Xrm to get to the Xrm object inside an HTML web resource. If the HTML web resource is opened in a new window, then you should use opener.Xrm instead.

 

addOnKeyPress

Use a custom control created using Power Apps component framework

 

fireOnKeyPress

Use a custom control created using Power Apps component framework

 

removeOnKeyPress

Use a custom control created using Power Apps component framework

 

showAutoComplete

Use a custom control created using Power Apps component framework

 

hideAutoComplete

Use a custom control created using Power Apps component framework

 

Xrm.Utility.alertDialog

Xrm.Navigation.openAlertDialog

The new signature is consistent with other APIs (openForm) and takes a new set of parameters for flexibility.

Xrm.Utility.confirmDialog

Xrm.Navigation.openConfirmDialog

The new signature is consistent with other APIs (openForm) and takes a new set of parameters for flexibility.

Xrm.Utility.getBarcodeValue

Xrm.Device.getBarcodeValue

Moving device-related actions to Xrm.Device

Xrm.Utility.getCurrentPosition

Xrm.Device.getCurrentPosition

Moving device-related actions to Xrm.Device

Xrm.Utility.isActivityType

Xrm.Utility.getEntityMetadata

The isActivityType method is synchronous so it was suitable for ribbon rules. However, the replacement method, getEntityMetadata, is asynchronous, and is not suitable for ribbon rules.

Xrm.Utility.openEntityForm

Xrm.Navigation.openForm

Moving navigation actions to Xrm.Navigation

Xrm.Utility.openQuickCreate

Xrm.Navigation.openForm

Moving navigation actions to Xrm.Navigation

Xrm.Utility.openWebResource

Xrm.Navigation.openWebResource

Moving navigation actions to Xrm.Navigation

Note: This API returns VOID in Unified Interface.

globalContext.organizationSettings.baseCurrencyId

globalContext.organizationSettings.baseCurrency

The replacement method lets you access the display name along with the ID of transaction currency.

globalContext.userSettings.securityRoles

globalContext.userSettings.Roles

The replacement method lets you access the display name along with the ID of the security roles.

globalContext.userSettings.transactionCurrencyId

globalContext.userSettings.transactionCurrency

The replacement method lets you access the display name along with the ID of transaction currency.

getData and setData for Silverlight web resources

None

Silverlight is no longer supported. These methods won't be available after October 2020.

formContext.data.entity.save

formContext.data.save

 

ClientGlobalContext.js.aspx

None

The ClientGlobalContext.js.aspx page is deprecated and scheduled to be unavailable after October 1, 2021. Alternative methods to access global context information will be available before April 1, 2021.

getObject

getContentWindow

 


 
References:



Thank you!
Enjoy CRMing 😇

No comments:

Post a Comment