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 comenzar por “okp:”. Es una buena práctica utilizar el nombre del grupo de metadatos como base del nombre del campo de metadatos. Por ejemplo, se ha utilizado “okg:consulting” para el nombre de campo “okp:consulting.select”, cambiando “okg” por “okp”. Eso ayuda a averiguar el grupo de metadatos a partir del nombre del campo de metadatos. Utilice únicamente letras, números y guion bajo: “0-9a-zA-Z_”. |
true |
| type | Valor del tipo. Tipos permitidos: - simple (se permite una sola opción). - multiple (se permiten varias opciones). |
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. | |
| 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 |
| readonly | Establece que el campo no se podrá modificar en la interfaz de usuario. Por defecto el valor es “false”. | false |
-
* 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 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.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 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.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>Relación jerárquica
Sección titulada «Relación jerárquica»- Los valores de opción del campo “okp:consulting.children” tienen relación de dependencia 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
- elegibility
- services
- handbook
- basic
- normal
- advanced
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.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>Opciones basadas en una tabla de metadatos
Sección titulada «Opciones basadas en una tabla de metadatos»- La aplicación utiliza dos tablas llamadas OKM_DB_METADATA_TYPE Y OKM_DB_METADATA_VALUE que ayudan a almacenar los valores de las opciones utilizadas en el select. Es muy útil cuando se tiene un gran número de valores.
- En la tabla OKM_DB_METADATA_TYPE se almacena la definición de la tabla de metadatos (nombre de la tabla, nombre de la columna y tipo de la columna).
- En la tabla OKM_DB_METADATA_VALUE se almacenan los valores de los registros.
Cree la definición de la tabla de metadatos.
- Vaya a Administration > Utilities > Database query.
- En la parte inferior derecha seleccione JDBC en la lista.
- Pegue el SQL en el cuadro
DELETE FROM OKM_DB_METADATA_TYPE WHERE DMT_TABLE='country';INSERT INTO OKM_DB_METADATA_TYPE (DMT_TABLE, DMT_REAL_COLUMN, DMT_TYPE, DMT_VIRTUAL_COLUMN) VALUES ('country', 'col00', 'integer', 'country_id');INSERT INTO OKM_DB_METADATA_TYPE (DMT_TABLE, DMT_REAL_COLUMN, DMT_TYPE, DMT_VIRTUAL_COLUMN) VALUES ('country', 'col01', 'text', 'country_name');- Haga clic en el botón Execute de la parte inferior derecha.
Inserte los valores de la tabla de metadatos:
- Vaya a Administration > Utilities > Database query.
- En la parte inferior derecha seleccione JDBC en la lista.
- Pegue el SQL en el cuadro
DELETE FROM OKM_DB_METADATA_VALUE WHERE DMV_TABLE='country';INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) VALUES ('country', '001', 'Australia');INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) VALUES ('country', '002', 'Canada');- Haga clic en el botón Execute de la parte inferior derecha.
Por último, la definición XML:
- En optionsQuery, los valores que comienzan por el carácter $ se identifican como nombres de columna. Véanse $country_id y $country_name más abajo.
- Pueden utilizarse cláusulas SQL normales como “order by”, etc.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.dtd"><property-groups> <property-group label="Location" name="okg:location"> <select label="Country" name="okp:location.country" type="simple" table="country" optionsQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' order by $country_name" /> </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 2.6//EN" "http://www.openkm.com/dtd/property-groups-2.6.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));insert into COUNTRY (CT_ID, CT_NAME) values ('es', 'Spain');insert into COUNTRY (CT_ID, CT_NAME) values ('pt', 'Portugal');insert into COUNTRY (CT_ID, CT_NAME) values ('it', 'Italy');Basado en className
Sección titulada «Basado en className»Para ayudar a obtener una lista desde aplicaciones externas o con otros fines, puede construirse su propia clase 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 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.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.OptionSelectUserList" /> </property-group></property-groups>Para más información, lea Crear su propio plugin de valores de opciones de select.
Opciones sugeridas
Sección titulada «Opciones sugeridas»Basándose en el analizador de contenido, la aplicación puede sugerir algunos valores de opciones. En la interfaz de usuario, las opciones sugeridas se mostrarán en verde.
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.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.5//EN" "http://www.openkm.com/dtd/property-groups-2.5.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>