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:
Ejemplo básico de select
Sección titulada «Ejemplo básico de select»- 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>Permitir varias opciones
Sección titulada «Permitir varias opciones»- 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>Basado en una consulta SQL
Sección titulada «Basado en una consulta SQL»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));Basado en className
Sección titulada «Basado en className»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.
Opciones sugeridas
Sección titulada «Opciones sugeridas»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>Relación jerárquica
Sección titulada «Relación jerárquica»- 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>Relación jerárquica con SQL
Sección titulada «Relación jerárquica con SQL»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>