Script - Recursive repository traversal
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
Logger log = LoggerFactory.getLogger("com.openkm.scripting");
int MAX_DEPTH = Integer.MAX_VALUE;
void nodeTask(String uuid, int depth) throws Exception {
OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);
OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class);
for (Document doc : okmDocument.getChildren(null, uuid)) {
log.info("Document: {}", doc.getPath());
print("Document: " + doc.getPath() + "<br>");
}
for (Folder fld : okmFolder.getChildren(null, uuid)) {
log.info("Folder: {}", fld.getPath());
print("Document: " + fld.getPath() + "<br>");
if (depth < MAX_DEPTH) {
nodeTask(fld.getUuid(), depth + 1);
}
}
}
log.info("***** Process BEGIN *****");
try {
OKMRepository okmRepository = ContextWrapper.getContext().getBean(OKMRepository.class);
String fldPath = "/okm:root";
String fldUuid = okmRepository.getNodeUuid(null, fldPath);
nodeTask(fldUuid, 0);
} catch (Exception e) {
print(e.getMessage());
}
log.info("***** Process END *****");