Ir al contenido
Otras versiones

Cargando…

Campo Select de metadatos

Atributo Descripción Obligatorio
label El texto se muestra como etiqueta en la interfaz de usuario. true
name Identificador único del campo.
Dos campos de metadatos no pueden tener el mismo nombre. El nombre debe ser único.
El nombre debe empezar por “okp:”.
Es una buena práctica utilizar el nombre del grupo de metadatos como base para el nombre del campo de metadatos. Por ejemplo, si se ha utilizado “okg:consulting” como nombre del grupo, el nombre del campo sería “okp:consulting.select”, cambiando “okg” por “okp.” Esto ayuda a localizar el grupo de metadatos a partir del nombre del campo de metadatos.
Utilice únicamente letras, números y guiones bajos: “0-9a-zA-Z_”.
true
type Valor del tipo. Tipos permitidos:
- Simple (se permite una sola opción).
- Multiple (se permiten varias selecciones).
true
table Nombre de la tabla de metadatos.
La aplicación puede almacenar valores en una tabla de metadatos que se puede utilizar en esta consulta.
*
width El ancho del elemento HTML.
En la interfaz de usuario de KCenter, los valores de ancho deben basarse en porcentajes; por ejemplo:
- width=“50%” funcionará
- width=“100px” se ignorará en la interfaz de usuario de KCenter.
height El alto del elemento HTML.
optionsQuery Se utiliza una consulta de metadatos para obtener las opciones seleccionadas. *
className Se utiliza una clase para obtener las opciones seleccionadas. *
suggestion La aplicación puede sugerir valores automáticamente a partir del análisis del contenido del documento al añadir metadatos a los documentos. De forma predeterminada, la aplicación incluye algunas implementaciones que se pueden ampliar fácilmente.
- com.openkm.form.suggestion.DocumentContentContainsSuggestion: obtiene recomendaciones a partir del contenido del documento (utiliza String.contains).
- com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: obtiene sugerencias a partir del contenido del documento (utiliza StringTokenizer).
- com.openkm.form.suggestion.DocumentTermsSuggestion: obtiene recomendaciones a partir de los vectores de términos del documento.
Para más información, lea Creación de su propio analizador de sugerencias.
false
parentElement Valor del nombre del campo padre. En este caso, el valor es jerárquico respecto a los valores de otro campo (el padre). false
description Descripción general. false
read-only El campo establecido no se puede modificar en la interfaz de usuario. De forma predeterminada, el valor es “false”. false
dbColumnSize Establece el tamaño del campo de la base de datos en el que se almacena el valor.
De forma predeterminada, los campos se almacenan en una columna de la base de datos de 128 caracteres. Como la longitud de sus datos puede superar los 128 caracteres, el administrador debe actualizar el tamaño de columna predeterminado.
Consulte la sección de documentación Definición XML de metadatos para obtener una explicación detallada de los metadatos almacenados en la base de datos de OpenKM.
defaultAccess Política de acceso de seguridad predeterminada. De forma predeterminada, se establece en “grant”, por lo que todos los usuarios verán la propiedad.
  • * Hay tres opciones para obtener los valores de las opciones:

  • Elementos hijo:

  • Type es igual a simple.
<?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="Consulting" name="okg:consulting">
<select label="select label" name="okp:consulting.select" type="simple">
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</property-group>
</property-groups>
  • Type es igual a multiple.
<?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="Consulting" name="okg:consulting">
<select label="select label" name="okp:consulting.select" type="multiple">
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</property-group>
</property-groups>

También podemos obtener estos valores de opción mediante una consulta SQL. Esta sentencia SQL debe colocarse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, esta consulta se trata como una consulta de metadatos). Tenga en cuenta que el primer elemento devuelto en cada fila es el valor de la opción y el segundo es la etiqueta de la opción.

<?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="Location" name="okg:location">
<select label="Country" name="okp:location.country" type="simple"
optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME" />
</property-group>
</property-groups>

La tabla utilizada en este ejemplo se define de la siguiente forma:

