WorkflowNode

From GeoMedia Smart Client
Jump to: navigation, search
Settings WorkflowSetting FormSetting CommonSetting





A WorkflowNode represents one "step" in the Workflow. The node can have none, one, or more Workflow-Nodes as subentries. Workflow-Nodes will be shown in the GUI as follows:

Workflow node


The general usage is:

  1.  <WorkflowNode id="1" label="Operations" controller="List" form="OPERATIONS">
  2.   <WorkflowNode id="10" label="Create an operation" controller="Form" form="OPERATION" follownode="1">
  3.     <WorkflowTrigger ...>
  4.       <Param ... />
  5.     </WorkflowTrigger>
  6.     ...
  7.   </WorkflowNode>
  8.   <WorkflowNode ...>
  9.   ...
  10.   </WorkflowNode>
  11.   ...
  12.  </WorkflowNode>



Navigation Concept: There are two concepts for Workflow-Navigation:

  • Navigation via Workflow-Nodes - this is the default behavior (the default controllers are: Form, List)
  • Navigation via buttons (described under Form.xml - FormAction)


Navigation Path: The path to the actual navigation element is implemented as breadcrumb trail in the header-section of the current Workflow-Form; use this as navigation aid.

Breadcrumbs



Pfeil new.png To the top Pfeil new.png

WorkflowNode - Attributes

Attribute Mandatory Description
id yes Unique ID of the Workflow-Node.


 <id="2120" />
authorization no Only users with the appropriate Role/Claim are authorized to view/process the element.


 <authorization="ROLE[ADMIN,EDITOR]" />
 <authorization="CLAIM[WF_ADMIN,WF_EDIT]" />
condition no Condition to be evaluated for the Workflow-Node, which defines if the node is accessible or not. The result of the condition has to deliver a boolean value (1/0 or true/false). The following condition types are supported:

condition= ...

  • ..."OBJECT[...]"
  • ..."SESSION[KeyExists(...)]"
  • ..."SQL[...]"


 <condition="OBJECT[...]" />

the xsd-pattern looks like:

 <xsd:pattern value="OBJECT\[((.+)\(.*\))\]"/>
for example:
 <OBJECT[classname.methodname ({SESSION.MAP.SELECTIONSET})] />
 
 <condition="SESSION[KeyExists(MAP.SELECTIONSET)]" />
 
<condition="SQL[SELECT DECODE (COUNT(*),0,1,0)
+ DECODE ({FORM.TEMPLATE_GUID}, NULL,-1,0) FROM PR_UNIT WHERE PR_ID={FORM.PR_ID}]" />
conditionhelp no Help text for a condition, which gives the user additional information why a certain node is grayed out (see explanation below).


 <conditionhelp="Info..." />
controller no The controller defines the layout and the functionality of the node. The user can define Default-Controller and Custom-Controller (the different controller types are described below).


Read more about the controller-attribute in WorkflowNode.

 <controller="List" />
emptyform no This attribute defines if a form should be opened with filled out FormFields or as a blank form. (Therefore, the same form can be used in two different Workflow-Paths,

for example, "Create new Incident", "Edit Incident".

 <emptyform="true" />
 <emptyform="false" />
follownode no Follownodes define NodeID's, which are called after the actions at the node-level are completed.


 <follownode="2200" />
form no Form name defined in the FormSettings-XML file, which is called from the Workflow-Node (has to be written in UPPERCASE letters and must not contain any special characters).


 <form="OPERATION" />
historynode no Used to show a different path in the Navigation Path. The standard behavior always shows the parent nodes of the current node in the Navigation Path. If this behavior should be changed, this attribute is used.


 <historynode="10" />
label no Node label in the Workflow-Form.


 <label="Node xyz" />
view no Due to the separation of data model and presentation, this attribute can be used to include customized views for GUI-definitions.


 <view="PagedForm" />
visible no This attribute defines if the Workflow-Node should be visible in the Workflow (default) or not. Invisible Workflow-Nodes are, for example, used for processing Triggers.

The visibility can also be set according to the result of an SQL-statement.

 <visible="true" />
 <visible="false" />
 <visible="list" />
 <visible="history" />



Pfeil new.png To the top Pfeil new.png

Controller-attribute in WorkflowNode

Workflow-Nodes can be implemented as one of the following elements:


Controller Description
Form Element used for display of one dataset (one row of a certain table, 1:n relations to the main table can be defined by the use of the type="table" or type="listbox" in the FormField-definition). Read more.

Example of a form with a table
Example of a form with a table.


Controller Description
List Controller is used to display all datasets of a table. It possible to sort and filter the list. Read more.

Example of a list with filters
Example of a list with filters.


Controller Description
Workflow Default-controller, which is invoked if no explicit controller is defined. Used for the display of further Workflow-Nodes. Read more.

Example of a workflow list
Example of a workflow list.


Custom controller at Workflow-Nodes:

Custom controller can be implemented by programming custom scripts; they can be used embedded by defining the relative path to the code, for example:

 <WorkflowNode ... controller="CustomController" ... />



All known subentries of a Workflow-Node:

A Workflow-Node can contain the following elements:

  • additional Workflow-Nodes
  • Workflow-Trigger


Workflow-Node conditions via CONDITION checking:

At each Workflow-Node, an attribute condition can be assigned, which has to return 0/FALSE or 1/TRUE. If the condition returns FALSE or 0, the node will only be shown grayed out in the Workflow-Tree. Several conditions can be separated by a comma. For an overall validation, they are connected by a logical "AND" (see also ).

Additionally, you have the ability to indicate a so-called conditionhelp, which is shown as a tooltip for the grayed out Workflow-Node. Therefore, it is possible to inform the user why the concerned Workflow-Node can/may not be selected.


Example:

  1.  <WorkflowNode id="0".....>
  2.   <WorkflowNode id="1" label="Displayed Workflow" condition="SQL[SELECT count(*) FROM DUAL WHERE 1=1]" .... /> 
  3.   <WorkflowNode id="2" label="Hidden Workflow" condition="SQL[SELECT count(*) FROM DUAL WHERE 1=0]" .... />
  4.   <WorkflowNode id="2" label="Greyed-out Workflow" condition="SQL[SELECT count(*) FROM DUAL WHERE 1=0]" conditionhelp="Node is hidden because 1!=0".... />
  5.  </WorkflowNode>



Language: English