GlideAjax - Cliente
. 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.
- 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.
- Ligue para AddParam método com sysparm_namee o nome do método de inclusão de script que você deseja chamar.
- 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.
- 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 .
| 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.
| 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. |
| 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() .
| Nome | Tipo | Descrição |
|---|---|---|
| nenhum |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| nenhum |
| 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());