Forms

With Imixs-Office-Workflow you can create forms completely model-based. No programming knowledge in HTML or Java Script is required. Imixs-Office-Workflow implements the Imixs Form Specification a standard for describing business forms declaratively inside a BPMN model. Forms are defined directly in the BPMN modeler and rendered automatically at runtime.

The Concept

A form definition is stored as XML inside a BPMN Data Object and linked to a Task via a BPMN Association:

When a workflow instance reaches that task, Imixs-Office-Workflow reads the Data Object, parses the XML, and renders the form — dynamically, without redeployment.

A minimal form definition looks like this:

<?xml version="1.0"?>
<imixs-form>
  <imixs-form-section label="Order Details" columns="2">
    <item name="order.number" type="text"     label="Order Number:" />
    <item name="order.date"   type="date"     label="Order Date:" />
    <item name="order.notes"  type="textarea" label="Notes:" span="12" />
  </imixs-form-section>
</imixs-form>

Within an <imixs-form-section> you define input fields as <item> elements. Each item maps its value directly to the corresponding workitem:

<item name="customer.name" type="text" label="Name:" />

Each item has the following properties:

Property Type Mandatory Description
name text Name of the item
type text Item type (e.g. text, currency, date, …)
label text Optional label for the input field
required boolean Marks the input field as mandatory
readonly boolean Marks the input field as read-only

Form Layout

Each section uses a 12-column grid layout. Items within a section are arranged in rows according to their span values. The columns attribute provides a convenient shorthand for evenly distributing items. For example, columns="3" automatically splits the section into three equal columns, so every item takes up one third of the row. With the span setting in a item tag you can change the width of the item individually.

In this example the zip item takes only 2 grid columns, the city 6 and the country 4. It is important to ensure that a custom layout is always based on 12 columns:

For the full specification of the XML format, the 12-column grid layout, all standard input types, and default values, refer to the Imixs Form Specification on imixs.org.

Form Tabs

You can also define additional Tabs that group Sections horizontal. For this you define a tag named imixs-subform to separate a group of sections

<imixs-form>
  <imixs-subform label="Basic Information">
	<imixs-form-section label="Address:">
		<item name="debug.zip" type="text"  label="ZIP:" span="2" />
		<item name="debug.city" type="text"  label="City:" span="6" />
		<item name="debug.country" type="text"  label="Country:" span="4" />
	</imixs-form-section>
  </imixs-subform>
  <imixs-subform label="Advanced Information">
	 ...
  </imixs-subform>
</imixs-form>


Input Fields & Item Names

Even if you can define the item names of your input fields freely, it is recommended to use a consistent naming concept. This allows you to reuse code more easily and exchange data across your business process architecture.

For application-specific item names the dot.case format is recommended:

Item Type Description
Order
order.name text Order name
order.number text Order number
order.delivery date Delivery date
Contract
contract.name text Contract name
contract.partner text Contract partner name
contract.number text Contract number
contract.start date Contract start date
contract.end date Contract end date
contract.fee float Contract fee per billing cycle
Creditor
cdtr.name text Creditor name
cdtr.iban text IBAN number
cdtr.bic text BIC number
Debitor
dbtr.name text Debitor name
dbtr.iban text IBAN number
dbtr.bic text BIC number
Invoice
invoice.number text Invoice number
invoice.date date Invoice date
invoice.total float Invoice total amount
invoice.vat float Invoice VAT
invoice.gross float Invoice gross amount
invoice.currency text Currency
Payment
payment.type text Credit card, SEPA
payment.date date Payment date
payment.amount float Payment amount
payment.currency text Currency
payment.cycle text Payment cycle (monthly, yearly, fixed date)

Overriding the Default Form

In Imixs-Office-Workflow, the Forms Specification is active by default. As long as a task has a Data Object with a valid form definition associated, it will be rendered automatically. No additional configuration is required.

The Application → Input Form setting in the task properties is only relevant when you want to override this default behaviour — for example to load a completely custom, hand-crafted form instead. This can be useful for specialised use cases such as mobile applications or highly tailored UI layouts that go beyond what the form specification supports.

To disable the Forms Specification for a specific task and load a custom form instead, enter the name of your custom form template in the Application → Input Form field.


Imixs-Office-Workflow Form Components

Beyond the standard input types defined by the Imixs Form Specification, Imixs-Office-Workflow provides an extended set of form components tailored for enterprise use cases. These components follow the same XML syntax and integrate seamlessly with the standard form layout:

<imixs-form-section label="Payment">
  <item name="dbtr.iban" type="iban" label="IBAN:" span="8" />
  <item name="dbtr.bic"  type="bic"  label="BIC:"  span="4" />
</imixs-form-section>

The following sections describe all available components in detail: