Script - Basic samples

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 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 number of documents, folders and size from 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  

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 in 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());
        }
    }
}