Scripting et migration du client mobile GlideForm (formulaire g)

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 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 respecter certaines règles. Les éléments suivants sont affectés sur Mobile Platform : scripts clients, politiques d’interface utilisateur, modules de navigation et actions d’interface utilisateur.

    Scripts clients

    Pour que les scripts nouveaux ou existants soient valables pour les équipements mobiles, ils doivent respecter les exigences suivantes :
    • Utilisez les nouvelles méthodes mobiles à la place de g_form.getControl().
    • N’utilisez pas de méthodes déconseillées.
    • Ne faites pas référence à des objets de navigateur non pris en charge.
    • Ne faites pas d’appels JavaScript, GlideAjax et GlideRecord synchrones.
    • N’appelez pas de méthodes qui ne sont pas disponibles pour Mobile.
    • Autorisez les scripts à s’exécuter sur l’interface utilisateur Mobile.
    Tableau 1. Exigences
    Utiliser les nouvelles méthodes mobiles Plusieurs nouvelles méthodes sont disponibles pour modifier les champs de formulaire au lieu de manipuler directement le contenu HTML. Ces méthodes remplacent les utilisations précédentes de g_form.getControl(), qui est déconseillée pour Mobile Platform. 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 Mobile Platform. Pour plus d’informations sur ces nouvelles méthodes, consultez l’API GlideForm() mobile.
    Ne pas utiliser de méthodes déconseillées

    Les méthodes suivantes ont été déconseillées pour Mobile Platform, 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 de votre code tous les appels vers des méthodes déconseillées. Pour les nouveaux scripts, n’utilisez pas de méthodes déconseillées si vous voulez que le script soit valide pour Mobile.

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

    Ne pas faire référence à des objets de navigateur non pris en charge

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

    • 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 de vos scripts existants. Utilisez GlideForm (g_form) à la place, 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

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

     g_form.getReference(fieldName, callback)

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

     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 Mobile Platform :

     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 Mobile Platform n’autorise pas les appels GlideAjax synchrones. L’utilisation de getXMLWait() dans un appel GlideAjax ne fonctionnera pas sur Mobile Platform. 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 comprennent un rappel. Par exemple, le script suivant n’inclut pas de rappel et est incompatible avec Mobile Platform :

     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 Mobile Platform :

     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);
     });
    Ne pas utiliser de méthodes indisponibles sur Mobile Platform
    En raison des limitations et de la réduction des fonctionnalités qu’impose l’utilisation de Mobile Platform, les méthodes suivantes ne sont pas déconseillées mais ne sont pas disponibles sur Mobile Platform. Si celles-ci s’exécutent sur Mobile Platform, aucune action ne se produit :
    • showRelatedList ()
    • hideRelatedList ()
    • showRelatedLists ()
    • hideRelatedLists()
    • flash()
    • getSections()
    • enableAttachments()
    • disableAttachments()
    • setReadonly() (Veuillez noter que setReadOnly() est disponible)
    • getParameter()
    Activer les scripts pour Mobile

    Les scripts doivent être activés pour Mobile Platform.

    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 un type d’IU pour déterminer si les scripts s’exécutent sur Mobile Platform, le bureau ou les deux. Mettez à jour les politiques existantes afin qu’elles s’appliquent à Mobile Platform ou aux deux. Pour les nouveaux scripts, assurez-vous également que l’option mobile ou les deux options soient sélectionnées.

    Modules de navigation

    Pour le code existant, les modules doivent être transférés aux tables sys_ui_application ou sys_ui_module pour être disponibles sur Mobile Platform. Lors du développement de 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 d’interface utilisateur doivent être transférées vers la table sys_ui_ng_action pour apparaître sur Mobile Platform. Les scripts d’action de l’interface utilisateur qui n’utilisent pas de méthodes déconseillées ne nécessitent pas de modifier le script lui-même. Pour les nouvelles actions d’interface utilisateur, assurez-vous qu’elles sont créées dans la table sys_ui_ng_action.