Script - Put documents from folder and descendants into pending text extraction queue
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.openkm.api.OKMFolder;
import com.openkm.api.OKMRepository;
import com.openkm.bean.Folder;
import com.openkm.db.service.LegacySrv;
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);
LegacySrv legacySrv = ContextWrapper.getContext().getBean(LegacySrv.class);
String sql = "UPDATE OKM_NODE_DOCUMENT SET NDC_TEXT_EXTRACTED='F' WHERE NBS_UUID IN (SELECT NBS_UUID FROM OKM_NODE_BASE WHERE NBS_PARENT='"
+ uuid + "')";
legacySrv.executeSQL(sql);
for (Folder fld : okmFolder.getChildren(null, uuid)) {
log.info("Folder: {}", fld.getPath());
if (depth < MAX_DEPTH) {
nodeTask(fld.getUuid(), depth + 1);
}
}
}
try {
OKMRepository okmRepository = ContextWrapper.getContext().getBean(OKMRepository.class);
log.info("***** Process BEGIN *****");
String fldPath = "/okm:root/KnowledgeBase";
String fldUuid = okmRepository.getNodeUuid(null, fldPath);
nodeTask(fldUuid, 0);
log.info("***** Process END *****");
} catch (Exception e) {
print(e.getMessage());
}