GlideAjax - Cliente

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 6 min. de leitura
  • . GlideAjax a classe permite que um client script chame o código do lado do servidor em uma inclusão de script.

    Para usar GlideAjax em um client script, siga estas etapas gerais.

    1. Crie um GlideAjax chamando GlideAjax construtor. Como argumento para o construtor, especifique o nome da classe de inclusão de script que contém o método que você deseja chamar.
    2. Ligue para AddParam método com sysparm_namee o nome do método de inclusão de script que você deseja chamar.
    3. Opcional. Ligue para AddParam método uma ou mais vezes para fornecer o código de inclusão de script com outros parâmetros necessários.
    4. Execute o código do lado do servidor chamando GetXML() .
      Nota:
      GetXML() é o método preferencial para executar o código, porque é assíncrono e não retém a execução de outro código do cliente. Outro método, GetXMLWait() , também está disponível, mas não é recomendado. Usando GetXMLWait() garante a ordem de execução, mas pode fazer com que a aplicação pareça sem resposta, degradando significativamente a experiência do usuário de qualquer aplicação que a use. GetXMLWait() não está disponível para aplicações com escopo.
    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 (cadeia de caracteres class_name)

    Construtor para GlideAjax .

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    class_name Cadeia de caracteres O nome da classe do lado do servidor que contém o método que você deseja executar.

    Neste exemplo, um script de cliente define o usuário como Fred Luddy e chama uma inclusão de script para obter seu gerente.

    // 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(cadeia de caracteres parm_name, cadeia de caracteres parm_value)

    Especifica um nome e um valor de parâmetro a serem passados para a função do lado do servidor associada a isso GlideAjax objeto.

    Você pode executar AddParam várias vezes com parâmetros e valores diferentes.
    Nota:
    A primeira chamada para AddParam deve estar com o parâmetro sysparm_name e o nome do método do lado do servidor que você deseja chamar. O código do lado do servidor não é executado até que o script do cliente seja chamado GetXML() ou GetXMLAnswer() .
    Tabela 2. Parâmetros
    Nome Tipo Descrição
    parm_name Cadeia de caracteres O nome do parâmetro a ser aprovado. (O nome deve começar com sysparm_ .)
    parm_value Cadeia de caracteres O valor a ser atribuído parm_name.
    Tabela 3. Retornos
    Tipo Descrição
    vazio

    Neste exemplo, um script de cliente define o usuário como Fred Luddy e chama uma inclusão de script para obter seu gerente.

    // 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()

    Recupera os resultados de um método do lado do servidor chamado do cliente via GetXMLWait() .

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    nenhum
    Tabela 5. Retornos
    Tipo Descrição
    vazio O resultado retornado pelo método do lado do servidor chamado anteriormente com GetXMLWait() .

    GlideAjax - getXMLAnswer(retorno de chamada de função, Object additionalParam, Object responseParam)

    Chama o processador de forma assíncrona e obtém o elemento de resposta da resposta no formato XML.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    retorno de chamada Função Função de retorno de chamada. A função recebe o elemento de resposta da resposta no formato XML como um argumento.
    Parâm adicional Objeto Opcional. Par nome-valor de parâmetros adicionais.
    ResponseParam Objeto Opcional. Segundo argumento para a função de retorno de chamada.
    Tabela 7. Retornos
    Tipo Descrição
    vazio

    Este exemplo recupera o número de anexos de um determinado SYSID usando GlideAjax e atualiza a IU com a contagem. Ele também passa um parâmetro adicional (por exemplo, um carimbo de data/hora) para a função de retorno de chamada, que pode ser usada para depuração ou acompanhamento quando a solicitação foi feita.

    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 ( retorno de chamada de função)

    Envia ao servidor uma solicitação para executar o método e os parâmetros associados a isso GlideAjax objeto.

    O servidor processa a solicitação de forma assíncrona e, quando estiver pronto, retorna os resultados por meio da função especificada como callback_function.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    retorno de chamada Função O nome da função de retorno de chamada para processar os resultados retornados pelo servidor.
    Tabela 9. Retornos
    Tipo Descrição
    vazio
    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()

    Envia ao servidor uma solicitação para executar o método e os parâmetros associados a isso GlideAjax objeto.

    O servidor processa a solicitação de forma síncrona e não processará outras solicitações do cliente até que seja concluído. Para recuperar os resultados, o cliente deve chamar GetAnswer() . Usando GetXMLWait() garante a ordem de execução, mas pode fazer com que a aplicação pareça sem resposta, degradando significativamente a experiência do usuário de qualquer aplicação que a use. Recomendamos o uso de GetXML() em vez disso.
    Nota:
    GetXMLWait() não está disponível para aplicações com escopo.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    nenhum
    Tabela 11. Retornos
    Tipo Descrição
    vazio
    var ga = new GlideAjax('HelloWorld');
          ga.addParam('sysparm_name','helloWorld');
          ga.addParam('sysparm_user_name',"Bob");
          ga.getXMLWait();
          alert(ga.getAnswer());