GlideAjax – Client

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 5 Minuten Lesedauer
  • Die GlideAjax-Klasse ermöglicht es einem Client-Skript, serverseitigen Code in einer Skripteinbindung aufzurufen.

    Um GlideAjax in einem Client-Skript zu verwenden, führen Sie diese allgemeinen Schritte aus.

    1. Erstellen Sie eine GlideAjax-Instanz, indem Sie den GlideAjax-Konstruktor aufrufen. Geben Sie als Argument für den Konstruktor den Namen der Skripteinbindungs-Klasse an, die die Methode enthält, die Sie aufrufen möchten.
    2. Rufen Sie an AddParam Methode mit sysparm_nameParameter und der Name der Skripteinbindungsmethode, die Sie aufrufen möchten.
    3. Optional. Rufen Sie an AddParam Methode einmal oder mehrmals, um den Skripteinbindungscode mit anderen erforderlichen Parametern bereitzustellen.
    4. Führen Sie den serverseitigen Code aus, indem Sie getXML() aufrufen.
      Hinweis:
      getXML() ist die bevorzugte Methode zum Ausführen des Codes, da sie asynchron ist und die Ausführung von anderem Clientcode nicht aufhält. Eine andere Methode, getXMLWait(), ist ebenfalls verfügbar, wird jedoch nicht empfohlen. Mit der Verwendung von getXMLWait() stellen Sie die Reihenfolge der Ausführung sicher, dies kann jedoch dazu führen, dass die Anwendung nicht mehr reagiert, was die Benutzererfahrung jeder Anwendung, die sie verwendet, erheblich beeinträchtigt. getXMLWait() steht für bereichsbezogene Anwendungen nicht zur Verfügung.
    var ga = new GlideAjax('HelloWorld'); // HelloWorld is the script include class 
    ga.addParam('sysparm_name','helloWorld'); // helloWorld is the script include method 
    ga.addParam('sysparm_user_name',"Bob"); // Set parameter sysparm_user_name to 'Bob' 
    ga.getXML(HelloWorldParse);  /* Call HelloWorld.helloWorld() with the parameter sysparm_user_name set to 'Bob' 
          and use the callback function HelloWorldParse() to return the result when ready */
    
    // the callback function for returning the result from the server-side code
    function HelloWorldParse(response) {  
       var answer = response.responseXML.documentElement.getAttribute("answer"); 
        alert(answer);
    }

    GlideAjax – GlideAjax (String class_name)

    Konstruktor für GlideAjax.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    class_name Zeichenfolge Der Name der serverseitigen Klasse, die die Methode enthält, die Sie ausführen möchten.

    In diesem Beispiel legt ein Clientskript den Anwender auf Fred Luddy fest und ruft dann eine Skripteinbindung auf, um seinen Manager zu erhalten.

    // client script – contains onLoad function and a callback function
    
    function onLoad() {
       var ga = new GlideAjax('GetUserInfo'); // GetUserInfo is the script include name 
       ga.addParam('sysparm_name','managerName'); // managerName is the function in the script include that we're calling 
       ga.addParam('sysparm_user_name','fred.luddy'); // set user to Fred Luddy 
    
       /* Call GetUserInfo.managerName() with user set to Fred Luddy and use the callback function ManagerParse() to return the result when ready */
       ga.getXMLAnswer(ManagerParse);  		
    }
    
    // callback function for returning the result from the script include
    function ManagerParse(response) {  
       alert(response);
    }
    
    
    // GetUserInfo script include 
    
    var GetUserInfo = Class.create();
    GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
    
        managerName: function() {
            var userName = this.getParameter("sysparm_user_name");
            var grUser = new GlideRecord('sys_user');
            grUser.get("user_name", userName);
    
            // Build the payload. You can return additional data if needed. 
            var result = {    
               "manager": grUser.getDisplayValue('manager')
            }; 
            return JSON.stringify(result);
        },
        type: 'GetUserInfo'
    });
    

    GlideAjax – addParam(String parm_name, String parm_value)

    Gibt einen Parameternamen und einen Wert an, der an die mit dem GlideAjax- Objekt verbundene serverseitige Funktion übergeben werden soll.

    Sie können addParam mehrfach mit unterschiedlichen Parametern und Werten ausführen.
    Hinweis:
    Der erste Anruf an AddParam Muss mit dem Parameter sein sysparm_name Und der Name der serverseitigen Methode, die Sie aufrufen möchten. Der serverseitige Code wird erst ausgeführt, wenn das Client-Skript aufruft GetXML() Oder GetXMLAnswer() .
    Tabelle : 2. Parameter
    Name Typ Beschreibung
    parm_name Zeichenfolge Der Name des Parameters, der übergeben werden soll. (Der Name muss mit dem sysparm_ beginnen.)
    parm_value Zeichenfolge Der Wert, dem zugewiesen werden soll parm_name.
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel legt ein Clientskript den Anwender auf Fred Luddy fest und ruft dann eine Skripteinbindung auf, um seinen Manager zu erhalten.

    // client script – contains onLoad function and a callback function
    
    function onLoad() {
       var ga = new GlideAjax('GetUserInfo'); // GetUserInfo is the script include name 
       ga.addParam('sysparm_name','managerName'); // managerName is the function in the script include that we're calling 
       ga.addParam('sysparm_user_name','fred.luddy'); // set user to Fred Luddy 
    
       /* Call GetUserInfo.managerName() with user set to Fred Luddy and use the callback function ManagerParse() to return the result when ready */
       ga.getXMLAnswer(ManagerParse);  		
    }
    
    // callback function for returning the result from the script include
    function ManagerParse(response) {  
       alert(response);
    }
    
    
    // GetUserInfo script include 
    
    var GetUserInfo = Class.create();
    GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
    
        managerName: function() {
            var userName = this.getParameter("sysparm_user_name");
            var grUser = new GlideRecord('sys_user');
            grUser.get("user_name", userName);
    
            // Build the payload. You can return additional data if needed. 
            var result = {    
               "manager": grUser.getDisplayValue('manager')
            }; 
            return JSON.stringify(result);
        },
        type: 'GetUserInfo'
    });
    

    GlideAjax – getAnswer()

    Ruft die Ergebnisse von einer serverseitigen Methode ab, die vom Client über getXMLWait() aufgerufen wird.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    void Das Ergebnis, das von der serverseitigen Methode zurückgegeben wurde, die zuvor mit getXMLWait() aufgerufen wurde.

    GlideAjax – getXMLAnswer(Funktionsrückruf, Object additionalParam, Object responseParam)

    Ruft den Prozessor asynchron auf und ruft das Antwortelement der Antwort im XML-Format ab.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    callback Funktion Rückruffunktion. Die Funktion erhält das Antwortelement der Antwort im XML-Format als Argument.
    AdditionalParameter Objekt Optional. Name-Wert-Paar zusätzlicher Parameter.
    ResponseParam Objekt Optional. Zweites Argument für die Rückruffunktion.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    void

    Dieses Beispiel ruft die Anzahl der Anhänge für eine bestimmte sysid mit GlideAjax ab und aktualisiert die UI mit der Anzahl. Außerdem wird ein zusätzlicher Parameter (z. B. ein Zeitstempel) an die Rückruffunktion übergeben, die zum Debugging oder Nachverfolgen der Anforderung verwendet werden kann.

    function updateAttachmentCount(sysid) {
      var ga = new GlideAjax('AttachmentAjax');
      ga.addParam('sysparm_type', 'attachmentCount');
      ga.addParam('sysparm_value', sysid);
    
      // Adding an additional parameter object
      var additionalParam = { timestamp: new Date().toISOString() };
    
      ga.getXMLAnswer(numberOfAttachments, additionalParam, sysid); 
    }
    
    function numberOfAttachments(answer, additionalParam, sysid) {
      var number = parseInt(answer);
    
      console.log('Additional Param:', additionalParam); // Debugging
      console.log('Timestamp:', additionalParam?.timestamp); // Example usage
    
      var buttons = $$('.attachmentNumber_' + sysid);
      if (buttons[0] == undefined)
        $('header_attachment_list_label').down().innerHTML = number;
      else {
        for (var i = 0; i < buttons.length; i++) {
          buttons[i].innerHTML = number;
        }
      }
    }

    GlideAjax – getXML(Function callback)

    Sendet dem Server eine Anforderung zur Ausführung der Methode und der mit dem GlideAjax-Objekt verbundenen Parameter.

    Der Server verarbeitet die Anforderung asynchron und gibt – wenn bereit – die Ergebnisse über die als angegebene Funktion zurück callback_function.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    callback Funktion Der Name der Rückruffunktion, um die vom Server zurückgegebenen Ergebnisse zu verarbeiten.
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    void
    var comments = gel("dialog_comments").value;
    var ga = new GlideAjax('validateComments'); //Call script include to escape text
    ga.addParam('sysparm_name', 'validateComments');
    ga.addParam('sysparm_comments', comments);
    ga.getXML(callback);
     
    return false;
     
    function callback(response) {
      var comments = response.responseXML.documentElement.getAttribute("answer");
      comments = trim(comments);
      if (comments == "") {
         //If comments are empty, alert the user and stop submission
         alert("Please enter your comments before submitting.");
      } else {
        //If there are comments, close the dialog window and submit them
        GlideDialogWindow.get().destroy(); //Close the dialog window
        g_form.setValue("comments", comments); //Set the "Comments" field with comments in the dialog
      }

    GlideAjax – getXMLWait()

    Sendet dem Server eine Anforderung zur Ausführung der Methode und der mit dem GlideAjax-Objekt verbundenen Parameter.

    Der Server verarbeitet die Anforderung synchron und verarbeitet erst dann weitere Anforderungen vom Client. Um die Ergebnisse abzurufen, muss der Client getAnswer() aufrufen. Mit der Verwendung von getXMLWait() stellen Sie die Reihenfolge der Ausführung sicher, dies kann jedoch dazu führen, dass die Anwendung nicht mehr reagiert, was die Benutzererfahrung jeder Anwendung, die sie verwendet, erheblich beeinträchtigt. Wir empfehlen stattdessen die Verwendung von getXML().
    Hinweis:
    getXMLWait() steht für bereichsbezogene Anwendungen nicht zur Verfügung.
    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    void
    var ga = new GlideAjax('HelloWorld');
          ga.addParam('sysparm_name','helloWorld');
          ga.addParam('sysparm_user_name',"Bob");
          ga.getXMLWait();
          alert(ga.getAnswer());