create table COUNTRY (
CT_ID varchar(2),
CT_NAME varchar(32),
primary key(CT_ID)
);

Para ayudar a obtener una lista de aplicaciones externas o con otros fines, puede construir su clase para que recupere los valores de las opciones de esos sistemas.

<?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="Consulting" name="okg:consulting">
<select label="select label" name="okp:consulting.select" type="simple"
className="com.openkm.plugin.form.values.OptionSelectUserList" />
</property-group>
</property-groups>

Para más información, lea Creación de su propio plugin de valores de opciones de select.

A partir del analizador de contenido, la aplicación puede sugerir algunos valores de opción. En la interfaz de usuario, las opciones recomendadas se mostrarán en verde.

La aplicación incluye algunas implementaciones que se pueden ampliar fácilmente.

  • com.openkm.form.suggestion.DocumentContentContainsSuggestion: obtiene recomendaciones a partir del contenido del documento (utiliza String.contains).
  • com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: obtiene sugerencias a partir del contenido del documento (utiliza StringTokenizer).
  • com.openkm.form.suggestion.DocumentTermsSuggestion: obtiene recomendaciones a partir de los vectores de términos del documento.

Para más información, lea Creación de su propio analizador de sugerencias.

<?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="Consulting" name="okg:consulting">
<select label="select label" name="okp:consulting.select" type="multiple"
suggestion="com.openkm.form.suggestion.DocumentContentContainsSuggestion">
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</property-group>
</property-groups>
  • Los valores de opción del campo “okp:consulting.children” tienen una relación de padre con “okp:consulting.parent”. Se define mediante parentElement=“okp:consulting.parent”.
  • El valor de opción “benefits” del campo “okp:consulting.children” tiene el valor padre “directives” en el campo “okp:consulting.parent”.

Relaciones del árbol:

  • directives
    • benefits
    • eligibility
    • services
  • handbook
    • basic
    • normal
    • advanced
<?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="Consulting" name="okg:consulting">
<select label="Parent" name="okp:consulting.parent" type="simple">
<option value="directives" label="Directives" />
<option value="handbook" label="Handbook Paragraphs" />
</select>
<select label="Children" name="okp:consulting.children" type="simple" parentElement="okp:consulting.parent">
<option value="benefits" label="Benefits" parentValue="directives" />
<option value="elegibility" label="Eligibility" parentValue="directives" />
<option value="services" label="Services" parentValue="directives" />
<option value="basic" label="Basic" parentValue="handbook" />
<option value="normal" label="Advanced" parentValue="handbook" />
<option value="advanced" label="Normal" parentValue="handbook" />
</select>
</property-group>
</property-groups>

En este caso utilizamos un par de tablas para obtener la información.

create table LOCALIDAD (
LOC_ID varchar(8),
LOC_NAME varchar(32),
primary key (LOC_ID)
);
create table UBICACION (
UBI_ID varchar(8),
UBI_LOC varchar(8),
UBI_NAME varchar(32),
primary key (UBI_ID)
);
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l0', 'Localidad 0');
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l1', 'Localidad 1');
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l2', 'Localidad 2');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u0', 'l0', 'Ubicación 0');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u1', 'l0', 'Ubicación 1');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u2', 'l0', 'Ubicación 2');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u3', 'l1', 'Ubicación 4');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u4', 'l1', 'Ubicación 5');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u5', 'l1', 'Ubicación 6');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u6', 'l2', 'Ubicación 7');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u7', 'l2', 'Ubicación 8');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u8', 'l2', 'Ubicación 9');

Esta es la definición del formulario:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.7//EN"
"http://www.openkm.com/dtd/property-groups-3.7.dtd">
<property-groups>
<property-group label="Sample" name="okg:sample">
<!-- Parent child -->
<select label="Localidad" name="okp:sample.localidad"
optionsQuery="select LOC_ID, LOC_NAME from LOCALIDAD" />
<select label="Ubicacion" name="okp:sample.ubicacion" parentElement="okp:sample.localidad"
optionsQuery="select UBI_ID, UBI_NAME, UBI_LOC from UBICACION" />
</property-group>
</property-groups>