Ir al contenido
Otras versiones

Cargando…

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>