BPMN 2.1 RTF Avatar
  1. OMG Issue

BPMN21 — Unclear and incorrect specification of Expressions and Formal Expressions

  • Key: BPMN21-99
  • Legacy Issue Number: 15422
  • Status: open  
  • Source: USoft ( Rene de Bruin)
  • Summary:

    The use of expression and formalexpression is unclear. The description of 'Expression' states: 'The Expression class is used to specify an Expression using natural-language text. These Expressions are not executable and are considered underspecified '. However, table 8.1 states about 'expressionLanguage': 'This attribute identifies the formal Expression language used in Expressions within the elements of this Definition'. I guess this should be ' This attribute identifies the formal Expression language used in Formal Expressions'.
    Then there are several places where an 'expression' can be entered and not a 'formal expression'. For example table 10.64: assignment attributes. The 'from' and 'to' both are an 'Expression'. Just above the table it says: "The default Expression language for all Expressions is specified in the Definitions element, using the expressionLanguage attribute. It can also be overridden on each individual Assignment using the same attribute". Since the 'from' and 'to' fields are 'Expressions' and not 'Formal Expressions', it is not possible to specify the expressionLanguage. The expression class cleary states it used to specify using "natural-language".
    There are more places where a FormalExpression might be a better choice. Like the conditionExpression of a sequence flow. Since it is an 'Expression' it can only containt the condition in natural language. Venders will need to add vendor specific extension elements to contain the formal expression.
    FormalExpressions are a subclass of Expressions. Maybe it is the intention that FormalExpressions can be used whereever expressions can be used. However, the xsd clearly forbids this (as noticed already by Mr Denis Gagne in issue 14433)
    Finally, the description of 'Expression' states: "The natural language text is captured using the documentation attribute, inherited from BaseElement". In example xml in the document, like in Table 10.19, expressions are just put in the body of the expression:
    <sequenceFlow sourceRef="OrderApprovedDecision" targetRef="OrderAndShipment">
    <conditionExpression>Was the Order Approved?</conditionExpression>
    /sequenceFlow>
    Is this then correct? The description of the Expression class states it should be in the document attribute (which is by the way also not correct since the xsd states 'document' is not an attribute but an element).

  • Reported: BPMN 2.0 — Thu, 19 Aug 2010 04:00 GMT
  • Updated: Fri, 6 Mar 2015 20:57 GMT