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