Script - Basic samples
Update repository statistics
Section titled “Update repository statistics”Refresh the Statistics.
import com.openkm.core.RepositoryInfo;import com.openkm.util.ContextWrapper;
RepositoryInfo repositoryInfo = ContextWrapper.getContext().getBean(RepositoryInfo.class);repositoryInfo.run();Create some folders and set a property group
Section titled “Create some folders and set a property group”import java.util.HashMap;import java.util.Map;
import com.openkm.api.OKMFolder;import com.openkm.api.OKMPropertyGroup;import com.openkm.util.ContextWrapper;
OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);OKMPropertyGroup okmPropertyGroup = ContextWrapper.getContext().getBean(OKMPropertyGroup.class);
for (int i = 0; i < 10; i++) { String path = "/okm:root/fld_" + i; okmFolder.createSimple(null, path);
Map<String, String> properties = new HashMap<>(); properties.put("okp:consulting.name", "new name"); properties.put("okp:consulting.comment", "new comment"); okmPropertyGroup.addGroup(null, path, "okg:consulting", properties);}Show the number of documents, folders, and the size for a given path
Section titled “Show the number of documents, folders, and the size for a given path”import com.openkm.api.OKMFolder;import com.openkm.api.OKMPropertyGroup;import com.openkm.bean.ContentInfo;import com.openkm.util.ContextWrapper;import com.openkm.util.FormatUtil;
OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);ContentInfo ci = okmFolder.getContentInfo(null, "151f3a54-f370-47d6-801a-d20faecec180");
print("Folders: " + ci.getFolders() + "<br/>");print("Documents: " + ci.getDocuments() + "<br/>");print("Size: " + FormatUtil.formatSize(ci.getSize()) + "<br/>");Get path by UUID
Section titled “Get path by UUID”import com.openkm.api.OKMRepository;import com.openkm.util.ContextWrapper;
OKMRepository okmRepository = ContextWrapper.getContext().getBean(OKMRepository.class);String path = okmRepository.getNodePath(null, "162735a1-661c-4555-bf53-4e9115f38c62");print(path);Show all documents used by every running workflow
Section titled “Show all documents used by every running workflow”import com.openkm.api.OKMRepository;import com.openkm.api.OKMWorkflow;import com.openkm.bean.workflow.ProcessDefinition;import com.openkm.bean.workflow.ProcessInstance;import com.openkm.core.Config;import com.openkm.util.ContextWrapper;
OKMWorkflow okmWorkflow = ContextWrapper.getContext().getBean(OKMWorkflow.class);for (ProcessDefinition procDef : okmWorkflow.findAllProcessDefinitions(null)) { for (ProcessInstance procIns : okmWorkflow.findProcessInstances(null, procDef.getId())) { if (procIns.getEnd() == null) { String uuid = (String) procIns.getVariables().get(Config.WORKFLOW_PROCESS_INSTANCE_VARIABLE_UUID); print("Doc UUID: " + uuid + ", Process Definition: " + procDef.getId() + ", Process Instance: " + procIns.getId()); } }}