How to close complete bulk list of demands and demand tasks.

thaduri sai
Tera Contributor

Hi Team,

 

We have a bulk list of demand numbers to be close complete through background script.

 

And also,

 

We have a bulk list of demand task to be close Skipped through background script.

 

How to achieve it - Thanks for the advance.

 

Thanks,

Sai

3 ACCEPTED SOLUTIONS

AnveshKumar M
Tera Sage
Tera Sage

Hi @thaduri sai ,

 

You can try the following script to close demands and their corresponding demand tasks from a fix script or background script.

 

This will not trigger any notifications too as I have used setWorkflow(false).

 

var dmnGr = new GlideRecord("dmn_demand");

dmnGr.addEncodedQuery("YOUR ENCODED QUERY); //Paste your encoded here by copying it from the list view filter bread crumbs

dmnGr.query();

//close corresponding demand tasks

while(dmnGr._next()){

   var dtskGr = new GlideRecord("dmn_demand_task");

   dtskGr.addQuery("parent", dmnGr.getUniqueValue());

   dtskGr.addQuery("state", "!=", "3");

   dtskGr.query();

   while(dtskGr._next()){

      dtskGr.setWorkflow(false);

      dtskGr.autoSysFields(false);

      dtskGr.state = "3";

      dtskGr.update();

   }

   //Close the demand

   dmnGr.setWorkflow(false);

   dmnGr.autoSysFields(false);

   dmnGr.state = "9";

   dmnGr.update();

}

 

Please mark my answer helpful and accept as solution if it helped you 👍

Thanks,
Anvesh

View solution in original post

@thaduri sai Try this, I did a mistake in function name.

 

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

 

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.update();

}

gr.setWorkflow(false);

gr.state = "9";

gr.update();

}

Thanks,
Anvesh

View solution in original post

@thaduri sai You can try using this line of code. But as we are using setWorkflow(false); the comment might not appear in proper order. You can try and check.

 

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.work_notes = "YOUR STANDARD COMMENT";

dmntask.update();

 

}

gr.setWorkflow(false);

gr.state = "9";

gr.work_notes = "YOUR STANDARD COMMENT";

gr.update();

}

 

If the above code is not working for you, what you can do is, update work notes for all the demands and it's tasks first then close them like this.

 

//Update work notes

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.work_notes = "YOUR STANDARD COMMENT";

dmntask.autoSysFields(false);

dmntask.update();

}

gr.work_notes = "YOUR STANDARD COMMENT";

gr.autoSysFields(false);

gr.update();

}

//Close Tasks and Demand

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.update();

}

gr.setWorkflow(false);

gr.state = "9";

gr.update();

}

 

Please mark my answer helpful and accept as a solution if it helped 👍

Thanks,
Anvesh

View solution in original post

9 REPLIES 9

1000026912.jpg

 when I executed above script - some things is insert (taska_str_10).

 

@thaduri sai Try this, I did a mistake in function name.

 

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

 

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.update();

}

gr.setWorkflow(false);

gr.state = "9";

gr.update();

}

Thanks,
Anvesh

Hi @AnveshKumar M ,

 

Thanks for your help - Code working as expected.

 

But we have to update standard comment for all demands.

 

Can you please add that line in code.

 

Thanks,

Saikrishna 

@thaduri sai You can try using this line of code. But as we are using setWorkflow(false); the comment might not appear in proper order. You can try and check.

 

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.work_notes = "YOUR STANDARD COMMENT";

dmntask.update();

 

}

gr.setWorkflow(false);

gr.state = "9";

gr.work_notes = "YOUR STANDARD COMMENT";

gr.update();

}

 

If the above code is not working for you, what you can do is, update work notes for all the demands and it's tasks first then close them like this.

 

//Update work notes

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.work_notes = "YOUR STANDARD COMMENT";

dmntask.autoSysFields(false);

dmntask.update();

}

gr.work_notes = "YOUR STANDARD COMMENT";

gr.autoSysFields(false);

gr.update();

}

//Close Tasks and Demand

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.setWorkflow(false);

dmntask.state = "3";

dmntask.update();

}

gr.setWorkflow(false);

gr.state = "9";

gr.update();

}

 

Please mark my answer helpful and accept as a solution if it helped 👍

Thanks,
Anvesh

Hi @AnveshKumar M ,

 

For work notes I have written this script - but it's getting update only 1 demand - why it's happening I don't could you please help here.

 

var gr = new GlideRecord("dmn_demand");

gr.addEncodedQuery("sys_class_name=dmn_demand^number=DEMAND NUMBER");

gr.query();

while(gr._next()){

var dmntask = new GlideRecord("dmn_demand_task");

dmntask.addQuery("parent", gr.getUniqueValue());

dmntask.addQuery("state", "!=", "3");

dmntask.addQuery("state", "!=", "7");

dmntask.query();

while(dmntask._next()){

dmntask.work_notes = "YOUR STANDARD COMMENT";

dmntask.autoSysFields(false);

dmntask.update();

}

gr.work_notes = "YOUR STANDARD COMMENT";

gr.autoSysFields(false);

gr.update();

}

1000028254.jpg