A distinctive feature of this task is that it can be used to create any other simple one step tasks (1..* parallel tasks of the same type).

A BPMN process, that underlies this task, is constructed as plain as possible to be reused many times over:


                     

                                                                                         


While creating/editing of the task the following parameters are available:


Form:

                                                                                                    first version#alf#second version#alf#third version



Outcome:

If some internal value is needed + localization (text on the button), then this is implemented as follows:

                                                                                                    first|first version#alf#second|second version

This parameter can be conveniently used to limit the number of buttons that are already set via constraints. That is, if there is the "Approval” task for which the "Confirm, Rework, Reject" completion options, so if we write in this field " Confirm#alf#Reject”, we will remove the "Rework" button (if there is localization for constraints, then it will not be lost with a record in this way).


An example of the type inherited from  wfcp:performTask

<type name="uniwf:confirmTask">

<parent>wfcp:performTask</parent>

  <overrides>

      <property name="wfcp:performOutcome">

          <constraints>

              <constraint name="uniwf:confirmOutcomeConstraint" type="LIST">

                  <parameter name="allowedValues">

                      <list>

                          <!—Here we merely specified a list of possible completion options-->

                          <value>Confirm</value>

                          <value>Rework</value>

                          <value>Reject</value>

                      </list>

                  </parameter>

              </constraint>

          </constraints>

      </property>

  </overrides>

</type>

The task form

<config evaluator="task-type" condition="uniwf:confirmTask">

  <forms>

      <form id="inline">

          <edit-form template="/ru/citeck/components/form/workflow/case-perform/perform-task-inline.ftl" />

      </form>

  </forms>

</config>


perform-task-inline.ftl is a standard template with a description (task name in case management), a comment field and a result selection buttons. This template describes the logic in work with the "Result options" field and if the template is not used, it will be necessary to modify it when this functionality is required.


Rework,Reject


All logic for the "Performance" task is rendered in Java classes  CasePerformWorkflowHandler and CasePerformUtils.