How to Rearchive restored records

sagarikadas
Kilo Contributor

Hello Everyone,

I have around 8700 restored records from knowledge table which needs to be archived again.

But while running a new Archive Rule I see below error message.

Running archive rule: Archiving older Knowledge Articles from KB V2. 9503 record(s) cannot be re-archived because they have been restored.

Can anyone please advise.

Regards,

Sagarika Das

1 ACCEPTED SOLUTION

First of all, if it's a one time off, you shouldn't use a UI action for it. You should maybe create a scheduled script execution.



And you need to adapt your script a bit. Does this work for one record if you run it via background scripts?



var gr = new GlideRecord('ar_kb_knowledge');


gr.addQuery('kb_knowledge_base','dfc19531bf2021003f07e2c1ac0739ab');


gr.addQuery('dateGenerate','<','2017-01-01','12:00:00');


gr.addQuery('category','Planned Downtime');


gr.addOrCondition('category','Unplanned Downtime');


gr.setLimit(1);


gr.query();




while(gr.next()) {


  gs.print('Archiving record with number: ' + gr.number);


  try {


      new GlideArchiveRecord().archive(gr);


  }


  catch(err) {


      gs.log('Error returned is: ' + err);


  }


}


View solution in original post

20 REPLIES 20

Michael Fry1
Kilo Patron

In the record, under Related Link - there should a UI action that will re-restore the record. I believe you can make that a List Choice so you can do them in bulk.


Thanks Michael,



Here I am trying to Re-archive a bunch of restored records.


sergiu_panaite
ServiceNow Employee
ServiceNow Employee

You can do a GlideRecord call on all those records you want to re-archive and just run on them:



new GlideArchiveRecord().archive(current);



That's what the UI action does anyway.


Thanks Sergiu,



I have created a new UI Action called Re-archive Now under the same Archive Rule.


I have used below query and ran it but it does not archive anything. Hence, I am not sure what's happening. Can you please suggest something.



var gr = new GlideRecord('ar_kb_knowledge');  


gr.addQuery('kb_knowledge_base','dfc19531bf2021003f07e2c1ac0739ab');


gr.addQuery('dateGenerate','<','2017-01-01','12:00:00');


gr.addQuery('category','Planned Downtime');


gr.addOrCondition('category','Unplanned Downtime');


gr.query();  


while(gr.next())  


{  


new GlideArchiveRecord().archive(current);


}



Regards,


Sagarika