GlideAjax – Client
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.
- 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.
- Rufen Sie an AddParam Methode mit sysparm_nameParameter und der Name der Skripteinbindungsmethode, die Sie aufrufen möchten.
- Optional. Rufen Sie an AddParam Methode einmal oder mehrmals, um den Skripteinbindungscode mit anderen erforderlichen Parametern bereitzustellen.
- 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.
| 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.
| 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. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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.
| 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. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| callback | Funktion | Der Name der Rückruffunktion, um die vom Server zurückgegebenen Ergebnisse zu verarbeiten. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var ga = new GlideAjax('HelloWorld');
ga.addParam('sysparm_name','helloWorld');
ga.addParam('sysparm_user_name',"Bob");
ga.getXMLWait();
alert(ga.getAnswer());