Ir al contenido
Otras versiones

Cargando…

Campo Select de workflow

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
type Valor del tipo. Tipos permitidos:
- simple (se permite una sola opción).
- multiple (se permite elegir varias opciones).
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.
*
width El ancho del elemento HTML. false
height El alto del elemento HTML. false
optionsQuery Una consulta de metadatos o una consulta SQL utilizada para obtener las opciones del select. *
className Una clase utilizada para obtener las opciones del select. *
data Cuando está presente, es un identificador utilizado para cargar datos. false
optionsData Cuando está presente, es un identificador utilizado para cargar opciones. false
readonly Establece que el campo no se podrá modificar en la interfaz de usuario. Por defecto, el valor es “false”. false
  • * Hay tres opciones para obtener los valores de las opciones:

  • Elementos hijo:

  • El tipo es igual a simple.
<?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">
<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.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="multiple">
<option label="one" value="001" />
<option label="two" value="002" />
<option label="three" value="003" />
</select>
</workflow-form>
</workflow-forms>
  • 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 un valor padre “directives” del campo “parentSelect”.

Relaciones del á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.6//EN"
"http://www.openkm.com/dtd/workflow-forms-2.6.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="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>
</workflow-forms>
  • 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 utilizadas. Es muy útil cuando tiene 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 la tabla, nombre de la columna y tipo de la 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 el botón Execute de la parte inferior derecha.

Por último, la definición XML:

  • En optionsQuery, los valores que empiezan por 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 “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="select test">
<select label="country" name="country" type="simple" table="country"
optionsQuery="select $country_id, $country_name from DatabaseMetadataValue dmv where dmv.table='country' order by $country_name" />
</workflow-form>
</workflow-forms>

También podemos obtener estos valores de opción mediante una consulta SQL. Esta sentencia SQL debe ponerse en el atributo optionsQuery, pero el atributo table debe estar vacío (de lo contrario, esta consulta se utiliza como 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-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 utilizada en este ejemplo se define como:

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 ayudar a obtener una lista de aplicaciones externas o con otros fines, puede crear su propia clase para obtener de esos sistemas los valores de las opciones.

<?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="okp:consulting.select" type="simple"
className="com.openkm.plugin.form.OptionSelectUserList" />
</workflow-form>
</workflow-forms>

Para más información, lea: Creación de su propio plugin de valores de opciones Select.