CRM Support for tablets

You will be already aware that CRM 2013 support the tablet environment as well. From a developer point of view we need to take care that the code which we are using will also work for the tablet environment. This is because the CRM for tablets does not allow any functions that can block the execution of the scripts. Normal javascript functions like alert, confirm and prompts will not work as we expect in tablets. They will simply throw errors.

If we need to show any message to the user working in tablets then we need to use the latest functions as part of CRM SDK instead of the alerts or prompts. We have to use Xrm.Utility.alertDialog and confirmDialog functions to display messages to the user.This is because these functions do not stop the processing of scripts until the user closes them.

Similarly below are some of the examples that will not work in tablets when using CRM,
Xrm.Page.context.getCurrentTheme
Xrm.Page.data.entity.getDataXml
Xrm.Page.ui.formSelector object methods
Xrm.Page.ui.navigation.items collection
Xrm.Page.ui.refreshRibbon
Xrm.Page.ui.ViewPort methods
Xrm.Page.ui.control Webresource and IFRAME control methods
Xrm.Page.ui.tab.setDisplayState
Xrm.Utility.openWebResource
If opened from the tablets these functions will simply execute an empty function and return nothing. If we expect a return value from these functions it will be undefined.

So if we are customizing in CRM for tablets then its better to distinguish between the code that will run in CRM tablets

It can be done by following below steps,
Get the client type (Xrm.Page.context.client.getClient())
If that is “Mobile”
Then do the coding for the tablets there
Else do the coding for the normal CRM scenario.
Not only the above fields, CRM for tablets implement the composite fields also in a different way than how the web application implements it. Composite fields will be substituted by the constituent attributes and display them instead.

Similar is the case for Web resources and IFRAMEs. If our code interacts with such objects we can expect that the control will not exist in a tablet CRM environment.

If you are not sure which commands will work on tablets then include a command rule which will not include such commands.

Reference: Specify what commands will display in CRM for tablets

Leave a comment