- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2020 08:56 AM
Hi SNOW Community,
I am editing the sc_cat_item widget (OOB) to replace the REQ number for the RITM reference, but it looks like when trying to send the req item to the server and return the ritm reference by using c.server.get() is not working: When I assign the response value into a variable inside the .then(function(){}) it works but if a variable is assigned inside the promise response, outside of it becomes null. Is this a normal behavior?
This is the code I am currently using:
Client Controller
var req2 = '';
var sys_id = 'some SysID'
c.server.get({
action: "getReqItem",
generatedID: sys_id
}).then(function(response){
var answer = response.data.generatedRitm;
var numberReq = answer.number.toString();
req2 = numberReq;
console.log('numberReq ' + numberReq);
});
console.log('req2 ' + req2);
Server Script
if(input && input.action=="getReqItem"){
if(input.generatedID){
var grGet = new GlideRecord('sc_req_item');
grGet.addQuery('request', input.generatedID);
grGet.query();
if(grGet.next()){
data.generatedRitm.sys_id = grGet.sys_id.toString();
data.generatedRitm.number = grGet.number.toString();
}
}
}
Response for numberReq is the request item that it supposed to be (hence server is working), but req2 is coming as empty after replacing it during the promise function.
Thanks in advance for any help
Solved! Go to Solution.
- Labels:
-
Service Portal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2020 11:07 AM
In case anyone wonders too: I solved by calling the function after the response, as it seem like it is getting delayed from the server, so when it comes back from the server, the calls have already been made. In my case I've opted for waiting, but that needs to be taken in consideration too 🙂
Here's the full article -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://www.geeksforgeeks.org/javascript-promises/
c.server.get({
action: "getReqItem",
generatedID: sys_id
}).then(function(response){
//Make this call synchronous
getDisplayDetails(attributes);
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2020 11:07 AM
In case anyone wonders too: I solved by calling the function after the response, as it seem like it is getting delayed from the server, so when it comes back from the server, the calls have already been made. In my case I've opted for waiting, but that needs to be taken in consideration too 🙂
Here's the full article -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://www.geeksforgeeks.org/javascript-promises/
c.server.get({
action: "getReqItem",
generatedID: sys_id
}).then(function(response){
//Make this call synchronous
getDisplayDetails(attributes);
});