Package com.smartgwt.client.docs.serverds

# Class Process

java.lang.Object
com.smartgwt.client.docs.serverds.Process

public class Process extends Object
A instance of Process represents a stateful process executing a series of Tasks, which may be:

- user interactions
- calls to DataSources (hence: any database or web service)
- arbitrary code
- other Processes

A Process is stateful in the sense that it maintains `state` across the different tasks that are executed.

This class is not meant to be created and used, it is actually documentation of settings allowed in a DataSource descriptor (.ds.xml file), for use with Smart GWT Pro Edition and above. See `com.smartgwt.client.docs.serverds` for how to use this documentation.

This allows you to maintain context as you walk a user through a multi-step business process in your application, which may involve multiple operations on multiple entities. Each Task that executes can use the Process state as inputs, and can output a result which is stored in the Process state - see `TaskIO`.

A Process can have multiple branches, choosing the next Task to execute based on `Criteria` - see `DecisionTask` and `MultiDecisionTask`.

Because a Process may return to a previous Task in various situations, the data model of a Process is strictly speaking a graph (a set of nodes connected by arbitary interlinks). However, most processes have sequences of several tasks in a row, and the definition format allows these to be represented as simple Arrays called "sequences", specified via `sequences`. This reduces the need to manually specify IDs and interlinks for Tasks that simply proceed to the next task in a sequence.

Processes follow all the standard rules for encoding as `ComponentXML`, however, note that the <Process> tag allows any kind of `ProcessElement` (tasks, decisions and sequences) to appear as a direct subelement of the <Process> tag without the need for an intervening <elements> or <sequences> tag. The example below demonstrates this shorthand format.

      <Process ID="processId">
          <DSRequestTask ID="dsRequestTaskId" nextElement="sequenceId" ..>
              <inputFieldList>
                  <value>order.countryName</value>
              </inputFieldList>
              <outputFieldList>
                  <value>order.countryName</value>
                  <value>order.continent</value>
              <outputFieldList>
          </DSRequestTask>
          <sequence ID="sequenceId" >
              <StateTask ../>
              <StateTask ../>
              <StateTask ../>
              <StateTask nextElement="userTaskId" ../>
          </sequence>
          <UserTask ID="userTaskId" ../>
          ...
      </Process>

NOTE: you must load the standard DataBinding module before you can use `Process`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Process()`

- ## Method Summary

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Process

    public Process()