Écrire et déboguer des scripts pour Dynamics 365 pour téléphones et tablettes

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 pour téléphones et Microsoft Dynamics 365 pour tablettes utilisent les mêmes définitions de formulaire que celles utilisées dans l’application Web. Tout code JavaScript que vous ajoutez aux gestionnaires d’événements de formulaire ou aux commandes du ruban dans l’application Web peut également s’exécuter dans les clients mobiles Dynamics 365 (téléphones et tablettes). Il existe des différences que vous devez connaître.

Contenu de la rubrique

Certaines fonctions d’objet Xrm.Page ou de fenêtre ne fonctionnent pas dans Dynamics 365 pour téléphones et tablettes

Spécifier le code qui s’exécute dans Dynamics 365 pour téléphones et tablettes

Spécifier les commandes qui s’affichent dans Dynamics 365 pour téléphones et tablettes

Connaître les différences entre les clients mobiles Dynamics 365 pour tablettes et l’application Web dans un navigateur

Débogage de scripts pour Dynamics 365 pour téléphones et tablettes

Certaines fonctions d’objet Xrm.Page ou de fenêtre ne fonctionnent pas dans Dynamics 365 pour téléphones et tablettes

Les clients mobiles Dynamics 365 n’autorisent pas les fonctions qui peuvent bloquer l’exécution des scripts. Les fonctions JavaScript courantes telles que window.alert, window.confirm et window.prompt ne fonctionnent pas comme prévu ou génèrent simplement des erreurs.

Utilisez les fonctions Xrm.UtilityalertDialog et confirmDialog pour afficher les messages aux utilisateurs. Ces fonctions fonctionnent différemment des fonctions de fenêtre, car elles n’arrêtent pas le traitement des scripts tant que l’utilisateur ne les ferme pas. Elles fournissent des fonctions de rappel pour autoriser une réponse asynchrone à l’entrée d’utilisateur. L’utilisation de window.confirm, de window.prompt ou de toute autre fonction de fenêtre native qui bloque l’exécution des scripts génère une erreur.

Notes

Si vous utilisez window.alert dans vos scripts de formulaire, le message que vous définissez est automatiquement affiché à l’aide de Xrm.Utility.alertDialog sans une fonction de rappel spécifiée, mais il est temporaire et doit toujours être considéré comme obsolète. Tout code qui utilise window.alert doit utiliser Xrm.Utility.alertDialog à la place.

Les clients mobiles Dynamics 365 ne prennent pas non plus en charge la méthode window.open. Si vous souhaitez ouvrir un formulaire d'entité pour un enregistrement nouveau ou existant, utilisez Xrm.Utility.openEntityForm à la place.

Les méthodes suivantes ne fonctionnent pas dans les clients mobiles Dynamics 365 (téléphones et tablettes).

Xrm.Page.context.getCurrentTheme

Xrm.Page.uiMéthodes ViewPort

Xrm.Page.data.entity.getDataXml

Collection Xrm.Page.ui.navigation.items

Méthodes d'objet Xrm.Page.ui.formSelector

Xrm.Page.ui tab.setDisplayState

La plupart de ces fonctions exécutent une fonction vide et ne retournent aucune valeur. Si votre code attend une valeur de retour de l’une de ces fonctions, celle-ci n’est pas définie.

Par ailleurs, Dynamics 365 pour téléphones ne prend pas en charge les ressources Web et les IFRAMES de sorte que les API clientes pour ces contrôles ne fonctionneront pas. Les API clientes pour les ressources Web et les IFRAMES sont prises toutefois en charge sur Dynamics 365 pour tablettes. Pour plus d'informations, voir : Méthodes relatives aux contrôles de ressources Web et IFRAME

Spécifier le code qui s’exécute dans Dynamics 365 pour téléphones et tablettes

Lorsque les fonctionnalités de l’API cliente sont différentes, vous devez inclure un code similaire au code suivant pour séparer la logique que vous appliquez pour chaque utilisateur.

var isCrmForMobile = (Xrm.Page.context.client.getClient() == "Mobile")
if (isCrmForMobile)
{
 // Code for CRM for phones and tablets only goes here.
}
else
{
 // Code for web browser or CRM for Outlook only goes here.
}
// Code for any client goes here.

Spécifier les commandes qui s’affichent dans Dynamics 365 pour téléphones et tablettes

Lorsque vous utilisez l’action <JavaScriptFunction> (RibbonDiffXml) dans vos commandes personnalisées de la barre de commandes (ruban), vous pouvez également séparer votre code à l’aide de Xrm.Page.context.client.getClient. Si l’action à exécuter ne fonctionne pas avec les clients mobiles Dynamics 365, vous devez inclure des règles d’affichage de sorte que les commandes n’apparaissent pas dans Dynamics 365 pour tablettes. Par défaut, toute commande définie s’affiche dans les clients mobiles Dynamics 365 sauf si vous la configurez explicitement pour qu’elle ne s’affiche pas. En règle générale, vous devez définir la règle d’affichage suivante et l’inclure dans chaque commande sauf si vous savez qu’elle fonctionne avec les clients mobiles Dynamics 365.

<DisplayRule Id="My.HideOnModern">
 <CommandClientTypeRule Type="Modern"
                        InvertResult="true" />
</DisplayRule>

Connaître les différences entre les clients mobiles Dynamics 365 pour tablettes et l’application Web dans un navigateur

Outre les fonctions décrites dans Certaines fonctions d’objet Xrm.Page ou de fenêtre ne fonctionnent pas dans Dynamics 365 pour téléphones et tablettes, vous devez également savoir qu’il existe d’autres différences.

  • Champs composés
    Les clients mobiles Dynamics 365 implémentent différemment les champs composites. Les clients mobiles Dynamics 365 ne contiennent pas d'attributs composites. Ils substituent automatiquement les attributs constitutifs et les affichent à la place.Pour plus d'informations :Écrire des scripts pour les attributs composés.

Débogage de scripts pour Dynamics 365 pour téléphones et tablettes

Dans la mesure où Dynamics 365 pour téléphones et Dynamics 365 pour tablettes sont des applications, les outils de débogage JavaScript normaux que vous pouvez utiliser dans le navigateur ne sont pas disponibles. Nous vous recommandons la procédure suivante pour tester et déboguer vos scripts de formulaire et vos commandes du ruban :

  1. Testez vos scripts de manière approfondie à l’aide de l’application Web.

  2. Dans le cadre des tests avec le navigateur Web, inversez les critères lorsque vous recherchez le client avec Xrm.Page.context.client.getClient et vérifiez que la logique est appropriée à l’expérience des utilisateurs qui utilisent les clients mobiles Dynamics 365. Les API disponibles pour les clients mobiles Dynamics 365 sont un sous-ensemble des API disponibles pour le navigateur Web. Vous devriez donc pouvoir tester l’autre flux dans le navigateur Web.

  3. Si possible, installez les clients mobiles Dynamics 365 sur un ordinateur où Windows 10 et Microsoft Visual Studio sont installés. Incluez les instructions du débogueur à l’emplacement où vous souhaitez lancer le débogueur avec Visual Studio.

  4. Enfin, utilisez Xrm.Utility.alertDialog pour afficher les valeurs de votre code dans les clients mobiles Dynamics 365.

Voir aussi

Écrire du code pour les formulaires Microsoft Dynamics 365
Utiliser des événements de formulaire et de champ
Utiliser le modèle d’objet Xrm.Page
Écrire des scripts pour les attributs composés
Référence rapide des scripts de formulaires
Référence par programmation côté client
Présentation de la barre de commandes et du ruban

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright