Metadata

<workflow-process id="32456" ..... >
    ...
    <activities>
    ... 
    </activities>
    <transitions>
      <transition id="1" from-activity-idref="512" 
                         to-activity-idref="513">
        <condition>
          <expression id="5" 
               data-item-lhs="TaskCreateDetails.reserveToMeInd" 
               operation="==" data-item-rhs="true" 
               opening-brackets="2"/>
          <expression id="6"  
               data-item-lhs="TaskCreateDetails.caseID" 
               operation="&amp;amp;gt;" 
               data-item-rhs="2" conjunction="and" 
               closing-brackets="1"/>
          <expression id="7" 
               data-item-lhs="TaskCreateDetails.status"
               operation="!=" 
               data-item-rhs="&quot;Completed&quot;"
               conjunction="or"/>
          <expression id="8" 
               data-item-lhs="TaskCreateDetails.status"
               operation="&amp;amp;lt;=" 
               data-item-rhs="&quot;Closed&quot;"
               conjunction="or" closing-brackets="1"/>
        </condition>
      </transition>
      <transition id="2" from-activity-idref="512" 
                         to-activity-idref="513">
        <condition>
          <expression id="9" function="isNothing" 
               data-item-rhs="TaskCreateDetails.subject"/>
        </condition>
      </transition>
      <transition id="3" from-activity-idref="513" 
                         to-activity-idref="514">
        <condition>
          <expression id="10" 
                data-item-rhs="TaskCreateDetails.reserveToMeInd"
                conjunction="and" function="not" />       
        </condition>
      </transition>
      <transition id="4" from-activity-idref="514" 
                         to-activity-idref="515">
        <condition>
          <expression id="6"  
               data-item-lhs
               ="ClaimantDependents[Context_Loop.loopCount]" 
               operation="&amp;amp;gt;" 
               data-item-rhs="20" 
               conjunction="and" 
               closing-brackets="1"/>       
        </condition>
      </transition>      
    </transitions>
  </workflow-process>
condition
This metadata is mandatory for a loop begin activity (as a loop must have an exit condition specified for it) but optional for a transition (a transition may not have a condition specified for it). It contains the details of all the expressions defined for the condition.
expression
This contains the details of one expression contained in a condition. There may be one or many expressions specified for an associated condition. Two types of expression may be defined in a condition. These are function expressions (using one of two predefined functions, not() and isNothing()) and data item expressions (where the condition expression created applies the chosen operator to either two workflow data object attributes, or a workflow data object attribute and a constant). A transition expression consists of the following attributes:
id
This represents a 64-bit identifier supplied by the Cúram key server when transition expressions are created in the PDT. The expression identifier is required to be unique within a process definition but global uniqueness within all of the process definitions on the system is not required.
data-item-rhs
This represents the name of the data item to use on the right hand side of the condition expression. In the case of a data item condition expression, it may represent a workflow data object attribute (see Workflow Data Objects or a constant value that the chosen operator will be applied to. For function condition expressions, this represents a workflow data object attribute that either of the two predefined functions will be used against to evaluate the condition.
data-item-lhs
This metadata tag is optional as it is not required for a function condition expression. In the case of a data item condition expression, it represents the name of the data item to use on the left-hand side of the condition (i.e. a workflow data object attribute).
operation
This metadata tag is optional as it is not required for a function condition expression. In the case of a data item condition expression, it represents an identifier for the logical operation that will be applied to either two workflow data object attributes or a workflow data object attribute and a constant value. The following is the list of valid operators that may be used in a data item condition expression:
Table 1. Condition Expression Operators

Operator

Explanation

==

equal to

!=

not equal to

<=

less than or equal to

>=

greater than or equal to

<

less than

>

greater than

conjunction
This represents an identifier for a logical conjunction that may be used in either a function or data item condition expression. There are two possible values for this attribute, and (the default) and or. When a condition consists of multiple expressions, the logical conjunction is used in the evaluation of the complete condition.
function
This is optional as it is only used when specifying a function condition expression. As stated previously, there are two predefined functions, Not() and isNothing(). The Not() function acts as a logical inversion operator. In normal cases, this is applied to a boolean value. The isNothing() function may be applied to any workflow data object attribute type other than a boolean value. It may be used to test the scenarios where required data does not exist or has not been provided. The function returns a boolean value of True if the workflow data object attribute being examined does not contain any data.
opening-brackets
This is optional (the default is 0) as it may not be specified for either type of condition expression. It represents the number of opening brackets to insert at the start of the expression.
closing-brackets
This is optional (the default is 0) as it may not be specified for either type of condition expression. It represents the number of closing brackets to insert at the end of the expression.

The number of opening and closing brackets specified for an individual expression do not have to match (unless of course there is only one expression in the condition). The overall number of opening and closing brackets in the condition as a whole (with all of the expressions included) must be the same. Care should therefore be taken when specifying the number and position of opening and closing brackets within an individual expression, and the condition as a whole, as these brackets help determine how the condition and the individual expressions within that condition are evaluated. The same care should be taken when specifying the conjunction of an expression as failure to do so can lead to unexpected results.