Ir al contenido
Otras versiones

Cargando…

Campo Select de metadatos

Attribute Description Required
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 buena práctica usar el nombre del grupo de metadatos como base para el nombre del campo. Por ejemplo, si se ha usado “okg:consulting” como nombre de grupo, use “okp:consulting.select” cambiando “okg” por “okp”. Eso ayuda a encontrar el grupo de metadatos a partir del nombre del campo.
Use solo letras, números y guiones bajos: “0-9a-zA-Z_”.
true
type Valor de tipo. Tipos permitidos:
- Simple (permite elegir una única opción).
- Multiple (permite seleccionar varias opciones).
true
width El ancho del elemento HTML.
En el caso de la interfaz de KCenter, los valores de ancho deben especificarse como porcentajes, por ejemplo:
- width=“50%” funcionará
- width=“100px” se ignorará en la interfaz de KCenter.
optionsQuery Se usa una consulta de metadatos para obtener las opciones seleccionadas. *
className Se usa una clase para obtener las opciones seleccionadas. *
suggestion La aplicación puede sugerir valores automáticamente basándose en el análisis del contenido del documento al añadir metadatos a los documentos. Por defecto, la aplicación tiene algunas implementaciones que pueden ampliarse fácilmente.
- com.openkm.form.suggestion.DocumentContentContainsSuggestion: Obtiene recomendaciones basadas en el contenido del documento (usa String.contains)
- com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: Obtiene sugerencias basadas en el contenido del documento (usa StringTokenizer).
- com.openkm.form.suggestion.DocumentTermsSuggestion: Obtiene recomendaciones basadas en los vectores de términos del documento.
Para más información, lea Creating your own Suggestion Analyzer.
false
parentElement Valor del nombre del campo padre. En este caso, el valor es jerárquico respecto a otro valor de campo (el padre). false
description Descripción general. false
read-only Este campo no puede modificarse en la interfaz de usuario. Por defecto, el valor es “false.” false
dbColumnSize Establece el tamaño del campo de la base de datos donde se almacena el valor.
Por defecto, los campos se almacenan en una columna de base de datos con un tamaño de 128 caracteres. Como la longitud de sus datos podría ser mayor de 128 caracteres, el administrador debería actualizar el tamaño de columna por defecto.
Consulte la sección de documentación Metadata XML definition para una explicación detallada de cómo se almacenan los metadatos en la base de datos de OpenKM.
defaultAccess Política de acceso de seguridad por defecto. Por defecto, se establece en “grant”, así que todos los usuarios verán la propiedad.
  • * Hay tres formas de obtener los valores de las opciones:

  • Elementos hijos:

  • El tipo 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>
  • El tipo 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 usando una consulta SQL. Esta sentencia SQL debe colocarse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, se trataría de 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 usada en este ejemplo se define así:

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

Para ayudar a obtener una lista desde aplicaciones externas u otros propósitos, se puede construir su propia clase para obtener los valores de opción 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 Creating your own Option Select Values plugin.

Basándose en el 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 tiene algunas implementaciones que pueden ampliarse fácilmente.

  • com.openkm.form.suggestion.DocumentContentContainsSuggestion: Obtiene recomendaciones basadas en el contenido del documento (usa String.contains).
  • com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: Obtiene sugerencias basadas en el contenido del documento (usa StringTokenizer).
  • com.openkm.form.suggestion.DocumentTermsSuggestion: Obtiene recomendaciones basadas en los vectores de términos del documento.

Para más información, lea Creating your own Suggestion Analyzer.

<?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 padre con “okp:consulting.parent”. Se define mediante parentElement=“okp:consulting.parent”.
  • El valor de opción “benefits” del campo “okp:consulting.children” tiene un valor padre “directives” en el campo “okp:consulting.parent”.

Relaciones en á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 usamos 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>