Remove list of pages using groovy script

Avatar

Avatar

gayatrik8153299

Avatar

gayatrik8153299

gayatrik8153299

10-09-2020

Hi All,

We have some list of pages in an array and need to remove all those pages from the list.

Ex:

def list =["/content/we-retail/us/en/test1","/content/we-retail/be/en/test1","/content/we-retail/us/en/test2","/content/we-retail/be/en/test2"]

 

We tried with below code but it is not working.Could you please assist on this asap.

 

def buildQuery(list)
{
def queryManager = session.workspace.queryManager
def statement = 'SELECT * FROM [nt:unstructured] AS node WHERE ISDESCENDANTNODE (node, "/content/we-retail") and name()=\'' + list+ '\'';
queryManager.createQuery(statement, 'sql')
}
def list =["/content/we-retail/us/en/test1","/content/we-retail/be/en/test1","/content/we-retail/us/en/test2","/content/we-retail/be/en/test2"]
final def query = buildQuery(list)
final def result = query.execute()
if(result.nodes.size()!=0){
result.nodes.each { node ->
if(node.contains(list))
{
node.remove()
save()
println "removed:"+list
}
}
}

 

@kautuk_sahni 

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

aemmarc

Employee

Avatar

aemmarc

Employee

aemmarc
Employee

10-09-2020

Answers (2)

Answers (2)

Avatar

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831
Arun_Patidar
MVP

13-09-2020

Avatar

Avatar

Andrei_Dantsou

Avatar

Andrei_Dantsou

Andrei_Dantsou

10-09-2020

Hello @gayatrik8153299 ,

If your goal is to remove pages by the paths from the list, you can just iterate through the list with paths, get nodes and remove them (no querying is required):

 

def list =["/content/we-retail/us/en/test1","/content/we-retail/be/en/test1","/content/we-retail/us/en/test2","/content/we-retail/be/en/test2"]
list.each {
	path -> 
		def node = getNode(path);
		node.remove();
		println "removed:"+path
}
session.save()

 

 

or using Resource API:

 

def list =["/content/we-retail/us/en/test1","/content/we-retail/be/en/test1","/content/we-retail/us/en/test2","/content/we-retail/be/en/test2"]
list.each {
	path -> 
	    Resource resource = resourceResolver.getResource(path);
	    if (resource != null) {
		    resourceResolver.delete(resource);
		    println "removed:"+path
	    }
}
resourceResolver.commit();

 

Regards