Scripting et migration du client mobile GlideForm (formulaire g)

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 4 minutes de lecture
  • Le scripting client pour Mobile est identique au scripting pour le Web, à quelques exceptions près. Tous les nouveaux scripts doivent être conformes à certaines directives. Les éléments suivants sont affectés sur la plateforme mobile : scripts clients, politiques d’interface utilisateur, modules de navigateur et actions d’interface utilisateur.

    Scripts clients

    Pour que les scripts nouveaux ou existants soient valides pour mobile, ils doivent être conformes aux exigences suivantes :
    • Utilisez les nouvelles méthodes mobiles à la place de g_form.getControl().
    • N’utilisez pas de méthodes obsolètes.
    • Ne faites pas référence à des objets de navigateur non pris en charge.
    • N’effectuez pas d’appels synchrones JavaScript, GlideAjax et GlideRecord .
    • Méthodes Ne pas appeler qui ne sont pas disponibles pour les appareils mobiles.
    • Activez l’exécution de scripts sur l’interface utilisateur mobile.
    Tableau 1. Besoins
    Utiliser les nouvelles méthodes mobiles Plusieurs nouvelles méthodes sont disponibles pour modifier les champs de formulaire au lieu de manipuler directement le HTML. Ces méthodes remplacent les utilisations précédentes de g_form.getControl(), qui est déconseillé pour la plate-forme mobile. Dans vos scripts existants, assurez-vous que les nouvelles méthodes sont utilisées à la place de méthodes qui ne sont pas valides sur la plateforme mobile. Pour plus d’informations sur ces nouvelles méthodes, consultez l’API Mobile GlideForm().
    N’utilisez pas de méthodes déconseillées

    Les méthodes suivantes ont été déconseillées pour la plateforme mobile, car l’accès direct aux éléments HTML n’est pas autorisé :

    • g_form.getControl()
    • g_form.getFormElement()
    • g_form.getElement()

    Pour vous assurer que les scripts existants sont compatibles, supprimez tous les appels aux méthodes déconseillées de votre code. Pour les nouveaux scripts, n’utilisez pas de méthodes obsolètes si vous voulez que le script soit valide pour mobile.

    Pour g_form.getControl(), certaines des fonctionnalités précédemment incluses dans cette méthode ont été extraites vers des méthodes individuelles. Au lieu de g_form.getControl(), utilisez les nouvelles méthodes décrites sur le site développeur.

    Ne pas référencer d’objets de navigateur non pris en charge

    Les objets de navigateur suivants ne sont pas pris en charge dans les scripts mobiles :

    • Fenêtre
    • jQuery ou prototype ($, $j ou $$)
    • Document

    Assurez-vous que les nouveaux scripts n’utilisent pas ces objets et supprimez toute utilisation de ces objets dans vos scripts existants. Utilisez plutôt GlideForm (g_form), qui fournit des méthodes telles que setLabel(),addDecoration() et hasField() pour accomplir les mêmes tâches.

    Ne pas effectuer d’appels JavaScript synchrones

    La plateforme mobile n’autorise pas les appels JavaScript synchrones. La méthode g_form.getReference() doit maintenant avoir le paramètre de rappel défini. Par exemple :

     g_form.getReference(fieldName, callback)

    Assurez-vous que tous les appels g_form.getReference() incluent le paramètre callback. Par exemple, le script suivant n’inclut pas de rappel et est incompatible avec la plateforme mobile :

     var userName = g_form.getReference('assigned_to').user_name;
     g_form.setValue('u_assigned_user_name', userName);

    Le script suivant a été mis à jour pour inclure le rappel et est compatible avec la plateforme mobile :

     g_form.getReference('assigned_to', function(now_GR) {
         g_form.setValue('u_assigned_user_name', gr.user_name);
     });
    Ne pas effectuer d’appels Ajax synchrones La plateforme mobile n’autorise pas les appels GlideAjax synchrones. Toute utilisation de getXMLWait() dans un appel GlideAjax ne fonctionnera pas sur la plateforme mobile. Assurez-vous que tous les appels GlideAjax sont asynchrones. Pour plus d’informations sur les appels GlideAjax synchrones et asynchrones et getXMLWait(), consultez AJAX. Pour plus d’informations sur les méthodes GlideAjax disponibles, consultez l’API GlideAjax.
    Ne pas effectuer d’appels GlideRecord synchrones

    La plateforme mobile n’autorise pas les appels GlideRecord synchrones. Assurez-vous que tous les appels GlideRecord existants incluent un rappel. Par exemple, le script suivant n’inclut pas de rappel et est incompatible avec la plateforme mobile :

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query();
     gr.next();
     g_form.setValue('u_related_incident_description', gr.short_description);

    Le script suivant a été mis à jour pour inclure le rappel et est compatible avec la plateforme mobile :

     var now_GR = new GlideRecord('incident');
     gr.addQuery('number', g_form.getValue('related_incident'));
     gr.query(function(now_GR) {
         gr.next();
         g_form.setValue('u_related_incident_description', gr.short_description);
     });
    N’utilisez pas de méthodes non disponibles sur la plateforme mobile
    En raison des limitations et des fonctionnalités réduites imposées par la plateforme mobile, les méthodes suivantes ne sont pas déconseillées mais ne sont pas disponibles sur la plateforme mobile. Si ceux-ci s’exécutent sur la plateforme mobile, aucune action ne se produit :
    • showRelatedList ()
    • hideRelatedList ()
    • showRelatedLists ()
    • hideRelatedLists()
    • flash()
    • getSections()
    • enableAttachments()
    • disableAttachments()
    • setReadonly() (Notez que setReadOnly() est disponible)
    • getParameter()
    Activer les scripts pour mobile

    Les scripts doivent être activés pour la plateforme mobile.

    Remarque :
    La concentration d’un élément sur un formulaire mobile n’est pas prise en charge.

    Politiques d'interface utilisateur

    Utilisez le champ Exécuter les scripts dans le type d’interface utilisateur pour déterminer si les scripts s’exécutent sur la plateforme mobile, le bureau ou les deux. Mettez à jour les stratégies existantes afin qu’elles s’appliquent soit à la plateforme mobile, soit aux deux. Pour les nouveaux scripts, assurez-vous également que l’option mobile ou les deux sont sélectionnées.

    Modules de navigation

    Pour le code existant, les modules doivent être transférés vers les tables sys_ui_application ou sys_ui_module pour être disponibles sur la plate-forme mobile. Lors du développement d’un nouveau code, assurez-vous que tous les modules sont créés dans les tables sys_ui_application ou sys_ui_module.

    Actions d'interface utilisateur

    Les actions de l’interface utilisateur doivent être transférées vers la table sys_ui_ng_action pour s’afficher sur la plateforme mobile. Les scripts d’action d’interface utilisateur qui n’utilisent pas de méthodes déconseillées ne nécessitent pas de modifications du script lui-même. Assurez-vous que les nouvelles actions d’interface utilisateur sont créées dans la table sys_ui_ng_action.