Ir al contenido

Campo Select de Workflow

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
type Valor del tipo. Tipos permitidos:
- simple (permite selección única, por defecto).
- multiple (permite selección múltiple).
false
value Puede especificar 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 basados en %, por ejemplo:
- width=“50%” funcionará
- width=“100px” se ignorará en la interfaz de KCenter.
false
description Descripción general. false
optionsQuery Una consulta SQL usada para obtener las opciones del select. La primera columna del resultado es el valor de la opción; la segunda es la etiqueta de la opción. *
className Una clase Java usada para obtener las opciones del select. *
data Cuando está presente, un identificador usado para cargar dinámicamente el valor seleccionado. 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, haciendo que se muestre u oculte (el uso más común es ocultarlo). El valor por defecto de visible es true. false
optionsData Cuando está presente, un identificador usado para cargar dinámicamente la lista de opciones. false
readonly Cuando es true, el campo no se puede modificar en la interfaz de usuario. Por defecto es false. false
  • * Hay tres formas mutuamente excluyentes de obtener los valores de las opciones:

  • Elementos hijos:

  • El tipo es igual a simple.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN"
"http://www.openkm.com/dtd/workflow-forms-2.13.dtd">
<workflow-forms>
<workflow-form task="select test">
<select label="select label" name="select" type="simple">
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</workflow-form>
</workflow-forms>
  • El tipo es igual a multiple.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN"
"http://www.openkm.com/dtd/workflow-forms-2.13.dtd">
<workflow-forms>
<workflow-form task="select test">
<select label="select label" name="select" type="multiple" >
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</workflow-form>
</workflow-forms>

Los valores de las opciones también se pueden obtener mediante una consulta SQL colocada en el atributo optionsQuery. La primera columna de cada fila es el valor de la opción, y la segunda es la etiqueta de la opción.

<?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="select test">
<select label="country" name="country" type="simple"
optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME"/>
</workflow-form>
</workflow-forms>

La tabla usada 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');

Para obtener una lista desde aplicaciones externas o para otros propósitos, puede construir una clase para obtener los valores de las opciones 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="select test">
<select label="select label" name="select" type="simple"
className="com.openkm.plugin.form.values.OptionSelectUserList" />
</workflow-form>
</workflow-forms>

Para más información, lea: Creating your own Option Select Values plugin.

  • El valor de opción del campo “childrenSelect” tiene una relación padre con “parentSelect”. Se define mediante parentElement=“parentSelect”
  • El valor de opción “benefits” del campo “childrenSelect” tiene un valor padre “directives” del área “parentSelect”.

Relaciones en árbol:

  • directives
    • benefits
    • eligibility
    • services
  • handbook
    • basic
    • normal
    • advanced
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN"
"http://www.openkm.com/dtd/workflow-forms-2.13.dtd">
<workflow-forms>
<workflow-form task="select test">
<select label="Parent" name="parentSelect" type="simple">
<option value="directives" label="Directives" />
<option value="handbook" label="Handbook Paragraphs" />
</select>
<select label="Children" name="childrenSelect" type="simple" parentElement="parentSelect">
<option value="benefits" label="Benefits" parentValue="directives" />
<option value="eligibility" 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>
</workflow-form>
</workflow-forms>

El siguiente ejemplo usa dos tablas relacionadas para rellenar campos select jerárquicos.

create table LOCATION (
LOC_ID varchar(8),
LOC_NAME varchar(32),
primary key (LOC_ID)
);
create table SUBLOCATION (
UBI_ID varchar(8),
UBI_LOC varchar(8),
UBI_NAME varchar(32),
primary key (UBI_ID)
);
insert into LOCATION (LOC_ID, LOC_NAME) values ('l0', 'Location 0');
insert into LOCATION (LOC_ID, LOC_NAME) values ('l1', 'Location 1');
insert into LOCATION (LOC_ID, LOC_NAME) values ('l2', 'Location 2');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u0', 'l0', 'Sub-location 0');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u1', 'l0', 'Sub-location 1');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u2', 'l0', 'Sub-location 2');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u3', 'l1', 'Sub-location 4');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u4', 'l1', 'Sub-location 5');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u5', 'l1', 'Sub-location 6');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u6', 'l2', 'Sub-location 7');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u7', 'l2', 'Sub-location 8');
insert into SUBLOCATION (UBI_ID, UBI_LOC, UBI_NAME) values ('u8', 'l2', 'Sub-location 9');

Esta es la definición del formulario:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 2.13//EN"
"http://www.openkm.com/dtd/workflow-forms-2.13.dtd">
<workflow-forms>
<workflow-form task="task">
<!-- Parent-child -->
<select name="location" label="Location"
optionsQuery="select LOC_ID, LOC_NAME from LOCATION" />
<select name="sublocation" label="Sub-location" parentElement="location"
optionsQuery="select UBI_ID, UBI_NAME, UBI_LOC from SUBLOCATION" />
</workflow-form>
</workflow-forms>