Data Types

A data type defines the structure of a data element in a model. In different notations, data types are attached to different constructs:

  • For workflows, in BPMN, data types define the structure of data objects (and data inputs/oututs), activity inputs and outputs, messages and signals.

  • For decisions, in DMN, data types define the structure of data inputs, the interface of invokable (decision service and business knowledge models) and the output of decisions.

  • For cases, in CMMN, data types define the structure of case file items.

  • For knowledge entity models, data types define the structure of terms.

FEEL Data Types

Trisotech uses FEEL data types from the DMN standard across its modeling and automation suite to define the data structure.

A data type can be of a simple type, a structure of types or a collection of types.

Simple Data Types

Text

An ordered sequence of Unicode characters.

Number

A numeric value. There is no difference between integer and floating point, a single type represents both.

Boolean

A true or false value.

Days and time duration

A duration expressed using a number of days, hours, minutes and seconds.

Years and months duration

A duration expressed using years and months.

Date and time

A date and time value that can be expressed using an optional offset from the Universal Coordinated Time (UTC).

Date

A date value.

Time

A time value.

File

A structured data type that represents unstructured data as a file. The file data type has the following attributes: name, extension, created, modified, size, type, author, url. Note that this is not a FEEL defined type.

Folder

A structured data type that represents unstructured data as a folder. Available only in Case Modeler. The folder data type has the following attributes: name, created, author, files, folders. Note that this is not a FEEL defined type.

Any

Represents any structured data type in an abstract manner.

Collection of Text

Collection of text items.

Collection of Number

Collection of number items.

Collection of Boolean

Collection of boolean items.

Collection of Days and time duration

Collection of days and time duration items.

Collection of Years and months duration

Collection of years and months items.

Collection of Date and time

Collection of date and time items.

Collection of Date

Collection of date items.

Collection of Time

Collection of time items.

Collection of File

Collection of file items. Note that this is not a FEEL defined type.

Managing Data Types

Data types in a model are centrally managed in a dialog accessible in the notation ribbon under an action called Data Type.

data types
data types dialog

Each data type is listed in the Data Types dialog with some actions available on each of them.

Create collection

Create a collection of the data type.

Duplicate

Create a copy of the data type.

Details

Display the details of the data type.

Edit

Edit the data type.

Delete

Delete the data type.

Globally, there are actions that can be performed on data types.

Add

Create a new data type.

Sort A-Z

Sort the data type list alphabetically.

Delete

Delete all or unused data types. Delete all will remove all local types, all unused reused data types and all reused data types that are only used by other data types that can be deleted or by local element. Data types that are used by reused elements will not be removed.

Reuse from Graph

Reuse a data type from another model using the Digital Enterprise Graph.

Import XSD

Import one or more data types from XML XSD schemas. It is possible to import from multiple XSDs that import each other. Note that not all constraints expressed in an XSD can be mapped to data types.

Import JSON

Import one or more data types from a JSON Schema. Note that not all constraints expressed in a JSON Schema can be mapped to data types.

Defining a Data Type

When adding a new data type or editing an existing one, the dialog presents its structure and that structure can be edited.

data types define

To change the data type of a type or one of its attributes, clicking on the icon will offer different sources for the type.

Simple type

Select from one of the simple types.

Existing Type

Display a window with the data types that are already used by this model. This list can be searched.

Structure

Create a new data structure inline.

Reuse from graph

Select a data type already defined in another model from the Digital Enterprise Graph.

Reuse from accelerator

Select a data type already defined in an accelerator.

To add a new attribute to a structure, press the icon at the end of the last attribute.

Data types details can be expanded ( ) or collapsed ( ).

Attributes can be reordered using drag and drop.

Right-clicking on an attribute (or using the icon) brings up a contextual menu with localized actions.

Description

Enter a description for the data type or structure attribute.

Insert Row Above

Insert a new attribute row above the current row in a structure.

Insert Row Below

Insert a new attribute row below the current row in a structure.

Delete Row

Delete the current row in a structure.

Cut

Cut the current data type or structure attribute.

Copy

Copy the current data type or structure attribute.

Paste

Paste a data type.

Collection

Toggle the collection attribute of a data type or structure attribute. This displays the collection marker under the label of the data type or structure attribute ( ).

Refactor as a type

Transfor an inline-defined structure as a data type that can also be reused by other data types.

Adding constraints

Clicking on the type label of a data type or structure attribute (Text, Number, …​) or "Constraints…​" in the contextual menu of the data type, a dialog displays the constraints of that type.

data types constraint

The following type of constraints are available

Range

Number, Durations and Date/Time data types support entering a range of values.

Expression

A FEEL expression that defines the constraint on the type.

Enumeration

Most data type allows to enter an enumeration of allowed values for this data type.

Not null

The data type can never be set to null. Allowed on most data type.

Optionals validation code and validation message can be entered for each constraint. It allows to show a custom error message when the constraint is not respected.

An "Allow null" checkbox can be checked for each constraint except the "Not Null" one.

Clicking the "Add Expression" button allows to enter an additional expression constraint that must be met along with the main one. To delete it, click on the at the top right.

To refer to the data type itself in an expression, use the question mark "?".

data types constraint 2

Siblings (same level) of a data type can be referred in an expression using its name.

data types constraint 3
data types constraint 4

Changing the constraint type to "None" will remove the main constraint. If there are additional expression constraints, the first one will be set as the main one.