- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-19-2025 07:59 AM
when a line manager not approved with in 3 days then the notification goes to linemanager.manager . If linemanager.manager also not approved with in five days( this period line manager should be also able to approve ) , then the request will be cancelled.
Please help anyone to script provide (no flow designer or workflows suggestion).
Solved! Go to Solution.
- Labels:
-
Service Catalog
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-24-2025 02:31 AM
If you will provide more details than I may help with the proper script.
But you can check once with this
var grRITM = new GlideRecod('sc_req_item');
grRITM.addencodedquery('request.request_state=requested^ORDERBYDESCnumber');
grRITM.query();
while(grRITM.next(()) {
var lineManger = grRITM .u_line_manager; //based upon your field name change this field
var lineManagerMang = grRITM .u_line_manager.manager; //based upon your field name change this field
var grApproval = new GlideRecord('sysapproval_approver');
grApproval.addencodedquery('sysapproval='+grRITM .sys_id+'^approver='+lineManger +'^ORapprover='+lineManagerMang +'^ORDERBYsys_created_on');
grApproval.query();
while(grApproval.next()) {
var date1 = new GlideDateTime(); //current date
var createdDate = new GlideDateTime(grApproval.sys_created_on); //approval created date
var dateDiff = GlideDateTime.subtract(createdDate, date1);
var days = dateDiff.getDayPart();
if(days > 4 && grApproval.approver == lineManger ) { //you can change the date value based upon your requirement
///you can call a event to trigger the notification and a script action to create a approval request for line manager's manager if this approval request you are note creating from the flow or somewhere
}
if (days > 5 && grApproval.approver == lineManagerMang) {
write script to cancel the request
}
}
Stay awesome,
Roshnee Dash
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-24-2025 03:51 AM
How to achieve the below scenario using scheduled script ?*
A. For a catalog item, send approval to requester’s manager.
B. If manager did not approve within 3 days then send that approval(eventqueue) to line
Manager’s.Manager.
C. If that person (lineManager’s.Manager) also did not do anything within 5 days
then proceed further action is cancel the request
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2025 12:23 AM - edited 06-25-2025 12:25 AM
instead of sysapproval table , can we go with other like ritm table below like ;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2025 12:26 AM
pls correct the script where i did mistake
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-15-2025 05:00 AM
var gr = new GlideRecord('sc_req_item');
gr.addEncodedQuery('active=true^cat_item=uvsdalvyut6768s8^approval=requested^sys_created_onRELATIVELT@dayofweek@ago@3');
gr.query();
while (gr.next()) {
var createdDate = gr.getValue('sys_created_on');
var createdGlideDate = new GlideDateTime(gr.sys_created_on).getLocalDate();
var getExpDate = createdGlideDate.getDate();
var curDateTime = new GlideDateTime();
var curDate = curDateTime.getLocalDate();
var forEmailsgetDays = GlideDateTime.subtract(getExpDate, curDate);
var reminderDays = forEmailsgetDays.getDayPart();
if (reminderDays > 3 && reminderDays <= 5) {
// Escalate to line manager's manager
var lineManager = gr.variables.user_id.manager;
var managerGR = new GlideRecord('sys_user');
if (managerGR.get(lineManager)) {
var managerManager = managerGR.manager;
if (!managerGR.manager.vip) {
gs.eventQueue('kf_inactive_line_manager', gr, lineManager, managerManager);
}
}
}
else if (reminderDays > 5) {
// Reject the request
gr.state = -35;
gr.stage = 'Closed Rejected';
gr.approval = 'rejected';
gr.active = 'false';
gr.comments = "Request rejected due to lack of approval within 5 days";
gr.setWorkflow(false);
gr.update();
}this script is working fine but pls provide script if mail trigger to only working hours instead of all days
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2025 08:59 AM - edited 06-20-2025 09:00 AM
Hi @Nareshpatel
Can you provide these details so that I can help with this to write your script?
the form structure?
Based on which field value approval is generating?
Stay awesome,
Roshnee Dash