Script - Recursive character renaming
Renames a character in all folders or documents from some initial path.
// Recursive renaming & to -import com.openkm.api.OKMDocument;import com.openkm.api.OKMFolder;import com.openkm.api.OKMRepository;import com.openkm.bean.Document;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;import com.openkm.util.PathUtils;
void findNodePathHelper(String uuid) throws Exception { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); PathUtils pathUtils = ContextWrapper.getContext().getBean(PathUtils.class);
for (Folder fld : okmFolder.getChildren(null, uuid)) { String fldName = pathUtils.getName(fld.getPath());
if (fldName.contains("&")) { print(fld.getPath() + "<br>"); String newName = fldName.replaceAll("&", "-"); okmFolder.rename(null, fld.getUuid(), newName); }
for (Document doc : okmDocument.getChildren(null, fld.getPath())) { String docName = pathUtils.getName(doc.getPath());
if (docName.contains("&")) { print(doc.getPath() + "<br>"); String newName = docName.replaceAll("&", "-"); okmDocument.rename(null, doc.getUuid(), newName); } }
findNodePathHelper(fld.getUuid()); }}
try { OKMRepository okmRepository = ContextWrapper.getContext().getBean(OKMRepository.class); String fldPath = "/okm:root"; String fldUuid = okmRepository.getNodeUuid(null, fldPath); findNodePathHelper(fldUuid);} catch (Exception e) { print(e.getMessage());}