„GlideForm“-Skripts (g form) für die Mobilplattform erstellen und migrieren

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Client-Skripts für die Mobilplattform werden genauso erstellt wie Skripts für das Web, mit einigen wenigen Ausnahmen. Alle neuen Skripts müssen bestimmten Richtlinien entsprechen. Auf der Mobilplattform betrifft dies folgende Elemente: Client-Skripts, UI-Richtlinien, Navigatormodule und UI Actions.

    Client-Skripts

    Damit neue oder vorhandene Skripts mit der Mobilplattform kompatibel sind, müssen sie die folgenden Anforderungen erfüllen:
    • Sie müssen anstelle von g_form.getControl() die neuen mobilen Methoden verwenden.
    • Sie dürfen keine veralteten Methoden verwenden.
    • Sie dürfen keine nicht unterstützten Browserobjekte referenzieren.
    • Sie dürfen keine asynchronen JavaScript-Aufrufe, Aufrufe des Typs GlideAjax oder Aufrufe des Typs GlideRecord senden.
    • Sie dürfen keine Methoden aufrufen, die auf der Mobilplattform nicht unterstützt werden.
    • Sie müssen die Ausführung von Skripts in der Mobil-UI zulassen.
    Tabelle : 1. Anforderungen
    Neue mobile Methoden verwenden Es gibt mehrere neue Methoden, mit denen sich Formularfelder ändern lassen, ohne dass eine direkte Änderung des HTML-Codes nötig wäre. Diese Methoden ersetzen die bisherigen Anwendungsfälle der Methode g_form.getControl(), die auf der Mobilplattform veraltet ist. Vorhandene Skripts müssen die neuen Methoden verwenden statt Methoden, die auf der Mobilplattform nicht mehr gültig sind. Weitere Informationen zu diesen neuen Methoden finden Sie in der Mobile GlideForm()-API.
    Keine veralteten Methoden verwenden

    Die folgenden Methoden sind auf der Mobilplattform veraltet, da dort der direkte Zugriff auf HTML-Elemente nicht zulässig ist:

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

    Um die Kompatibilität vorhandener Skripts sicherzustellen, müssen Sie alle Aufrufe veralteter Methoden aus dem Code entfernen. Verwenden Sie in neuen Skripts keine veralteten Methoden, wenn die Skripts mit der Mobilplattform kompatibel sein sollen.

    Einige Funktionalitäten, die bisher über g_form.getControl() verfügbar waren, wurden in Einzelmethoden extrahiert. Verwenden Sie statt g_form.getControl() die neuen Methoden, die auf der Entwickler-Site beschrieben sind.

    Auf keine nicht unterstützten Browserobjekte verweisen

    Die folgenden Browserobjekte werden in Skripts für die Mobilplattform nicht unterstützt:

    • Fenster
    • jQuery-Objekte und Prototype-Objekte („$“, „$j“ oder „$$“)
    • document

    Stellen Sie sicher, dass neue Skripts diese Objekte nicht verwenden. Entfernen Sie jegliche Verwendung dieser Objekte aus bereits vorhandenen Skripts. Nutzen Sie stattdessen GlideForm (g_form). Sie stellt Methoden wie setLabel(), addDecoration() und hasField() bereit, die dieselben Aufgaben erfüllen.

    Keine synchronen JavaScript-Aufrufe senden

    Die Mobilplattform erlaubt keine synchronen JavaScript-Aufrufe. In der Methode g_form.getReference() muss jetzt der Parameter „callback“ angegeben werden. Beispiel:

     g_form.getReference(fieldName, callback)

    Stellen Sie sicher, dass alle Aufrufe des Typs g_form.getReference() den Parameter „callback“ enthalten. Das folgende Skript enthält beispielsweise keinen Rückruf und ist nicht mit der Mobilplattform kompatibel:

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

    Das folgende Skript wurde mit dem Rückruf aktualisiert und ist mit der Mobilplattform kompatibel:

     g_form.getReference('assigned_to', function(now_GR) {
         g_form.setValue('u_assigned_user_name', gr.user_name);
     });
    Keine synchronen Ajax-Aufrufe senden Die Mobilplattform lässt keine synchronen Aufrufe des Typs GlideAjax zu. getXMLWait() in Aufrufen des Typs GlideAjax funktioniert auf der Mobilpattform nicht. Stellen Sie sicher, dass alle Aufrufe des Typs GlideAjax asynchron sind. Weitere Informationen zu synchronen und asynchronen Aufrufen von GlideAjax und getXMLWait()finden Sie unter AJAX. Informationen zu den verfügbaren GlideAjax- Methoden finden Sie in der GlideAjax-API.
    Keine synchronen Aufrufe des Typs GlideRecord senden

    Die mobile Plattform lässt keine synchronen Aufrufe des Typs GlideRecord zu. Stellen Sie sicher, dass alle vorhandenen Aufrufe des Typs GlideRecord einen Rückruf enthalten. Das folgende Skript enthält beispielsweise keinen Rückruf und ist nicht mit der Mobilplattform kompatibel:

     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);

    Das folgende Skript wurde mit einem Rückruf aktualisiert und ist mit der Mobilplattform kompatibel:

     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);
     });
    Keine Methoden verwenden, die auf der Mobilplattform nicht verfügbar sind
    Die folgenden Methoden sind nicht veraltet, stehen aber aufgrund der Einschränkungen und des begrenzten Funktionalitätsumfangs der Mobilplattform auf ihr nicht zur Verfügung. Werden sie auf der Mobilplattform ausgeführt, wird keine Aktion ausgeführt:
    • showRelatedList()
    • hideRelatedList()
    • showRelatedLists()
    • hideRelatedLists()
    • flash()
    • getSections()
    • enableAttachments()
    • disableAttachments()
    • setReadonly() [Die Methode setReadOnly() ist verfügbar.]
    • getParameter()
    Skripts für die Mobilplattform aktivieren

    Skripts müssen für die Mobilpattform aktiviert sein.

    Hinweis:
    Das Fokussieren von Elementen in Mobilformularen wird nicht unterstützt.

    UI-Richtlinien

    Verwenden Sie das Feld Skripts in UI-Typ ausführen, um festzulegen, ob Skripts auf der Mobilplattform, auf der Desktop-Plattform oder auf beiden Plattformen ausgeführt werden sollen. Aktualisieren Sie vorhandene Richtlinien so, dass sie entweder auf die Mobilplattform oder beide Plattformen angewendet werden. Stellen Sie auch bei neuen Skripts sicher, dass die Mobiloption oder die Option für beide Plattformen ausgewählt ist.

    Navigator-Module

    In vorhandenem Code müssen Module entweder in die Tabelle „sys_ui_application“ oder in die Tabelle „sys_ui_module“ übertragen werden, damit sie auf der Mobilplattform verfügbar sind. Wenn Sie neuen Code schreiben, müssen Sie alle Module in der Tabelle „sys_ui_application“ oder der Tabelle „sys_ui_module“ erstellen.

    UI-Aktionen

    UI Actions müssen in die Tabelle „sys_ui_ng_action“ übertragen werden, damit sie auf der Mobilplattform angezeigt werden. Verwendet ein Skript für eine UI Action keine veralteten Methoden, muss das Skript selbst nicht geändert werden. Neue UI Actions müssen in der Tabelle „sys_ui_ng_action“ erstellt werden.