How to change the state of a requested catalog item based off status of manager of a group

gunishi
Tera Guru

Hi all, 

 

I have the following requirements:

 

• Once request is submitted approval should go to Manager of the group ‘Food Warriors’.

• Approval Conditions-

    o If manager of the group is missing/inactive then request should get closed cancelled.

    o If manager of the group rejects the requests then it should be moved to rejected state.

 

How would I implement this?

 

For the first task I had initially added an approval - user task to my workflow and added the following script:

 

answer = [];

var gr = new GlideRecord('sys_user_group');

gr.addQuery('sys_id', 'c9666099973131104a02bcb3f153afb8');

gr.query();

while(gr.next()){

var mng = gr.manager;

}

answer.push('mng');

 

However, I then realised that I wouldn't be able to implement the last two bullet points. Workflow is the tool that I am struggling the most with on ServiceNow so any help would be greatly appreciated. 

 

Kind regards , 

G

3 ACCEPTED SOLUTIONS

@gunishi Please refer the below script for IF Activity

answer = ifScript();

function ifScript() {
    var gr = new GlideRecord('sys_user_group');
    gr.addQuery('sys_id', 'c9666099973131104a02bcb3f153afb8');
    gr.query();
    if (gr.next()) {
        return 'yes';
    }
    return 'no';
}

 

AnveshKumarM_0-1697549578741.png

 

AnveshKumarM_1-1697549594602.png

 

 

And in your Approval script, I corrected a mistake.

answer = [];
var gr = new GlideRecord('sys_user_group');
gr.addQuery('sys_id', 'c9666099973131104a02bcb3f153afb8');
gr.query();
var mng = '';
if(gr.next()){
var mng = gr.manager;
}
answer.push(mng);

 

 

Thanks,
Anvesh

View solution in original post

Harsh_Deep
Giga Sage
Giga Sage

Before going for approval activity in WorkFlow, please have another IF activity where you check if the Group manager is Missing or Inactive-

in the IF block use this Script 

answer = ifScript();

function ifScript() {
    var gr = new GlideRecord('sys_user_group');
    gr.addQuery('sys_id', 'c9666099973131104a02bcb3f153afb8');
    gr.addQuery('active', 'ture');
    gr.query();
    if (gr.next()) {
        return 'yes';
    }
    return 'no';
}

 

 IF manager is available link to Approval Activity otherwise set the state to closed complete using set values activity the end the flow.

If my answer has helped with your question, please mark my answer as accepted solution and give a thumb up.👍

View solution in original post

Uday Soni05
Tera Guru

Hi @gunishi ,

Before going for approval activity in WorkFlow, please have another IF activity where you check if the Group has manager or not, IF manager is available link to Approval Activity otherwise set the state to closed complete using set values activity the end the flow.

 

 

 

answer = ifScript();

function ifScript(){
var group = new GlideRecord('sys_user_group');
group.addQuery('sys_id','8a5055c9c61122780043563ef53438e3');
group.query();
if(group.next()){
if(group.manager){
if(group.manager.active == true){
return "yes";
}
return "no";
}
return "no";

}
return "no";
}

 

Screenshot 2023-10-17 at 7.16.42 PM.png

View solution in original post

13 REPLIES 13

Please mark this comment as Correct Answer/Helpful if it helped you.
Regards,
Uday

Hi @Uday Soni05 

 

Thank you for your help. I really appreciate it!

 

Kind regards, 

G

gunishi
Tera Guru

Hi @Harsh_Deep  and @AnveshKumar M 

 

Thank you so much for your help. I really appreciate it. 

 

I just have a question about setting the status to closed complete. 

 

I have a set value activity on the workflow but the only options available are closed complete and closed incomplete. 

 

Is closed incomplete the same and if not where would I find closed cancelled. 

 

Many thanks in advance, 

G

Jacquilacrews34
Kilo Contributor

I am a new hire with Beth Israel hospital how do I complete the onboarding process