Ir al contenido

Campo Workflow Suggestbox

Esta es una implementación del típico componente AJAX suggest box:

Atributo Descripción Obligatorio
label El texto mostrado 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
value Especifica un valor por defecto para este componente. false
width El ancho del elemento HTML.
En el caso de KCenter, la interfaz debe usar valores de ancho en porcentaje; por ejemplo:
- width=“50%” funcionará
- width=“100px” se ignorará en la interfaz de KCenter.
false
description Descripción general. false
filterQuery Una consulta SQL para filtrar sugerencias. Use {0} como marcador de posición para la entrada del usuario. *
valueQuery Una consulta SQL para recuperar el valor a mostrar para un identificador dado. Use {0} como marcador de posición para el identificador. *
className Una clase Java usada para recuperar los valores del suggest box. *
filterMinLen El número mínimo de caracteres en la entrada necesarios para empezar a filtrar resultados. Por defecto es 3. false
dialogTitle El título del diálogo HTML. true
data Cuando está presente, un identificador que se usa para cargar dinámicamente el valor. false
visible Este atributo solo tiene sentido cuando se usa junto con un objeto mapeado en el atributo data; el valor visible del objeto mapeado en data se asigna al campo del formulario, provocando que se muestre u oculte (el uso más habitual es ocultarlo). El valor por defecto de visible es true. false
readonly Cuando es true, el campo no puede modificarse. Por defecto es false. false
  • * Hay dos formas mutuamente excluyentes de obtener los valores del suggest box (una es obligatoria):

  • Elementos hijos:

filterQuery y valueQuery aceptan consultas SQL normales. Use {0} como parámetro que representa la entrada del usuario para filtrar valores.

Cree la tabla COUNTRY:

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');

Definición del formulario:

<?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="country"
width="200px" dialogTitle="Choose country" filterMinLen="3"
filterQuery="select ct_id, ct_name from country where ct_name like '%{0}%' order by ct_name"
valueQuery="select ct_id, ct_name from country where ct_id='{0}'" />
</workflow-form>
</workflow-forms>

Para obtener una lista desde aplicaciones externas o para otros fines, se puede construir una clase personalizada que recupere los valores de opción desde esos sistemas.

<?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="country"
width="200px" dialogTitle="Choose country" filterMinLen="3"
className="com.openkm.plugin.form.values.SuggestBoxUserList" />
</workflow-form>
</workflow-forms>

Para más información, lea Creating your own Suggestbox plugin