- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 08:46 AM
I have a working onChange Client Script but I need the same functionality to work as an onCellEdit Client Script.
Can someone please help me?
Here is the code that is working for the onChange Client Script and Script Include-
onChange Client Script:
Script Include (client-callable):
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2024 12:16 PM
Hey @Su522
You need to try something like below:
function onCellEdit(sysIDs, table, oldValues, newValue, callback) {
var saveAndClose = true;
if (oldValues == "3" && newValue == "6") {
var ajax = new GlideAjax("global.OrderLineItemsGlobal");
ajax.addParam("sysparm_name", "getOrderLineItemsUpdated");
ajax.addParam("sysparm_sysid", sysIDs);
ajax.getXMLWait();
if (ajax.getAnswer() == "true") {
if (confirm("Your message")) {
saveAndClose = true;
} else {
saveAndClose = false;
}
}
}
callback(saveAndClose);
}
var OrderLineItemsGlobal = Class.create();
OrderLineItemsGlobal.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getOrderLineItemsUpdated: function() {
var grProductOrder = new GlideRecord("sn_ind_tmt_orm_product_order");
grProductOrder.get(this.getParameter("sysparm_sysid"));
var grOrderLineItems = new GlideRecord("sn_ind_tmt_orm_order_line_item");
grOrderLineItems.addQuery("order", grProductOrder.order_line_item.order);
grOrderLineItems.query();
while (grOrderLineItems.next()) {
if (grOrderLineItems.u_order_line_updated == "1") {
return "true";
}
}
return "false";
},
type: 'OrderLineItemsGlobal'
});
NOTE: We have to write the code in global inorder to work the getXMLWait()
More info here
Murthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 08:56 AM
@Su522 - see my response on your other posted question > Scripting Help- Querying the Database and returnin... - ServiceNow Community
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 08:58 AM
It won't work as OnCellEdit is for lists. This will give you idea how to use it:
function onCellEdit(sysIDs, table, oldValues, newValue, callback) {
var saveAndClose = true;
//Type appropriate comment here, and begin script below
callback(saveAndClose);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2024 12:16 PM
Hey @Su522
You need to try something like below:
function onCellEdit(sysIDs, table, oldValues, newValue, callback) {
var saveAndClose = true;
if (oldValues == "3" && newValue == "6") {
var ajax = new GlideAjax("global.OrderLineItemsGlobal");
ajax.addParam("sysparm_name", "getOrderLineItemsUpdated");
ajax.addParam("sysparm_sysid", sysIDs);
ajax.getXMLWait();
if (ajax.getAnswer() == "true") {
if (confirm("Your message")) {
saveAndClose = true;
} else {
saveAndClose = false;
}
}
}
callback(saveAndClose);
}
var OrderLineItemsGlobal = Class.create();
OrderLineItemsGlobal.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getOrderLineItemsUpdated: function() {
var grProductOrder = new GlideRecord("sn_ind_tmt_orm_product_order");
grProductOrder.get(this.getParameter("sysparm_sysid"));
var grOrderLineItems = new GlideRecord("sn_ind_tmt_orm_order_line_item");
grOrderLineItems.addQuery("order", grProductOrder.order_line_item.order);
grOrderLineItems.query();
while (grOrderLineItems.next()) {
if (grOrderLineItems.u_order_line_updated == "1") {
return "true";
}
}
return "false";
},
type: 'OrderLineItemsGlobal'
});
NOTE: We have to write the code in global inorder to work the getXMLWait()
More info here
Murthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2024 02:49 PM
This worked!! Thank you so much!