Ir al contenido

Workflow Select field

Atributo Descripción Obligatorio
label El texto se muestra como una etiqueta en la interfaz de usuario. true
name Identificador único del campo.
Dos áreas no pueden tener el mismo nombre dentro de la misma definición de tarea. El nombre debe ser único.
true
type Valor del tipo. Tipos permitidos:
- simple (permite una única selección).
- multiple (permite varias selecciones).
true
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” será ignorado en la interfaz de KCenter.
false
description Descripción general. false
optionsQuery Se usa una consulta de metadatos o una consulta SQL para obtener las opciones del select. *
className Se usa una clase para obtener las opciones del select. *
data Cuando está presente, es un identificador usado para cargar datos. false
optionsData Cuando está presente, es un identificador usado para cargar opciones. false
readonly El campo select no puede modificarse en la interfaz de usuario. Por defecto, el valor es “false”. false

Elementos hijos:

  • Option. Pares de valores XML o cuando se establece una relación jerárquica.
  • Validator. Para más información, consulte Workflow Validator element.

* Hay tres opciones para obtener los valores de las opciones:

  • Definidos directamente en el XML.
  • Tabla de metadatos ( optionsQuery ).
  • className.
  • Type es igual a simple.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<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>
  • Type es igual a multiple.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<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>

También podemos obtener estos valores de opción mediante una consulta SQL. Esta sentencia SQL debe colocarse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, esta consulta se considera una 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 workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<select label="country" name="country" type="simple"
optionsQuery="select CT_ID, CT_NAME from COUNTRY order by CT_NAME"/>
</workflow-form>

La tabla usada en este ejemplo se define de la siguiente forma:

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 recuperar una lista desde aplicaciones externas o para otros propósitos, puede construir una clase que obtenga los valores de las opciones desde esos sistemas.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<select label="select label" name="select" type="simple"
className="com.openkm.plugin.form.values.OptionSelectUserList" />
</workflow-form>

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

  • El valor de opción del campo “childrenSelect” tiene una relación de padre con “parentSelect”. Se define mediante parentElement=“parentSelect”.
  • El valor de opción “benefits” del campo “childrenSelect” tiene como 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-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<!-- Parent child -->
<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="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>
</workflow-form>

En este caso usamos un par de tablas para obtener la información.

create table LOCALIDAD (
LOC_ID varchar(8),
LOC_NAME varchar(32),
primary key (LOC_ID)
);
create table UBICACION (
UBI_ID varchar(8),
UBI_LOC varchar(8),
UBI_NAME varchar(32),
primary key (UBI_ID)
);
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l0', 'Localidad 0');
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l1', 'Localidad 1');
insert into LOCALIDAD (LOC_ID, LOC_NAME) values ('l2', 'Localidad 2');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u0', 'l0', 'Ubicación 0');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u1', 'l0', 'Ubicación 1');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u2', 'l0', 'Ubicación 2');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u3', 'l1', 'Ubicación 4');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u4', 'l1', 'Ubicación 5');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u5', 'l1', 'Ubicación 6');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u6', 'l2', 'Ubicación 7');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u7', 'l2', 'Ubicación 8');
insert into UBICACION (UBI_ID, UBI_LOC, UBI_NAME) values ('u8', 'l2', 'Ubicación 9');

Esta es la definición del formulario:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-form PUBLIC "-//OpenKM//DTD Workflow Form 1.0//EN"
"https://www.openkm.com/dtd/workflow-form-1.0.dtd">
<workflow-form>
<!-- Parent child -->
<select name="localidad" label="Localidad" optionsQuery="select LOC_ID, LOC_NAME from LOCALIDAD" />
<select name="ubicacion" label="Ubicacion" parentElement="localidad" optionsQuery="select UBI_ID, UBI_NAME, UBI_LOC from UBICACION" />
</workflow-form>