Script para automatización - Autonumeric
Crea un número único para cada nuevo documento.
Definición del grupo de metadatos:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN""http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups> <property-group label="Autonumeric" name="okg:autonumber"> <input label="Document ID" name="okp:autonumber.id" type="text" readonly="true"/> <input label="Revision" name="okp:autonumber.revision" type="text" readonly="true"/> <input label="Code" name="okp:autonumber.code" type="text" readonly="true"/> </property-group></property-groups>El script de automatización:
import com.openkm.db.service.*;import com.openkm.db.bean.*;import com.openkm.api.*;import com.openkm.util.*;
getNextValue() { ConfigSrv cfgSrv = ContextWrapper.getContext().getBean(ConfigSrv.class); Config cfg = cfgSrv.findByPk("autonumber.data.id");
if (cfg == null) { cfg = new Config(); cfg.setType(Config.INTEGER); cfg.setKey("autonumber.data.id"); cfg.setValue("0"); }
int value = Integer.parseInt(cfg.getValue()) + 1; cfg.setValue(String.valueOf(value)); cfgSrv.save(cfg);
return String.format("%04d", value);}
try { // Set metadata String id = getNextValue(); String rev = "1"; String code = id + "-" + rev;
// Add metadata Map props = new HashMap(); props.put("okp:autonumber.id",id); props.put("okp:autonumber.revision",rev); props.put("okp:autonumber.code",code);
OKMPropertyGroup okmPropertyGroup = ContextWrapper.getContext().getBean(OKMPropertyGroup.class); okmPropertyGroup.addGroup(null, uuid, "okg:autonumber", props);} catch (Exception e) { e.printStackTrace();}Registrar el grupo de metadatos
Sección titulada «Registrar el grupo de metadatos»Cree una tarea de automatización basada en el evento de creación del grupo de metadatos:
- Name: Autonumeric
- Event: Document creation
- At: Post
Use el script anterior en la acción ExecuteScripting.