Workflow Select field
Esta página aún no está disponible en tu idioma.
| Attribute | Description | Required |
|---|---|---|
| label | The text shown as label in user interface. | true |
| name | Unique field identifier. Two fields can’t have the same name in the same task definion. Name must be unique. |
true |
| type | Type value. Allowed types: - simple ( single choice allowed ). - multiple ( multiple choice allowed ). |
true |
| table | Metadata table name. Application can store values into metadata table, that can be used in this query. |
* |
| width | The width of the HTML element. | false |
| height | The height of the HTML element. | false |
| optionsQuery | A metadata query or SQL query used to get the select options. | * |
| className | A class used to get the select options. | * |
| data | When present, is an identifier used to load data. | false |
| optionsData | When present, is an identifier used to load options. | false |
| readonly | Set field will not be able to be modified in user interface. By default the value is “false”. | false |
-
* There’re three options to get option values:
-
Child elements:
Basic select example
Section titled “Basic select example”- Type is equal to 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>Allow multiple choice
Section titled “Allow multiple choice”- Type is equal to 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>Hierarchical relationship
Section titled “Hierarchical relationship”- The field option value of “childrenSelect” has a parent relation with “parentSelect”. It’s defined by parentElement=“parentSelect”.
- The option value “benefits” of the field “childrenSelect” has a parent value “directives” from field “parentSelect”.
Tree relationships:
- 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>Options based on metadata table
Section titled “Options based on metadata table”- Application use two tables named OKM_DB_METADATA_TYPE AND OKM_DB_METADATA_VALUE that helps storing used options values. That’s very useful when you have a large number of values.
- In the table OKM_DB_METADATA_TYPE are stored metadata table definition ( table name, column name and column type ).
- In the table OKM_DB_METADATA_VALUE are stored record values.
Create metadata table definition.
- Go to Administration > Utilities > Database query.
- At the right bottom select JDBC from list.
- Paste the SQL in the box
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');- Click at bottom right the Execute button.
Insert metadata table values:
- Go to Administration > Utilities > Database query.
- At the right bottom select JDBC from list.
- Paste the SQL in the box
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');- Click the Execute button at the right bottom.
Finally the XML definition:
- In optionsQuery the values that begins with character $ are identified as column names. See $country_id and $country_name below.
- Can use normal sql clauses 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="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>Based on SQL query
Section titled “Based on SQL query”We can also get these option values using a SQL query. This SQL sentence should be put on the optionsQuery attribute, but the table attribute should be empty (otherwise this query is used as a metadata query). Note that the first element returned in every row is the option value and the second one is the option label.
<?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>The table used in this sample is defined 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');Based on className
Section titled “Based on className”To help getting a list from external applications or other purposes you can build your own class to retrieve from these systems the option values.
<?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>For more information read: Creating your own Option Select Values plugin.