Ir al contenido
Otras versiones

Cargando…

Campo Select de metadatos

Atributo Descripción Obligatorio
label El texto que se muestra como etiqueta en la interfaz de usuario. true
name Identificador único del campo.
Dos metadatos no pueden tener el mismo nombre. El nombre debe ser único.
El nombre debe empezar por “okp:”.
Utilizar el nombre del grupo de metadatos como base para el nombre del campo de metadatos es una buena práctica. Por ejemplo, cuando se ha utilizado “okg:consulting” para el nombre de campo “okp:consulting.select”, cambiando “okg” por “okp.” Eso ayuda a encontrar 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 puede utilizarse en esta consulta.
*
width El ancho del elemento HTML.
En el caso de la interfaz de KCenter, los valores de ancho deben especificarse en porcentajes; por ejemplo:
- width=“50%” funcionará
- width=“100px” se ignorará en la interfaz de KCenter.
height El alto del elemento HTML.
optionsQuery Una consulta de metadatos utilizada para obtener las opciones seleccionadas. *
className Una clase utilizada para obtener las opciones seleccionadas. *
suggestion Al añadir metadatos a documentos, la aplicación puede sugerir automáticamente algunos valores basándose en el análisis del contenido del documento. Por defecto, la aplicación incluye algunas implementaciones que pueden ampliarse fácilmente.
- com.openkm.form.suggestion.DocumentContentContainsSuggestion: obtiene sugerencias a partir del contenido del documento (usa String.contains)
- com.openkm.form.suggestion.DocumentContentTokenizerSuggestion: obtiene sugerencias a partir del contenido del documento (usa StringTokenizer).
- com.openkm.form.suggestion.DocumentTermsSuggestion: obtiene sugerencias a partir de los vectores de términos del documento.
Para más información, lea Crear su propio analizador de sugerencias.
false
parentElement Nombre del campo padre. En este caso el valor tiene una relación jerárquica con otros valores de campo (el padre). false
description Descripción general. false
read-only El 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 en el que se almacena el valor.
Por defecto, los campos se almacenan en una columna de la base de datos de 128 caracteres. Como sus datos pueden ser más largos de 128 caracteres, el administrador debe actualizar el tamaño de columna por defecto.
Consulte la sección de documentación Definición XML de metadatos para ver 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 está en “grant”, de modo que todos los usuarios verán la propiedad.
  • * Hay tres opciones para obtener los valores de las opciones:

  • Elementos hijo:

  • 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 mediante una consulta SQL. Esta sentencia SQL debe ponerse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, esta consulta se utiliza como 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 así:

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 propia clase para recuperar 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 sugeridas se mostrarán en verde.

La aplicación dispone de algunas implementaciones que pueden ampliarse fácilmente.

  • com.openkm.form.suggestion.DocumentContentContainsSuggestion: Obtiene sugerencias 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 sugerencias 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>
  • El valor de opción del campo “okp:consulting.children” tiene 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 un valor padre “directives” del 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 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>