Campo Suggestbox de workflow
Es una implementación del típico componente AJAX de cuadro de sugerencias:
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto que se muestra como etiqueta en la interfaz de usuario. | true |
| name | Identificador único del campo. Dos campos no pueden tener el mismo nombre en la misma definición de tarea. El nombre debe ser único. |
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. |
true |
| width | El ancho del elemento HTML. | false |
| height | El alto del elemento HTML. | false |
| filterQuery | Una consulta de Hibernate para filtrar los datos. Utilice {0} para colocar la entrada del usuario. | true |
| valueQuery | Una consulta de Hibernate para obtener el valor de un identificador. Utilice {0} para colocar el identificador. | true |
| filterMinLen | El número mínimo de caracteres de entrada para comenzar a filtrar resultados. | true |
| dialogTitle | El título del cuadro de diálogo HTML. | true |
| data | Cuando está presente, es un identificador utilizado para cargar datos. | false |
| readonly | Establece el campo de modo que no pueda modificarse en la interfaz de usuario. Por defecto el valor es “false”. | false |
- Elementos hijo:
Los valores de Suggestbox se definen en tablas 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 seleccionadas. Es muy útil cuando se dispone de 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 tabla, nombre de columna y tipo de 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 de 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 la parte inferior derecha, en el botón Execute.
Inserte los valores de la tabla de metadatos:
- Vaya a Administration > Utilities > Database query.
- En la parte inferior derecha, seleccione jdbc de 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 la parte inferior derecha, en el botón Execute.
Por último, la definición XML:
- En optionsQuery, los valores que comienzan con el carácter $ se identifican como nombres de columna. Véase $country_id y $country_name más abajo.
- Pueden utilizarse cláusulas SQL normales como “lower”, “like”, “order by”, etc.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.6//EN" "http://www.openkm.com/dtd/workflow-forms-2.6.dtd"><workflow-forms> <workflow-form task="suggestbox test"> <suggestbox label="country" name="suggestbox" width="200px" table="country" dialogTitle="Choose country" filterMinLen="3" filterQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' and lower(dmv.$country_name) like '%{0}%' order by dmv.$country_name" valueQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' and dmv.$country_id='{0}'" /> </workflow-form></workflow-forms>